Author: edelsohn
Branch: ppc-backend-2
Changeset: r55491:cdd6d603200b
Date: 2012-06-07 22:59 -0400
http://bitbucket.org/pypy/pypy/changeset/cdd6d603200b/

Log:    Do not trample float result register when saving and restoring
        volatiles.

diff --git a/pypy/jit/backend/ppc/helper/assembler.py 
b/pypy/jit/backend/ppc/helper/assembler.py
--- a/pypy/jit/backend/ppc/helper/assembler.py
+++ b/pypy/jit/backend/ppc/helper/assembler.py
@@ -92,6 +92,8 @@
             self.mc.store(reg.value, r.SPP.value, i * WORD)
         if self.save_FLOAT:
             for i, reg in enumerate(r.VOLATILES_FLOAT):
+                if not self.save_RES and reg is r.f1:
+                    continue
                 self.mc.stfd(reg.value, r.SPP.value,
                              (i + self.FLOAT_OFFSET) * WORD)
 
@@ -104,5 +106,7 @@
             self.mc.load(reg.value, r.SPP.value, i * WORD)
         if self.save_FLOAT:
             for i, reg in enumerate(r.VOLATILES_FLOAT):
+                if not self.save_RES and reg is r.f1:
+                    continue
                 self.mc.lfd(reg.value, r.SPP.value,
                              (i + self.FLOAT_OFFSET) * WORD)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to