Changeset 36997 in webkit for trunk/JavaScriptCore/VM/CTI.cpp
- Timestamp:
- Sep 27, 2008, 10:19:39 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/CTI.cpp
r36976 r36997 538 538 emitCall(i, ((type == OpConstruct) ? Machine::cti_op_construct_JSConstruct : Machine::cti_op_call_JSFunction)); 539 539 540 // Initialize the parts of the call frame that have not already been initialized.541 emitGetCTIParam(CTI_ARGS_r, X86::edi);542 m_jit.movl_i32m(reinterpret_cast<unsigned>(m_codeBlock), RegisterFile::CallerCodeBlock * static_cast<int>(sizeof(Register)), X86::edi);543 m_jit.movl_i32m(dst, RegisterFile::ReturnValueRegister * static_cast<int>(sizeof(Register)), X86::edi);544 545 540 // Check the ctiCode has been generated - if not, this is handled in a slow case. 546 541 m_jit.testl_rr(X86::eax, X86::eax); … … 548 543 emitCall(i, X86::eax); 549 544 550 // Restore CTI_ARGS_codeBlock. In the interpreter, op_ret does this.551 emitPutCTIParam(m_codeBlock, CTI_ARGS_codeBlock);552 553 545 X86Assembler::JmpDst end = m_jit.label(); 554 546 m_jit.link(wasNotJSFunction, end); … … 2489 2481 // Instead of checking for 0 we could initialize the CodeBlock::ctiCode to point to a trampoline that would trigger the translation. 2490 2482 2491 // Restore CTI_ARGS_codeBlock. In the interpreter, op_ret does this.2492 emitPutCTIParam(m_codeBlock, CTI_ARGS_codeBlock);2493 2494 2483 // Put the return value in dst. In the interpreter, op_ret does this. 2495 2484 emitPutResult(instruction[i + 1].u.operand);
Note:
See TracChangeset
for help on using the changeset viewer.