[pypy-svn] r48248 - in pypy/dist/pypy: rpython/raisingops translator/llvm/test
santagada at codespeak.net
santagada at codespeak.net
Fri Nov 2 06:37:13 CET 2007
Author: santagada
Date: Fri Nov 2 06:37:12 2007
New Revision: 48248
Added:
pypy/dist/pypy/translator/llvm/test/test_rconstantdict.py
Modified:
pypy/dist/pypy/rpython/raisingops/raisingops.py
pypy/dist/pypy/translator/llvm/test/test_exception.py
Log:
Modified: pypy/dist/pypy/rpython/raisingops/raisingops.py
==============================================================================
--- pypy/dist/pypy/rpython/raisingops/raisingops.py (original)
+++ pypy/dist/pypy/rpython/raisingops/raisingops.py Fri Nov 2 06:37:12 2007
@@ -1,7 +1,8 @@
import sys
from pypy.rlib.rarithmetic import r_longlong, r_uint, intmask
from pypy.rpython.lltypesystem.lloperation import llop
-from pypy.rpython.lltypesystem.lltype import Signed
+from pypy.rpython.lltypesystem.lltype import Signed, SignedLongLong, \
+ UnsignedLongLong
#XXX original SIGNED_RIGHT_SHIFT_ZERO_FILLS not taken into account
#XXX assuming HAVE_LONG_LONG (int_mul_ovf)
@@ -33,6 +34,27 @@
else:
raise ZeroDivisionError("unsigned integer division")
+def llong_floordiv_zer(x, y):
+ '''#define OP_LLONG_FLOORDIV_ZER(x,y,r) \
+ if ((y)) { OP_LLONG_FLOORDIV(x,y,r); } \
+ else FAIL_ZER("integer division")
+ '''
+ if y:
+ return llop.llong_floordiv(SignedLongLong, x, y)
+ else:
+ raise ZeroDivisionError("integer division")
+
+def ullong_floordiv_zer(x, y):
+ '''#define OP_ULLONG_FLOORDIV_ZER(x,y,r) \
+ if ((y)) { OP_ULLONG_FLOORDIV(x,y,r); } \
+ else FAIL_ZER("unsigned integer division")
+ '''
+ if y:
+ return llop.llong_floordiv(UnsignedLongLong, x, y)
+ else:
+ raise ZeroDivisionError("unsigned integer division")
+
+
def int_neg_ovf(x):
if x == LONG_MIN:
raise OverflowError("integer negate")
@@ -199,6 +221,16 @@
else:
raise ZeroDivisionError("integer modulo")
+def llong_mod_zer(x, y):
+ '''#define OP_LLONG_MOD_ZER(x,y,r) \
+ if ((y)) { OP_LLONG_MOD(x,y,r); } \
+ else FAIL_ZER("integer modulo")
+ '''
+ if y:
+ return llop.int_mod(SignedLongLong, x, y)
+ else:
+ raise ZeroDivisionError("integer modulo")
+
# Helpers...
def _Py_ARITHMETIC_RIGHT_SHIFT(i, j):
Modified: pypy/dist/pypy/translator/llvm/test/test_exception.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/test/test_exception.py (original)
+++ pypy/dist/pypy/translator/llvm/test/test_exception.py Fri Nov 2 06:37:12 2007
@@ -3,9 +3,12 @@
import py
from pypy.translator.test.snippet import try_raise_choose
from pypy.rlib.rarithmetic import r_uint, ovfcheck, ovfcheck_lshift
-
+from pypy.rpython.test.test_exception import BaseTestException
from pypy.translator.llvm.test.runtest import *
+class TestLLVMException(LLVMTest, BaseTestException):
+ pass
+
class TestException(Exception):
pass
Added: pypy/dist/pypy/translator/llvm/test/test_rconstantdict.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/translator/llvm/test/test_rconstantdict.py Fri Nov 2 06:37:12 2007
@@ -0,0 +1,6 @@
+import py
+from pypy.rpython.test.test_rconstantdict import BaseTestRconstantdict
+from pypy.translator.llvm.test.runtest import *
+
+class TestLLVMRconstantdict(LLVMTest, BaseTestRconstantdict):
+ pass
More information about the Pypy-commit
mailing list