[pypy-commit] pypy arm-backend-2: Import test from ppc backend
bivab
noreply at buildbot.pypy.org
Thu Jan 12 15:32:13 CET 2012
Author: David Schneider <david.schneider at picle.org>
Branch: arm-backend-2
Changeset: r51278:7606d3ea9b4d
Date: 2012-01-12 15:31 +0100
http://bitbucket.org/pypy/pypy/changeset/7606d3ea9b4d/
Log: Import test from ppc backend
diff --git a/pypy/jit/backend/arm/test/test_runner.py b/pypy/jit/backend/arm/test/test_runner.py
--- a/pypy/jit/backend/arm/test/test_runner.py
+++ b/pypy/jit/backend/arm/test/test_runner.py
@@ -175,3 +175,33 @@
res = self.execute_operation(rop.GETFIELD_GC, [t_box],
'float', descr=floatdescr)
assert res.getfloat() == -3.6
+
+ def test_compile_loop_many_int_args(self):
+ for numargs in range(2, 30):
+ for _ in range(numargs):
+ self.cpu.reserve_some_free_fail_descr_number()
+ ops = []
+ arglist = "[%s]\n" % ", ".join(["i%d" % i for i in range(numargs)])
+ ops.append(arglist)
+
+ arg1 = 0
+ arg2 = 1
+ res = numargs
+ for i in range(numargs - 1):
+ op = "i%d = int_add(i%d, i%d)\n" % (res, arg1, arg2)
+ arg1 = res
+ res += 1
+ arg2 += 1
+ ops.append(op)
+ ops.append("finish(i%d)" % (res - 1))
+
+ ops = "".join(ops)
+ loop = parse(ops)
+ looptoken = JitCellToken()
+ done_number = self.cpu.get_fail_descr_number(loop.operations[-1].getdescr())
+ self.cpu.compile_loop(loop.inputargs, loop.operations, looptoken)
+ ARGS = [lltype.Signed] * numargs
+ RES = lltype.Signed
+ args = [i+1 for i in range(numargs)]
+ res = self.cpu.execute_token(looptoken, *args)
+ assert self.cpu.get_latest_value_int(0) == sum(args)
More information about the pypy-commit
mailing list