Ignore:
Timestamp:
Oct 23, 2019, 6:00:07 PM (6 years ago)
Author:
[email protected]
Message:

[JSC] Figure out missing prepareCallOperation
https://bugs.webkit.org/show_bug.cgi?id=203285

Reviewed by Mark Lam.

Source/JavaScriptCore:

We start using builtin_frame_address to get CallFrame* in JIT operations. For the platform which is not supporting this API (MSVC),
we put frame-pointer to vm.topCallFrame in the caller side. The problem is that all Apple platform is now using
builtin_frame_address,
and we are not testing vm.topCallFrame version at all.

To find missing prepareCallOperation call, we introduce JITOperationPrologueCallFrameTracer. When USE(BUILTIN_FRAME_ADDRESS) is enabled and
if it is debug build, we anyway put frame-pointer to vm.topCallFrame. And after that, we ensure that vm.topCallFrame is the same to the
CallFrame* gained by builtin_frame_address. By doing this, we can find places missing this call in debug build of Apple ports.

We also found that FTL's custom getter calling is putting wrong value to vm.topCallFrame. This patch fixes it too.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::emitRestoreArguments):
(JSC::DFG::operationCompileOSRExit):
(JSC::DFG::OSRExit::compileExit):
(JSC::DFG::operationDebugPrintSpeculationFailure):
(JSC::DFG::OSRExit::compileOSRExit): Deleted.
(JSC::DFG::OSRExit::debugOperationPrintSpeculationFailure): Deleted.

  • dfg/DFGOSRExit.h:
  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::handleExitCounts):
(JSC::DFG::osrWriteBarrier):

  • dfg/DFGOSRExitCompilerCommon.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitThunkGenerator):
(JSC::DFG::osrExitGenerationThunkGenerator):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
(JSC::FTL::DFG::LowerDFGToB3::callPreflight):
(JSC::FTL::DFG::LowerDFGToB3::callCheck):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):
(JSC::FTL::operationCompileFTLOSRExit):
(JSC::FTL::compileFTLOSRExit): Deleted.

  • ftl/FTLOSRExitCompiler.h:
  • ftl/FTLOperations.cpp:

(JSC::FTL::operationPopulateObjectInOSR):
(JSC::FTL::operationMaterializeObjectInOSR):
(JSC::FTL::operationCompileFTLLazySlowPath):
(JSC::FTL::compileFTLLazySlowPath): Deleted.

  • ftl/FTLOperations.h:
  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::SlowPathCallContext::makeCall):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::osrExitGenerationThunkGenerator):
(JSC::FTL::lazySlowPathGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • ftl/FTLThunks.h:

(JSC::FTL::generateIfNecessary):
(JSC::FTL::Thunks::getSlowPathCallThunk):

  • interpreter/FrameTracers.h:

(JSC::SlowPathFrameTracer::SlowPathFrameTracer):
(JSC::JITOperationPrologueCallFrameTracer::JITOperationPrologueCallFrameTracer):
(JSC::JITOperationPrologueCallFrameTracer::~JITOperationPrologueCallFrameTracer):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::debugCall):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::prepareCallOperation):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::ensureShadowChickenPacket):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::prepareCallOperation): Deleted.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/Repatch.cpp:

(JSC::ftlThunkAwareRepatchCall):

  • jit/ThunkGenerators.cpp:

(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::handleHostCall):

  • runtime/AtomicsObject.cpp:

(JSC::operationAtomicsAdd):
(JSC::operationAtomicsAnd):
(JSC::operationAtomicsCompareExchange):
(JSC::operationAtomicsExchange):
(JSC::operationAtomicsIsLockFree):
(JSC::operationAtomicsLoad):
(JSC::operationAtomicsOr):
(JSC::operationAtomicsStore):
(JSC::operationAtomicsSub):
(JSC::operationAtomicsXor):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/StringPrototype.cpp:

(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
(JSC::operationStringProtoFuncReplaceRegExpString):
(JSC::operationStringProtoFuncReplaceGeneric):

  • tools/JSDollarVM.cpp:

(IGNORE_WARNINGS_BEGIN):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::operationWasmThrowBadI64):
(JSC::Wasm::operationWasmTriggerOSREntryNow):
(JSC::Wasm::operationWasmTriggerTierUpNow):
(JSC::Wasm::operationThrowBadI64): Deleted.
(JSC::Wasm::triggerOSREntryNow): Deleted.
(JSC::Wasm::triggerTierUpNow): Deleted.

  • wasm/WasmOperations.h:
  • wasm/WasmThunks.cpp:

(JSC::Wasm::triggerOMGEntryTierUpThunkGenerator):

  • wasm/js/JSWebAssembly.cpp:

(JSC::instantiate):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::operationWasmToJSException):
(JSC::Wasm::emitThrowWasmToJSException):
(JSC::Wasm::wasmToJSException): Deleted.

  • wasm/js/WasmToJS.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance):

