]> git.eshelyaron.com Git - emacs.git/commitdiff
Omit timestamp optimization invalid on 387 FPU
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 18 Mar 2020 21:48:52 +0000 (14:48 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 19 Mar 2020 07:11:15 +0000 (00:11 -0700)
* 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.

src/timefns.c

index 404ce4973b77275a18da2939a46a4afe44f1df66..a9595b5d2391d68567edd2349b78b5d44c95940b 100644 (file)
@@ -611,9 +611,6 @@ frac_to_double (Lisp_Object numerator, Lisp_Object denominator)
   ptrdiff_t ndig = mpz_sizeinbase (*n, FLT_RADIX);
   ptrdiff_t ddig = mpz_sizeinbase (*d, FLT_RADIX);
 
-  if (FASTER_TIMEFNS && ndig <= DBL_MANT_DIG && ddig <= DBL_MANT_DIG)
-    return mpz_get_d (*n) / mpz_get_d (*d);
-
   /* Scale with SCALE when doing integer division.  That is, compute
      (N * FLT_RADIX**SCALE) / D [or, if SCALE is negative, N / (D *
      FLT_RADIX**-SCALE)] as a bignum, convert the bignum to double,