updateTopCallframe in the baseline JIT doesn't provide enough information to the stubs
https://bugs.webkit.org/show_bug.cgi?id=78145
Reviewed by Gavin Barraclough.
Fix the updateTopCallFrame helper to store additional information
that becomes necessary when we are trying to provide more stack
frame information.
* interpreter/CallFrame.h:
(JSC::ExecState::bytecodeOffsetForBaselineJIT):
(ExecState):
* jit/JIT.cpp:
(JSC::JIT::privateCompile):
* jit/JIT.h:
(JSC::JIT::compileGetByIdProto):
(JSC::JIT::compileGetByIdSelfList):
(JSC::JIT::compileGetByIdProtoList):
(JSC::JIT::compileGetByIdChainList):
(JSC::JIT::compileGetByIdChain):
(JSC::JIT::compilePutByIdTransition):
(JIT):
* jit/JITInlineMethods.h:
(JSC::JIT::updateTopCallFrame):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@107126 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/jit/JITInlineMethods.h b/Source/JavaScriptCore/jit/JITInlineMethods.h
index 01545fb..dfcfbd4 100644
--- a/Source/JavaScriptCore/jit/JITInlineMethods.h
+++ b/Source/JavaScriptCore/jit/JITInlineMethods.h
@@ -264,6 +264,9 @@
ALWAYS_INLINE void JIT::updateTopCallFrame()
{
+ ASSERT(static_cast<int>(m_bytecodeOffset) >= 0);
+ if (m_bytecodeOffset)
+ store32(Imm32(m_bytecodeOffset + 1), intTagFor(RegisterFile::ArgumentCount));
storePtr(callFrameRegister, &m_globalData->topCallFrame);
}