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")
def int_mod_zer(x, y): '''#define OP_INT_MOD_ZER(x,y,r,err) \ if ((y)) { OP_INT_MOD(x,y,r,err); } \ else FAIL_ZER(err, "integer modulo") ''' if y: return llop.int_mod(Signed, x, y) 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")
def int_mod_ovf(x, y): '''#define OP_INT_MOD_OVF(x,y,r,err) \ if ((y) == -1 && (x) < 0 && ((unsigned long)(x) << 1) == 0) \ FAIL_OVF(err, "integer modulo"); \ OP_INT_MOD(x,y,r,err) ''' if y == -1 and x < 0 and (r_uint(x) << 1) == 0: raise OverflowError("integer modulo") else: return llop.int_mod(Signed, x, y)
def _ll_2_int_mod_zer(x, y): if y == 0: raise ZeroDivisionError return llop.int_mod(lltype.Signed, x, y)
def _ll_2_int_mod_ovf(x, y): if x == -sys.maxint - 1 and y == -1: raise OverflowError return llop.int_mod(lltype.Signed, x, y)
def _ll_2_int_mod_ovf_zer(x, y): if y == 0: raise ZeroDivisionError if x == -sys.maxint - 1 and y == -1: raise OverflowError return llop.int_mod(lltype.Signed, x, y)
def do_int_mod(cpu, box1, box2): z = llop.int_mod(lltype.Signed, box1.getint(), box2.getint()) return ConstInt(z)