[pypy-commit] pypy optimize-cond-call: fixes

arigo noreply at buildbot.pypy.org
Fri Sep 4 19:36:53 CEST 2015


Author: Armin Rigo <arigo at tunes.org>
Branch: optimize-cond-call
Changeset: r79442:2c8d7c4c0899
Date: 2015-09-04 19:08 +0200
http://bitbucket.org/pypy/pypy/changeset/2c8d7c4c0899/

Log:	fixes

diff --git a/rpython/jit/backend/arm/opassembler.py b/rpython/jit/backend/arm/opassembler.py
--- a/rpython/jit/backend/arm/opassembler.py
+++ b/rpython/jit/backend/arm/opassembler.py
@@ -1039,6 +1039,7 @@
         self.mc.CMP_ri(r.ip.value, 0)
         self.guard_success_cc = c.EQ
         self._emit_guard(op, arglocs, save_exc=True, is_guard_not_forced=True)
+        return fcond
 
     def emit_op_call_may_force(self, op, arglocs, regalloc, fcond):
         self._store_force_index(self._find_nearby_operation(+1))
diff --git a/rpython/jit/backend/arm/regalloc.py b/rpython/jit/backend/arm/regalloc.py
--- a/rpython/jit/backend/arm/regalloc.py
+++ b/rpython/jit/backend/arm/regalloc.py
@@ -647,7 +647,7 @@
                 assert loc.is_stack()
                 self.assembler.regalloc_mov(loc, r.lr)
                 loc = r.lr
-            self.mc.CMP_ri(loc.value, 0)
+            self.assembler.mc.CMP_ri(loc.value, 0)
             self.assembler.guard_success_cc = c.NE
 
     def _prepare_guard_cc(self, op, fcond):
@@ -1236,10 +1236,9 @@
         return self._prepare_call(op, save_all_regs=True, first_arg_index=2)
 
     def prepare_op_call_assembler(self, op, fcond):
-        locs = self.locs_for_call_assembler(op, guard_op)
+        locs = self.locs_for_call_assembler(op)
         tmploc = self.get_scratch_reg(INT, selected_reg=r.r0)
         resloc = self._call(op, locs + [tmploc], save_all_regs=True)
-        self.possibly_free_vars(guard_op.getfailargs())
         return locs + [resloc, tmploc]
 
     def _prepare_args_for_new_op(self, new_args):


More information about the pypy-commit mailing list