Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r60846:4ccd13403a61
Date: 2013-02-04 00:20 +0200
http://bitbucket.org/pypy/pypy/changeset/4ccd13403a61/
Log: 32bit alignment fixes
diff --git a/rpython/jit/backend/x86/assembler.py
b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -199,7 +199,6 @@
def _build_stack_check_failure(self):
mc = codebuf.MachineCodeBlockWrapper()
self._push_all_regs_to_frame(mc, [], self.cpu.supports_floats)
- assert not IS_X86_32
# this is the gcmap stored by push_gcmap(mov=True) in
_check_stack_frame
mc.MOV_rs(ecx.value, WORD)
gcmap_ofs = self.cpu.get_ofs_of_frame_field('jf_gcmap')
@@ -209,9 +208,11 @@
# push first arg
mc.MOV_rr(edi.value, ebp.value)
# align
- mc.SUB_ri(esp.value, WORD)
+ align = align_stack_words(1)
+ mc.SUB_ri(esp.value, (align - 1) * WORD)
+
mc.CALL(imm(self.cpu.realloc_frame))
- mc.ADD_ri(esp.value, WORD)
+ mc.ADD_ri(esp.value, (align - 1) * WORD)
mc.MOV_rr(ebp.value, eax.value)
gcrootmap = self.cpu.gc_ll_descr.gcrootmap
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit