Ignore:
Timestamp:
Jun 4, 2009, 4:00:58 AM (16 years ago)
Author:
[email protected]
Message:

2009-06-04 Gavin Barraclough <[email protected]>

Reviewed by Oliver Hunt.

Wrap the code that plants pushes/pops planted by JIT in explanatorily named
methods; move property storage reallocation into a standard stub function.

~No performance impact (possible <1% progression on x86-64, likely just noise).

  • jit/JIT.cpp: (JSC::JIT::privateCompile): (JSC::JIT::privateCompileCTIMachineTrampolines):

Wrap calls to push/pop.

  • jit/JIT.h:

Declare the new wrapper methods.

  • jit/JITInlineMethods.h: (JSC::JIT::preverveReturnAddressAfterCall): (JSC::JIT::restoreReturnAddressBeforeReturn):

Define the new wrapper methods.

  • jit/JITOpcodes.cpp: (JSC::JIT::emit_op_end): (JSC::JIT::emit_op_ret):

Wrap calls to push/pop.

  • jit/JITPropertyAccess.cpp: (JSC::JIT::privateCompilePutByIdTransition):

Move property storage reallocation into a standard stub function.

  • jit/JITStubs.cpp: (JSC::JITStubs::DEFINE_STUB_FUNCTION):
  • jit/JITStubs.h: (JSC::JITStubs::):
File:
1 edited

Legend:

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

    r44076 r44412  
    6666    ASSERT(returnValueRegister != callFrameRegister);
    6767    emitGetVirtualRegister(currentInstruction[1].u.operand, returnValueRegister);
    68     push(Address(callFrameRegister, RegisterFile::ReturnPC * static_cast<int>(sizeof(Register))));
     68    restoreReturnAddressBeforeReturn(Address(callFrameRegister, RegisterFile::ReturnPC * static_cast<int>(sizeof(Register))));
    6969    ret();
    7070}
     
    304304
    305305    // Return.
    306     push(regT1);
     306    restoreReturnAddressBeforeReturn(regT1);
    307307    ret();
    308308
Note: See TracChangeset for help on using the changeset viewer.