[pypy-commit] pypy ppc-jit-backend: (sven, arigo) Fix a bug, and add a print that is useful for
arigo
noreply at buildbot.pypy.org
Mon Dec 12 16:59:00 CET 2011
Author: Armin Rigo <arigo at tunes.org>
Branch: ppc-jit-backend
Changeset: r50431:7ef8482ed95b
Date: 2011-12-12 16:58 +0100
http://bitbucket.org/pypy/pypy/changeset/7ef8482ed95b/
Log: (sven, arigo) Fix a bug, and add a print that is useful for
debugging with gdb.
diff --git a/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py b/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py
--- a/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py
+++ b/pypy/jit/backend/ppc/ppcgen/ppc_assembler.py
@@ -162,12 +162,15 @@
self._save_nonvolatiles()
# save r31, use r30 as scratch register
# this is safe because r30 has been saved already
+ assert NONVOLATILES[-1] == r.SPP
+ ofs_to_r31 = (self.OFFSET_SPP_TO_GPR_SAVE_AREA +
+ WORD * (len(NONVOLATILES)-1))
if IS_PPC_32:
self.mc.lwz(r.r30.value, r.SP.value, WORD)
- self.mc.stw(r.r30.value, r.SPP.value, WORD * len(NONVOLATILES))
+ self.mc.stw(r.r30.value, r.SPP.value, ofs_to_r31)
else:
self.mc.ld(r.r30.value, r.SP.value, WORD)
- self.mc.std(r.r30.value, r.SPP.value, WORD * len(NONVOLATILES))
+ self.mc.std(r.r30.value, r.SPP.value, ofs_to_r31)
def setup_failure_recovery(self):
@@ -733,8 +736,11 @@
self.datablockwrapper.done()
self.datablockwrapper = None
allblocks = self.get_asmmemmgr_blocks(looptoken)
- return self.mc.materialize(self.cpu.asmmemmgr, allblocks,
- self.cpu.gc_ll_descr.gcrootmap)
+ start = self.mc.materialize(self.cpu.asmmemmgr, allblocks,
+ self.cpu.gc_ll_descr.gcrootmap)
+ from pypy.rlib.rarithmetic import r_uint
+ print "=== Loop start is at %s ===" % hex(r_uint(start))
+ return start
def write_pending_failure_recoveries(self):
for tok in self.pending_guards:
More information about the pypy-commit
mailing list