Modified: branches/jsCStack/Source/_javascript_Core/ChangeLog (160267 => 160268)
--- branches/jsCStack/Source/_javascript_Core/ChangeLog 2013-12-07 05:46:22 UTC (rev 160267)
+++ branches/jsCStack/Source/_javascript_Core/ChangeLog 2013-12-07 06:41:33 UTC (rev 160268)
@@ -1,5 +1,22 @@
2013-12-06 Michael Saboff <msab...@apple.com>
+ CStack Branch: Fix Specialized Thunks to use function prologues and epilogues
+ https://bugs.webkit.org/show_bug.cgi?id=125381
+
+ Not yet reviewed.
+
+ Changed the entry / exit sequences to use emitFunctionPrologue() and
+ functionEpilogue().
+
+ * jit/SpecializedThunkJIT.h:
+ (JSC::SpecializedThunkJIT::SpecializedThunkJIT):
+ (JSC::SpecializedThunkJIT::returnJSValue):
+ (JSC::SpecializedThunkJIT::returnDouble):
+ (JSC::SpecializedThunkJIT::returnInt32):
+ (JSC::SpecializedThunkJIT::returnJSCell):
+
+2013-12-06 Michael Saboff <msab...@apple.com>
+
CStack Branch: Enable basic _javascript_ functionality in LLInt
https://bugs.webkit.org/show_bug.cgi?id=125378
Modified: branches/jsCStack/Source/_javascript_Core/jit/SpecializedThunkJIT.h (160267 => 160268)
--- branches/jsCStack/Source/_javascript_Core/jit/SpecializedThunkJIT.h 2013-12-07 05:46:22 UTC (rev 160267)
+++ branches/jsCStack/Source/_javascript_Core/jit/SpecializedThunkJIT.h 2013-12-07 06:41:33 UTC (rev 160268)
@@ -41,6 +41,7 @@
SpecializedThunkJIT(VM* vm, int expectedArgCount)
: JSInterfaceJIT(vm)
{
+ emitFunctionPrologue();
// Check that we have the expected number of arguments
m_failures.append(branch32(NotEqual, payloadFor(JSStack::ArgumentCount), TrustedImm32(expectedArgCount + 1)));
}
@@ -48,6 +49,7 @@
explicit SpecializedThunkJIT(VM* vm)
: JSInterfaceJIT(vm)
{
+ emitFunctionPrologue();
}
void loadDoubleArgument(int argument, FPRegisterID dst, RegisterID scratch)
@@ -97,7 +99,7 @@
{
if (src != regT0)
move(src, regT0);
- loadPtr(Address(callFrameRegister, CallFrame::callerFrameOffset()), callFrameRegister);
+ emitFunctionEpilogue();
ret();
}
#else
@@ -105,7 +107,7 @@
{
ASSERT_UNUSED(payload, payload == regT0);
ASSERT_UNUSED(tag, tag == regT1);
- loadPtr(Address(callFrameRegister, CallFrame::callerFrameOffset()), callFrameRegister);
+ emitFunctionEpilogue();
ret();
}
#endif
@@ -136,7 +138,7 @@
lowNonZero.link(this);
highNonZero.link(this);
#endif
- loadPtr(Address(callFrameRegister, CallFrame::callerFrameOffset()), callFrameRegister);
+ emitFunctionEpilogue();
ret();
}
@@ -145,7 +147,7 @@
if (src != regT0)
move(src, regT0);
tagReturnAsInt32();
- loadPtr(Address(callFrameRegister, CallFrame::callerFrameOffset()), callFrameRegister);
+ emitFunctionEpilogue();
ret();
}
@@ -154,7 +156,7 @@
if (src != regT0)
move(src, regT0);
tagReturnAsJSCell();
- loadPtr(Address(callFrameRegister, CallFrame::callerFrameOffset()), callFrameRegister);
+ emitFunctionEpilogue();
ret();
}