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 _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit