Air::handleCalleeSaves shouldn't save/restore the frame pointer
authorfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 30 Oct 2015 01:46:10 +0000 (01:46 +0000)
committerfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 30 Oct 2015 01:46:10 +0000 (01:46 +0000)
https://bugs.webkit.org/show_bug.cgi?id=150688

Reviewed by Michael Saboff.

We save/restore the FP inside Air::generate().

* b3/air/AirHandleCalleeSaves.cpp:
(JSC::B3::Air::handleCalleeSaves):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@191771 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/b3/air/AirHandleCalleeSaves.cpp

index af6502a..1b08ad8 100644 (file)
@@ -1,3 +1,15 @@
+2015-10-29  Filip Pizlo  <fpizlo@apple.com>
+
+        Air::handleCalleeSaves shouldn't save/restore the frame pointer
+        https://bugs.webkit.org/show_bug.cgi?id=150688
+
+        Reviewed by Michael Saboff.
+
+        We save/restore the FP inside Air::generate().
+
+        * b3/air/AirHandleCalleeSaves.cpp:
+        (JSC::B3::Air::handleCalleeSaves):
+
 2015-10-29  Michael Saboff  <msaboff@apple.com>
 
         Crash making a tail call from a getter to a host function
index d1f8fce..241e866 100644 (file)
@@ -52,6 +52,7 @@ void handleCalleeSaves(Code& code)
 
     // Now we filter to really get the callee saves.
     usedCalleeSaves.filter(RegisterSet::calleeSaveRegisters());
+    usedCalleeSaves.exclude(RegisterSet::stackRegisters()); // We don't need to save FP here.
 
     if (!usedCalleeSaves.numberOfSetRegisters())
         return;