Author: Armin Rigo <[email protected]>
Branch: optresult-unroll
Changeset: r79535:deb4122687d2
Date: 2015-09-08 13:52 +0200
http://bitbucket.org/pypy/pypy/changeset/deb4122687d2/

Log:    arm: fixes. now test_runner.py and test_zrpy_gc_direct.py both pass

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
@@ -29,6 +29,7 @@
 from rpython.rlib.objectmodel import we_are_translated
 from rpython.rtyper.lltypesystem import rstr, rffi, lltype
 from rpython.rtyper.annlowlevel import cast_instance_to_gcref
+from rpython.rtyper import rclass
 from rpython.jit.backend.arm import callbuilder
 from rpython.rlib.rarithmetic import r_uint
 
@@ -334,7 +335,7 @@
                                  base_type_info + sizeof_ti + offset2)
             if shift_by > 0:
                 self.mc.LSL_ri(r.ip.value, r.ip.value, shift_by)
-            self.mc.LDR_rr(r.ip.value, r.ip.value, l.lr.value)
+            self.mc.LDR_rr(r.ip.value, r.ip.value, r.lr.value)
         # get the two bounds to check against
         vtable_ptr = loc_check_against_class.getint()
         vtable_ptr = rffi.cast(rclass.CLASSTYPE, vtable_ptr)
@@ -352,7 +353,8 @@
             self.mc.CMP_rr(r.ip.value, r.lr.value)
         # the guard passes if we get a result of "below or equal"
         self.guard_success_cc = c.LS
-        self.implement_guard(guard_token)
+        self._emit_guard(op, arglocs[2:], save_exc=False)
+        return fcond
 
     def emit_op_guard_not_invalidated(self, op, locs, regalloc, fcond):
         return self._emit_guard(op, locs, save_exc=False,
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to