Author: David Schneider <[email protected]>
Branch: arm-backend-2
Changeset: r45671:5690763bfdba
Date: 2011-07-16 17:11 +0200
http://bitbucket.org/pypy/pypy/changeset/5690763bfdba/
Log: add a check for the size of the value stored in size
diff --git a/pypy/jit/backend/arm/assembler.py
b/pypy/jit/backend/arm/assembler.py
--- a/pypy/jit/backend/arm/assembler.py
+++ b/pypy/jit/backend/arm/assembler.py
@@ -988,9 +988,13 @@
self.mc.gen_load_int(r.r0.value, nursery_free_adr)
self.mc.LDR_ri(r.r0.value, r.r0.value)
- self.mc.ADD_ri(r.r1.value, r.r0.value, size)
+ if _check_imm_arg(ConstInt(size)):
+ self.mc.ADD_ri(r.r1.value, r.r0.value, size)
+ else:
+ self.mc.gen_load_int(r.r1.value, size)
+ self.mc.ADD_rr(r.r1.value, r.r0.value, r.r1.value)
- # XXX maybe use an offset from the valeu nursery_free_addr
+ # XXX maybe use an offset from the value nursery_free_addr
self.mc.gen_load_int(r.ip.value, nursery_top_adr)
self.mc.LDR_ri(r.ip.value, r.ip.value)
diff --git a/pypy/jit/backend/arm/helper/regalloc.py
b/pypy/jit/backend/arm/helper/regalloc.py
--- a/pypy/jit/backend/arm/helper/regalloc.py
+++ b/pypy/jit/backend/arm/helper/regalloc.py
@@ -4,6 +4,7 @@
from pypy.jit.metainterp.history import ConstInt, BoxInt, Box
from pypy.jit.metainterp.history import ConstInt
+# XXX create a version that does not need a ConstInt
def _check_imm_arg(arg, size=0xFF, allow_zero=True):
if isinstance(arg, ConstInt):
i = arg.getint()
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit