Author: Richard Plangger <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit