llmuldiv.c (1068B)
1 unsigned long long __ull_rshift(unsigned long long a0, unsigned long long a1) 2 { 3 return a0 >> a1; 4 } 5 unsigned long long __ull_rem(unsigned long long a0, unsigned long long a1) 6 { 7 return a0 % a1; 8 } 9 unsigned long long __ull_div(unsigned long long a0, unsigned long long a1) 10 { 11 return a0 / a1; 12 } 13 14 unsigned long long __ll_lshift(unsigned long long a0, unsigned long long a1) 15 { 16 return a0 << a1; 17 } 18 19 long long __ll_rem(unsigned long long a0, long long a1) 20 { 21 return a0 % a1; 22 } 23 24 long long __ll_div(long long a0, long long a1) 25 { 26 return a0 / a1; 27 } 28 29 unsigned long long __ll_mul(unsigned long long a0, unsigned long long a1) 30 { 31 return a0 * a1; 32 } 33 34 void __ull_divremi(unsigned long long *div, unsigned long long *rem, unsigned long long a2, unsigned short a3) 35 { 36 *div = a2 / a3; 37 *rem = a2 % a3; 38 } 39 long long __ll_mod(long long a0, long long a1) 40 { 41 long long tmp = a0 % a1; 42 if ((tmp < 0 && a1 > 0) || (tmp > 0 && a1 < 0)) 43 { 44 45 tmp += a1; 46 } 47 return tmp; 48 } 49 50 long long __ll_rshift(long long a0, long long a1) 51 { 52 return a0 >> a1; 53 }