Author: David Schneider <[email protected]>
Branch:
Changeset: r62880:f1505a418fe1
Date: 2013-03-29 18:43 +0200
http://bitbucket.org/pypy/pypy/changeset/f1505a418fe1/
Log: use recommended encoding for pushing only one register
diff --git a/rpython/jit/backend/arm/codebuilder.py
b/rpython/jit/backend/arm/codebuilder.py
--- a/rpython/jit/backend/arm/codebuilder.py
+++ b/rpython/jit/backend/arm/codebuilder.py
@@ -42,7 +42,11 @@
def PUSH(self, regs, cond=cond.AL):
assert reg.sp.value not in regs
- instr = self._encode_reg_list(cond << 28 | 0x92D << 16, regs)
+ instr = 0
+ if len(regs) == 1:
+ instr = cond << 28 | 0x52D0004 | (regs[0] & 0xF) << 12
+ else:
+ instr = self._encode_reg_list(cond << 28 | 0x92D << 16, regs)
self.write32(instr)
def VPUSH(self, regs, cond=cond.AL):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit