[pypy-commit] pypy stmgc-c8: Fixes (sometimes of the code, sometimes of the test)
arigo
noreply at buildbot.pypy.org
Tue Jun 23 18:06:19 CEST 2015
Author: Armin Rigo <arigo at tunes.org>
Branch: stmgc-c8
Changeset: r78268:9c99314d9c90
Date: 2015-06-23 16:15 +0200
http://bitbucket.org/pypy/pypy/changeset/9c99314d9c90/
Log: Fixes (sometimes of the code, sometimes of the test)
diff --git a/rpython/jit/backend/llsupport/stmrewrite.py b/rpython/jit/backend/llsupport/stmrewrite.py
--- a/rpython/jit/backend/llsupport/stmrewrite.py
+++ b/rpython/jit/backend/llsupport/stmrewrite.py
@@ -37,8 +37,7 @@
self.newop(op)
return
# ---------- non-pure getfields ----------
- if opnum in (rop.GETFIELD_GC, rop.GETARRAYITEM_GC,
- rop.GETINTERIORFIELD_GC):
+ if opnum in (rop.GETARRAYITEM_GC, rop.GETINTERIORFIELD_GC):
self.handle_getfields(op)
return
# ---------- calls ----------
@@ -120,6 +119,10 @@
self.newop(op1)
self.read_barrier_applied[v_ptr] = None
+ def handle_getfield_gc(self, op):
+ self.emit_pending_zeros()
+ self.handle_getfields(op)
+
def add_dummy_allocation(self):
if not self.does_any_allocation:
# do a fake allocation since this is needed to check
diff --git a/rpython/jit/backend/llsupport/test/test_stmrewrite.py b/rpython/jit/backend/llsupport/test/test_stmrewrite.py
--- a/rpython/jit/backend/llsupport/test/test_stmrewrite.py
+++ b/rpython/jit/backend/llsupport/test/test_stmrewrite.py
@@ -31,6 +31,7 @@
# these are handled by rewrite.py (sometimes with some overridden code
# in stmrewrite.py too)
words.append('DEBUG_MERGE_POINT')
+ words.append('GETFIELD_GC')
words.append('SETFIELD_GC')
words.append('SETARRAYITEM_GC')
words.append('SETINTERIORFIELD_GC')
@@ -268,8 +269,8 @@
p3 = call_malloc_nursery(%(tdescr.size)d)
setfield_gc(p3, 0, descr=stmflagsdescr)
setfield_gc(p3, %(tdescr.tid)d, descr=tiddescr)
+ zero_ptr_field(p3, %(tdescr.gc_fielddescrs[0].offset)s)
p4 = getfield_gc(p1, descr=tzdescr)
- zero_ptr_field(p3, %(tdescr.gc_fielddescrs[0].offset)s)
jump(p2)
""")
@@ -299,8 +300,8 @@
p2 = call_malloc_nursery(%(tdescr.size)d)
setfield_gc(p2, 0, descr=stmflagsdescr)
setfield_gc(p2, %(tdescr.tid)d, descr=tiddescr)
+ zero_ptr_field(p2, %(tdescr.gc_fielddescrs[0].offset)s)
p1 = getfield_gc(p2, descr=tzdescr)
- zero_ptr_field(p2, %(tdescr.gc_fielddescrs[0].offset)s)
jump(p1)
""")
More information about the pypy-commit
mailing list