Author: Richard Plangger <planri...@gmail.com> Branch: Changeset: r89040:d9a6afa06b18 Date: 2016-12-13 12:52 +0100 http://bitbucket.org/pypy/pypy/changeset/d9a6afa06b18/
Log: negate in prepare_cond_call, moved from the assembler to the regalloc diff --git a/rpython/jit/backend/zarch/assembler.py b/rpython/jit/backend/zarch/assembler.py --- a/rpython/jit/backend/zarch/assembler.py +++ b/rpython/jit/backend/zarch/assembler.py @@ -396,6 +396,7 @@ # * gcmap is pushed # * the old value of these regs must already be stored in the jitframe # * on exit, all registers are restored from the jitframe + # * the result of the call is moved to register r1 mc = InstrBuilder() self.mc = mc @@ -426,9 +427,10 @@ # Finish self._reload_frame_if_necessary(mc) - mc.LGR(r.SCRATCH2, r.r2) + self.pop_gcmap(mc) # cancel the push_gcmap(store=True) in the caller - self.pop_gcmap(mc) # cancel the push_gcmap(store=True) in the caller + mc.LGR(r.SCRATCH2, r.RES) + self._pop_core_regs_from_jitframe(mc, saved_regs) if supports_floats: self._pop_fp_regs_from_jitframe(mc) diff --git a/rpython/jit/backend/zarch/regalloc.py b/rpython/jit/backend/zarch/regalloc.py --- a/rpython/jit/backend/zarch/regalloc.py +++ b/rpython/jit/backend/zarch/regalloc.py @@ -1108,13 +1108,15 @@ def prepare_cond_call(self, op): self.load_condition_into_cc(op.getarg(0)) locs = [None] + self.assembler.guard_success_cc = c.negate( + self.assembler.guard_success_cc) # support between 0 and 4 integer arguments assert 2 <= op.numargs() <= 2 + 4 for i in range(1, op.numargs()): loc = self.loc(op.getarg(i)) assert loc.type != FLOAT locs.append(loc) - return locs + return locs # [None, function, arg0, ..., argn] def prepare_cond_call_value_i(self, op): x = self.ensure_reg(op.getarg(0)) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit