diff options
author | Kevin Ryde <user42@zip.com.au> | 2000-12-06 01:15:05 +0100 |
---|---|---|
committer | Kevin Ryde <user42@zip.com.au> | 2000-12-06 01:15:05 +0100 |
commit | c74117d13206ba9c0caf91f316f22da6382e1c2a (patch) | |
tree | 27aca450812323bcb7e569802b6a1afad7e0739c /longlong.h | |
parent | 9228c5533de465bdde24b05c852392880e424eab (diff) | |
download | gmp-c74117d13206ba9c0caf91f316f22da6382e1c2a.tar.gz |
* longlong.h (UDIV_PREINV_ALWAYS): New define, set for alpha and ia64.
Diffstat (limited to 'longlong.h')
-rw-r--r-- | longlong.h | 10 |
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 |