Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r65428:ee9c24742973
Date: 2013-07-17 12:32 +0200
http://bitbucket.org/pypy/pypy/changeset/ee9c24742973/

Log:    int_floordiv

diff --git a/pypy/module/__pypy__/interp_intop.py 
b/pypy/module/__pypy__/interp_intop.py
--- a/pypy/module/__pypy__/interp_intop.py
+++ b/pypy/module/__pypy__/interp_intop.py
@@ -1,5 +1,7 @@
 from pypy.interpreter.gateway import unwrap_spec
 from rpython.rlib.rarithmetic import intmask
+from rpython.rtyper.lltypesystem import lltype
+from rpython.rtyper.lltypesystem.lloperation import llop
 
 
 @unwrap_spec(n=int, m=int)
@@ -13,3 +15,7 @@
 @unwrap_spec(n=int, m=int)
 def int_mul(space, n, m):
     return space.wrap(intmask(n * m))
+
+@unwrap_spec(n=int, m=int)
+def int_floordiv(space, n, m):
+    return space.wrap(llop.int_floordiv(lltype.Signed, n, m))
diff --git a/pypy/module/__pypy__/test/test_intop.py 
b/pypy/module/__pypy__/test/test_intop.py
--- a/pypy/module/__pypy__/test/test_intop.py
+++ b/pypy/module/__pypy__/test/test_intop.py
@@ -40,3 +40,13 @@
         assert intop.int_mul(40, -2) == -80
         assert intop.int_mul(-sys.maxint, -sys.maxint) == (
             self.intmask(sys.maxint ** 2))
+
+    def test_int_floordiv(self):
+        import sys
+        from __pypy__ import intop
+        assert intop.int_floordiv(41, 3) == 13
+        assert intop.int_floordiv(41, -3) == -13
+        assert intop.int_floordiv(-41, 3) == -13
+        assert intop.int_floordiv(-41, -3) == 13
+        assert intop.int_floordiv(-sys.maxint, -1) == sys.maxint
+        assert intop.int_floordiv(sys.maxint, -1) == -sys.maxint
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to