Changeset 214069 in webkit for trunk/Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp
- Timestamp:
- Mar 16, 2017, 2:19:23 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp
r208720 r214069 395 395 } 396 396 397 jit.load32(CCallHelpers::payloadFor(CallFrameSlot::argumentCount), GPRInfo::regT2);398 399 // Let's say that the FTL function had failed its arity check. In that case, the stack will400 // contain some extra stuff.401 //402 // We compute the padded stack space:403 //404 // paddedStackSpace = roundUp(codeBlock->numParameters - regT2 + 1)405 //406 // The stack will have regT2 + CallFrameHeaderSize stuff.407 // We want to make the stack look like this, from higher addresses down:408 //409 // - argument padding410 // - actual arguments411 // - call frame header412 413 // This code assumes that we're dealing with FunctionCode.414 RELEASE_ASSERT(codeBlock->codeType() == FunctionCode);415 416 jit.add32(417 MacroAssembler::TrustedImm32(-codeBlock->numParameters()), GPRInfo::regT2,418 GPRInfo::regT3);419 MacroAssembler::Jump arityIntact = jit.branch32(420 MacroAssembler::GreaterThanOrEqual, GPRInfo::regT3, MacroAssembler::TrustedImm32(0));421 jit.neg32(GPRInfo::regT3);422 jit.add32(MacroAssembler::TrustedImm32(1 + stackAlignmentRegisters() - 1), GPRInfo::regT3);423 jit.and32(MacroAssembler::TrustedImm32(-stackAlignmentRegisters()), GPRInfo::regT3);424 jit.add32(GPRInfo::regT3, GPRInfo::regT2);425 arityIntact.link(&jit);426 427 397 CodeBlock* baselineCodeBlock = jit.baselineCodeBlockFor(exit.m_codeOrigin); 428 398
Note:
See TracChangeset
for help on using the changeset viewer.