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