Modified: branches/jsCStack/Source/_javascript_Core/ChangeLog (160783 => 160784)
--- branches/jsCStack/Source/_javascript_Core/ChangeLog 2013-12-18 19:46:24 UTC (rev 160783)
+++ branches/jsCStack/Source/_javascript_Core/ChangeLog 2013-12-18 19:54:22 UTC (rev 160784)
@@ -1,5 +1,19 @@
2013-12-18 Michael Saboff <[email protected]>
+ CStack Branch: getHostCallReturnValue shouldn't pop the callFrame
+ https://bugs.webkit.org/show_bug.cgi?id=125931
+
+ Reviewed by Geoffrey Garen.
+
+ Since getHostCallReturnValue() is called after a call to a slow path
+ function and the return from the slow patch pops the call frame there is
+ no need for getHostCallReturnValue() to pop the frame.
+ Removed the popping of the call frame getHostCallReturnValue() for all CPU platforms.
+
+ * jit/JITOperations.cpp:
+
+2013-12-18 Michael Saboff <[email protected]>
+
CStack Branch: Exceptions in LLIntSlowPaths shouldn't pop call frame
https://bugs.webkit.org/show_bug.cgi?id=125932
Modified: branches/jsCStack/Source/_javascript_Core/jit/JITOperations.cpp (160783 => 160784)
--- branches/jsCStack/Source/_javascript_Core/jit/JITOperations.cpp 2013-12-18 19:46:24 UTC (rev 160783)
+++ branches/jsCStack/Source/_javascript_Core/jit/JITOperations.cpp 2013-12-18 19:54:22 UTC (rev 160784)
@@ -1730,7 +1730,6 @@
".globl " SYMBOL_STRING(getHostCallReturnValue) "\n"
HIDE_SYMBOL(getHostCallReturnValue) "\n"
SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
- "mov 0(%rbp), %rbp\n" // CallerFrameAndPC::callerFrame
"mov %rbp, %rdi\n"
"jmp " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
);
@@ -1741,7 +1740,6 @@
".globl " SYMBOL_STRING(getHostCallReturnValue) "\n"
HIDE_SYMBOL(getHostCallReturnValue) "\n"
SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
- "mov 0(%ebp), %ebp\n" // CallerFrameAndPC::callerFrame
"mov %ebp, 4(%esp)\n"
"jmp " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
);
@@ -1755,7 +1753,6 @@
".thumb" "\n"
".thumb_func " THUMB_FUNC_PARAM(getHostCallReturnValue) "\n"
SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
- "ldr r7, [r7, #0]" "\n" // CallerFrameAndPC::callerFrame
"mov r0, r7" "\n"
"b " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
);
@@ -1767,7 +1764,6 @@
HIDE_SYMBOL(getHostCallReturnValue) "\n"
INLINE_ARM_FUNCTION(getHostCallReturnValue)
SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
- "ldr r11, [r11, #0]" "\n" // CallerFrameAndPC::callerFrame
"mov r0, r11" "\n"
"b " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
);
@@ -1779,7 +1775,6 @@
".globl " SYMBOL_STRING(getHostCallReturnValue) "\n"
HIDE_SYMBOL(getHostCallReturnValue) "\n"
SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
- "ldur x29, [x29, #0]" "\n"
"mov x0, x29" "\n"
"b " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
);
@@ -1791,7 +1786,6 @@
HIDE_SYMBOL(getHostCallReturnValue) "\n"
SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
LOAD_FUNCTION_TO_T9(getHostCallReturnValueWithExecState)
- "lw $fp, 0($fp)" "\n" // CallerFrameAndPC::callerFrame
"move $a0, $fp" "\n"
"b " LOCAL_REFERENCE(getHostCallReturnValueWithExecState) "\n"
);
@@ -1802,7 +1796,6 @@
".globl " SYMBOL_STRING(getHostCallReturnValue) "\n"
HIDE_SYMBOL(getHostCallReturnValue) "\n"
SYMBOL_STRING(getHostCallReturnValue) ":" "\n"
- "mov.l @r14, r14" "\n" // CallerFrameAndPC::callerFrame
"mov r14, r4" "\n"
"mov.l 2f, " SH4_SCRATCH_REGISTER "\n"
"braf " SH4_SCRATCH_REGISTER "\n"
@@ -1815,7 +1808,6 @@
extern "C" {
__declspec(naked) EncodedJSValue HOST_CALL_RETURN_VALUE_OPTION getHostCallReturnValue()
{
- __asm mov ebp, [ebp + 0]; // CallerFrameAndPC::callerFrame
__asm mov [esp + 4], ebp;
__asm jmp getHostCallReturnValueWithExecState
}