[pypy-svn] r65094 - in pypy/branch/pyjitpl5/pypy/jit/backend/x86: . test
arigo at codespeak.net
arigo at codespeak.net
Wed May 6 14:39:56 CEST 2009
Author: arigo
Date: Wed May 6 14:39:55 2009
New Revision: 65094
Modified:
pypy/branch/pyjitpl5/pypy/jit/backend/x86/regalloc.py
pypy/branch/pyjitpl5/pypy/jit/backend/x86/test/test_regalloc2.py
Log:
Test and fix.
Modified: pypy/branch/pyjitpl5/pypy/jit/backend/x86/regalloc.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/x86/regalloc.py (original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/x86/regalloc.py Wed May 6 14:39:55 2009
@@ -1045,7 +1045,7 @@
self.eventually_free_var(tmpvar)
def consider_int_abs_ovf(self, op, guard_op):
- argloc = self.force_allocate_reg(op.args[0], [])
+ argloc = self.make_sure_var_in_reg(op.args[0], [])
tmpvar = TempBox()
tmploc = self.force_allocate_reg(tmpvar, [op.args[0]])
resloc = self.force_allocate_reg(op.result, [op.args[0], tmpvar])
Modified: pypy/branch/pyjitpl5/pypy/jit/backend/x86/test/test_regalloc2.py
==============================================================================
--- pypy/branch/pyjitpl5/pypy/jit/backend/x86/test/test_regalloc2.py (original)
+++ pypy/branch/pyjitpl5/pypy/jit/backend/x86/test/test_regalloc2.py Wed May 6 14:39:55 2009
@@ -283,3 +283,47 @@
assert cpu.get_latest_value_int(18) == 1
assert cpu.get_latest_value_int(19) == -2147483648
assert cpu.get_latest_value_int(20) == 49
+
+def test_bug_2():
+ v1 = BoxInt()
+ v2 = BoxInt()
+ v3 = BoxInt()
+ v4 = BoxInt()
+ v5 = BoxInt()
+ v6 = BoxInt()
+ v7 = BoxInt()
+ v8 = BoxInt()
+ v9 = BoxInt()
+ v10 = BoxInt()
+ v11 = BoxInt()
+ v12 = BoxInt()
+ v13 = BoxInt()
+ v14 = BoxInt()
+ tmp21 = BoxInt()
+ loop = TreeLoop('test')
+ loop.inputargs = [v1, v2, v3, v4, v5, v6, v7, v8, v9, v10]
+ loop.operations = [
+ ResOperation(rop.INT_IS_TRUE, [v4], tmp21),
+ ResOperation(rop.BOOL_NOT, [tmp21], v11),
+ ResOperation(rop.INT_NEG, [v6], v12),
+ ResOperation(rop.UINT_LT, [v10, v10], v13),
+ ResOperation(rop.INT_ABS_OVF, [v5], v14),
+ ResOperation(rop.GUARD_NO_EXCEPTION, [], None),
+ ResOperation(rop.FAIL, [v11, v14], None),
+ ]
+ loop.operations[-2].suboperations = [ResOperation(rop.FAIL, [], None)]
+ cpu = CPU(None, None)
+ cpu.compile_operations(loop)
+ cpu.set_future_value_int(0, 5)
+ cpu.set_future_value_int(1, -3)
+ cpu.set_future_value_int(2, -84)
+ cpu.set_future_value_int(3, 2)
+ cpu.set_future_value_int(4, -12)
+ cpu.set_future_value_int(5, -3)
+ cpu.set_future_value_int(6, 15)
+ cpu.set_future_value_int(7, -17)
+ cpu.set_future_value_int(8, -23)
+ cpu.set_future_value_int(9, 6)
+ cpu.execute_operations(loop)
+ assert cpu.get_latest_value_int(0) == 0
+ assert cpu.get_latest_value_int(1) == 12
More information about the Pypy-commit
mailing list