Commit | Line | Data |
---|---|---|
15637ed4 RG |
1 | #include "longlong.h" |
2 | ||
3 | extern void __bdiv (); | |
4 | ||
5 | long long | |
6 | __umoddi3 (u, v) | |
7 | long long u, v; | |
8 | { | |
9 | unsigned long a[2][2], b[2], q[2], r[2]; | |
10 | long_long w; | |
11 | long_long uu, vv; | |
12 | ||
13 | uu.ll = u; | |
14 | vv.ll = v; | |
15 | ||
16 | a[HIGH][HIGH] = 0; | |
17 | a[HIGH][LOW] = 0; | |
18 | a[LOW][HIGH] = uu.s.high; | |
19 | a[LOW][LOW] = uu.s.low; | |
20 | b[HIGH] = vv.s.high; | |
21 | b[LOW] = vv.s.low; | |
22 | ||
23 | __bdiv (a, b, q, r, sizeof a, sizeof b); | |
24 | ||
25 | w.s.high = r[HIGH]; | |
26 | w.s.low = r[LOW]; | |
27 | return w.ll; | |
28 | } |