[pypy-svn] pypy default: Pom pom pom. No tests :-((

arigo commits-noreply at bitbucket.org
Thu Mar 31 14:03:44 CEST 2011


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r43048:52717999b838
Date: 2011-03-31 14:03 +0200
http://bitbucket.org/pypy/pypy/changeset/52717999b838/

Log:	Pom pom pom. No tests :-((

diff --git a/pypy/jit/backend/x86/assembler.py b/pypy/jit/backend/x86/assembler.py
--- a/pypy/jit/backend/x86/assembler.py
+++ b/pypy/jit/backend/x86/assembler.py
@@ -214,12 +214,11 @@
         #
         mc = codebuf.MachineCodeBlockWrapper()
         #
-        if IS_X86_32:
-            stack_size = WORD
-        elif IS_X86_64:
+        stack_size = WORD
+        if IS_X86_64:
             # on the x86_64, we have to save all the registers that may
             # have been used to pass arguments
-            stack_size = WORD + 6*WORD + 8*8
+            stack_size += 6*WORD + 8*8
             for reg in [edi, esi, edx, ecx, r8, r9]:
                 mc.PUSH_r(reg.value)
             mc.SUB_ri(esp.value, 8*8)
@@ -228,6 +227,7 @@
         #
         if IS_X86_32:
             mc.LEA_rb(eax.value, +8)
+            stack_size += 2*WORD
             mc.PUSH_r(eax.value)        # alignment
             mc.PUSH_r(eax.value)
         elif IS_X86_64:
@@ -242,7 +242,7 @@
         jnz_location = mc.get_relative_pos()
         #
         if IS_X86_32:
-            mc.ADD_ri(esp.value, 8)
+            mc.ADD_ri(esp.value, 2*WORD)
         elif IS_X86_64:
             # restore the registers
             for i in range(7, -1, -1):


More information about the Pypy-commit mailing list