aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/x86
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/x86')
-rw-r--r--sysdeps/x86/fpu/s_ffma.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sysdeps/x86/fpu/s_ffma.c b/sysdeps/x86/fpu/s_ffma.c
index 95c2dcd7b7..da4bb55f9a 100644
--- a/sysdeps/x86/fpu/s_ffma.c
+++ b/sysdeps/x86/fpu/s_ffma.c
@@ -27,10 +27,14 @@
#include <math-narrow.h>
-#if defined __SSE2_MATH__ && !defined __FP_FAST_FMA
+#ifndef __FP_FAST_FMA
/* Depending on the details of the glibc configuration, fma might use
either SSE or 387 arithmetic; ensure that both parts of the
- floating-point state are handled in the round-to-odd code. */
+ floating-point state are handled in the round-to-odd code. If
+ __FP_FAST_FMA is defined, that implies that the compiler is using
+ SSE floating point and that the fma call will be inlined, so the
+ x86 macros will work with only the SSE state and that is
+ sufficient. */
# undef libc_feholdexcept_setround
# define libc_feholdexcept_setround default_libc_feholdexcept_setround
# undef libc_feupdateenv_test