Source/WebCore:

Use JITOperationPrologueCallFrameTracer instead of NativeCallFrameTracer.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateOperationDefinition):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionItemWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionHasAttributeWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdWithoutTypeCheck):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameWithoutTypeCheck):

  • domjit/DOMJITHelpers.h:

(WebCore::DOMJIT::toWrapperSlow):

Source/WTF:

Enable USE(BUILTIN_FRAME_ADDRESS) regardless of platform is the compilers and architectures match.

  • wtf/Platform.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/JITOperations.cpp

    r251468 r251518  
    108108    VM& vm = codeBlock->vm();
    109109    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    110     NativeCallFrameTracer tracer(vm, callFrame);
     110    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    111111    auto scope = DECLARE_THROW_SCOPE(vm);
    112112    callFrame->convertToStackOverflowFrame(vm, codeBlock);
     
    114114}
    115115
    116 void JIT_OPERATION throwStackOverflowErrorFromThunk(JSGlobalObject* globalObject)
    117 {
    118     VM& vm = globalObject->vm();
    119     CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    120     NativeCallFrameTracer tracer(vm, callFrame);
     116void JIT_OPERATION operationThrowStackOverflowErrorFromThunk(JSGlobalObject* globalObject)
     117{
     118    VM& vm = globalObject->vm();
     119    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
     120    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    121121    auto scope = DECLARE_THROW_SCOPE(vm);
    122122    throwStackOverflowError(globalObject, scope);
     
    129129    VM& vm = globalObject->vm();
    130130    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    131     NativeCallFrameTracer tracer(vm, callFrame);
     131    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    132132    auto scope = DECLARE_THROW_SCOPE(vm);
    133133
     
    146146    VM& vm = globalObject->vm();
    147147    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    148     NativeCallFrameTracer tracer(vm, callFrame);
     148    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    149149    auto scope = DECLARE_THROW_SCOPE(vm);
    150150
     
    163163    VM& vm = globalObject->vm();
    164164    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    165     NativeCallFrameTracer tracer(vm, callFrame);
     165    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    166166    Identifier ident = Identifier::fromUid(vm, uid);
    167167    stubInfo->tookSlowPath = true;
     
    179179    VM& vm = globalObject->vm();
    180180    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    181     NativeCallFrameTracer tracer(vm, callFrame);
     181    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    182182    Identifier ident = Identifier::fromUid(vm, uid);
    183183
     
    193193    VM& vm = globalObject->vm();
    194194    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    195     NativeCallFrameTracer tracer(vm, callFrame);
     195    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    196196    auto scope = DECLARE_THROW_SCOPE(vm);
    197197    Identifier ident = Identifier::fromUid(vm, uid);
     
    214214    VM& vm = globalObject->vm();
    215215    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    216     NativeCallFrameTracer tracer(vm, callFrame);
     216    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    217217    auto scope = DECLARE_THROW_SCOPE(vm);
    218218    Identifier ident = Identifier::fromUid(vm, uid);
     
    232232    VM& vm = globalObject->vm();
    233233    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    234     NativeCallFrameTracer tracer(vm, callFrame);
     234    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    235235    auto scope = DECLARE_THROW_SCOPE(vm);
    236236    Identifier ident = Identifier::fromUid(vm, uid);
     
    249249    VM& vm = globalObject->vm();
    250250    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    251     NativeCallFrameTracer tracer(vm, callFrame);
     251    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    252252    auto scope = DECLARE_THROW_SCOPE(vm);
    253253    Identifier ident = Identifier::fromUid(vm, uid);
     
    272272    VM& vm = globalObject->vm();
    273273    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    274     NativeCallFrameTracer tracer(vm, callFrame);
     274    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    275275   
    276276    stubInfo->tookSlowPath = true;
     
    292292    VM& vm = globalObject->vm();
    293293    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    294     NativeCallFrameTracer tracer(vm, callFrame);
     294    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    295295   
    296296    JSValue baseValue = JSValue::decode(base);
     
    310310    VM& vm = globalObject->vm();
    311311    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    312     NativeCallFrameTracer tracer(vm, callFrame);
     312    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    313313    Identifier ident = Identifier::fromUid(vm, uid);
    314314
     
    332332    VM& vm = globalObject->vm();
    333333    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    334     NativeCallFrameTracer tracer(vm, callFrame);
     334    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    335335    Identifier ident = Identifier::fromUid(vm, uid);
    336336
     
    350350    VM& vm = globalObject->vm();
    351351    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    352     NativeCallFrameTracer tracer(vm, callFrame);
     352    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    353353    Identifier ident = Identifier::fromUid(vm, uid);
    354354
     
    366366    VM& vm = globalObject->vm();
    367367    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    368     NativeCallFrameTracer tracer(vm, callFrame);
     368    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    369369    Identifier ident = Identifier::fromUid(vm, uid);
    370370
     
    389389    VM& vm = globalObject->vm();
    390390    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    391     NativeCallFrameTracer tracer(vm, callFrame);
     391    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    392392    auto scope = DECLARE_THROW_SCOPE(vm);
    393393
     
    416416    VM& vm = globalObject->vm();
    417417    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    418     NativeCallFrameTracer tracer(vm, callFrame);
     418    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    419419    auto scope = DECLARE_THROW_SCOPE(vm);
    420420
     
    441441    VM& vm = globalObject->vm();
    442442    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    443     NativeCallFrameTracer tracer(vm, callFrame);
     443    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    444444    auto scope = DECLARE_THROW_SCOPE(vm);
    445445
     
    470470    VM& vm = globalObject->vm();
    471471    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    472     NativeCallFrameTracer tracer(vm, callFrame);
     472    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    473473
    474474    return JSValue::encode(jsBoolean(CommonSlowPaths::opInByVal(globalObject, base, JSValue::decode(key))));
     
    481481    VM& vm = globalObject->vm();
    482482    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    483     NativeCallFrameTracer tracer(vm, callFrame);
     483    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    484484   
    485485    stubInfo->tookSlowPath = true;
     
    499499    VM& vm = globalObject->vm();
    500500    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    501     NativeCallFrameTracer tracer(vm, callFrame);
     501    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    502502   
    503503    stubInfo->tookSlowPath = true;
     
    517517    VM& vm = globalObject->vm();
    518518    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    519     NativeCallFrameTracer tracer(vm, callFrame);
     519    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    520520   
    521521    stubInfo->tookSlowPath = true;
     
    535535    VM& vm = globalObject->vm();
    536536    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    537     NativeCallFrameTracer tracer(vm, callFrame);
     537    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    538538   
    539539    stubInfo->tookSlowPath = true;
     
    553553    VM& vm = globalObject->vm();
    554554    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    555     NativeCallFrameTracer tracer(vm, callFrame);
     555    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    556556    auto scope = DECLARE_THROW_SCOPE(vm);
    557557
     
    584584    VM& vm = globalObject->vm();
    585585    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    586     NativeCallFrameTracer tracer(vm, callFrame);
     586    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    587587    auto scope = DECLARE_THROW_SCOPE(vm);
    588588
     
    615615    VM& vm = globalObject->vm();
    616616    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    617     NativeCallFrameTracer tracer(vm, callFrame);
     617    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    618618    auto scope = DECLARE_THROW_SCOPE(vm);
    619619   
     
    645645    VM& vm = globalObject->vm();
    646646    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    647     NativeCallFrameTracer tracer(vm, callFrame);
     647    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    648648    auto scope = DECLARE_THROW_SCOPE(vm);
    649649   
     
    860860    VM& vm = globalObject->vm();
    861861    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    862     NativeCallFrameTracer tracer(vm, callFrame);
     862    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    863863    auto scope = DECLARE_THROW_SCOPE(vm);
    864864
     
    949949    VM& vm = globalObject->vm();
    950950    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    951     NativeCallFrameTracer tracer(vm, callFrame);
     951    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    952952    auto scope = DECLARE_THROW_SCOPE(vm);
    953953
     
    973973    VM& vm = globalObject->vm();
    974974    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    975     NativeCallFrameTracer tracer(vm, callFrame);
     975    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    976976   
    977977    JSValue baseValue = JSValue::decode(encodedBaseValue);
     
    987987    VM& vm = globalObject->vm();
    988988    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    989     NativeCallFrameTracer tracer(vm, callFrame);
     989    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    990990   
    991991    JSValue baseValue = JSValue::decode(encodedBaseValue);
     
    12161216    VM& vm = globalObject->vm();
    12171217    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1218     NativeCallFrameTracer tracer(vm, callFrame);
     1218    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    12191219   
    12201220    return jsLess<true>(globalObject, JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
     
    12251225    VM& vm = globalObject->vm();
    12261226    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1227     NativeCallFrameTracer tracer(vm, callFrame);
     1227    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    12281228
    12291229    return jsLessEq<true>(globalObject, JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
     
    12341234    VM& vm = globalObject->vm();
    12351235    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1236     NativeCallFrameTracer tracer(vm, callFrame);
     1236    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    12371237
    12381238    return jsLess<false>(globalObject, JSValue::decode(encodedOp2), JSValue::decode(encodedOp1));
     
    12431243    VM& vm = globalObject->vm();
    12441244    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1245     NativeCallFrameTracer tracer(vm, callFrame);
     1245    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    12461246
    12471247    return jsLessEq<false>(globalObject, JSValue::decode(encodedOp2), JSValue::decode(encodedOp1));
     
    12521252    VM& vm = globalObject->vm();
    12531253    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1254     NativeCallFrameTracer tracer(vm, callFrame);
     1254    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    12551255
    12561256    return JSValue::equalSlowCaseInline(globalObject, JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
     
    12651265    VM& vm = globalObject->vm();
    12661266    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1267     NativeCallFrameTracer tracer(vm, callFrame);
     1267    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    12681268
    12691269    bool result = asString(left)->equal(globalObject, asString(right));
     
    12791279    VM& vm = globalObject->vm();
    12801280    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1281     NativeCallFrameTracer tracer(vm, callFrame);
     1281    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    12821282
    12831283    JSValue src1 = JSValue::decode(encodedOp1);
     
    12911291    VM& vm = globalObject->vm();
    12921292    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1293     NativeCallFrameTracer tracer(vm, callFrame);
     1293    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    12941294    return JSValue::encode(constructArrayNegativeIndexed(globalObject, profile, values, size));
    12951295}
     
    12991299    VM& vm = globalObject->vm();
    13001300    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1301     NativeCallFrameTracer tracer(vm, callFrame);
     1301    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13021302    JSValue sizeValue = JSValue::decode(size);
    13031303    return JSValue::encode(constructArrayWithSizeQuirk(globalObject, profile, sizeValue));
     
    13211321    VM& vm = *vmPointer;
    13221322    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1323     NativeCallFrameTracer tracer(vm, callFrame);
     1323    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13241324    return newFunctionCommon<JSFunction>(vm, scope, functionExecutable, false);
    13251325}
     
    13291329    VM& vm = *vmPointer;
    13301330    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1331     NativeCallFrameTracer tracer(vm, callFrame);
     1331    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13321332    return newFunctionCommon<JSFunction>(vm, scope, functionExecutable, true);
    13331333}
     
    13371337    VM& vm = *vmPointer;
    13381338    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1339     NativeCallFrameTracer tracer(vm, callFrame);
     1339    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13401340    return newFunctionCommon<JSGeneratorFunction>(vm, scope, functionExecutable, false);
    13411341}
     
    13451345    VM& vm = *vmPointer;
    13461346    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1347     NativeCallFrameTracer tracer(vm, callFrame);
     1347    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13481348    return newFunctionCommon<JSGeneratorFunction>(vm, scope, functionExecutable, true);
    13491349}
     
    13531353    VM& vm = *vmPointer;
    13541354    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1355     NativeCallFrameTracer tracer(vm, callFrame);
     1355    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13561356    return newFunctionCommon<JSAsyncFunction>(vm, scope, functionExecutable, false);
    13571357}
     
    13611361    VM& vm = *vmPointer;
    13621362    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1363     NativeCallFrameTracer tracer(vm, callFrame);
     1363    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13641364    return newFunctionCommon<JSAsyncFunction>(vm, scope, functionExecutable, true);
    13651365}
     
    13691369    VM& vm = *vmPointer;
    13701370    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1371     NativeCallFrameTracer tracer(vm, callFrame);
     1371    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13721372    return newFunctionCommon<JSAsyncGeneratorFunction>(vm, scope, functionExecutable, false);
    13731373}
     
    13771377    VM& vm = *vmPointer;
    13781378    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1379     NativeCallFrameTracer tracer(vm, callFrame);
     1379    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13801380    return newFunctionCommon<JSAsyncGeneratorFunction>(vm, scope, functionExecutable, true);
    13811381}
     
    13851385    VM& vm = globalObject->vm();
    13861386    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1387     NativeCallFrameTracer tracer(vm, callFrame);
     1387    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13881388
    13891389    JSFunction* func = jsCast<JSFunction*>(funcCell);
     
    13961396    VM& vm = *vmPointer;
    13971397    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1398     NativeCallFrameTracer tracer(vm, callFrame);
     1398    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    13991399
    14001400    return constructEmptyObject(vm, structure);
     
    14051405    VM& vm = *vmPointer;
    14061406    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1407     NativeCallFrameTracer tracer(vm, callFrame);
     1407    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    14081408
    14091409    return JSPromise::create(vm, structure);
     
    14141414    VM& vm = *vmPointer;
    14151415    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1416     NativeCallFrameTracer tracer(vm, callFrame);
     1416    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    14171417
    14181418    return JSInternalPromise::create(vm, structure);
     
    14231423    VM& vm = *vmPointer;
    14241424    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1425     NativeCallFrameTracer tracer(vm, callFrame);
     1425    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    14261426
    14271427    return JSGenerator::create(vm, structure);
     
    14321432    VM& vm = *vmPointer;
    14331433    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1434     NativeCallFrameTracer tracer(vm, callFrame);
     1434    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    14351435
    14361436    return JSAsyncGenerator::create(vm, structure);
     
    14421442    VM& vm = globalObject->vm();
    14431443    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1444     NativeCallFrameTracer tracer(vm, callFrame);
     1444    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    14451445
    14461446    RegExp* regexp = static_cast<RegExp*>(regexpPtr);
     
    14571457    VM& vm = globalObject->vm();
    14581458    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1459     NativeCallFrameTracer tracer(vm, callFrame);
     1459    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    14601460    ASSERT(vm.needTrapHandling());
    14611461    vm.handleTraps(globalObject, callFrame);
     
    14671467    VM& vm = *vmPointer;
    14681468    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1469     NativeCallFrameTracer tracer(vm, callFrame);
     1469    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    14701470
    14711471    vm.interpreter->debug(callFrame, static_cast<DebugHookType>(debugHookType));
     
    14831483    VM& vm = *vmPointer;
    14841484    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1485     NativeCallFrameTracer tracer(vm, callFrame);
     1485    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    14861486    BytecodeIndex bytecodeIndex = BytecodeIndex::fromBits(bytecodeIndexBits);
    14871487
     
    17301730    VM& vm = *vmPointer;
    17311731    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1732     NativeCallFrameTracer tracer(vm, callFrame);
     1732    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    17331733    BytecodeIndex bytecodeIndex = BytecodeIndex::fromBits(bytecodeIndexBits);
    17341734
     
    17531753    VM& vm = *vmPointer;
    17541754    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1755     NativeCallFrameTracer tracer(vm, callFrame);
     1755    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    17561756    BytecodeIndex bytecodeIndex = BytecodeIndex::fromBits(bytecodeIndexBits);
    17571757
     
    17871787    VM& vm = globalObject->vm();
    17881788    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1789     NativeCallFrameTracer tracer(vm, callFrame);
     1789    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    17901790
    17911791    JSValue arrayValue = JSValue::decode(encodedArrayValue);
     
    18171817    VM& vm = globalObject->vm();
    18181818    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1819     NativeCallFrameTracer tracer(vm, callFrame);
     1819    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    18201820
    18211821    ASSERT(object && object->isObject());
     
    18301830    VM& vm = globalObject->vm();
    18311831    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1832     NativeCallFrameTracer tracer(vm, callFrame);
     1832    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    18331833
    18341834    ASSERT(object && object->isObject());
     
    18431843    VM& vm = globalObject->vm();
    18441844    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1845     NativeCallFrameTracer tracer(vm, callFrame);
     1845    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    18461846
    18471847    putAccessorByVal(globalObject, asObject(base), JSValue::decode(encodedSubscript), attribute, asObject(getter), AccessorType::Getter);
     
    18521852    VM& vm = globalObject->vm();
    18531853    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1854     NativeCallFrameTracer tracer(vm, callFrame);
     1854    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    18551855
    18561856    putAccessorByVal(globalObject, asObject(base), JSValue::decode(encodedSubscript), attribute, asObject(setter), AccessorType::Setter);
     
    18621862    VM& vm = globalObject->vm();
    18631863    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1864     NativeCallFrameTracer tracer(vm, callFrame);
     1864    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    18651865
    18661866    ASSERT(object && object->isObject());
     
    18791879    VM& vm = globalObject->vm();
    18801880    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1881     NativeCallFrameTracer tracer(vm, callFrame);
     1881    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    18821882
    18831883    ASSERT(object && object->isObject());
     
    18961896    VM& vm = globalObject->vm();
    18971897    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1898     NativeCallFrameTracer tracer(vm, callFrame);
     1898    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    18991899
    19001900    JSScope* scope = callFrame->uncheckedR(scopeReg).Register::scope();
     
    19061906    VM& vm = globalObject->vm();
    19071907    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    1908     NativeCallFrameTracer tracer(vm, callFrame);
     1908    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    19091909
    19101910    JSValue value = JSValue::decode(encodedValue);
     
    20692069    VM& vm = globalObject->vm();
    20702070    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2071     NativeCallFrameTracer tracer(vm, callFrame);
     2071    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    20722072    JSValue baseValue = JSValue::decode(encodedBase);
    20732073    JSValue subscript = JSValue::decode(encodedSubscript);
     
    20812081    VM& vm = globalObject->vm();
    20822082    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2083     NativeCallFrameTracer tracer(vm, callFrame);
     2083    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    20842084    auto scope = DECLARE_THROW_SCOPE(vm);
    20852085
     
    21022102    VM& vm = globalObject->vm();
    21032103    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2104     NativeCallFrameTracer tracer(vm, callFrame);
     2104    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    21052105    JSValue baseValue = JSValue::decode(encodedBase);
    21062106    JSValue subscript = JSValue::decode(encodedSubscript);
     
    21502150    VM& vm = globalObject->vm();
    21512151    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2152     NativeCallFrameTracer tracer(vm, callFrame);
     2152    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    21532153    JSValue baseValue = JSValue::decode(encodedBase);
    21542154    JSValue subscript = JSValue::decode(encodedSubscript);
     
    21712171    VM& vm = globalObject->vm();
    21722172    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2173     NativeCallFrameTracer tracer(vm, callFrame);
     2173    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    21742174    auto scope = DECLARE_THROW_SCOPE(vm);
    21752175    JSValue baseValue = JSValue::decode(encodedBase);
     
    22212221    VM& vm = globalObject->vm();
    22222222    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2223     NativeCallFrameTracer tracer(vm, callFrame);
     2223    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    22242224    return JSValue::encode(jsBoolean(deleteById(globalObject, callFrame, vm, JSValue::decode(encodedBase), uid)));
    22252225}
     
    22292229    VM& vm = globalObject->vm();
    22302230    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2231     NativeCallFrameTracer tracer(vm, callFrame);
     2231    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    22322232    return deleteById(globalObject, callFrame, vm, JSValue::decode(encodedBase), uid);
    22332233}
     
    22612261    VM& vm = globalObject->vm();
    22622262    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2263     NativeCallFrameTracer tracer(vm, callFrame);
     2263    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    22642264    return JSValue::encode(jsBoolean(deleteByVal(globalObject, callFrame, vm, JSValue::decode(encodedBase), JSValue::decode(encodedKey))));
    22652265}
     
    22692269    VM& vm = globalObject->vm();
    22702270    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2271     NativeCallFrameTracer tracer(vm, callFrame);
     2271    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    22722272    return deleteByVal(globalObject, callFrame, vm, JSValue::decode(encodedBase), JSValue::decode(encodedKey));
    22732273}
     
    22772277    VM& vm = globalObject->vm();
    22782278    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2279     NativeCallFrameTracer tracer(vm, callFrame);
     2279    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    22802280    auto scope = DECLARE_THROW_SCOPE(vm);
    22812281
     
    22922292    VM& vm = globalObject->vm();
    22932293    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2294     NativeCallFrameTracer tracer(vm, callFrame);
     2294    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    22952295    JSScope* currentScope = jsCast<JSScope*>(currentScopeCell);
    22962296    return JSWithScope::create(vm, globalObject, currentScope, object);
     
    23012301    VM& vm = globalObject->vm();
    23022302    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2303     NativeCallFrameTracer tracer(vm, callFrame);
     2303    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    23042304    JSValue value = JSValue::decode(encodedValue);
    23052305    JSValue proto = JSValue::decode(encodedProto);
     
    23132313    VM& vm = globalObject->vm();
    23142314    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2315     NativeCallFrameTracer tracer(vm, callFrame);
     2315    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    23162316    JSValue value = JSValue::decode(encodedValue);
    23172317    JSValue proto = JSValue::decode(encodedProto);
     
    23272327    VM& vm = globalObject->vm();
    23282328    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2329     NativeCallFrameTracer tracer(vm, callFrame);
     2329    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    23302330    auto scope = DECLARE_THROW_SCOPE(vm);
    23312331    JSValue value = JSValue::decode(encodedValue);
     
    23462346    VM& vm = globalObject->vm();
    23472347    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2348     NativeCallFrameTracer tracer(vm, callFrame);
     2348    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    23492349    return sizeFrameForForwardArguments(globalObject, callFrame, vm, numUsedStackSlots);
    23502350}
     
    23542354    VM& vm = globalObject->vm();
    23552355    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2356     NativeCallFrameTracer tracer(vm, callFrame);
     2356    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    23572357    JSValue arguments = JSValue::decode(encodedArguments);
    23582358    return sizeFrameForVarargs(globalObject, callFrame, vm, arguments, numUsedStackSlots, firstVarArgOffset);
     
    23632363    VM& vm = globalObject->vm();
    23642364    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2365     NativeCallFrameTracer tracer(vm, callFrame);
     2365    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    23662366    setupForwardArgumentsFrame(globalObject, callFrame, newCallFrame, length);
    23672367    return newCallFrame;
     
    23722372    VM& vm = globalObject->vm();
    23732373    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2374     NativeCallFrameTracer tracer(vm, callFrame);
     2374    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    23752375    JSValue arguments = JSValue::decode(encodedArguments);
    23762376    setupVarargsFrame(globalObject, callFrame, newCallFrame, arguments, firstVarArgOffset, length);
     
    23822382    VM& vm = globalObject->vm();
    23832383    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2384     NativeCallFrameTracer tracer(vm, callFrame);
     2384    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    23852385    auto throwScope = DECLARE_THROW_SCOPE(vm);
    23862386
     
    24082408    VM& vm = *vmPointer;
    24092409    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2410     NativeCallFrameTracer tracer(vm, callFrame);
     2410    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    24112411    JSValue key = JSValue::decode(encodedKey);
    24122412    CodeBlock* codeBlock = callFrame->codeBlock();
     
    24282428    VM& vm = globalObject->vm();
    24292429    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2430     NativeCallFrameTracer tracer(vm, callFrame);
     2430    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    24312431    JSValue key = JSValue::decode(encodedKey);
    24322432    CodeBlock* codeBlock = callFrame->codeBlock();
     
    24532453    VM& vm = globalObject->vm();
    24542454    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2455     NativeCallFrameTracer tracer(vm, callFrame);
     2455    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    24562456    auto throwScope = DECLARE_THROW_SCOPE(vm);
    24572457
     
    24952495    VM& vm = globalObject->vm();
    24962496    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2497     NativeCallFrameTracer tracer(vm, callFrame);
     2497    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    24982498    auto throwScope = DECLARE_THROW_SCOPE(vm);
    24992499
     
    25492549    VM& vm = globalObject->vm();
    25502550    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2551     NativeCallFrameTracer tracer(vm, callFrame);
     2551    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    25522552    auto scope = DECLARE_THROW_SCOPE(vm);
    25532553
     
    25632563    VM& vm = *vmPointer;
    25642564    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2565     NativeCallFrameTracer tracer(vm, callFrame);
     2565    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    25662566
    25672567    ASSERT(!object->structure(vm)->outOfLineCapacity());
     
    25752575    VM& vm = *vmPointer;
    25762576    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2577     NativeCallFrameTracer tracer(vm, callFrame);
     2577    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    25782578
    25792579    Butterfly* result = object->allocateMoreOutOfLineStorage(vm, object->structure(vm)->outOfLineCapacity(), newSize);
     
    25862586    VM& vm = *vmPointer;
    25872587    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2588     NativeCallFrameTracer tracer(vm, callFrame);
     2588    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    25892589    vm.heap.writeBarrier(cell);
    25902590}
     
    25942594    VM& vm = *vmPointer;
    25952595    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2596     NativeCallFrameTracer tracer(vm, callFrame);
     2596    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    25972597    vm.heap.writeBarrierSlowPath(cell);
    25982598}
     
    26022602    VM& vm = *vmPointer;
    26032603    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2604     NativeCallFrameTracer tracer(vm, callFrame);
     2604    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    26052605    genericUnwind(vm, callFrame);
    26062606    ASSERT(vm.targetMachinePCForThrow);
     
    26112611    VM& vm = *vmPointer;
    26122612    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2613     NativeCallFrameTracer tracer(vm, callFrame);
     2613    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    26142614    ASSERT(callFrame->isStackOverflowFrame());
    26152615    ASSERT(jsCast<ErrorInstance*>(vm.exceptionForInspection()->value().asCell())->isStackOverflowError());
     
    26222622    VM& vm = *vmPointer;
    26232623    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2624     NativeCallFrameTracer tracer(vm, callFrame);
     2624    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    26252625    genericUnwind(vm, callFrame);
    26262626}
     
    26352635    VM& vm = globalObject->vm();
    26362636    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2637     NativeCallFrameTracer tracer(vm, callFrame);
     2637    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    26382638    auto scope = DECLARE_THROW_SCOPE(vm);
    26392639    UNUSED_PARAM(scope);
     
    26562656    VM& vm = globalObject->vm();
    26572657    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2658     NativeCallFrameTracer tracer(vm, callFrame);
     2658    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    26592659    return JSValue::encode(jsAdd(globalObject, JSValue::decode(encodedOp1), JSValue::decode(encodedOp2)));
    26602660}
     
    26652665    VM& vm = globalObject->vm();
    26662666    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2667     NativeCallFrameTracer tracer(vm, callFrame);
     2667    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    26682668    return JSValue::encode(profiledAdd(globalObject, JSValue::decode(encodedOp1), JSValue::decode(encodedOp2), *arithProfile));
    26692669}
     
    26732673    VM& vm = globalObject->vm();
    26742674    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2675     NativeCallFrameTracer tracer(vm, callFrame);
     2675    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    26762676   
    26772677    JSValue op1 = JSValue::decode(encodedOp1);
     
    26982698    VM& vm = globalObject->vm();
    26992699    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2700     NativeCallFrameTracer tracer(vm, callFrame);
     2700    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    27012701
    27022702    ArithProfile* arithProfile = addIC->arithProfile();
     
    27092709    VM& vm = globalObject->vm();
    27102710    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2711     NativeCallFrameTracer tracer(vm, callFrame);
     2711    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    27122712
    27132713    JSValue op1 = JSValue::decode(encodedOp1);
     
    27302730    VM& vm = globalObject->vm();
    27312731    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2732     NativeCallFrameTracer tracer(vm, callFrame);
     2732    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    27332733   
    27342734    JSValue op1 = JSValue::decode(encodedOp1);
     
    27682768    VM& vm = globalObject->vm();
    27692769    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2770     NativeCallFrameTracer tracer(vm, callFrame);
     2770    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    27712771
    27722772    return unprofiledMul(globalObject, encodedOp1, encodedOp2);
     
    27772777    VM& vm = globalObject->vm();
    27782778    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2779     NativeCallFrameTracer tracer(vm, callFrame);
     2779    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    27802780
    27812781    return unprofiledMul(globalObject, encodedOp1, encodedOp2);
     
    27862786    VM& vm = globalObject->vm();
    27872787    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2788     NativeCallFrameTracer tracer(vm, callFrame);
     2788    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    27892789
    27902790    auto nonOptimizeVariant = operationValueMulNoOptimize;
     
    28042804    VM& vm = globalObject->vm();
    28052805    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2806     NativeCallFrameTracer tracer(vm, callFrame);
     2806    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    28072807
    28082808    ASSERT(arithProfile);
     
    28142814    VM& vm = globalObject->vm();
    28152815    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2816     NativeCallFrameTracer tracer(vm, callFrame);
     2816    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    28172817
    28182818    ArithProfile* arithProfile = mulIC->arithProfile();
     
    28332833    VM& vm = globalObject->vm();
    28342834    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2835     NativeCallFrameTracer tracer(vm, callFrame);
     2835    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    28362836
    28372837    ArithProfile* arithProfile = mulIC->arithProfile();
     
    28452845    auto scope = DECLARE_THROW_SCOPE(vm);
    28462846    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2847     NativeCallFrameTracer tracer(vm, callFrame);
     2847    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    28482848
    28492849    JSValue operand = JSValue::decode(encodedOperand);
     
    28672867    auto scope = DECLARE_THROW_SCOPE(vm);
    28682868    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2869     NativeCallFrameTracer tracer(vm, callFrame);
     2869    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    28702870
    28712871    JSValue operand = JSValue::decode(encodedOperand);
     
    28942894    auto scope = DECLARE_THROW_SCOPE(vm);
    28952895    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2896     NativeCallFrameTracer tracer(vm, callFrame);
     2896    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    28972897   
    28982898    JSValue operand = JSValue::decode(encodedOperand);
     
    29282928    auto scope = DECLARE_THROW_SCOPE(vm);
    29292929    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2930     NativeCallFrameTracer tracer(vm, callFrame);
     2930    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    29312931
    29322932    JSValue operand = JSValue::decode(encodedOperand);
     
    29792979    VM& vm = globalObject->vm();
    29802980    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2981     NativeCallFrameTracer tracer(vm, callFrame);
     2981    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    29822982    return unprofiledSub(globalObject, encodedOp1, encodedOp2);
    29832983}
     
    29892989    VM& vm = globalObject->vm();
    29902990    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    2991     NativeCallFrameTracer tracer(vm, callFrame);
     2991    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    29922992
    29932993    return profiledSub(vm, globalObject, encodedOp1, encodedOp2, *arithProfile);
     
    29982998    VM& vm = globalObject->vm();
    29992999    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    3000     NativeCallFrameTracer tracer(vm, callFrame);
     3000    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30013001
    30023002    auto nonOptimizeVariant = operationValueSubNoOptimize;
     
    30163016    VM& vm = globalObject->vm();
    30173017    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    3018     NativeCallFrameTracer tracer(vm, callFrame);
     3018    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30193019
    30203020    return unprofiledSub(globalObject, encodedOp1, encodedOp2);
     
    30253025    VM& vm = globalObject->vm();
    30263026    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    3027     NativeCallFrameTracer tracer(vm, callFrame);
     3027    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30283028
    30293029    ArithProfile* arithProfile = subIC->arithProfile();
     
    30443044    VM& vm = globalObject->vm();
    30453045    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    3046     NativeCallFrameTracer tracer(vm, callFrame);
     3046    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30473047
    30483048    ArithProfile* arithProfile = subIC->arithProfile();
     
    30553055    VM& vm = *vmPointer;
    30563056    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    3057     NativeCallFrameTracer tracer(vm, callFrame);
     3057    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30583058    vm.typeProfilerLog()->processLogEntries(vm, "Log Full, called from inside baseline JIT"_s);
    30593059}
     
    30633063    VM& vm = *vmPointer;
    30643064    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    3065     NativeCallFrameTracer tracer(vm, callFrame);
     3065    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30663066    RELEASE_ASSERT(vm.shadowChicken());
    30673067    vm.shadowChicken()->update(vm, callFrame);
     
    30723072    VM& vm = *vmPointer;
    30733073    CallFrame* callFrame = DECLARE_CALL_FRAME(vm);
    3074     NativeCallFrameTracer tracer(vm, callFrame);
     3074    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30753075    auto scope = DECLARE_THROW_SCOPE(vm);
    30763076    RELEASE_ASSERT(!!scope.exception());
Note: See TracChangeset for help on using the changeset viewer.