MIPS: Avoid handcoded DIVU in `__div64_32' altogether
[linux-2.6-block.git] / arch / mips / include / asm / div64.h
index a882a7bdf63e60bf798bfbd8bbd2f1bb39ffdabc..ceece76fc971adb2c7fbaf9697ce77cbbbc76a86 100644 (file)
@@ -58,7 +58,6 @@
 
 #define __div64_32(n, base) ({                                         \
        unsigned long __upper, __low, __high, __radix;                  \
-       unsigned long long __modquot;                                   \
        unsigned long long __quot;                                      \
        unsigned long long __div;                                       \
        unsigned long __mod;                                            \
                __upper = __high;                                       \
                __high = 0;                                             \
        } else {                                                        \
-               __asm__("divu   $0, %z1, %z2"                           \
-               : "=x" (__modquot)                                      \
-               : "Jr" (__high), "Jr" (__radix));                       \
-               __upper = __modquot >> 32;                              \
-               __high = __modquot;                                     \
+               __upper = __high % __radix;                             \
+               __high /= __radix;                                      \
        }                                                               \
                                                                        \
        __mod = do_div64_32(__low, __upper, __low, __radix);            \