Author: David Schneider <david.schnei...@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) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit