[pypy-svn] r65770 - in pypy/branch/tagged-pointers-framework/pypy: rpython/memory/gctransform translator/c/gcc/test

cfbolz at codespeak.net cfbolz at codespeak.net
Sun Jun 14 12:21:21 CEST 2009


Author: cfbolz
Date: Sun Jun 14 12:21:20 2009
New Revision: 65770

Modified:
   pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gctransform/asmgcroot.py
   pypy/branch/tagged-pointers-framework/pypy/translator/c/gcc/test/test_asmgcroot.py
Log:
Make asmgcc work at least somewhat with non-moving GCs. In the current form,
some of the tests segfault, no clue whose fault that is yet.


Modified: pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gctransform/asmgcroot.py
==============================================================================
--- pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gctransform/asmgcroot.py	(original)
+++ pypy/branch/tagged-pointers-framework/pypy/rpython/memory/gctransform/asmgcroot.py	Sun Jun 14 12:21:20 2009
@@ -31,7 +31,8 @@
             v_adr = gen_cast(hop.llops, llmemory.Address, var)
             v_newaddr = hop.genop("direct_call", [c_asm_gcroot, v_adr],
                                   resulttype=llmemory.Address)
-            hop.genop("gc_reload_possibly_moved", [v_newaddr, var])
+            if self.gcdata.gc.moving_gc:
+                hop.genop("gc_reload_possibly_moved", [v_newaddr, var])
 
     def build_root_walker(self):
         return AsmStackRootWalker(self)

Modified: pypy/branch/tagged-pointers-framework/pypy/translator/c/gcc/test/test_asmgcroot.py
==============================================================================
--- pypy/branch/tagged-pointers-framework/pypy/translator/c/gcc/test/test_asmgcroot.py	(original)
+++ pypy/branch/tagged-pointers-framework/pypy/translator/c/gcc/test/test_asmgcroot.py	Sun Jun 14 12:21:20 2009
@@ -94,3 +94,13 @@
 
     def test_callback_with_collect(self):
         py.test.skip("in-progress")
+
+
+class TestAsmGCRootWithMarkSweep(AbstractTestAsmGCRoot,
+                                 test_newgc.TestUsingFramework):
+    pass
+    # for the individual tests see
+    # ====> ../../test/test_newgc.py
+
+    def test_callback_with_collect(self):
+        py.test.skip("in-progress")



More information about the Pypy-commit mailing list