Changeset 179851 in webkit
- Timestamp:
- Feb 9, 2015, 3:39:57 PM (12 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 3 edited
-
ChangeLog (modified) (1 diff)
-
dfg/DFGSpeculativeJIT32_64.cpp (modified) (3 diffs)
-
dfg/DFGSpeculativeJIT64.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r179840 r179851 1 2015-02-09 Filip Pizlo <fpizlo@apple.com> 2 3 DFG call codegen should resolve the callee operand as late as possible 4 https://bugs.webkit.org/show_bug.cgi?id=141398 5 6 Reviewed by Mark Lam. 7 8 This is mostly a benign restructuring to help with the implementation of 9 https://bugs.webkit.org/show_bug.cgi?id=141332. 10 11 * dfg/DFGSpeculativeJIT32_64.cpp: 12 (JSC::DFG::SpeculativeJIT::emitCall): 13 * dfg/DFGSpeculativeJIT64.cpp: 14 (JSC::DFG::SpeculativeJIT::emitCall): 15 1 16 2015-02-08 Filip Pizlo <fpizlo@apple.com> 2 17 -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp
r179538 r179851 650 650 651 651 Edge calleeEdge = m_jit.graph().m_varArgChildren[node->firstChild()]; 652 JSValueOperand callee(this, calleeEdge);653 GPRReg calleeTagGPR = callee.tagGPR();654 GPRReg calleePayloadGPR = callee.payloadGPR();655 use(calleeEdge);656 652 657 653 // The call instruction's first child is either the function (normal call) or the … … 662 658 663 659 m_jit.store32(MacroAssembler::TrustedImm32(numArgs), calleeFramePayloadSlot(JSStack::ArgumentCount)); 664 m_jit.store32(calleePayloadGPR, calleeFramePayloadSlot(JSStack::Callee));665 m_jit.store32(calleeTagGPR, calleeFrameTagSlot(JSStack::Callee));666 660 667 661 for (int i = 0; i < numPassedArgs; i++) { … … 675 669 m_jit.store32(argPayloadGPR, calleeArgumentPayloadSlot(i + dummyThisArgument)); 676 670 } 671 672 JSValueOperand callee(this, calleeEdge); 673 GPRReg calleeTagGPR = callee.tagGPR(); 674 GPRReg calleePayloadGPR = callee.payloadGPR(); 675 use(calleeEdge); 676 m_jit.store32(calleePayloadGPR, calleeFramePayloadSlot(JSStack::Callee)); 677 m_jit.store32(calleeTagGPR, calleeFrameTagSlot(JSStack::Callee)); 677 678 678 679 flushRegisters(); -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp
r179538 r179851 636 636 637 637 Edge calleeEdge = m_jit.graph().m_varArgChildren[node->firstChild()]; 638 JSValueOperand callee(this, calleeEdge);639 GPRReg calleeGPR = callee.gpr();640 use(calleeEdge);641 642 638 // The call instruction's first child is the function; the subsequent children are the 643 639 // arguments. … … 647 643 648 644 m_jit.store32(MacroAssembler::TrustedImm32(numArgs), calleeFramePayloadSlot(JSStack::ArgumentCount)); 649 m_jit.store64(calleeGPR, calleeFrameSlot(JSStack::Callee));650 645 651 646 for (int i = 0; i < numPassedArgs; i++) { … … 658 653 } 659 654 655 JSValueOperand callee(this, calleeEdge); 656 GPRReg calleeGPR = callee.gpr(); 657 use(calleeEdge); 658 m_jit.store64(calleeGPR, calleeFrameSlot(JSStack::Callee)); 659 660 660 flushRegisters(); 661 661
Note:
See TracChangeset
for help on using the changeset viewer.