Ignore:
Timestamp:
Oct 2, 2009, 11:06:49 AM (16 years ago)
Author:
[email protected]
Message:

Rolled back in r49004 with the debug 64bit build fixed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/jit/JITPropertyAccess.cpp

    r49005 r49030  
    311311    load32(BaseIndex(regT0, regT2, TimesEight, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + 4), regT1); // tag
    312312    load32(BaseIndex(regT0, regT2, TimesEight, OBJECT_OFFSETOF(ArrayStorage, m_vector[0])), regT0); // payload
    313 
    314     // FIXME: Maybe we can optimize this comparison to JSValue().
    315     Jump skip = branch32(NotEqual, regT0, Imm32(0));
    316     branch32(Equal, regT1, Imm32(JSValue::CellTag), callGetByValJITStub);
    317 
    318     skip.link(this);
     313    branch32(Equal, regT1, Imm32(JSValue::EmptyValueTag)).linkTo(callGetByValJITStub, this);
     314
    319315    emitStore(dst, regT1, regT0);
    320316}
     
    334330
    335331    Jump inFastVector = branch32(Below, regT2, Address(regT0, OBJECT_OFFSETOF(JSArray, m_fastAccessCutoff)));
    336 
     332   
    337333    // Check if the access is within the vector.
    338334    addSlowCase(branch32(AboveOrEqual, regT2, Address(regT3, OBJECT_OFFSETOF(ArrayStorage, m_vectorLength))));
     
    340336    // This is a write to the slow part of the vector; first, we have to check if this would be the first write to this location.
    341337    // FIXME: should be able to handle initial write to array; increment the the number of items in the array, and potentially update fast access cutoff.
    342     Jump skip = branch32(NotEqual, BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + 4), Imm32(JSValue::CellTag));
    343     addSlowCase(branch32(Equal, BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(ArrayStorage, m_vector[0])), Imm32(0)));
    344     skip.link(this);
     338    addSlowCase(branch32(Equal, BaseIndex(regT3, regT2, TimesEight, OBJECT_OFFSETOF(ArrayStorage, m_vector[0]) + 4), Imm32(JSValue::EmptyValueTag)));
    345339
    346340    inFastVector.link(this);
Note: See TracChangeset for help on using the changeset viewer.