Ignore:
Timestamp:
Dec 16, 2008, 6:34:59 PM (16 years ago)
Author:
[email protected]
Message:

2008-12-16 Sam Weinig <[email protected]>

Reviewed by Gavin Barraclough.

Fix for https://bugs.webkit.org/show_bug.cgi?id=22837
Remove dependency on the bytecode Instruction buffer in Interpreter::cti_op_call_NotJSFunction
Part of <rdar://problem/6428342>

  • interpreter/CallFrame.h: Added comment regarding returnPC storing a void*.
  • interpreter/Interpreter.cpp: (JSC::bytecodeOffsetForPC): We no longer have any cases of the PC being in the instruction stream for JIT, so we can remove the check. (JSC::Interpreter::cti_op_call_NotJSFunction): Use the CTI_RETURN_ADDRESS as the call frame returnPC as it is only necessary for looking up when throwing an exception.
  • interpreter/RegisterFile.h: (JSC::RegisterFile::): Added comment regarding returnPC storing a void*.
  • jit/JIT.h: Remove ARG_instr4.
  • jit/JITCall.cpp: (JSC::JIT::compileOpCallSetupArgs): Don't pass the instruction pointer.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/interpreter/CallFrame.h

    r38528 r39351  
    125125            setScopeChain(scopeChain);
    126126            setCallerFrame(callerFrame);
    127             this[RegisterFile::ReturnPC] = vPC;
     127            this[RegisterFile::ReturnPC] = vPC; // This is either an Instruction* or a pointer into JIT generated code stored as an Instruction*.
    128128            this[RegisterFile::ReturnValueRegister] = returnValueRegister;
    129129            setArgumentCount(argc); // original argument count (for the sake of the "arguments" object)
Note: See TracChangeset for help on using the changeset viewer.