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