Author: Maciej Fijalkowski <[email protected]>
Branch: jitframe-on-heap
Changeset: r60313:417a88dc4c57
Date: 2013-01-21 21:46 +0200
http://bitbucket.org/pypy/pypy/changeset/417a88dc4c57/

Log:    fix fix fix

diff --git a/rpython/jit/backend/llsupport/jitframe.py 
b/rpython/jit/backend/llsupport/jitframe.py
--- a/rpython/jit/backend/llsupport/jitframe.py
+++ b/rpython/jit/backend/llsupport/jitframe.py
@@ -33,7 +33,6 @@
 def jitframe_copy(frame):
     frame_info = frame.jf_frame_info
     new_frame = lltype.malloc(JITFRAME, frame_info.jfi_frame_depth, zero=True)
-    ll_assert(frame.jf_gcmap == NULLGCMAP, "non empty gc map when copying")
     new_frame.jf_frame_info = frame_info
     return new_frame
 
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
@@ -196,11 +196,12 @@
         base_ofs = self.cpu.get_baseofs_of_frame_field()
         self._push_all_regs_to_frame(mc, [], self.cpu.supports_floats)
         assert not IS_X86_32
-        # push first arg
-        mc.POP_r(ecx.value)
+        mc.MOV_rs(ecx.value, WORD)
         gcmap_ofs = self.cpu.get_ofs_of_frame_field('jf_gcmap')
         mc.MOV_br(gcmap_ofs, ecx.value)
+        # push first arg
         mc.LEA_rb(edi.value, -base_ofs)
+        # aligned already
         mc.CALL(imm(self.cpu.realloc_frame))
         mc.LEA_rm(ebp.value, (eax.value, base_ofs))
         mc.MOV_bi(gcmap_ofs, 0)
@@ -678,7 +679,7 @@
         assert not IS_X86_32
         mc.J_il8(rx86.Conditions['GE'], 0)
         jg_location = mc.get_relative_pos()
-        self.push_gcmap(mc, gcmap, push=True)
+        self.push_gcmap(mc, gcmap, mov=True)
         mc.CALL(imm(self._stack_check_failure))
         # patch the JG above
         offset = mc.get_relative_pos() - jg_location
@@ -1865,7 +1866,6 @@
                     v = gpr_reg_mgr_cls.all_reg_indexes[loc.value]
                 positions[i] = v * WORD
         # write down the positions of locs
-        print guardtok.fail_locs
         guardtok.faildescr.rd_locs = positions
         #if WORD == 4:
         #    mc.PUSH(imm(fail_descr))
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to