Author: Maciej Fijalkowski <fij...@gmail.com>
Branch: jitframe-on-heap
Changeset: r60469:fc34a23fa97c
Date: 2013-01-25 19:08 +0200
http://bitbucket.org/pypy/pypy/changeset/fc34a23fa97c/

Log:    (arigo, fijal) test and 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
@@ -99,12 +99,12 @@
         # 32 possible bits
         state = (fld >> 3) & 0x1f
         no = fld >> (3 + 5)
-        MAX = 31
+        MAX = 32
     else:
         # 64 possible bits
         state = (fld >> 3) & 0x3f
         no = fld >> (3 + 6)
-        MAX = 63
+        MAX = 64
     gcmap = (obj_addr + getofs('jf_gcmap')).address[0]
     gcmap_lgt = (gcmap + GCMAPLENGTHOFS).signed[0]
     while no < gcmap_lgt:
diff --git a/rpython/jit/backend/llsupport/test/test_gc.py 
b/rpython/jit/backend/llsupport/test/test_gc.py
--- a/rpython/jit/backend/llsupport/test/test_gc.py
+++ b/rpython/jit/backend/llsupport/test/test_gc.py
@@ -1,3 +1,4 @@
+import sys
 from rpython.rtyper.lltypesystem import lltype, llmemory, rstr
 from rpython.rtyper.lltypesystem.lloperation import llop
 from rpython.rtyper.annlowlevel import llhelper
@@ -277,7 +278,11 @@
         frame = lltype.malloc(jitframe.JITFRAME, 15, zero=True)
         frame.jf_frame_info = frame_info
         frame.jf_gcmap = lltype.malloc(jitframe.GCMAP, 2)
-        frame.jf_gcmap[0] = r_uint(1 | 2 | 8 | 32 | 128)
+        if sys.maxint == 2**31 - 1:
+            max = r_uint(2 ** 31)
+        else:
+            max = r_uint(2 ** 63)
+        frame.jf_gcmap[0] = r_uint(1 | 2 | 8 | 32 | 128) | max
         frame.jf_gcmap[1] = r_uint(2 | 16 | 32 | 128)
         frame_adr = llmemory.cast_ptr_to_adr(frame)
         all_addrs = []
@@ -297,10 +302,11 @@
         assert all_addrs[8] == indexof(3)
         assert all_addrs[9] == indexof(5)
         assert all_addrs[10] == indexof(7)
+        assert all_addrs[11] == indexof(63)
         # XXX 32bit
-        assert all_addrs[11] == indexof(65)
+        assert all_addrs[12] == indexof(65)
 
-        assert len(all_addrs) == 6 + 5 + 4
+        assert len(all_addrs) == 6 + 6 + 4
         # 6 static fields, 4 addresses from gcmap, 2 from gcpattern
     finally:
         jitframe.STATICSIZE = PREV_STATICSIZE
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to