--- zzzz-none-000/linux-2.6.28.10/arch/mips/include/asm/div64.h 2009-05-02 18:54:43.000000000 +0000 +++ puma5-6360-529/linux-2.6.28.10/arch/mips/include/asm/div64.h 2009-11-12 15:24:29.000000000 +0000 @@ -69,11 +69,14 @@ __low = __div; \ __upper = __high; \ \ - if (__high) \ - __asm__("divu $0, %z2, %z3" \ - : "=h" (__upper), "=l" (__high) \ - : "Jr" (__high), "Jr" (__base) \ - : GCC_REG_ACCUM); \ + if (__high) { \ + __asm__("divu $0, %1, %2" \ + : "=x" (__div) \ + : "r" (__high), "r" (__base) \ + : GCC_REG_ACCUM); \ + __upper = __div >> 32; \ + __high = __div; \ + } \ \ __mod = do_div64_32(__low, __upper, __low, __base); \ \