Commit 7b40089b authored by commit-queue@webkit.org's avatar commit-queue@webkit.org
Browse files

Update topCallFrame when calling host functions in the JIT

https://bugs.webkit.org/show_bug.cgi?id=67010

Patch by Juan C. Montemayor <jmont@apple.com> on 2011-08-26
Reviewed by Oliver Hunt.

The topCallFrame is not being updated when a host function is
called by the JIT. This causes problems when trying to create a
stack trace (https://bugs.webkit.org/show_bug.cgi?id=66994).

* jit/JITOpcodes.cpp:
(JSC::JIT::privateCompileCTIMachineTrampolines):
(JSC::JIT::privateCompileCTINativeCall):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@93915 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 5815e50c
2011-08-26 Juan C. Montemayor <jmont@apple.com>
Update topCallFrame when calling host functions in the JIT
https://bugs.webkit.org/show_bug.cgi?id=67010
Reviewed by Oliver Hunt.
The topCallFrame is not being updated when a host function is
called by the JIT. This causes problems when trying to create a
stack trace (https://bugs.webkit.org/show_bug.cgi?id=66994).
* jit/JITOpcodes.cpp:
(JSC::JIT::privateCompileCTIMachineTrampolines):
(JSC::JIT::privateCompileCTINativeCall):
2011-08-26 Alexey Proskuryakov <ap@apple.com>
 
Get rid of frame life support timer
......
......@@ -140,6 +140,7 @@ void JIT::privateCompileCTIMachineTrampolines(RefPtr<ExecutablePool>* executable
move(TrustedImmPtr(&globalData->exceptionLocation), regT2);
storePtr(regT1, regT2);
poke(callFrameRegister, 1 + OBJECT_OFFSETOF(struct JITStackFrame, callFrame) / sizeof(void*));
storePtr(callFrameRegister, &m_globalData->topCallFrame);
poke(TrustedImmPtr(FunctionPtr(ctiVMThrowTrampoline).value()));
ret();
......@@ -280,6 +281,7 @@ JIT::Label JIT::privateCompileCTINativeCall(JSGlobalData* globalData, bool isCon
storePtr(regT1, regT2);
poke(callFrameRegister, OBJECT_OFFSETOF(struct JITStackFrame, callFrame) / sizeof(void*));
storePtr(callFrameRegister, &m_globalData->topCallFrame);
// Set the return address.
move(TrustedImmPtr(FunctionPtr(ctiVMThrowTrampoline).value()), regT1);
restoreReturnAddressBeforeReturn(regT1);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment