Author: edelsohn
Branch: ppc-jit-backend
Changeset: r49026:7589bb11c7e5
Date: 2011-11-09 11:31 -0500
http://bitbucket.org/pypy/pypy/changeset/7589bb11c7e5/

Log:    Deallocate stack in emit_call on PPC64 path.

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
@@ -549,9 +549,7 @@
         #the actual call
         if IS_PPC_32:
             self.mc.bl_abs(adr)
-            self.mc.lwz(0, 1, stack_space + WORD)
-            self.mc.mtlr(0)
-            self.mc.addi(1, 1, stack_space)
+            self.mc.lwz(r.r0.value, r.SP.value, stack_space + WORD)
         else:
             self.mc.std(r.r2.value, r.SP.value, 40)
             self.mc.load_from_addr(r.r0, adr)
@@ -560,6 +558,9 @@
             self.mc.mtctr(r.r0.value)
             self.mc.bctrl()
             self.mc.ld(r.r2.value, r.SP.value, 40)
+            self.mc.ld(r.r0.value, r.SP.value, stack_space + WORD)
+        self.mc.mtlr(r.r0.value)
+        self.mc.addi(r.SP.value, r.SP.value, stack_space)
 
         self.mark_gc_roots(force_index)
         regalloc.possibly_free_vars(args)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to