[pypy-commit] pypy ppc-jit-backend: asm_helper_adr is function descriptor on PPC64

edelsohn noreply at buildbot.pypy.org
Wed Nov 23 21:35:39 CET 2011


Author: edelsohn
Branch: ppc-jit-backend
Changeset: r49709:4b6f56e2836f
Date: 2011-11-23 15:35 -0500
http://bitbucket.org/pypy/pypy/changeset/4b6f56e2836f/

Log:	asm_helper_adr is function descriptor on PPC64

diff --git a/pypy/jit/backend/ppc/ppcgen/opassembler.py b/pypy/jit/backend/ppc/ppcgen/opassembler.py
--- a/pypy/jit/backend/ppc/ppcgen/opassembler.py
+++ b/pypy/jit/backend/ppc/ppcgen/opassembler.py
@@ -893,7 +893,14 @@
         with saved_registers(self.mc, r.NONVOLATILES + [r.r3]):
             # resbox is already in r3
             self.mov_loc_loc(arglocs[1], r.r4)
-            self.mc.bl_abs(asm_helper_adr)
+            if IS_PPC_32:
+                self.mc.bl_abs(asm_helper_adr)
+            else:
+                self.mc.load_from_addr(r.r0, asm_helper_adr)
+                self.mc.load_from_addr(r.r2, asm_helper_adr + WORD)
+                self.mc.load_from_addr(r.r11, asm_helper_adr + 2 * WORD)
+                self.mc.mtctr(r.r0.value)
+                self.mc.bctrl()
             if op.result:
                 resloc = regalloc.after_call(op.result)
                 if resloc.is_vfp_reg():


More information about the pypy-commit mailing list