[pypy-commit] pypy arm-backend-2: simplify some conditional paths in the generated code
bivab
noreply at buildbot.pypy.org
Mon Jan 9 11:56:49 CET 2012
Author: David Schneider <david.schneider at picle.org>
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)
More information about the pypy-commit
mailing list