[pypy-commit] pypy jitframe-on-heap: oops

fijal noreply at buildbot.pypy.org
Wed Jan 23 22:40:12 CET 2013


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: jitframe-on-heap
Changeset: r60405:a200f8221461
Date: 2013-01-23 23:39 +0200
http://bitbucket.org/pypy/pypy/changeset/a200f8221461/

Log:	oops

diff --git a/rpython/jit/backend/llsupport/regalloc.py b/rpython/jit/backend/llsupport/regalloc.py
--- a/rpython/jit/backend/llsupport/regalloc.py
+++ b/rpython/jit/backend/llsupport/regalloc.py
@@ -2,6 +2,7 @@
 from rpython.jit.metainterp.history import Const, Box, REF, INT
 from rpython.rlib.objectmodel import we_are_translated, specialize
 from rpython.jit.metainterp.resoperation import rop
+from collections import OrderedDict
 
 class TempBox(Box):
     def __init__(self):
@@ -268,7 +269,10 @@
     def __init__(self, longevity, frame_manager=None, assembler=None):
         self.free_regs = self.all_regs[:]
         self.longevity = longevity
-        self.reg_bindings = {}
+        if not we_are_translated():
+            self.reg_bindings = OrderedDict()
+        else:
+            self.reg_bindings = {}
         self.bindings_to_frame_reg = {}
         self.position = -1
         self.frame_manager = frame_manager
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
@@ -696,7 +696,7 @@
         assert not IS_X86_32
         mc.J_il8(rx86.Conditions['GE'], 0)
         jg_location = mc.get_relative_pos()
-        mc.MOV_si(0, 0xffffff)
+        mc.MOV_si(WORD, 0xffffff)
         ofs2 = mc.get_relative_pos() - 4
         self.push_gcmap(mc, gcmap, mov=True)
         mc.CALL(imm(self._stack_check_failure))
diff --git a/rpython/jit/backend/x86/test/test_gc_integration.py b/rpython/jit/backend/x86/test/test_gc_integration.py
--- a/rpython/jit/backend/x86/test/test_gc_integration.py
+++ b/rpython/jit/backend/x86/test/test_gc_integration.py
@@ -334,6 +334,11 @@
         GcCache.__init__(self, False, None)
         self.gcrootmap = MockShadowStackRootMap()
 
+def unpack_gcmap(frame):
+    pass
+    #for i in range(len(frame.jf_gcmap)):
+    #    item = frame.jf_gcmap[item]
+
 class TestGcShadowstackDirect(BaseTestRegalloc):
     
     cpu = CPU(None, None)
@@ -353,6 +358,8 @@
             new_frame = frame.copy()
             self.cpu.gc_ll_descr.gcrootmap.stack[0] = rffi.cast(lltype.Signed, new_frame)
             frames.append(new_frame)
+            import pdb
+            pdb.set_trace()
 
         def check2(i):
             assert self.cpu.gc_ll_descr.gcrootmap.stack[0] == i - ofs


More information about the pypy-commit mailing list