Author: Remi Meier <[email protected]>
Branch: stmgc-c4
Changeset: r66078:9be958070a83
Date: 2013-08-12 08:22 +0200
http://bitbucket.org/pypy/pypy/changeset/9be958070a83/
Log: add guard_value to stm_integration tests
diff --git a/rpython/jit/backend/x86/test/test_stm_integration.py
b/rpython/jit/backend/x86/test/test_stm_integration.py
--- a/rpython/jit/backend/x86/test/test_stm_integration.py
+++ b/rpython/jit/backend/x86/test/test_stm_integration.py
@@ -320,6 +320,7 @@
self.cpu.execute_token(looptoken, sgcref)
self.assert_in(called_on, [sgcref])
+
def test_ptr_eq_fastpath(self):
cpu = self.cpu
cpu.gc_ll_descr.init_nursery(100)
@@ -339,20 +340,28 @@
ConstPtr(s1),
ConstPtr(s2)]
for p1, p2 in itertools.combinations(ps, 2):
- for guard in [None, rop.GUARD_TRUE, rop.GUARD_FALSE]:
+ for guard in [None, rop.GUARD_TRUE, rop.GUARD_FALSE,
+ rop.GUARD_VALUE]:
cpu.gc_ll_descr.clear_lists()
# BUILD OPERATIONS:
i = i0
guarddescr = BasicFailDescr()
finaldescr = BasicFinalDescr()
- operations = [ResOperation(rop.PTR_EQ, [p1, p2], i0)]
- if guard is not None:
- gop = ResOperation(guard, [i0], None,
+ if guard == rop.GUARD_VALUE:
+ gop = ResOperation(rop.GUARD_VALUE, [p1, p2], None,
descr=guarddescr)
gop.setfailargs([])
- operations.append(gop)
+ operations = [gop]
i = i1
+ else:
+ operations = [ResOperation(rop.PTR_EQ, [p1, p2], i0)]
+ if guard is not None:
+ gop = ResOperation(guard, [i0], None,
+ descr=guarddescr)
+ gop.setfailargs([])
+ operations.append(gop)
+ i = i1
# finish must depend on result of ptr_eq if no guard
# is inbetween (otherwise ptr_eq gets deleted)
# if there is a guard, the result of ptr_eq must not
@@ -393,7 +402,7 @@
if guard is not None:
if s1 == s2:
- if guard == rop.GUARD_TRUE:
+ if guard in (rop.GUARD_TRUE, rop.GUARD_VALUE):
assert not guard_failed
else:
assert guard_failed
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit