Author: Armin Rigo <ar...@tunes.org>
Branch: stmgc-c7
Changeset: r71346:b04b034d97fa
Date: 2014-05-06 23:11 +0200
http://bitbucket.org/pypy/pypy/changeset/b04b034d97fa/

Log:    Test and fix

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
@@ -26,7 +26,7 @@
             return
         # ----------  transaction breaks  ----------
         if opnum == rop.STM_SHOULD_BREAK_TRANSACTION:
-            self.handle_should_break_transaction()
+            self.handle_should_break_transaction(op)
             return
         if opnum == rop.STM_TRANSACTION_BREAK:
             self.emitting_an_operation_that_can_collect()
@@ -120,9 +120,10 @@
             self.newops.append(op1)
             self.read_barrier_applied[v_ptr] = None
 
-    def handle_should_break_transaction(self):
+    def handle_should_break_transaction(self, op):
         op1 = ResOperation(rop.STM_SHOULD_BREAK_TRANSACTION,
-                           [ConstInt(not self.does_any_allocation)], None)
+                           [ConstInt(not self.does_any_allocation)],
+                           op.result)
         self.newops.append(op1)
         self.does_any_allocation = True
 
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
@@ -1233,31 +1233,37 @@
     def test_stm_should_break_transaction_no_malloc(self):
         self.check_rewrite("""
         []
-        stm_should_break_transaction(0)
+        i1 = stm_should_break_transaction(0)
+        jump(i1)
         """, """
         []
-        stm_should_break_transaction(1)
+        i1 = stm_should_break_transaction(1)
+        jump(i1)
         """)
 
     def test_stm_should_break_transaction_with_malloc(self):
         self.check_rewrite("""
         []
         p2 = new(descr=tdescr)
-        stm_should_break_transaction(0)
+        i1 = stm_should_break_transaction(0)
+        jump(i1)
         """, """
         []
         p2 = call_malloc_nursery(%(tdescr.size)d)
         setfield_gc(p2, %(tdescr.tid)d, descr=tiddescr)
-        stm_should_break_transaction(0)
+        i1 = stm_should_break_transaction(0)
+        jump(i1)
         """)
 
     def test_double_stm_should_break_allocation(self):
         self.check_rewrite("""
         []
-        stm_should_break_transaction(0)
-        stm_should_break_transaction(0)
+        i1 = stm_should_break_transaction(0)
+        i2 = stm_should_break_transaction(0)
+        jump(i1, i2)
         """, """
         []
-        stm_should_break_transaction(1)
-        stm_should_break_transaction(0)
+        i1 = stm_should_break_transaction(1)
+        i2 = stm_should_break_transaction(0)
+        jump(i1, i2)
         """)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to