Changeset 37324 in webkit for trunk/JavaScriptCore/VM/CTI.cpp
- Timestamp:
- Oct 5, 2008, 11:00:58 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/CTI.cpp
r37297 r37324 1171 1171 break; 1172 1172 } 1173 case op_tear_off_activation: { 1174 emitCall(i, Machine::cti_op_tear_off_activation); 1175 i += 1; 1176 break; 1177 } 1178 case op_tear_off_arguments: { 1179 emitCall(i, Machine::cti_op_tear_off_arguments); 1180 i += 1; 1181 break; 1182 } 1173 1183 case op_ret: { 1174 // If there is an activation or an 'arguments' object, we tear it1175 // off by jumping to the hook below.1176 m_jit.movl_mr(RegisterFile::OptionalCalleeActivation * static_cast<int>(sizeof(Register)), X86::edi, X86::eax);1177 m_jit.orl_mr(RegisterFile::OptionalCalleeArguments * static_cast<int>(sizeof(Register)), X86::edi, X86::eax);1178 m_jit.cmpl_i32r(0, X86::eax);1179 X86Assembler::JmpSrc activation = m_jit.emitUnlinkedJne();1180 X86Assembler::JmpDst activated = m_jit.label();1181 1182 1184 // Check for a profiler - if there is one, jump to the hook below. 1183 1185 emitGetCTIParam(CTI_ARGS_profilerReference, X86::eax); … … 1203 1205 m_jit.pushl_r(X86::edx); 1204 1206 m_jit.ret(); 1205 1206 // Activation and 'arguments' hook1207 m_jit.link(activation, m_jit.label());1208 emitCall(i, Machine::cti_op_ret_activation_arguments);1209 m_jit.link(m_jit.emitUnlinkedJmp(), activated);1210 1207 1211 1208 // Profiling hook
Note:
See TracChangeset
for help on using the changeset viewer.