Changeset 39752 in webkit for trunk/JavaScriptCore/interpreter/Interpreter.cpp
- Timestamp:
- Jan 9, 2009, 10:47:37 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/interpreter/Interpreter.cpp
r39737 r39752 90 90 static const int preferredScriptCheckTimeInterval = 1000; 91 91 92 static ALWAYS_INLINE unsigned bytecodeOffsetForPC(C odeBlock* codeBlock, void* pc)92 static ALWAYS_INLINE unsigned bytecodeOffsetForPC(CallFrame* callFrame, CodeBlock* codeBlock, void* pc) 93 93 { 94 94 #if ENABLE(JIT) 95 return codeBlock->getBytecodeIndex( pc);95 return codeBlock->getBytecodeIndex(callFrame, pc); 96 96 #else 97 UNUSED_PARAM(callFrame); 97 98 return static_cast<Instruction*>(pc) - codeBlock->instructions().begin(); 98 99 #endif … … 773 774 774 775 codeBlock = callFrame->codeBlock(); 775 bytecodeOffset = bytecodeOffsetForPC(c odeBlock, returnPC);776 bytecodeOffset = bytecodeOffsetForPC(callFrame, codeBlock, returnPC); 776 777 return true; 777 778 } … … 2349 2350 } 2350 2351 DEFINE_OPCODE(op_get_global_var) { 2351 /* get_global_var dst(r) globalObject(c) index(n) nop(n) nop(n)2352 /* get_global_var dst(r) globalObject(c) index(n) 2352 2353 2353 2354 Gets the global var at global slot index and places it in register dst. 2354 2355 */ 2355 int dst = vPC[1].u.operand;2356 JSGlobalObject* scope = static_cast<JSGlobalObject*>( vPC[2].u.jsCell);2356 int dst = (++vPC)->u.operand; 2357 JSGlobalObject* scope = static_cast<JSGlobalObject*>((++vPC)->u.jsCell); 2357 2358 ASSERT(scope->isGlobalObject()); 2358 int index = vPC[3].u.operand;2359 int index = (++vPC)->u.operand; 2359 2360 2360 2361 callFrame[dst] = scope->registerAt(index); 2361 2362 vPC += OPCODE_LENGTH(op_resolve_global); 2362 ++vPC; 2363 2363 NEXT_INSTRUCTION(); 2364 2364 } … … 4033 4033 return; 4034 4034 4035 unsigned bytecodeOffset = bytecodeOffsetForPC(caller CodeBlock, callFrame->returnPC());4035 unsigned bytecodeOffset = bytecodeOffsetForPC(callerFrame, callerCodeBlock, callFrame->returnPC()); 4036 4036 lineNumber = callerCodeBlock->lineNumberForBytecodeOffset(callerFrame, bytecodeOffset - 1); 4037 4037 sourceID = callerCodeBlock->ownerNode()->sourceID(); … … 4740 4740 CallFrame* callFrame = ARG_callFrame; 4741 4741 CodeBlock* codeBlock = callFrame->codeBlock(); 4742 unsigned vPCIndex = codeBlock->getBytecodeIndex( STUB_RETURN_ADDRESS);4742 unsigned vPCIndex = codeBlock->getBytecodeIndex(callFrame, STUB_RETURN_ADDRESS); 4743 4743 ARG_globalData->exception = createInvalidParamError(callFrame, "instanceof", baseVal, vPCIndex, codeBlock); 4744 4744 VM_THROW_EXCEPTION(); … … 4943 4943 ASSERT(callType == CallTypeNone); 4944 4944 4945 CodeBlock* codeBlock = ARG_callFrame->codeBlock(); 4946 unsigned vPCIndex = codeBlock->getBytecodeIndex(STUB_RETURN_ADDRESS); 4945 CallFrame* callFrame = ARG_callFrame; 4946 CodeBlock* codeBlock = callFrame->codeBlock(); 4947 unsigned vPCIndex = codeBlock->getBytecodeIndex(callFrame, STUB_RETURN_ADDRESS); 4947 4948 ARG_globalData->exception = createNotAFunctionError(ARG_callFrame, funcVal, vPCIndex, codeBlock); 4948 4949 VM_THROW_EXCEPTION(); … … 5038 5039 5039 5040 CodeBlock* codeBlock = callFrame->codeBlock(); 5040 unsigned vPCIndex = codeBlock->getBytecodeIndex( STUB_RETURN_ADDRESS);5041 unsigned vPCIndex = codeBlock->getBytecodeIndex(callFrame, STUB_RETURN_ADDRESS); 5041 5042 ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock); 5042 5043 VM_THROW_EXCEPTION(); … … 5089 5090 5090 5091 CodeBlock* codeBlock = callFrame->codeBlock(); 5091 unsigned vPCIndex = codeBlock->getBytecodeIndex( STUB_RETURN_ADDRESS);5092 unsigned vPCIndex = codeBlock->getBytecodeIndex(callFrame, STUB_RETURN_ADDRESS); 5092 5093 ARG_globalData->exception = createNotAConstructorError(callFrame, constrVal, vPCIndex, codeBlock); 5093 5094 VM_THROW_EXCEPTION(); … … 5167 5168 5168 5169 CodeBlock* codeBlock = callFrame->codeBlock(); 5169 unsigned vPCIndex = codeBlock->getBytecodeIndex( STUB_RETURN_ADDRESS);5170 unsigned vPCIndex = codeBlock->getBytecodeIndex(callFrame, STUB_RETURN_ADDRESS); 5170 5171 ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock); 5171 5172 VM_THROW_EXCEPTION_2(); … … 5335 5336 5336 5337 CodeBlock* codeBlock = callFrame->codeBlock(); 5337 unsigned vPCIndex = codeBlock->getBytecodeIndex( STUB_RETURN_ADDRESS);5338 unsigned vPCIndex = codeBlock->getBytecodeIndex(callFrame, STUB_RETURN_ADDRESS); 5338 5339 ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock); 5339 5340 VM_THROW_EXCEPTION(); … … 5367 5368 } 5368 5369 5369 unsigned vPCIndex = ARG_callFrame->codeBlock()->getBytecodeIndex(STUB_RETURN_ADDRESS);5370 unsigned vPCIndex = callFrame->codeBlock()->getBytecodeIndex(callFrame, STUB_RETURN_ADDRESS); 5370 5371 ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, callFrame->codeBlock()); 5371 5372 VM_THROW_EXCEPTION(); … … 5573 5574 5574 5575 CodeBlock* codeBlock = callFrame->codeBlock(); 5575 unsigned vPCIndex = codeBlock->getBytecodeIndex( STUB_RETURN_ADDRESS);5576 unsigned vPCIndex = codeBlock->getBytecodeIndex(callFrame, STUB_RETURN_ADDRESS); 5576 5577 ARG_globalData->exception = createUndefinedVariableError(callFrame, ident, vPCIndex, codeBlock); 5577 5578 VM_THROW_EXCEPTION_2(); … … 5729 5730 CodeBlock* codeBlock = callFrame->codeBlock(); 5730 5731 5731 unsigned vPCIndex = codeBlock->getBytecodeIndex( STUB_RETURN_ADDRESS);5732 unsigned vPCIndex = codeBlock->getBytecodeIndex(callFrame, STUB_RETURN_ADDRESS); 5732 5733 5733 5734 JSValuePtr exceptionValue = ARG_src1; … … 5883 5884 CallFrame* callFrame = ARG_callFrame; 5884 5885 CodeBlock* codeBlock = callFrame->codeBlock(); 5885 unsigned vPCIndex = codeBlock->getBytecodeIndex( STUB_RETURN_ADDRESS);5886 unsigned vPCIndex = codeBlock->getBytecodeIndex(callFrame, STUB_RETURN_ADDRESS); 5886 5887 ARG_globalData->exception = createInvalidParamError(callFrame, "in", baseVal, vPCIndex, codeBlock); 5887 5888 VM_THROW_EXCEPTION(); … … 6074 6075 JSGlobalData* globalData = ARG_globalData; 6075 6076 6076 unsigned vPCIndex = codeBlock->getBytecodeIndex( globalData->exceptionLocation);6077 unsigned vPCIndex = codeBlock->getBytecodeIndex(callFrame, globalData->exceptionLocation); 6077 6078 6078 6079 JSValuePtr exceptionValue = globalData->exception;
Note:
See TracChangeset
for help on using the changeset viewer.