[pypy-commit] pypy gc-minimark-pinning: transform gc support
fijal
noreply at buildbot.pypy.org
Fri Apr 13 18:21:59 CEST 2012
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: gc-minimark-pinning
Changeset: r54339:175be1a2c933
Date: 2012-04-13 17:27 +0200
http://bitbucket.org/pypy/pypy/changeset/175be1a2c933/
Log: transform gc support
diff --git a/pypy/rpython/memory/gctransform/framework.py b/pypy/rpython/memory/gctransform/framework.py
--- a/pypy/rpython/memory/gctransform/framework.py
+++ b/pypy/rpython/memory/gctransform/framework.py
@@ -446,6 +446,10 @@
[s_gc,
annmodel.SomeInteger(nonneg=True)],
annmodel.s_None)
+ self.pin_ptr = getfn(GCClass.pin,
+ [s_gc, annmodel.SomeAddress()], annmodel.s_None)
+ self.unpin_ptr = getfn(GCClass.unpin,
+ [s_gc, annmodel.SomeAddress()], annmodel.s_None)
self.write_barrier_ptr = None
self.write_barrier_from_array_ptr = None
@@ -747,6 +751,14 @@
hop.genop("direct_call", [self.can_move_ptr, self.c_const_gc, v_addr],
resultvar=op.result)
+ def gct_gc_pin(self, hop):
+ op = hop.spaceop
+ hop.genop("direct_call", [self.pin_ptr, self.c_const_gc, op.args[0]])
+
+ def gct_gc_unpin(self, hop):
+ op = hop.spaceop
+ hop.genop("direct_call", [self.unpin_ptr, self.c_const_gc, op.args[0]])
+
def gct_shrink_array(self, hop):
if self.shrink_array_ptr is None:
return GCTransformer.gct_shrink_array(self, hop)
More information about the pypy-commit
mailing list