[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