| /* PR middle-end/59743 */ | |
| typedef union { | |
| long all; | |
| struct { | |
| int low; | |
| int high; | |
| } s; | |
| } udwords; | |
| int a, b, c, d; | |
| void __udivmoddi4() { | |
| udwords r; | |
| d = __builtin_clz(0); | |
| r.s.low = 0; | |
| for (; d; --d) { | |
| r.s.high = r.s.high << 1 | r.s.low >> a; | |
| r.s.low = r.s.low << b >> 1; | |
| int s = -r.all; | |
| c = s; | |
| r.all--; | |
| } | |
| } | |