12345678910111213141516171819202122232425262728293031 |
- #include "libgcc.h"
- u32 __udivmodsi4(u32 num, u32 den, u32 * rem_p)
- {
- u32 quot = 0, qbit = 1;
- if (den == 0) {
- BUG();
- }
- /* Left-justify denominator and count shift */
- while ((s32) den >= 0) {
- den <<= 1;
- qbit <<= 1;
- }
- while (qbit) {
- if (den <= num) {
- num -= den;
- quot += qbit;
- }
- den >>= 1;
- qbit >>= 1;
- }
- if (rem_p)
- *rem_p = num;
- return quot;
- }
- EXPORT_SYMBOL(__udivmodsi4);
|