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

cfbolz at codespeak.net cfbolz at codespeak.net
Wed May 27 15:04:33 CEST 2009


Author: cfbolz
Date: Wed May 27 15:04:33 2009
New Revision: 65454

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:
Fix asmgcroot stack walker in conjunction with tagged pointers.


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	Wed May 27 15:04:33 2009
@@ -154,7 +154,7 @@
             if location == 0:
                 break
             addr = self.getlocation(callee, location)
-            if addr.address[0] != llmemory.NULL:
+            if gc.points_to_valid_gc_object(addr):
                 collect_stack_root(gc, addr)
         #
         # track where the caller_frame saved the registers from its own

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	Wed May 27 15:04:33 2009
@@ -14,7 +14,7 @@
     # instructions:
     should_be_moving = False
 
-    def getcompiled(self, func):
+    def getcompiled(self, func, **extraargs):
         def main(argv):
             try:
                 res = func()
@@ -30,6 +30,7 @@
         config = get_pypy_config(translating=True)
         config.translation.gc = self.gcpolicy
         config.translation.gcrootfinder = "asmgcc"
+        config.set(**extraargs)
         t = TranslationContext(config=config)
         self.t = t
         a = t.buildannotator()



More information about the Pypy-commit mailing list