Ignore:
Timestamp:
Sep 24, 2012, 4:12:00 PM (13 years ago)
Author:
[email protected]
Message:

Inlined activation tear-off in the DFG
https://bugs.webkit.org/show_bug.cgi?id=97487

Reviewed by Filip Pizlo.

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h: Activation tear-off is always inlined now, so I

removed its out-of-line implementation.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile): Inlined the variable copy and update
of JSVariableObject::m_registers. This usually turns into < 10 instructions,
which is close to pure win as compared to the operation function call.

  • runtime/JSActivation.h:

(JSActivation):
(JSC::JSActivation::registersOffset):
(JSC::JSActivation::tearOff):
(JSC::JSActivation::isTornOff):
(JSC):
(JSC::JSActivation::storageOffset):
(JSC::JSActivation::storage): Tiny bit of refactoring so the JIT can
share the pointer math helper functions we use internally.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGOperations.cpp

    r128957 r129426  
    11661166    ASSERT(!exec->globalData().exception);
    11671167    return result;
    1168 }
    1169 
    1170 void DFG_OPERATION operationTearOffActivation(ExecState* exec, JSCell* activationCell)
    1171 {
    1172     JSGlobalData& globalData = exec->globalData();
    1173     NativeCallFrameTracer tracer(&globalData, exec);
    1174     jsCast<JSActivation*>(activationCell)->tearOff(exec->globalData());
    11751168}
    11761169
Note: See TracChangeset for help on using the changeset viewer.