[pypy-commit] pypy ppc-backend-2: Do not trample float result register when saving and restoring volatiles.
edelsohn
noreply at buildbot.pypy.org
Fri Jun 8 04:59:53 CEST 2012
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)
More information about the pypy-commit
mailing list