summary refs log tree commit diff
path: root/sysdeps/ieee754
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2022-05-31 13:09:38 +0200
committerAndreas Schwab <schwab@suse.de>2022-06-01 10:29:52 +0200
commitdc1e5eeb25c4bcb1cc0c883a2d67cf93eb252478 (patch)
tree4064d9da2fa13bcacbf498fe6de9709bfbd754a7 /sysdeps/ieee754
parentd976d44a89ab0e4e8bd077f7063030e2e04975aa (diff)
downloadglibc-dc1e5eeb25c4bcb1cc0c883a2d67cf93eb252478.tar.gz
glibc-dc1e5eeb25c4bcb1cc0c883a2d67cf93eb252478.tar.xz
glibc-dc1e5eeb25c4bcb1cc0c883a2d67cf93eb252478.zip
x86_64: Optimize sincos where sin/cos is optimized (bug 29193)
The compiler may substitute calls to sin or cos with calls to sincos, thus
we should have the same optimized implementations for sincos.  The
optimized implementations may produce results that differ, that also makes
sure that the sincos call aggrees with the sin and cos calls.
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r--sysdeps/ieee754/dbl-64/s_sincos.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/ieee754/dbl-64/s_sincos.c b/sysdeps/ieee754/dbl-64/s_sincos.c
index 12c3021e66..890c137ebb 100644
--- a/sysdeps/ieee754/dbl-64/s_sincos.c
+++ b/sysdeps/ieee754/dbl-64/s_sincos.c
@@ -24,10 +24,15 @@
 #include <math-underflow.h>
 #include <libm-alias-double.h>
 
+#ifndef SECTION
+# define SECTION
+#endif
+
 #define IN_SINCOS
 #include "s_sin.c"
 
 void
+SECTION
 __sincos (double x, double *sinx, double *cosx)
 {
   mynumber u;
@@ -100,4 +105,6 @@ __sincos (double x, double *sinx, double *cosx)
 
   *sinx = *cosx = x / x;
 }
+#ifndef __sincos
 libm_alias_double (__sincos, sincos)
+#endif