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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit