Author: Armin Rigo <ar...@tunes.org> Branch: Changeset: r53598:8290df370d2f Date: 2012-03-14 13:22 -0700 http://bitbucket.org/pypy/pypy/changeset/8290df370d2f/
Log: (agaynor, arigo) Test and fix for setinteriorfield. diff --git a/pypy/jit/metainterp/blackhole.py b/pypy/jit/metainterp/blackhole.py --- a/pypy/jit/metainterp/blackhole.py +++ b/pypy/jit/metainterp/blackhole.py @@ -1185,14 +1185,14 @@ def bhimpl_getinteriorfield_gc_f(cpu, array, index, descr): return cpu.bh_getinteriorfield_gc_f(array, index, descr) - @arguments("cpu", "r", "i", "d", "i") - def bhimpl_setinteriorfield_gc_i(cpu, array, index, descr, value): + @arguments("cpu", "r", "i", "i", "d") + def bhimpl_setinteriorfield_gc_i(cpu, array, index, value, descr): cpu.bh_setinteriorfield_gc_i(array, index, descr, value) - @arguments("cpu", "r", "i", "d", "r") - def bhimpl_setinteriorfield_gc_r(cpu, array, index, descr, value): + @arguments("cpu", "r", "i", "r", "d") + def bhimpl_setinteriorfield_gc_r(cpu, array, index, value, descr): cpu.bh_setinteriorfield_gc_r(array, index, descr, value) - @arguments("cpu", "r", "i", "d", "f") - def bhimpl_setinteriorfield_gc_f(cpu, array, index, descr, value): + @arguments("cpu", "r", "i", "f", "d") + def bhimpl_setinteriorfield_gc_f(cpu, array, index, value, descr): cpu.bh_setinteriorfield_gc_f(array, index, descr, value) @arguments("cpu", "r", "d", returns="i") diff --git a/pypy/jit/metainterp/test/test_ajit.py b/pypy/jit/metainterp/test/test_ajit.py --- a/pypy/jit/metainterp/test/test_ajit.py +++ b/pypy/jit/metainterp/test/test_ajit.py @@ -3784,6 +3784,15 @@ assert res == 11 * 12 * 13 self.check_operations_history(int_add=3, int_mul=2) + def test_setinteriorfield(self): + A = lltype.GcArray(lltype.Struct('S', ('x', lltype.Signed))) + a = lltype.malloc(A, 5, immortal=True) + def g(n): + a[n].x = n + 2 + return a[n].x + res = self.interp_operations(g, [1]) + assert res == 3 + class TestLLtype(BaseLLtypeTests, LLJitMixin): def test_tagged(self): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit