Author: David Schneider <[email protected]>
Branch:
Changeset: r64719:c970352ba2f5
Date: 2013-06-02 15:19 -0500
http://bitbucket.org/pypy/pypy/changeset/c970352ba2f5/
Log: use larger allowed imm size for VLDR and VSTR
diff --git a/rpython/jit/backend/arm/assembler.py
b/rpython/jit/backend/arm/assembler.py
--- a/rpython/jit/backend/arm/assembler.py
+++ b/rpython/jit/backend/arm/assembler.py
@@ -8,6 +8,7 @@
JITFRAME_FIXED_SIZE)
from rpython.jit.backend.arm.codebuilder import InstrBuilder,
OverwritingBuilder
from rpython.jit.backend.arm.locations import imm, StackLocation
+from rpython.jit.backend.arm.helper.regalloc import VMEM_imm_size
from rpython.jit.backend.arm.opassembler import ResOpAssembler
from rpython.jit.backend.arm.regalloc import (Regalloc,
CoreRegisterManager, check_imm_arg, VFPRegisterManager,
@@ -961,7 +962,7 @@
return self._load_core_reg(mc, target, base, ofs, cond, helper)
def _load_vfp_reg(self, mc, target, base, ofs, cond=c.AL, helper=r.ip):
- if check_imm_arg(ofs):
+ if check_imm_arg(ofs, VMEM_imm_size):
mc.VLDR(target.value, base.value, imm=ofs, cond=cond)
else:
mc.gen_load_int(helper.value, ofs, cond=cond)
@@ -982,7 +983,7 @@
return self._store_core_reg(mc, source, base, ofs, cond, helper)
def _store_vfp_reg(self, mc, source, base, ofs, cond=c.AL, helper=r.ip):
- if check_imm_arg(ofs):
+ if check_imm_arg(ofs, VMEM_imm_size):
mc.VSTR(source.value, base.value, imm=ofs, cond=cond)
else:
mc.gen_load_int(helper.value, ofs, cond=cond)
diff --git a/rpython/jit/backend/arm/helper/regalloc.py
b/rpython/jit/backend/arm/helper/regalloc.py
--- a/rpython/jit/backend/arm/helper/regalloc.py
+++ b/rpython/jit/backend/arm/helper/regalloc.py
@@ -4,7 +4,10 @@
from rpython.jit.metainterp.history import ConstInt
from rpython.rlib.objectmodel import we_are_translated
-def check_imm_arg(arg, size=0xFF, allow_zero=True):
+VMEM_imm_size=0x3FC
+default_imm_size=0xFF
+
+def check_imm_arg(arg, size=default_imm_size, allow_zero=True):
assert not isinstance(arg, ConstInt)
if not we_are_translated():
if not isinstance(arg, int):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit