[pypy-svn] pypy arm-backend-2: Add tests for the branch to offset operation
bivab
commits-noreply at bitbucket.org
Thu Dec 30 19:45:13 CET 2010
Author: David Schneider <david.schneider at picle.org>
Branch: arm-backend-2
Changeset: r40292:0cb467c6df8b
Date: 2010-12-29 21:51 +0100
http://bitbucket.org/pypy/pypy/changeset/0cb467c6df8b/
Log: Add tests for the branch to offset operation
diff --git a/pypy/jit/backend/arm/test/test_assembler.py b/pypy/jit/backend/arm/test/test_assembler.py
--- a/pypy/jit/backend/arm/test/test_assembler.py
+++ b/pypy/jit/backend/arm/test/test_assembler.py
@@ -112,6 +112,40 @@
self.a.gen_func_epilog()
assert run_asm(self.a) == 9
+ def test_B_offs_imm(self):
+ self.a.mc.PUSH([reg.value for reg in r.callee_saved_registers])
+ self.a.mc.MOV_ri(r.r0.value, 0)
+ self.a.mc.MOV_ri(r.r1.value, 0)
+ self.a.mc.CMP_rr(r.r0.value, r.r1.value)
+ pos = self.a.mc.currpos()
+ self.a.mc.MOV_ri(r.r0.value, 123, cond=c.NE)
+
+ for x in range(15):
+ self.a.mc.POP([reg.value for reg in r.callee_restored_registers], cond=c.NE)
+
+ self.a.mc.MOV_ri(r.r1.value, 33)
+ self.a.mc.MOV_ri(r.r0.value, 23)
+ self.a.mc.CMP_rr(r.r0.value, r.r1.value)
+ self.a.mc.B_offs(pos)
+ assert run_asm(self.a) == 123
+
+ def test_B_offs_reg(self):
+ self.a.mc.PUSH([reg.value for reg in r.callee_saved_registers])
+ self.a.mc.MOV_ri(r.r0.value, 0)
+ self.a.mc.MOV_ri(r.r1.value, 0)
+ self.a.mc.CMP_rr(r.r0.value, r.r1.value)
+ pos = self.a.mc.currpos()
+ self.a.mc.MOV_ri(r.r0.value, 123, cond=c.NE)
+
+ for x in range(100):
+ self.a.mc.POP([reg.value for reg in r.callee_restored_registers], cond=c.NE)
+
+ self.a.mc.MOV_ri(r.r1.value, 33)
+ self.a.mc.MOV_ri(r.r0.value, 23)
+ self.a.mc.CMP_rr(r.r0.value, r.r1.value)
+ self.a.mc.B_offs(pos)
+ assert run_asm(self.a) == 123
+
def test_call_python_func(self):
functype = lltype.Ptr(lltype.FuncType([lltype.Signed], lltype.Signed))
call_addr = rffi.cast(lltype.Signed, llhelper(functype, callme))
More information about the Pypy-commit
mailing list