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

Reply via email to