[pypy-svn] pypy 32ptr-on-64bit: Test the call handling too.
arigo
commits-noreply at bitbucket.org
Sun Apr 17 11:50:50 CEST 2011
Author: Armin Rigo <arigo at tunes.org>
Branch: 32ptr-on-64bit
Changeset: r43427:9542bd1acfa1
Date: 2011-04-17 02:48 -0700
http://bitbucket.org/pypy/pypy/changeset/9542bd1acfa1/
Log: Test the call handling too.
diff --git a/pypy/jit/backend/llsupport/test/test_gc.py b/pypy/jit/backend/llsupport/test/test_gc.py
--- a/pypy/jit/backend/llsupport/test/test_gc.py
+++ b/pypy/jit/backend/llsupport/test/test_gc.py
@@ -708,5 +708,50 @@
self.gc_ll_descr.rewrite_assembler(self.fake_cpu, ops.operations)
equaloplists(ops.operations, expected.operations)
+ def test_rewrite_assembler_hidden_callarg(self):
+ cdescr = get_call_descr(self.gc_ll_descr, [llmemory.HiddenGcRef32],
+ lltype.Void)
+ ops = parse("""
+ [p0]
+ call(100, p0, descr=cdescr)
+ call_assembler(101, p0, descr=cdescr)
+ call_may_force(102, p0, descr=cdescr)
+ jump()
+ """, namespace=locals())
+ expected = parse("""
+ [p0]
+ i0 = hide_into_ptr32(p0)
+ call(100, i0, descr=cdescr)
+ i1 = hide_into_ptr32(p0)
+ call_assembler(101, i1, descr=cdescr)
+ i2 = hide_into_ptr32(p0)
+ call_may_force(102, i2, descr=cdescr)
+ jump()
+ """, namespace=locals())
+ self.gc_ll_descr.rewrite_assembler(self.fake_cpu, ops.operations)
+ equaloplists(ops.operations, expected.operations)
+
+ def test_rewrite_assembler_hidden_callresult(self):
+ cdescr = get_call_descr(self.gc_ll_descr, [], llmemory.HiddenGcRef32)
+ ops = parse("""
+ []
+ p0 = call(100, descr=cdescr)
+ p1 = call_assembler(101, descr=cdescr)
+ p2 = call_may_force(102, descr=cdescr)
+ jump()
+ """, namespace=locals())
+ expected = parse("""
+ []
+ i0 = call(100, descr=cdescr)
+ p0 = show_from_ptr32(i0)
+ i1 = call_assembler(101, descr=cdescr)
+ p1 = show_from_ptr32(i1)
+ i2 = call_may_force(102, descr=cdescr)
+ p2 = show_from_ptr32(i2)
+ jump()
+ """, namespace=locals())
+ self.gc_ll_descr.rewrite_assembler(self.fake_cpu, ops.operations)
+ equaloplists(ops.operations, expected.operations)
+
class TestFrameworkMiniMark(TestFramework):
gc = 'minimark'
More information about the Pypy-commit
mailing list