[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