summaryrefslogtreecommitdiff
path: root/longlong.h
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2000-12-06 01:15:05 +0100
committerKevin Ryde <user42@zip.com.au>2000-12-06 01:15:05 +0100
commitc74117d13206ba9c0caf91f316f22da6382e1c2a (patch)
tree27aca450812323bcb7e569802b6a1afad7e0739c /longlong.h
parent9228c5533de465bdde24b05c852392880e424eab (diff)
downloadgmp-c74117d13206ba9c0caf91f316f22da6382e1c2a.tar.gz
* longlong.h (UDIV_PREINV_ALWAYS): New define, set for alpha and ia64.
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 cbd72cbe6..b7a0a358c 100644
--- a/longlong.h
+++ b/longlong.h
@@ -129,6 +129,7 @@ MA 02111-1307, USA. */
__di = __MPN(invert_limb) (d); \
udiv_qrnnd_preinv (q, r, n1, n0, d, __di); \
} while (0)
+#define UDIV_PREINV_ALWAYS 1
#define UDIV_NEEDS_NORMALIZATION 1
#define UDIV_TIME 220
long __MPN(count_leading_zeros) ();
@@ -186,6 +187,7 @@ extern UDItype __MPN(udiv_qrnnd) _PROTO ((UDItype, UDItype, UDItype, UDItype *))
__di = __MPN(invert_limb) (d); \
udiv_qrnnd_preinv (q, r, n1, n0, d, __di); \
} while (0)
+#define UDIV_PREINV_ALWAYS 1
#define UDIV_NEEDS_NORMALIZATION 1
#endif
#define UDIV_TIME 220
@@ -1013,6 +1015,7 @@ extern USItype __MPN(udiv_qrnnd) _PROTO ((USItype *, USItype, USItype, USItype))
#define umul_ppmm(w1, w0, u, v) \
__asm__ ("umul %2,%3,%1;rd %%y,%0" : "=r" (w1), "=r" (w0) : "r" (u), "r" (v))
#define UMUL_TIME 5
+
#if HAVE_HOST_CPU_supersparc
#define UDIV_TIME 60 /* SuperSPARC timing */
#else
@@ -1028,6 +1031,7 @@ extern USItype __MPN(udiv_qrnnd) _PROTO ((USItype *, USItype, USItype, USItype))
} while (0)
#define UDIV_TIME 25
#endif /* HAVE_HOST_CPU_supersparc */
+
#else /* ! __sparc_v8__ */
#if defined (__sparclite__)
/* This has hardware multiply but not divide. It also has two additional
@@ -1441,6 +1445,12 @@ unsigned char __clz_tab[128];
#define UDIV_NEEDS_NORMALIZATION 0
#endif
+/* Whether udiv_qrnnd is actually implemented with udiv_qrnnd_preinv, and
+ that hence the latter should always be used. */
+#ifndef UDIV_PREINV_ALWAYS
+#define UDIV_PREINV_ALWAYS 0
+#endif
+
/* Give defaults for UMUL_TIME and UDIV_TIME. */
#ifndef UMUL_TIME
#define UMUL_TIME 1