diff options
Diffstat (limited to 'contrib/gcc/longlong.h')
-rw-r--r-- | contrib/gcc/longlong.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/contrib/gcc/longlong.h b/contrib/gcc/longlong.h index 304ee8d..01f8885 100644 --- a/contrib/gcc/longlong.h +++ b/contrib/gcc/longlong.h @@ -584,11 +584,11 @@ UDItype __umulsidi3 (USItype, USItype); #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))) + do { \ + UDItype __x = (UDItype) (USItype) (u) * (USItype) (v); \ + w1 = __x >> 32; \ + w0 = __x; \ + } while (0) #define UMUL_TIME 10 #define UDIV_TIME 100 #endif /* __mips__ */ |