Author: Gregor Wegberg <[email protected]>
Branch: gc-incminimark-pinning
Changeset: r71843:79956cac29d4
Date: 2014-05-22 17:13 +0200
http://bitbucket.org/pypy/pypy/changeset/79956cac29d4/

Log:    reimplement GC transformation methods for pin()/unpin()

        Still not 100% sure I do the right thing, but tests pass now and it
        seems correct to me.

diff --git a/rpython/memory/gctransform/transform.py 
b/rpython/memory/gctransform/transform.py
--- a/rpython/memory/gctransform/transform.py
+++ b/rpython/memory/gctransform/transform.py
@@ -347,6 +347,15 @@
                   [rmodel.inputconst(lltype.Bool, False)],
                   resultvar=op.result)
 
+    def gct_gc_pin(self, hop):
+        op = hop.spaceop
+        hop.genop("same_as",
+                    [rmodel.inputconst(lltype.Bool, False)],
+                    resultvar=op.result)
+
+    def gct_gc_unpin(self, hop):
+        pass
+
     def gct_gc_identityhash(self, hop):
         # must be implemented in the various GCs
         raise NotImplementedError
@@ -594,11 +603,5 @@
     def gct_gc_can_move(self, hop):
         return hop.cast_result(rmodel.inputconst(lltype.Bool, False))
 
-    def gct_gc_pin(self, hop):
-        return hop.cast_result(rmodel.inputconst(lltype.Bool, False))
-
-    def gct_gc_unpin(self, hop):
-        pass
-
     def gct_shrink_array(self, hop):
         return hop.cast_result(rmodel.inputconst(lltype.Bool, False))
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to