[pypy-svn] r68079 - pypy/branch/floats-via-sse2/pypy/jit/backend/x86

fijal at codespeak.net fijal at codespeak.net
Thu Oct 1 00:47:53 CEST 2009


Author: fijal
Date: Thu Oct  1 00:47:52 2009
New Revision: 68079

Modified:
   pypy/branch/floats-via-sse2/pypy/jit/backend/x86/assembler.py
Log:
correctly adjust stack depth


Modified: pypy/branch/floats-via-sse2/pypy/jit/backend/x86/assembler.py
==============================================================================
--- pypy/branch/floats-via-sse2/pypy/jit/backend/x86/assembler.py	(original)
+++ pypy/branch/floats-via-sse2/pypy/jit/backend/x86/assembler.py	Thu Oct  1 00:47:52 2009
@@ -773,7 +773,10 @@
         assert isinstance(sizeloc, IMM32)
         size = sizeloc.value
         nargs = len(op.args)-1
-        extra_on_stack = self.align_stack_for_call(nargs)
+        extra_on_stack = 0
+        for arg in range(2, nargs + 2):
+            extra_on_stack += round_up_to_4(arglocs[arg].width)
+        extra_on_stack = self.align_stack_for_call(extra_on_stack)
         self.mc.SUB(esp, imm(WORD * extra_on_stack))
         if isinstance(op.args[0], Const):
             x = rel32(op.args[0].getint())



More information about the Pypy-commit mailing list