Changeset 166135 in webkit for trunk/Source/JavaScriptCore/ftl/FTLJSCall.cpp
- Timestamp:
- Mar 22, 2014, 9:34:38 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ftl/FTLJSCall.cpp
r163946 r166135 35 35 JSCall::JSCall() 36 36 : m_stackmapID(UINT_MAX) 37 , m_node(0) 37 , m_node(nullptr) 38 , m_callLinkInfo(nullptr) 38 39 , m_instructionOffset(UINT_MAX) 39 40 { … … 43 44 : m_stackmapID(stackmapID) 44 45 , m_node(node) 46 , m_callLinkInfo(nullptr) 45 47 , m_instructionOffset(0) 46 48 { … … 49 51 void JSCall::emit(CCallHelpers& jit) 50 52 { 53 m_callLinkInfo = jit.codeBlock()->addCallLinkInfo(); 54 51 55 CCallHelpers::Jump slowPath = jit.branchPtrWithPatch( 52 56 CCallHelpers::NotEqual, GPRInfo::regT0, m_targetToCheck, … … 66 70 67 71 slowPath.link(&jit); 72 73 jit.move(CCallHelpers::TrustedImmPtr(m_callLinkInfo), GPRInfo::regT2); 68 74 m_slowCall = jit.nearCall(); 69 75 … … 71 77 } 72 78 73 void JSCall::link(VM& vm, LinkBuffer& linkBuffer , CallLinkInfo& callInfo)79 void JSCall::link(VM& vm, LinkBuffer& linkBuffer) 74 80 { 75 81 ThunkGenerator generator = linkThunkGeneratorFor( … … 80 86 m_slowCall, FunctionPtr(vm.getCTIStub(generator).code().executableAddress())); 81 87 82 callInfo.isFTL = true;83 callInfo.callType = m_node->op() == DFG::Construct ? CallLinkInfo::Construct : CallLinkInfo::Call;84 callInfo.codeOrigin = m_node->origin.semantic;85 callInfo.callReturnLocation = linkBuffer.locationOfNearCall(m_slowCall);86 callInfo.hotPathBegin = linkBuffer.locationOf(m_targetToCheck);87 callInfo.hotPathOther = linkBuffer.locationOfNearCall(m_fastCall);88 callInfo.calleeGPR = GPRInfo::regT0;88 m_callLinkInfo->isFTL = true; 89 m_callLinkInfo->callType = m_node->op() == DFG::Construct ? CallLinkInfo::Construct : CallLinkInfo::Call; 90 m_callLinkInfo->codeOrigin = m_node->origin.semantic; 91 m_callLinkInfo->callReturnLocation = linkBuffer.locationOfNearCall(m_slowCall); 92 m_callLinkInfo->hotPathBegin = linkBuffer.locationOf(m_targetToCheck); 93 m_callLinkInfo->hotPathOther = linkBuffer.locationOfNearCall(m_fastCall); 94 m_callLinkInfo->calleeGPR = GPRInfo::regT0; 89 95 } 90 96
Note:
See TracChangeset
for help on using the changeset viewer.