Changeset 209708 in webkit for trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
- Timestamp:
- Dec 12, 2016, 9:10:30 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
r209678 r209708 6145 6145 CallSiteIndex callSiteIndex = state->jitCode->common.addUniqueCallSiteIndex(codeOrigin); 6146 6146 6147 CallFrameShuffleData shuffleData;6148 shuffleData.numLocals = state->jitCode->common.frameRegisterCount;6149 shuffleData.callee = ValueRecovery::inGPR(GPRInfo::regT0, DataFormatJS);6150 6151 for (unsigned i = 0; i < numArgs; ++i)6152 shuffleData.args.append(params[1 + i].recoveryForJSValue());6153 6154 shuffleData.setupCalleeSaveRegisters(jit.codeBlock());6155 6156 CallLinkInfo* callLinkInfo = jit.codeBlock()->addCallLinkInfo();6157 6158 CCallHelpers::DataLabelPtr targetToCheck;6159 CCallHelpers::Jump slowPath = jit.branchPtrWithPatch(6160 CCallHelpers::NotEqual, GPRInfo::regT0, targetToCheck,6161 CCallHelpers::TrustedImmPtr(0));6162 6163 callLinkInfo->setFrameShuffleData(shuffleData);6164 CallFrameShuffler(jit, shuffleData).prepareForTailCall();6165 6166 CCallHelpers::Call fastCall = jit.nearTailCall();6167 6168 slowPath.link(&jit);6169 6170 6147 // Yes, this is really necessary. You could throw an exception in a host call on the 6171 6148 // slow path. That'll route us to lookupExceptionHandler(), which unwinds starting … … 6174 6151 CCallHelpers::TrustedImm32(callSiteIndex.bits()), 6175 6152 CCallHelpers::tagFor(VirtualRegister(CallFrameSlot::argumentCount))); 6153 6154 CallFrameShuffleData shuffleData; 6155 shuffleData.numLocals = state->jitCode->common.frameRegisterCount; 6156 shuffleData.callee = ValueRecovery::inGPR(GPRInfo::regT0, DataFormatJS); 6157 6158 for (unsigned i = 0; i < numArgs; ++i) 6159 shuffleData.args.append(params[1 + i].recoveryForJSValue()); 6160 6161 shuffleData.setupCalleeSaveRegisters(jit.codeBlock()); 6162 6163 CallLinkInfo* callLinkInfo = jit.codeBlock()->addCallLinkInfo(); 6164 6165 CCallHelpers::DataLabelPtr targetToCheck; 6166 CCallHelpers::Jump slowPath = jit.branchPtrWithPatch( 6167 CCallHelpers::NotEqual, GPRInfo::regT0, targetToCheck, 6168 CCallHelpers::TrustedImmPtr(0)); 6169 6170 callLinkInfo->setFrameShuffleData(shuffleData); 6171 CallFrameShuffler(jit, shuffleData).prepareForTailCall(); 6172 6173 CCallHelpers::Call fastCall = jit.nearTailCall(); 6174 6175 slowPath.link(&jit); 6176 6176 6177 6177 CallFrameShuffler slowPathShuffler(jit, shuffleData);
Note:
See TracChangeset
for help on using the changeset viewer.