[pypy-svn] pypy 32ptr-on-64bit: Add a test file, and so minor fixes until it runs (and fails).

arigo commits-noreply at bitbucket.org
Thu Apr 14 23:06:37 CEST 2011


Author: Armin Rigo <arigo at tunes.org>
Branch: 32ptr-on-64bit
Changeset: r43373:c509250e054a
Date: 2011-04-14 13:40 -0700
http://bitbucket.org/pypy/pypy/changeset/c509250e054a/

Log:	Add a test file, and so minor fixes until it runs (and fails).

diff --git a/pypy/jit/backend/llsupport/test/test_runner.py b/pypy/jit/backend/llsupport/test/test_runner.py
--- a/pypy/jit/backend/llsupport/test/test_runner.py
+++ b/pypy/jit/backend/llsupport/test/test_runner.py
@@ -8,14 +8,15 @@
 
 class MyLLCPU(AbstractLLCPU):
     supports_floats = True
+
+    def __init__(self, *args, **kwds):
+        super(MyLLCPU, self).__init__(*args, **kwds)
+        self.gc_ll_descr.is_compressed_ptr = (
+            lambda size: sys.maxint > 2147483647 and size == 4)
+
     def compile_loop(self, inputargs, operations, looptoken):
         py.test.skip("llsupport test: cannot compile operations")
 
-    class gcdescr:
-        @staticmethod
-        def is_compressed_ptr(size):
-            return sys.maxint > 2147483647 and size == 4
-
 
 class TestAbstractLLCPU(LLtypeBackendTest):
 

diff --git a/pypy/jit/backend/x86/test/test_rcompressed.py b/pypy/jit/backend/x86/test/test_rcompressed.py
new file mode 100644
--- /dev/null
+++ b/pypy/jit/backend/x86/test/test_rcompressed.py
@@ -0,0 +1,8 @@
+
+from pypy.jit.metainterp.test import test_rcompressed
+from pypy.jit.backend.x86.test.test_basic import Jit386Mixin
+
+class TestRCompressed(Jit386Mixin, test_rcompressed.TestRCompressed):
+    # for the individual tests see
+    # ====> ../../../metainterp/test/test_rcompressed.py
+    pass

diff --git a/pypy/jit/backend/llsupport/llmodel.py b/pypy/jit/backend/llsupport/llmodel.py
--- a/pypy/jit/backend/llsupport/llmodel.py
+++ b/pypy/jit/backend/llsupport/llmodel.py
@@ -303,7 +303,7 @@
 
     def bh_getarrayitem_gc_r(self, arraydescr, gcref, itemindex):
         ofs, size, _ = self.unpack_arraydescr(arraydescr)
-        icp = self.gcdescr.is_compressed_ptr(size)
+        icp = self.gc_ll_descr.is_compressed_ptr(size)
         # --- start of GC unsafe code (no GC operation!) ---
         items = rffi.ptradd(rffi.cast(rffi.CCHARP, gcref), ofs)
         if icp:
@@ -341,7 +341,7 @@
 
     def bh_setarrayitem_gc_r(self, arraydescr, gcref, itemindex, newvalue):
         ofs, size, _ = self.unpack_arraydescr(arraydescr)
-        icp = self.gcdescr.is_compressed_ptr(size)
+        icp = self.gc_ll_descr.is_compressed_ptr(size)
         self.gc_ll_descr.do_write_barrier(gcref, newvalue)
         # --- start of GC unsafe code (no GC operation!) ---
         items = rffi.ptradd(rffi.cast(rffi.CCHARP, gcref), ofs)
@@ -408,7 +408,7 @@
     @specialize.argtype(1)
     def _base_do_getfield_r(self, struct, fielddescr):
         ofs, size, _ = self.unpack_fielddescr(fielddescr)
-        icp = self.gcdescr.is_compressed_ptr(size)
+        icp = self.gc_ll_descr.is_compressed_ptr(size)
         # --- start of GC unsafe code (no GC operation!) ---
         fieldptr = rffi.ptradd(rffi.cast(rffi.CCHARP, struct), ofs)
         if icp:
@@ -455,7 +455,7 @@
         ofs, size, _ = self.unpack_fielddescr(fielddescr)
         assert lltype.typeOf(struct) is not lltype.Signed, (
             "can't handle write barriers for setfield_raw")
-        icp = self.gcdescr.is_compressed_ptr(size)
+        icp = self.gc_ll_descr.is_compressed_ptr(size)
         self.gc_ll_descr.do_write_barrier(struct, newvalue)
         # --- start of GC unsafe code (no GC operation!) ---
         fieldptr = rffi.ptradd(rffi.cast(rffi.CCHARP, struct), ofs)


More information about the Pypy-commit mailing list