[pypy-commit] pypy jitframe-on-heap: push for _check_frame_depth

fijal noreply at buildbot.pypy.org
Sun Feb 10 15:14:01 CET 2013


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: jitframe-on-heap
Changeset: r61043:70d8ed3723ef
Date: 2013-02-10 16:13 +0200
http://bitbucket.org/pypy/pypy/changeset/70d8ed3723ef/

Log:	push for _check_frame_depth

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
@@ -205,12 +205,17 @@
         mc.MOV_rs(ecx.value, WORD)
         gcmap_ofs = self.cpu.get_ofs_of_frame_field('jf_gcmap')
         mc.MOV_br(gcmap_ofs, ecx.value)
-        # this is size that we're after, sanity checking only
-        mc.MOV_rs(esi.value, WORD*2)
-        # push first arg
-        mc.MOV_rr(edi.value, ebp.value)
+        if IS_X86_64:
+            # this is size that we're after, sanity checking only
+            mc.MOV_rs(esi.value, WORD*2)
+            # push first arg
+            mc.MOV_rr(edi.value, ebp.value)
+            align = align_stack_words(1)
+        else:
+            mc.PUSH(RawStackLoc(WORD * 2))
+            mc.PUSH_r(ebp.value)
+            align = align_stack_words(3)
         # align
-        align = align_stack_words(1)
         mc.SUB_ri(esp.value, (align - 1) * WORD)
 
         mc.CALL(imm(self.cpu.realloc_frame))
@@ -677,7 +682,6 @@
         else:
             mc.CMP_bi(ofs, expected_size)
         stack_check_cmp_ofs = mc.get_relative_pos() - 4
-        assert not IS_X86_32
         mc.J_il8(rx86.Conditions['GE'], 0)
         jg_location = mc.get_relative_pos()
         if expected_size == -1:


More information about the pypy-commit mailing list