Author: edelsohn Branch: ppc-backend-2 Changeset: r55421:3eab9cc91b12 Date: 2012-06-05 20:57 -0400 http://bitbucket.org/pypy/pypy/changeset/3eab9cc91b12/
Log: Correct computation of index into fp_registers. Fix offset for saving float managed registers. diff --git a/pypy/jit/backend/ppc/ppc_assembler.py b/pypy/jit/backend/ppc/ppc_assembler.py --- a/pypy/jit/backend/ppc/ppc_assembler.py +++ b/pypy/jit/backend/ppc/ppc_assembler.py @@ -241,7 +241,8 @@ break code >>= 2 if kind == self.DESCR_FLOAT: - fvalue = r.get_managed_fpreg_index(code) + reg_index = r.get_managed_fpreg_index(code) + fvalue = fp_registers[reg_index] else: reg_index = r.get_managed_reg_index(code) value = registers[reg_index] @@ -575,9 +576,10 @@ for i in range(len(r.MANAGED_REGS)): reg = r.MANAGED_REGS[i] mc.store(reg.value, r.SPP.value, i * WORD) + FLOAT_OFFSET = len(r.MANAGED_REGS) for i in range(len(r.MANAGED_FP_REGS)): fpreg = r.MANAGED_FP_REGS[i] - mc.stfd(fpreg.value, r.SPP.value, i * WORD + len(r.MANAGED_REGS)) + mc.stfd(fpreg.value, r.SPP.value, (i + FLOAT_OFFSET) * WORD) def gen_bootstrap_code(self, loophead, spilling_area): self._insert_stack_check() _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit