[pypy-commit] pypy ppc-jit-backend: Use PPC64 instructions in _emit_call stack adjustment.

edelsohn noreply at buildbot.pypy.org
Wed Nov 9 19:25:43 CET 2011


Author: edelsohn
Branch: ppc-jit-backend
Changeset: r49045:caa24e9f3445
Date: 2011-11-09 13:25 -0500
http://bitbucket.org/pypy/pypy/changeset/caa24e9f3445/

Log:	Use PPC64 instructions in _emit_call stack adjustment.

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
@@ -502,9 +502,14 @@
         stack_space = 4 * (WORD + len(stack_args))
         while stack_space % (4 * WORD) != 0:
             stack_space += 1
-        self.mc.stwu(1, 1, -stack_space)
-        self.mc.mflr(0)
-        self.mc.stw(0, 1, stack_space + WORD)
+        if IS_PPC_32:
+            self.mc.stwu(r.SP.value, r.SP.value, -stack_space)
+            self.mc.mflr(r.r0.value)
+            self.mc.stw(r.r0.value, r.SP.value, stack_space + WORD)
+        else:
+            self.mc.stdu(r.SP.value, r.SP.value, -stack_space)
+            self.mc.mflr(r.r0.value)
+            self.mc.std(r.r0.value, r.SP.value, stack_space + WORD)
 
         # then we push everything on the stack
         for i, arg in enumerate(stack_args):


More information about the pypy-commit mailing list