Author: David Schneider <[email protected]>
Branch: arm-backend-2
Changeset: r51165:895cbdd61311
Date: 2012-01-03 12:51 +0100
http://bitbucket.org/pypy/pypy/changeset/895cbdd61311/

Log:    simplify some conditional paths in the generated code

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
@@ -329,17 +329,13 @@
                 mc.LDR_ri(reg.value, r.fp.value, imm=ofs)
 
         mc.CMP_ri(r.r0.value, 0)
-        jmp_pos = mc.currpos()
-        mc.NOP()
+        mc.B(self.propagate_exception_path, c=c.EQ)
         nursery_free_adr = self.cpu.gc_ll_descr.get_nursery_free_addr()
         mc.gen_load_int(r.r1.value, nursery_free_adr)
         mc.LDR_ri(r.r1.value, r.r1.value)
         # see above
         mc.POP([r.ip.value, r.pc.value])
 
-        pmc = OverwritingBuilder(mc, jmp_pos, WORD)
-        pmc.B_offs(jmp_pos, c=c.EQ)
-        mc.B(self.propagate_exception_path)
         rawstart = mc.materialize(self.cpu.asmmemmgr, [])
         self.malloc_slowpath = rawstart
 
@@ -1055,9 +1051,6 @@
 
         self.mc.CMP_rr(r.r1.value, r.ip.value)
 
-        fast_jmp_pos = self.mc.currpos()
-        self.mc.NOP()
-
         # XXX update
         # See comments in _build_malloc_slowpath for the
         # details of the two helper functions that we are calling below.
@@ -1071,11 +1064,7 @@
         # a no-op.
         self.mark_gc_roots(self.write_new_force_index(),
                            use_copy_area=True)
-        self.mc.BL(self.malloc_slowpath)
-
-        offset = self.mc.currpos() - fast_jmp_pos
-        pmc = OverwritingBuilder(self.mc, fast_jmp_pos, WORD)
-        pmc.ADD_ri(r.pc.value, r.pc.value, offset - PC_OFFSET, cond=c.LS)
+        self.mc.BL(self.malloc_slowpath, c=c.HI)
 
         self.mc.gen_load_int(r.ip.value, nursery_free_adr)
         self.mc.STR_ri(r.r1.value, r.ip.value)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to