]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math: Use internal feupdateenv alias on fma
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 25 Aug 2025 16:38:28 +0000 (13:38 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 11 Sep 2025 17:46:07 +0000 (14:46 -0300)
To avoid linknamespace issues on old standards.  It is required
if the fallback fma implementation is used if/when it is also
used internally for other implementation.
Reviewed-by: DJ Delorie <dj@redhat.com>
sysdeps/ieee754/ldbl-128/s_fma.c
sysdeps/ieee754/ldbl-128/s_fmal.c
sysdeps/ieee754/ldbl-96/s_fma.c
sysdeps/ieee754/ldbl-96/s_fmal.c

index 4a941fbecc7386d8fc83c45c0340c3d61512b210..48db3030b618b6e37d2897656f1dc0c9333dc8db 100644 (file)
@@ -56,7 +56,7 @@ __fma (double x, double y, double z)
   u.d = temp + (long double) z;
   if ((u.ieee.mantissa3 & 1) == 0 && u.ieee.exponent != 0x7fff)
     u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0;
-  feupdateenv (&env);
+  __feupdateenv (&env);
   /* And finally truncation with round to nearest.  */
   return (double) u.d;
 #endif /* ! USE_FMA_BUILTIN  */
index 2a39158d0a85eb6abc33cd037decb7a2f72f97f1..7f6cbab402191dd81fc50966e753739f36e70186 100644 (file)
@@ -223,7 +223,7 @@ __fmal (_Float128 x, _Float128 y, _Float128 z)
   /* If the result is an exact zero, ensure it has the correct sign.  */
   if (a1 == 0 && m2 == 0)
     {
-      feupdateenv (&env);
+      __feupdateenv (&env);
       /* Ensure that round-to-nearest value of z + m1 is not reused.  */
       z = math_opt_barrier (z);
       return z + m1;
@@ -237,7 +237,7 @@ __fmal (_Float128 x, _Float128 y, _Float128 z)
     {
       if ((u.ieee.mantissa3 & 1) == 0 && u.ieee.exponent != 0x7fff)
        u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0;
-      feupdateenv (&env);
+      __feupdateenv (&env);
       /* Result is a1 + u.d.  */
       return a1 + u.d;
     }
@@ -245,7 +245,7 @@ __fmal (_Float128 x, _Float128 y, _Float128 z)
     {
       if ((u.ieee.mantissa3 & 1) == 0 && u.ieee.exponent != 0x7fff)
        u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0;
-      feupdateenv (&env);
+      __feupdateenv (&env);
       /* Result is a1 + u.d, scaled up.  */
       return (a1 + u.d) * L(0x1p113);
     }
@@ -257,7 +257,7 @@ __fmal (_Float128 x, _Float128 y, _Float128 z)
       /* Ensure the addition is not scheduled after fetestexcept call.  */
       math_force_eval (v.d);
       int j = fetestexcept (FE_INEXACT) != 0;
-      feupdateenv (&env);
+      __feupdateenv (&env);
       /* Ensure the following computations are performed in default rounding
         mode instead of just reusing the round to zero computation.  */
       asm volatile ("" : "=m" (u) : "m" (u));
index 683af8017d5dd914086c97f60788322292794cad..a0663cb096b04afce6e70afd38ce9934907c6625 100644 (file)
@@ -80,7 +80,7 @@ __fma (double x, double y, double z)
   /* If the result is an exact zero, ensure it has the correct sign.  */
   if (a1 == 0 && m2 == 0)
     {
-      feupdateenv (&env);
+      __feupdateenv (&env);
       /* Ensure that round-to-nearest value of z + m1 is not reused.  */
       z = math_opt_barrier (z);
       return z + m1;
@@ -95,7 +95,7 @@ __fma (double x, double y, double z)
   u.d = a1 + a2;
   if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7fff)
     u.ieee.mantissa1 |= fetestexcept (FE_INEXACT) != 0;
-  feupdateenv (&env);
+  __feupdateenv (&env);
 
   /* Add finally round to double precision.  */
   return u.d;
index 9d8bd548afd21ce7c6387a5382eecb75ced979c6..82a68bcbf73b378cf51ecf1282b4bcc05f0593f3 100644 (file)
@@ -213,7 +213,7 @@ __fmal (long double x, long double y, long double z)
   /* If the result is an exact zero, ensure it has the correct sign.  */
   if (a1 == 0 && m2 == 0)
     {
-      feupdateenv (&env);
+      __feupdateenv (&env);
       /* Ensure that round-to-nearest value of z + m1 is not reused.  */
       z = math_opt_barrier (z);
       return z + m1;
@@ -227,7 +227,7 @@ __fmal (long double x, long double y, long double z)
     {
       if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7fff)
        u.ieee.mantissa1 |= fetestexcept (FE_INEXACT) != 0;
-      feupdateenv (&env);
+      __feupdateenv (&env);
       /* Result is a1 + u.d.  */
       return a1 + u.d;
     }
@@ -235,7 +235,7 @@ __fmal (long double x, long double y, long double z)
     {
       if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7fff)
        u.ieee.mantissa1 |= fetestexcept (FE_INEXACT) != 0;
-      feupdateenv (&env);
+      __feupdateenv (&env);
       /* Result is a1 + u.d, scaled up.  */
       return (a1 + u.d) * 0x1p64L;
     }
@@ -247,7 +247,7 @@ __fmal (long double x, long double y, long double z)
       /* Ensure the addition is not scheduled after fetestexcept call.  */
       math_force_eval (v.d);
       int j = fetestexcept (FE_INEXACT) != 0;
-      feupdateenv (&env);
+      __feupdateenv (&env);
       /* Ensure the following computations are performed in default rounding
         mode instead of just reusing the round to zero computation.  */
       asm volatile ("" : "=m" (u) : "m" (u));