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

Reply via email to