⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 126928 in webkit


Ignore:
Timestamp:
Aug 28, 2012, 2:21:22 PM (14 years ago)
Author:
barraclough@apple.com
Message:

PutById uses DataLabel32, not DataLabelCompact
https://bugs.webkit.org/show_bug.cgi?id=95245

Reviewed by Geoff Garen.

JIT::resetPatchPutById calls the the wrong thing on x86-64 – this is moot right now,
since they currently both do the same thing, but if we were to ever make compact mean
8-bit this could be a real problem. Also, don't rely on the object still being in eax
on entry to the transition stub – this isn't very robust.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::privateCompilePutByIdTransition):

  • DataLabelCompact -> DataLabel32

(JSC::JIT::resetPatchPutById):

  • reload regT0 from the stack
Location:
trunk/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r126926 r126928  
     12012-08-28  Gavin Barraclough  <barraclough@apple.com>
     2
     3        PutById uses DataLabel32, not DataLabelCompact
     4        https://bugs.webkit.org/show_bug.cgi?id=95245
     5
     6        Reviewed by Geoff Garen.
     7
     8        JIT::resetPatchPutById calls the the wrong thing on x86-64 – this is moot right now,
     9        since they currently both do the same thing, but if we were to ever make compact mean
     10        8-bit this could be a real problem. Also, don't rely on the object still being in eax
     11        on entry to the transition stub – this isn't very robust.
     12
     13        * jit/JITPropertyAccess.cpp:
     14        (JSC::JIT::privateCompilePutByIdTransition):
     15            - DataLabelCompact -> DataLabel32
     16        (JSC::JIT::resetPatchPutById):
     17            - reload regT0 from the stack
     18
    1192012-08-28  Sheriff Bot  <webkit.review.bot@gmail.com>
    220
  • trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp

    r125639 r126928  
    538538void JIT::privateCompilePutByIdTransition(StructureStubInfo* stubInfo, Structure* oldStructure, Structure* newStructure, PropertyOffset cachedOffset, StructureChain* chain, ReturnAddressPtr returnAddress, bool direct)
    539539{
     540    peek(regT0, JITSTACKFRAME_ARGS_INDEX);
     541
    540542    JumpList failureCases;
    541543    // Check eax is an object of the right Structure.
     
    11631165        repatchBuffer.relink(stubInfo->callReturnLocation, cti_op_put_by_id);
    11641166    repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabelPtrAtOffset(stubInfo->patch.baseline.u.put.structureToCompare), reinterpret_cast<void*>(-1));
    1165     repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabelCompactAtOffset(stubInfo->patch.baseline.u.put.displacementLabel), 0);
     1167    repatchBuffer.repatch(stubInfo->hotPathBegin.dataLabel32AtOffset(stubInfo->patch.baseline.u.put.displacementLabel), 0);
    11661168}
    11671169
Note: See TracChangeset for help on using the changeset viewer.