[rfc] fix umul_ppmm() in our libgcc
Adrian Chadd
adrian at freebsd.org
Thu Jun 18 02:57:36 UTC 2015
Ok, so this:
adrian at lucy-11i386:~/work/freebsd/head-embedded-2/src/contrib/gcc %
svn diff longlong.h
Index: longlong.h
===================================================================
--- longlong.h (revision 284394)
+++ longlong.h (working copy)
@@ -584,11 +584,11 @@
#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__ */
?
-a
More information about the freebsd-mips
mailing list