[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