summaryrefslogtreecommitdiff
path: root/longlong.h
diff options
context:
space:
mode:
authortege <tege@gmplib.org>2000-12-03 03:40:47 +0100
committertege <tege@gmplib.org>2000-12-03 03:40:47 +0100
commit2f4b06db7762c0845988bf7228096eacc48cb68c (patch)
tree852ffbcbeae1c503052b6bdceac412d07ad8166f /longlong.h
parent7e04a307875fae7b0450768763421cb44ac8eb74 (diff)
downloadgmp-2f4b06db7762c0845988bf7228096eacc48cb68c.tar.gz
(CRAYIEEE umul_ppmm): New.
Diffstat (limited to 'longlong.h')
-rw-r--r--longlong.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/longlong.h b/longlong.h
index 2b1fb7a3e..f088740a3 100644
--- a/longlong.h
+++ b/longlong.h
@@ -137,6 +137,16 @@ long __MPN(count_leading_zeros) ();
#endif /* LONGLONG_STANDALONE */
#endif /* __alpha */
+#if defined (_CRAYIEEE) && W_TYPE_SIZE == 64
+#include <intrinsics.h>
+#define umul_ppmm(ph, pl, m0, m1) \
+ do { \
+ UDItype __m0 = (m0), __m1 = (m1); \
+ (ph) = _int_mult_upper (m0, m1); \
+ (pl) = __m0 * __m1; \
+ } while (0)
+#endif
+
#if defined (__hppa) && W_TYPE_SIZE == 64
/* We put the result pointer parameter last here, since it makes passing
of the other parameters more efficient. */