diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-10-02 20:20:52 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-10-02 20:20:52 +0000 |
commit | 527cd19c3d39288ae170fe09de87c05a27f4e12b (patch) | |
tree | 69fff3a2dca2c69df65eff598d6a963de0a079ac | |
parent | bdc5c59214a9e4bd9a299deead29c04ddf141256 (diff) | |
download | glibc-527cd19c3d39288ae170fe09de87c05a27f4e12b.tar.gz |
Make dbl-64 atan and tan into weak aliases.
This patch converts the dbl-64 implementations of atan and tan into
weak aliases of __atan and __tan, in preparation for making them use
libm_alias_double. Consequent changes are made to the x86_64
multiarch versions wrapping round them (with the dbl-64 functions,
like other such functions, being made not to define their aliases at
all if __atan or __tan are defined as macros by an including file).
Tested for x86_64, and with build-many-glibcs.py.
* sysdeps/ieee754/dbl-64/s_atan.c (atan): Rename to __atan and
define as weak alias of __atan. Do not define any aliases if
[__atan].
[NO_LONG_DOUBLE] (__atanl): Define as strong alias of __atan.
[NO_LONG_DOUBLE] (atanl): Define as weak alias of __atanl.
* sysdeps/ieee754/dbl-64/s_tan.c (tan): Rename to __tan and define
as weak alias of __tan. Do not define any aliases if [__tan].
[NO_LONG_DOUBLE] (__tanl): Define as strong alias of __tan.
[NO_LONG_DOUBLE] (tanl): Define as weak alias of __tanl.
* sysdeps/x86_64/fpu/multiarch/s_atan-avx.c (atan): Rename to
__atan.
* sysdeps/x86_64/fpu/multiarch/s_atan-fma.c (atan): Likewise.
* sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c (atan): Likewise.
* sysdeps/x86_64/fpu/multiarch/s_atan.c (atan): Rename to __atan
and define as weak alias of __atan.
* sysdeps/x86_64/fpu/multiarch/s_tan-avx.c (tan): Rename to
__atan.
* sysdeps/x86_64/fpu/multiarch/s_tan-fma.c (tan): Likewise.
* sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (tan): Likewise.
* sysdeps/x86_64/fpu/multiarch/s_tan.c (tan): Rename to __tan and
define as weak alias of __tan.
-rw-r--r-- | ChangeLog | 24 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_atan.c | 10 | ||||
-rw-r--r-- | sysdeps/ieee754/dbl-64/s_tan.c | 10 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_atan-avx.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_atan-fma.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_atan.c | 5 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_tan-avx.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_tan-fma.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c | 2 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/multiarch/s_tan.c | 5 |
11 files changed, 50 insertions, 16 deletions
@@ -1,3 +1,27 @@ +2017-10-02 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/ieee754/dbl-64/s_atan.c (atan): Rename to __atan and + define as weak alias of __atan. Do not define any aliases if + [__atan]. + [NO_LONG_DOUBLE] (__atanl): Define as strong alias of __atan. + [NO_LONG_DOUBLE] (atanl): Define as weak alias of __atanl. + * sysdeps/ieee754/dbl-64/s_tan.c (tan): Rename to __tan and define + as weak alias of __tan. Do not define any aliases if [__tan]. + [NO_LONG_DOUBLE] (__tanl): Define as strong alias of __tan. + [NO_LONG_DOUBLE] (tanl): Define as weak alias of __tanl. + * sysdeps/x86_64/fpu/multiarch/s_atan-avx.c (atan): Rename to + __atan. + * sysdeps/x86_64/fpu/multiarch/s_atan-fma.c (atan): Likewise. + * sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c (atan): Likewise. + * sysdeps/x86_64/fpu/multiarch/s_atan.c (atan): Rename to __atan + and define as weak alias of __atan. + * sysdeps/x86_64/fpu/multiarch/s_tan-avx.c (tan): Rename to + __atan. + * sysdeps/x86_64/fpu/multiarch/s_tan-fma.c (tan): Likewise. + * sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c (tan): Likewise. + * sysdeps/x86_64/fpu/multiarch/s_tan.c (tan): Rename to __tan and + define as weak alias of __tan. + 2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com> * math/w_lgamma.c: New file. diff --git a/sysdeps/ieee754/dbl-64/s_atan.c b/sysdeps/ieee754/dbl-64/s_atan.c index 3641a35ce1..fdc3bf7e25 100644 --- a/sysdeps/ieee754/dbl-64/s_atan.c +++ b/sysdeps/ieee754/dbl-64/s_atan.c @@ -61,7 +61,7 @@ __signArctan (double x, double y) /* An ultimate atan() routine. Given an IEEE double machine number x, */ /* routine computes the correctly rounded (to nearest) value of atan(x). */ double -atan (double x) +__atan (double x) { double cor, s1, ss1, s2, ss2, t1, t2, t3, t7, t8, t9, t10, u, u2, u3, v, vv, w, ww, y, yy, z, zz; @@ -323,6 +323,10 @@ atanMp (double x, const int pr[]) return y1; /*if impossible to do exact computing */ } -#ifdef NO_LONG_DOUBLE -weak_alias (atan, atanl) +#ifndef __atan +weak_alias (__atan, atan) +# ifdef NO_LONG_DOUBLE +strong_alias (__atan, __atanl) +weak_alias (__atanl, atanl) +# endif #endif diff --git a/sysdeps/ieee754/dbl-64/s_tan.c b/sysdeps/ieee754/dbl-64/s_tan.c index b2a8681a6d..feec826237 100644 --- a/sysdeps/ieee754/dbl-64/s_tan.c +++ b/sysdeps/ieee754/dbl-64/s_tan.c @@ -53,7 +53,7 @@ void __mptan (double, mp_no *, int); double SECTION -tan (double x) +__tan (double x) { #include "utan.h" #include "utan.tbl" @@ -843,6 +843,10 @@ tanMp (double x) return y; } -#ifdef NO_LONG_DOUBLE -weak_alias (tan, tanl) +#ifndef __tan +weak_alias (__tan, tan) +# ifdef NO_LONG_DOUBLE +strong_alias (__tan, __tanl) +weak_alias (__tanl, tanl) +# endif #endif diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan-avx.c b/sysdeps/x86_64/fpu/multiarch/s_atan-avx.c index b5cb9c3a75..41816bfe6c 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_atan-avx.c +++ b/sysdeps/x86_64/fpu/multiarch/s_atan-avx.c @@ -1,4 +1,4 @@ -#define atan __atan_avx +#define __atan __atan_avx #define __add __add_avx #define __dbl_mp __dbl_mp_avx #define __mul __mul_avx diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan-fma.c b/sysdeps/x86_64/fpu/multiarch/s_atan-fma.c index bedb3f2053..363e32bcbd 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_atan-fma.c +++ b/sysdeps/x86_64/fpu/multiarch/s_atan-fma.c @@ -1,4 +1,4 @@ -#define atan __atan_fma +#define __atan __atan_fma #define __add __add_fma #define __dbl_mp __dbl_mp_fma #define __mpatan __mpatan_fma diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c b/sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c index 9e83e6cdab..ad8d3af579 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c +++ b/sysdeps/x86_64/fpu/multiarch/s_atan-fma4.c @@ -1,4 +1,4 @@ -#define atan __atan_fma4 +#define __atan __atan_fma4 #define __add __add_fma4 #define __dbl_mp __dbl_mp_fma4 #define __mpatan __mpatan_fma4 diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c index f81919cbbe..5d864dd4f0 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_atan.c +++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c @@ -21,7 +21,8 @@ extern double __redirect_atan (double); #define SYMBOL_NAME atan #include "ifunc-avx-fma4.h" -libc_ifunc_redirected (__redirect_atan, atan, IFUNC_SELECTOR ()); +libc_ifunc_redirected (__redirect_atan, __atan, IFUNC_SELECTOR ()); +weak_alias (__atan, atan) -#define atan __atan_sse2 +#define __atan __atan_sse2 #include <sysdeps/ieee754/dbl-64/s_atan.c> diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan-avx.c b/sysdeps/x86_64/fpu/multiarch/s_tan-avx.c index 53de5d3c98..5ee29a9a06 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_tan-avx.c +++ b/sysdeps/x86_64/fpu/multiarch/s_tan-avx.c @@ -1,4 +1,4 @@ -#define tan __tan_avx +#define __tan __tan_avx #define __dbl_mp __dbl_mp_avx #define __sub __sub_avx #define SECTION __attribute__ ((section (".text.avx"))) diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan-fma.c b/sysdeps/x86_64/fpu/multiarch/s_tan-fma.c index c85f8bceed..1a1b9d2490 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_tan-fma.c +++ b/sysdeps/x86_64/fpu/multiarch/s_tan-fma.c @@ -1,4 +1,4 @@ -#define tan __tan_fma +#define __tan __tan_fma #define __dbl_mp __dbl_mp_fma #define __mpranred __mpranred_fma #define __mptan __mptan_fma diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c b/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c index a805440b46..e4e9f6cb85 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c +++ b/sysdeps/x86_64/fpu/multiarch/s_tan-fma4.c @@ -1,4 +1,4 @@ -#define tan __tan_fma4 +#define __tan __tan_fma4 #define __dbl_mp __dbl_mp_fma4 #define __mpranred __mpranred_fma4 #define __mptan __mptan_fma4 diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c index 96a73811f3..86377a8766 100644 --- a/sysdeps/x86_64/fpu/multiarch/s_tan.c +++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c @@ -21,7 +21,8 @@ extern double __redirect_tan (double); #define SYMBOL_NAME tan #include "ifunc-avx-fma4.h" -libc_ifunc_redirected (__redirect_tan, tan, IFUNC_SELECTOR ()); +libc_ifunc_redirected (__redirect_tan, __tan, IFUNC_SELECTOR ()); +weak_alias (__tan, tan) -#define tan __tan_sse2 +#define __tan __tan_sse2 #include <sysdeps/ieee754/dbl-64/s_tan.c> |