diff options
| author | Paul Eggert | 2020-03-18 14:48:52 -0700 |
|---|---|---|
| committer | Paul Eggert | 2020-03-19 00:11:15 -0700 |
| commit | efb5115ba29d75e1227e36da3d92dc2f5c5b6257 (patch) | |
| tree | 3fe22875d08ff20630cdfea35c7018f9eccccd84 /src | |
| parent | 64d9b4cd762cd39749b899343cb4878e5998a170 (diff) | |
| download | emacs-efb5115ba29d75e1227e36da3d92dc2f5c5b6257.tar.gz emacs-efb5115ba29d75e1227e36da3d92dc2f5c5b6257.zip | |
Omit timestamp optimization invalid on 387 FPU
* src/timefns.c (frac_to_double): Omit optimization that is
invalid on machines with excess precision (e.g., gcc x86 with 387
FPU), because it double-rounds. Found via ‘gcc -m32’ on x86-64.
Diffstat (limited to 'src')
| -rw-r--r-- | src/timefns.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/src/timefns.c b/src/timefns.c index 404ce4973b7..a9595b5d239 100644 --- a/src/timefns.c +++ b/src/timefns.c | |||
| @@ -611,9 +611,6 @@ frac_to_double (Lisp_Object numerator, Lisp_Object denominator) | |||
| 611 | ptrdiff_t ndig = mpz_sizeinbase (*n, FLT_RADIX); | 611 | ptrdiff_t ndig = mpz_sizeinbase (*n, FLT_RADIX); |
| 612 | ptrdiff_t ddig = mpz_sizeinbase (*d, FLT_RADIX); | 612 | ptrdiff_t ddig = mpz_sizeinbase (*d, FLT_RADIX); |
| 613 | 613 | ||
| 614 | if (FASTER_TIMEFNS && ndig <= DBL_MANT_DIG && ddig <= DBL_MANT_DIG) | ||
| 615 | return mpz_get_d (*n) / mpz_get_d (*d); | ||
| 616 | |||
| 617 | /* Scale with SCALE when doing integer division. That is, compute | 614 | /* Scale with SCALE when doing integer division. That is, compute |
| 618 | (N * FLT_RADIX**SCALE) / D [or, if SCALE is negative, N / (D * | 615 | (N * FLT_RADIX**SCALE) / D [or, if SCALE is negative, N / (D * |
| 619 | FLT_RADIX**-SCALE)] as a bignum, convert the bignum to double, | 616 | FLT_RADIX**-SCALE)] as a bignum, convert the bignum to double, |