[pypy-svn] r77214 - pypy/branch/smaller-writebarrier/pypy/rpython/memory/gctransform
arigo at codespeak.net
arigo at codespeak.net
Mon Sep 20 18:00:44 CEST 2010
Author: arigo
Date: Mon Sep 20 18:00:43 2010
New Revision: 77214
Modified:
pypy/branch/smaller-writebarrier/pypy/rpython/memory/gctransform/framework.py
Log:
Fix write_barrier when translated.
Modified: pypy/branch/smaller-writebarrier/pypy/rpython/memory/gctransform/framework.py
==============================================================================
--- pypy/branch/smaller-writebarrier/pypy/rpython/memory/gctransform/framework.py (original)
+++ pypy/branch/smaller-writebarrier/pypy/rpython/memory/gctransform/framework.py Mon Sep 20 18:00:43 2010
@@ -426,7 +426,6 @@
if GCClass.needs_write_barrier:
self.write_barrier_ptr = getfn(GCClass.write_barrier.im_func,
[s_gc,
- annmodel.SomeAddress(),
annmodel.SomeAddress()],
annmodel.s_None,
inline=True)
@@ -435,15 +434,13 @@
# func should not be a bound method, but a real function
assert isinstance(func, types.FunctionType)
self.write_barrier_failing_case_ptr = getfn(func,
- [annmodel.SomeAddress(),
- annmodel.SomeAddress()],
+ [annmodel.SomeAddress()],
annmodel.s_None)
func = getattr(GCClass, 'write_barrier_from_array', None)
if func is not None:
self.write_barrier_from_array_ptr = getfn(func.im_func,
[s_gc,
annmodel.SomeAddress(),
- annmodel.SomeAddress(),
annmodel.SomeInteger()],
annmodel.s_None,
inline=True)
@@ -455,8 +452,7 @@
self.write_barrier_from_array_failing_case_ptr = \
getfn(func,
[annmodel.SomeAddress(),
- annmodel.SomeInteger(),
- annmodel.SomeAddress()],
+ annmodel.SomeInteger()],
annmodel.s_None)
self.statistics_ptr = getfn(GCClass.statistics.im_func,
[s_gc, annmodel.SomeInteger()],
@@ -1023,8 +1019,6 @@
and not isinstance(v_newvalue, Constant)
and v_struct.concretetype.TO._gckind == "gc"
and hop.spaceop not in self.clean_sets):
- v_newvalue = hop.genop("cast_ptr_to_adr", [v_newvalue],
- resulttype = llmemory.Address)
v_structaddr = hop.genop("cast_ptr_to_adr", [v_struct],
resulttype = llmemory.Address)
if (self.write_barrier_from_array_ptr is not None and
@@ -1034,14 +1028,12 @@
assert v_index.concretetype == lltype.Signed
hop.genop("direct_call", [self.write_barrier_from_array_ptr,
self.c_const_gc,
- v_newvalue,
v_structaddr,
v_index])
else:
self.write_barrier_calls += 1
hop.genop("direct_call", [self.write_barrier_ptr,
self.c_const_gc,
- v_newvalue,
v_structaddr])
hop.rename('bare_' + opname)
More information about the Pypy-commit
mailing list