[pypy-commit] pypy arm-backend-2: add a check for the size of the value stored in size
bivab
noreply at buildbot.pypy.org
Sat Jul 16 17:12:58 CEST 2011
Author: David Schneider <david.schneider at picle.org>
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()
More information about the pypy-commit
mailing list