diff options
Diffstat (limited to 'gcc/longlong.h')
-rw-r--r-- | gcc/longlong.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/longlong.h b/gcc/longlong.h index 6c24564bd3e..38b4c6fb221 100644 --- a/gcc/longlong.h +++ b/gcc/longlong.h @@ -623,12 +623,12 @@ UDItype __umulsidi3 (USItype, USItype); #endif /* __m88000__ */ #if defined (__mips__) && W_TYPE_SIZE == 32 -#define umul_ppmm(w1, w0, u, v) \ - __asm__ ("multu %2,%3" \ - : "=l" ((USItype) (w0)), \ - "=h" ((USItype) (w1)) \ - : "d" ((USItype) (u)), \ - "d" ((USItype) (v))) +#define umul_ppmm(w1, w0, u, v) \ + do { \ + UDItype __x = (UDItype) (USItype) (u) * (USItype) (v); \ + (w1) = (USItype) (__x >> 32); \ + (w0) = (USItype) (__x); \ + } while (0) #define UMUL_TIME 10 #define UDIV_TIME 100 |