[pypy-svn] r71682 - in pypy/trunk/pypy/jit/metainterp: . test
fijal at codespeak.net
fijal at codespeak.net
Wed Mar 3 01:54:18 CET 2010
Author: fijal
Date: Wed Mar 3 01:54:17 2010
New Revision: 71682
Modified:
pypy/trunk/pypy/jit/metainterp/executor.py
pypy/trunk/pypy/jit/metainterp/pyjitpl.py
pypy/trunk/pypy/jit/metainterp/resoperation.py
pypy/trunk/pypy/jit/metainterp/test/test_basic.py
Log:
implement uint_floordiv
Modified: pypy/trunk/pypy/jit/metainterp/executor.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/executor.py (original)
+++ pypy/trunk/pypy/jit/metainterp/executor.py Wed Mar 3 01:54:17 2010
@@ -31,6 +31,11 @@
z = llop.int_floordiv(lltype.Signed, box1.getint(), box2.getint())
return ConstInt(z)
+def do_uint_floordiv(cpu, box1, box2):
+ z = llop.uint_floordiv(lltype.Unsigned, r_uint(box1.getint()),
+ r_uint(box2.getint()))
+ return ConstInt(intmask(z))
+
def do_int_mod(cpu, box1, box2):
z = llop.int_mod(lltype.Signed, box1.getint(), box2.getint())
return ConstInt(z)
Modified: pypy/trunk/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/pyjitpl.py (original)
+++ pypy/trunk/pypy/jit/metainterp/pyjitpl.py Wed Mar 3 01:54:17 2010
@@ -206,6 +206,7 @@
'int_and', 'int_or', 'int_xor',
'int_rshift', 'int_lshift', 'uint_rshift',
'uint_lt', 'uint_le', 'uint_gt', 'uint_ge',
+ 'uint_floordiv',
'float_add', 'float_sub', 'float_mul', 'float_truediv',
'float_lt', 'float_le', 'float_eq',
'float_ne', 'float_gt', 'float_ge',
Modified: pypy/trunk/pypy/jit/metainterp/resoperation.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/resoperation.py (original)
+++ pypy/trunk/pypy/jit/metainterp/resoperation.py Wed Mar 3 01:54:17 2010
@@ -142,6 +142,7 @@
'INT_SUB/2',
'INT_MUL/2',
'INT_FLOORDIV/2',
+ 'UINT_FLOORDIV/2',
'INT_MOD/2',
'INT_AND/2',
'INT_OR/2',
Modified: pypy/trunk/pypy/jit/metainterp/test/test_basic.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/test/test_basic.py (original)
+++ pypy/trunk/pypy/jit/metainterp/test/test_basic.py Wed Mar 3 01:54:17 2010
@@ -200,6 +200,15 @@
res = self.interp_operations(f, [42])
assert res == 42
+ def test_uint_floordiv(self):
+ from pypy.rlib.rarithmetic import r_uint
+
+ def f(a, b):
+ return a/b
+
+ res = self.interp_operations(f, [r_uint(4), r_uint(3)])
+ assert res == 1
+
def test_direct_call(self):
def g(n):
return n + 2
More information about the Pypy-commit
mailing list