[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