Ignore:
Timestamp:
Jun 24, 2010, 11:18:37 PM (15 years ago)
Author:
[email protected]
Message:

2010-06-24 Oliver Hunt <[email protected]>

Reviewed by Maciej Stachowiak.

Incorrect use of '+ 4' and 0 instead of tag and payload offsets in JSValue32_64
https://bugs.webkit.org/show_bug.cgi?id=41193

I noticed a use of '+ 4' in some of the 32_64 code paths and realised there
were a few places where endianness was being hardcoded. This patch fixes
the errors i could find through code inspection.

  • jit/JITOpcodes32_64.cpp: (JSC::JIT::emit_op_resolve_global):
  • jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emit_op_get_by_val): (JSC::JIT::emit_op_put_by_val): (JSC::JIT::compileGetDirectOffset): (JSC::JIT::privateCompilePutByIdTransition): (JSC::JIT::patchGetByIdSelf): (JSC::JIT::patchPutByIdReplace):
File:
1 edited

Legend:

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

    r61614 r61830  
    682682    loadPtr(Address(regT0, OBJECT_OFFSETOF(JSGlobalObject, m_externalStorage)), regT2);
    683683    load32(offsetAddr, regT3);
    684     load32(BaseIndex(regT2, regT3, TimesEight), regT0); // payload
    685     load32(BaseIndex(regT2, regT3, TimesEight, 4), regT1); // tag
     684    load32(BaseIndex(regT2, regT3, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT0); // payload
     685    load32(BaseIndex(regT2, regT3, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT1); // tag
    686686    emitStore(dst, regT1, regT0);
    687687    map(m_bytecodeOffset + dynamic ? OPCODE_LENGTH(op_resolve_global_dynamic) : OPCODE_LENGTH(op_resolve_global), dst, regT1, regT0);
Note: See TracChangeset for help on using the changeset viewer.