[pypy-commit] pypy ppc-jit-backend: (edelsohn, arigato): Save and restore r3 around wb_slowpath call in
edelsohn
noreply at buildbot.pypy.org
Sat Aug 25 22:22:50 CEST 2012
Author: edelsohn
Branch: ppc-jit-backend
Changeset: r56853:59ecc2038e7a
Date: 2012-08-25 16:22 -0400
http://bitbucket.org/pypy/pypy/changeset/59ecc2038e7a/
Log: (edelsohn, arigato): Save and restore r3 around wb_slowpath call in
cond_call_gc_wb if used to remap loc_base.
diff --git a/pypy/jit/backend/ppc/opassembler.py b/pypy/jit/backend/ppc/opassembler.py
--- a/pypy/jit/backend/ppc/opassembler.py
+++ b/pypy/jit/backend/ppc/opassembler.py
@@ -1053,10 +1053,13 @@
assert self.wb_slowpath[helper_num] != 0
#
if loc_base is not r.r3:
+ self.mc.store(r.r3.value, r.SP.value, 24)
remap_frame_layout(self, [loc_base], [r.r3], r.SCRATCH)
addr = self.wb_slowpath[helper_num]
func = rffi.cast(lltype.Signed, addr)
self.mc.bl_abs(func)
+ if loc_base is not r.r3:
+ self.mc.load(r.r3.value, r.SP.value, 24)
# if GCFLAG_CARDS_SET, then we can do the whole thing that would
# be done in the CALL above with just four instructions, so here
More information about the pypy-commit
mailing list