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

Reply via email to