Author: Remi Meier <[email protected]>
Branch: stmgc-c4
Changeset: r65546:6cfeb749f64c
Date: 2013-07-23 13:10 +0200
http://bitbucket.org/pypy/pypy/changeset/6cfeb749f64c/
Log: fix a few tests
diff --git a/rpython/jit/backend/llsupport/gc.py
b/rpython/jit/backend/llsupport/gc.py
--- a/rpython/jit/backend/llsupport/gc.py
+++ b/rpython/jit/backend/llsupport/gc.py
@@ -112,10 +112,12 @@
descr = op.getdescr()
if not we_are_translated() and descr is None:
return
- llref = cast_instance_to_gcref(descr)
+ llref = rgc.cast_instance_to_gcref(descr)
new_llref = rgc._make_sure_does_not_move(llref)
new_d = rgc.try_cast_gcref_to_instance(AbstractDescr, new_llref)
- op.setdescr(new_d)
+ if we_are_translated():
+ # tests don't allow this
+ op.setdescr(new_d)
gcrefs_output_list.append(new_llref)
def rewrite_assembler(self, cpu, operations, gcrefs_output_list):
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
@@ -344,7 +344,7 @@
self.check_rewrite("""
[i1, i2]
i3 = getfield_raw(i1, descr=tydescr)
- keepalive(i3) # random ignored operation
+ keepalive(i3)
i4 = getfield_raw(i2, descr=tydescr)
jump(i3, i4)
""", """
diff --git a/rpython/jit/backend/x86/assembler.py
b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -529,6 +529,7 @@
#
self._call_header_with_stack_check()
self._check_frame_depth_debug(self.mc)
+
operations = regalloc.prepare_loop(inputargs, operations, looptoken,
clt.allgcrefs)
if logger:
@@ -1021,6 +1022,8 @@
def genop_ptr_eq(self, op, arglocs, result_loc):
+ if not self.cpu.gc_ll_descr.stm:
+ self.genop_int_eq(op, arglocs, result_loc)
assert self.cpu.gc_ll_descr.stm
rl = result_loc.lowest8bits()
self._stm_ptr_eq_fastpath(self.mc, arglocs, result_loc)
@@ -1029,6 +1032,8 @@
self.mc.MOVZX8_rr(result_loc.value, rl.value)
def genop_ptr_ne(self, op, arglocs, result_loc):
+ if not self.cpu.gc_ll_descr.stm:
+ self.genop_int_ne(op, arglocs, result_loc)
assert self.cpu.gc_ll_descr.stm
rl = result_loc.lowest8bits()
self._stm_ptr_eq_fastpath(self.mc, arglocs, result_loc)
@@ -1038,6 +1043,10 @@
def genop_guard_ptr_eq(self, op, guard_op, guard_token,
arglocs, result_loc):
+ if not self.cpu.gc_ll_descr.stm:
+ self.genop_guard_int_eq(op, guard_op, guard_token,
+ arglocs, result_loc)
+ assert not self.cpu.gc_ll_descr.stm
guard_opnum = guard_op.getopnum()
self._stm_ptr_eq_fastpath(self.mc, arglocs, result_loc)
self.mc.TEST_rr(eax.value, eax.value)
@@ -1048,6 +1057,10 @@
def genop_guard_ptr_ne(self, op, guard_op, guard_token,
arglocs, result_loc):
+ if not self.cpu.gc_ll_descr.stm:
+ self.genop_guard_int_ne(op, guard_op, guard_token,
+ arglocs, result_loc)
+ assert not self.cpu.gc_ll_descr.stm
guard_opnum = guard_op.getopnum()
self._stm_ptr_eq_fastpath(self.mc, arglocs, result_loc)
self.mc.TEST_rr(eax.value, eax.value)
diff --git a/rpython/rlib/rgc.py b/rpython/rlib/rgc.py
--- a/rpython/rlib/rgc.py
+++ b/rpython/rlib/rgc.py
@@ -30,7 +30,7 @@
""" Returns a non-moving reference to an object (only use if obj is
already OLD!)
"""
- return lltype.nullptr(llmemory.GCREF)
+ return obj
# ____________________________________________________________
# Annotation and specialization
@@ -119,7 +119,7 @@
on objects that are already a bit old, so have a chance to be
already non-movable."""
if not we_are_translated():
- return
+ return p
i = 0
while can_move(p):
if i > 6:
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit