Title: [195734] trunk/Source/_javascript_Core
- Revision
- 195734
- Author
- [email protected]
- Date
- 2016-01-28 00:52:44 -0800 (Thu, 28 Jan 2016)
Log Message
[JSC] B3 Tail Call with Varargs do not restore callee saved registers
https://bugs.webkit.org/show_bug.cgi?id=153579
Patch by Benjamin Poulain <[email protected]> on 2016-01-28
Reviewed by Michael Saboff.
We were trashing the callee saved registers in Tail Calls.
I just copied the code from DFG to fix this :)
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs):
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (195733 => 195734)
--- trunk/Source/_javascript_Core/ChangeLog 2016-01-28 06:46:43 UTC (rev 195733)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-01-28 08:52:44 UTC (rev 195734)
@@ -1,3 +1,17 @@
+2016-01-28 Benjamin Poulain <[email protected]>
+
+ [JSC] B3 Tail Call with Varargs do not restore callee saved registers
+ https://bugs.webkit.org/show_bug.cgi?id=153579
+
+ Reviewed by Michael Saboff.
+
+ We were trashing the callee saved registers in Tail Calls.
+
+ I just copied the code from DFG to fix this :)
+
+ * ftl/FTLLowerDFGToLLVM.cpp:
+ (JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs):
+
2016-01-27 Filip Pizlo <[email protected]>
B3 IntRange analysis should know more about shifting
Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (195733 => 195734)
--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2016-01-28 06:46:43 UTC (rev 195733)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2016-01-28 08:52:44 UTC (rev 195734)
@@ -5487,6 +5487,7 @@
CCallHelpers::Jump done;
if (isTailCall) {
+ jit.emitRestoreCalleeSaves();
jit.prepareForTailCallSlow();
fastCall = jit.nearTailCall();
} else {
@@ -5495,7 +5496,9 @@
}
slowPath.link(&jit);
-
+
+ if (isTailCall)
+ jit.emitRestoreCalleeSaves();
jit.move(CCallHelpers::TrustedImmPtr(callLinkInfo), GPRInfo::regT2);
CCallHelpers::Call slowCall = jit.nearCall();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes