[pypy-commit] pypy default: Use the correct GETFIELD_RAW instead of GETFIELD_GC, because they
arigo
noreply at buildbot.pypy.org
Tue Nov 11 18:37:10 CET 2014
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r74451:014332b2ea4b
Date: 2014-11-11 18:28 +0100
http://bitbucket.org/pypy/pypy/changeset/014332b2ea4b/
Log: Use the correct GETFIELD_RAW instead of GETFIELD_GC, because they
are done on a raw address. Important for stm.
diff --git a/rpython/jit/backend/llsupport/rewrite.py b/rpython/jit/backend/llsupport/rewrite.py
--- a/rpython/jit/backend/llsupport/rewrite.py
+++ b/rpython/jit/backend/llsupport/rewrite.py
@@ -263,7 +263,7 @@
def gen_malloc_frame(self, frame_info, frame, size_box):
descrs = self.gc_ll_descr.getframedescrs(self.cpu)
if self.gc_ll_descr.kind == 'boehm':
- op0 = ResOperation(rop.GETFIELD_GC, [history.ConstInt(frame_info)],
+ op0 = ResOperation(rop.GETFIELD_RAW, [history.ConstInt(frame_info)],
size_box,
descr=descrs.jfi_frame_depth)
self.newops.append(op0)
@@ -272,7 +272,7 @@
self.handle_new_array(descrs.arraydescr, op1)
else:
# we read size in bytes here, not the length
- op0 = ResOperation(rop.GETFIELD_GC, [history.ConstInt(frame_info)],
+ op0 = ResOperation(rop.GETFIELD_RAW, [history.ConstInt(frame_info)],
size_box,
descr=descrs.jfi_frame_size)
self.newops.append(op0)
@@ -282,7 +282,7 @@
# we need to explicitely zero all the gc fields, because
# of the unusal malloc pattern
extra_ops = [
- ResOperation(rop.GETFIELD_GC, [history.ConstInt(frame_info)],
+ ResOperation(rop.GETFIELD_RAW, [history.ConstInt(frame_info)],
length_box, descr=descrs.jfi_frame_depth),
ResOperation(rop.SETFIELD_GC, [frame, self.c_zero],
None, descr=descrs.jf_extra_stack_depth),
diff --git a/rpython/jit/backend/llsupport/test/test_rewrite.py b/rpython/jit/backend/llsupport/test/test_rewrite.py
--- a/rpython/jit/backend/llsupport/test/test_rewrite.py
+++ b/rpython/jit/backend/llsupport/test/test_rewrite.py
@@ -981,10 +981,10 @@
i2 = call_assembler(i0, f0, descr=casmdescr)
""", """
[i0, f0]
- i1 = getfield_gc(ConstClass(frame_info), descr=jfi_frame_size)
+ i1 = getfield_raw(ConstClass(frame_info), descr=jfi_frame_size)
p1 = call_malloc_nursery_varsize_frame(i1)
setfield_gc(p1, 0, descr=tiddescr)
- i2 = getfield_gc(ConstClass(frame_info), descr=jfi_frame_depth)
+ i2 = getfield_raw(ConstClass(frame_info), descr=jfi_frame_depth)
setfield_gc(p1, 0, descr=jf_extra_stack_depth)
setfield_gc(p1, NULL, descr=jf_savedata)
setfield_gc(p1, NULL, descr=jf_force_descr)
More information about the pypy-commit
mailing list