]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Use libm_alias_double for x86_64.
authorJoseph Myers <joseph@codesourcery.com>
Wed, 29 Nov 2017 19:01:21 +0000 (19:01 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 29 Nov 2017 19:01:21 +0000 (19:01 +0000)
Continuing the preparation for additional _FloatN / _FloatNx function
aliases, this patch makes x86_64 libm function implementations use
libm_alias_double to define function aliases.

Tested with the glibc testsuite for x86_64, and tested with
build-many-glibcs.py for all its x86_64 configurations that installed
stripped shared libraries are unchanged by the patch.

* sysdeps/x86_64/fpu/multiarch/s_atan.c: Include
<libm-alias-double.h>.
(atan): Define using libm_alias_double.
* sysdeps/x86_64/fpu/multiarch/s_ceil.c: Include
<libm-alias-double.h>.
(ceil): Define using libm_alias_double.
* sysdeps/x86_64/fpu/multiarch/s_floor.c: Include
<libm-alias-double.h>.
(floor): Define using libm_alias_double.
* sysdeps/x86_64/fpu/multiarch/s_fma.c: Include
<libm-alias-double.h>.
(fma): Define using libm_alias_double.
* sysdeps/x86_64/fpu/multiarch/s_nearbyint.c: Include
<libm-alias-double.h>.
(nearbyint): Define using libm_alias_double.
* sysdeps/x86_64/fpu/multiarch/s_rint.c: Include
<libm-alias-double.h>.
(rint): Define using libm_alias_double.
* sysdeps/x86_64/fpu/multiarch/s_sin.c: Include
<libm-alias-double.h>.
(sin): Define using libm_alias_double.
(cos): Likewise.
* sysdeps/x86_64/fpu/multiarch/s_tan.c: Include
<libm-alias-double.h>.
(tan): Define using libm_alias_double.
* sysdeps/x86_64/fpu/multiarch/s_trunc.c: Include
<libm-alias-double.h>.
(trunc): Define using libm_alias_double.
* sysdeps/x86_64/fpu/s_copysign.S: Include <libm-alias-double.h>.
(copysign): Define using libm_alias_double.
* sysdeps/x86_64/fpu/s_fabs.c: Include <libm-alias-double.h>.
(fabs): Define using libm_alias_double.
* sysdeps/x86_64/fpu/s_fmax.S: Include <libm-alias-double.h>.
(fmax): Define using libm_alias_double.
* sysdeps/x86_64/fpu/s_fmin.S: Include <libm-alias-double.h>.
(fmin): Define using libm_alias_double.
* sysdeps/x86_64/fpu/s_llrint.S: Include <libm-alias-double.h>.
(llrint): Define using libm_alias_double.
[!__ILP32__] (lrint): Likewise.
* sysdeps/x86_64/x32/fpu/s_lrint.S: Include <libm-alias-double.h>.
(lrint): Define using libm_alias_double.

16 files changed:
ChangeLog
sysdeps/x86_64/fpu/multiarch/s_atan.c
sysdeps/x86_64/fpu/multiarch/s_ceil.c
sysdeps/x86_64/fpu/multiarch/s_floor.c
sysdeps/x86_64/fpu/multiarch/s_fma.c
sysdeps/x86_64/fpu/multiarch/s_nearbyint.c
sysdeps/x86_64/fpu/multiarch/s_rint.c
sysdeps/x86_64/fpu/multiarch/s_sin.c
sysdeps/x86_64/fpu/multiarch/s_tan.c
sysdeps/x86_64/fpu/multiarch/s_trunc.c
sysdeps/x86_64/fpu/s_copysign.S
sysdeps/x86_64/fpu/s_fabs.c
sysdeps/x86_64/fpu/s_fmax.S
sysdeps/x86_64/fpu/s_fmin.S
sysdeps/x86_64/fpu/s_llrint.S
sysdeps/x86_64/x32/fpu/s_lrint.S

index 87a1d48dca35a522ca651e684fcf5c0e787aa011..0cd4b5f1bf5a3e9a2e4a9bf3f71da42ac277d35e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,47 @@
+2017-11-29  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/x86_64/fpu/multiarch/s_atan.c: Include
+       <libm-alias-double.h>.
+       (atan): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/multiarch/s_ceil.c: Include
+       <libm-alias-double.h>.
+       (ceil): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/multiarch/s_floor.c: Include
+       <libm-alias-double.h>.
+       (floor): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/multiarch/s_fma.c: Include
+       <libm-alias-double.h>.
+       (fma): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/multiarch/s_nearbyint.c: Include
+       <libm-alias-double.h>.
+       (nearbyint): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/multiarch/s_rint.c: Include
+       <libm-alias-double.h>.
+       (rint): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/multiarch/s_sin.c: Include
+       <libm-alias-double.h>.
+       (sin): Define using libm_alias_double.
+       (cos): Likewise.
+       * sysdeps/x86_64/fpu/multiarch/s_tan.c: Include
+       <libm-alias-double.h>.
+       (tan): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/multiarch/s_trunc.c: Include
+       <libm-alias-double.h>.
+       (trunc): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/s_copysign.S: Include <libm-alias-double.h>.
+       (copysign): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/s_fabs.c: Include <libm-alias-double.h>.
+       (fabs): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/s_fmax.S: Include <libm-alias-double.h>.
+       (fmax): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/s_fmin.S: Include <libm-alias-double.h>.
+       (fmin): Define using libm_alias_double.
+       * sysdeps/x86_64/fpu/s_llrint.S: Include <libm-alias-double.h>.
+       (llrint): Define using libm_alias_double.
+       [!__ILP32__] (lrint): Likewise.
+       * sysdeps/x86_64/x32/fpu/s_lrint.S: Include <libm-alias-double.h>.
+       (lrint): Define using libm_alias_double.
+
 2017-11-29  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
        * sysdeps/sparc/sparc64/fpu/multiarch/Makefile
index 5d864dd4f0822fc3076ced7c21c3c5bff7721cb8..a65b94e2c817c97733ee7aaeef94270525ec54cb 100644 (file)
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <libm-alias-double.h>
+
 extern double __redirect_atan (double);
 
 #define SYMBOL_NAME atan
 #include "ifunc-avx-fma4.h"
 
 libc_ifunc_redirected (__redirect_atan, __atan, IFUNC_SELECTOR ());
-weak_alias (__atan, atan)
+libm_alias_double (__atan, atan)
 
 #define __atan __atan_sse2
 #include <sysdeps/ieee754/dbl-64/s_atan.c>
index 2c01957963453395d30103d4d8178a4238feda6e..e9b1b7ba67717e1c826d6d922b65b1c6a83a803c 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <libm-alias-double.h>
+
 #define ceil __redirect_ceil
 #define __ceil __redirect___ceil
 #include <math.h>
@@ -26,4 +28,4 @@
 #include "ifunc-sse4_1.h"
 
 libc_ifunc_redirected (__redirect_ceil, __ceil, IFUNC_SELECTOR ());
-weak_alias (__ceil, ceil)
+libm_alias_double (__ceil, ceil)
index 3dd0f81da5379d582c1f6fdfe9ba45764a0aeb79..a692578ea41e531125d9eb25bdab9e0f5725d2a0 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <libm-alias-double.h>
+
 #define floor __redirect_floor
 #define __floor __redirect___floor
 #include <math.h>
@@ -26,4 +28,4 @@
 #include "ifunc-sse4_1.h"
 
 libc_ifunc_redirected (__redirect_floor, __floor, IFUNC_SELECTOR ());
-weak_alias (__floor, floor)
+libm_alias_double (__floor, floor)
index 3ac4fed6605de6f260547ace1a5cbbdb09882d64..00528256a3f71469b04f81c0ae6b20b4c988c3b8 100644 (file)
@@ -20,6 +20,7 @@
 #include <config.h>
 #include <math.h>
 #include <init-arch.h>
+#include <libm-alias-double.h>
 
 extern double __fma_sse2 (double x, double y, double z) attribute_hidden;
 
@@ -43,7 +44,7 @@ __fma_fma4 (double x, double y, double z)
 libm_ifunc (__fma, HAS_ARCH_FEATURE (FMA_Usable)
            ? __fma_fma3 : (HAS_ARCH_FEATURE (FMA4_Usable)
                            ? __fma_fma4 : __fma_sse2));
-weak_alias (__fma, fma)
+libm_alias_double (__fma, fma)
 
 #define __fma __fma_sse2
 
index 05579c66eae15e47127d0c275bb79fe28452ad0a..b2c7b3607d4ff00a75c3345655aae4c017c4d3b1 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <libm-alias-double.h>
+
 #define nearbyint __redirect_nearbyint
 #define __nearbyint __redirect___nearbyint
 #include <math.h>
@@ -27,4 +29,4 @@
 
 libc_ifunc_redirected (__redirect_nearbyint, __nearbyint,
                       IFUNC_SELECTOR ());
-weak_alias (__nearbyint, nearbyint)
+libm_alias_double (__nearbyint, nearbyint)
index ad44e7cf8c0f5c5fb931fbe91cd307c86d1c444f..95e377f9077a461c8b041f31d50800d1bd3da129 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <libm-alias-double.h>
+
 #define rint __redirect_rint
 #define __rint __redirect___rint
 #include <math.h>
@@ -26,4 +28,4 @@
 #include "ifunc-sse4_1.h"
 
 libc_ifunc_redirected (__redirect_rint, __rint, IFUNC_SELECTOR ());
-weak_alias (__rint, rint)
+libm_alias_double (__rint, rint)
index eafc06374f2bd43d1b1bddc981efcd5335f7f5e2..9f1e05b6f2f51bd96c6219293601eaa85d02ed8f 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <libm-alias-double.h>
+
 extern double __redirect_sin (double);
 extern double __redirect_cos (double);
 
@@ -23,14 +25,14 @@ extern double __redirect_cos (double);
 #include "ifunc-avx-fma4.h"
 
 libc_ifunc_redirected (__redirect_sin, __sin, IFUNC_SELECTOR ());
-weak_alias (__sin, sin)
+libm_alias_double (__sin, sin)
 
 #undef SYMBOL_NAME
 #define SYMBOL_NAME cos
 #include "ifunc-avx-fma4.h"
 
 libc_ifunc_redirected (__redirect_cos, __cos, IFUNC_SELECTOR ());
-weak_alias (__cos, cos)
+libm_alias_double (__cos, cos)
 
 #define __cos __cos_sse2
 #define __sin __sin_sse2
index 86377a87665c100f36f3c0f54aa1e63ca9a93690..3eb11274d812997bd77f61af5ec119ed394549d5 100644 (file)
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <libm-alias-double.h>
+
 extern double __redirect_tan (double);
 
 #define SYMBOL_NAME tan
 #include "ifunc-avx-fma4.h"
 
 libc_ifunc_redirected (__redirect_tan, __tan, IFUNC_SELECTOR ());
-weak_alias (__tan, tan)
+libm_alias_double (__tan, tan)
 
 #define __tan __tan_sse2
 #include <sysdeps/ieee754/dbl-64/s_tan.c>
index fb27fc3ec9961408e3ca0d637f103eb897d0c54d..6b35c7b7b6b0a27ba6e3b4186a358f35d9d00927 100644 (file)
@@ -16,6 +16,8 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#include <libm-alias-double.h>
+
 #define trunc __redirect_trunc
 #define __trunc __redirect___trunc
 #include <math.h>
@@ -26,4 +28,4 @@
 #include "ifunc-sse4_1.h"
 
 libc_ifunc_redirected (__redirect_trunc, __trunc, IFUNC_SELECTOR ());
-weak_alias (__trunc, trunc)
+libm_alias_double (__trunc, trunc)
index 8939dffd999ea20d978b947f0b162548a45085a6..45729cf132acd00b7d61a869fc70799670284d2c 100644 (file)
@@ -18,6 +18,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <machine/asm.h>
+#include <libm-alias-double.h>
 
        .section .rodata.cst16,"aM",@progbits,16
 
@@ -47,4 +48,4 @@ ENTRY(__copysign)
        ret
 END (__copysign)
 
-weak_alias (__copysign, copysign)
+libm_alias_double (__copysign, copysign)
index f5d3ee87e9a5ef87c87eaa3f73d2734099cb347d..313183db850b109a3c21dc05e143e66ea1b1e4e7 100644 (file)
    <http://www.gnu.org/licenses/>.  */
 
 #include <math.h>
+#include <libm-alias-double.h>
 
 double
 __fabs (double x)
 {
   return __builtin_fabs (x);
 }
-weak_alias (__fabs, fabs)
+libm_alias_double (__fabs, fabs)
index f93c9f93712d9233e253d501112a987d77f8ac6b..08027bd4a811cfb6462f130e8928a1d053f6bfb0 100644 (file)
@@ -18,6 +18,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <libm-alias-double.h>
 
        .text
 ENTRY(__fmax)
@@ -49,4 +50,4 @@ ENTRY(__fmax)
 
 2:     ret
 END(__fmax)
-weak_alias (__fmax, fmax)
+libm_alias_double (__fmax, fmax)
index 718bf489df84c88db302fae056db92abbc064556..3d11bf3bafe20631753a66dbbad9a9b8aca97ef6 100644 (file)
@@ -18,6 +18,7 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <libm-alias-double.h>
 
        .text
 ENTRY(__fmin)
@@ -49,4 +50,4 @@ ENTRY(__fmin)
 
 2:     ret
 END(__fmin)
-weak_alias (__fmin, fmin)
+libm_alias_double (__fmin, fmin)
index af7bbce585d229e7bab9bd5147c72c78915bc9c9..b5272ac586ab77ad38cf66e4eba2587b7c769131 100644 (file)
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <libm-alias-double.h>
 
        .text
 ENTRY(__llrint)
        cvtsd2si %xmm0,%rax
        ret
 END(__llrint)
-weak_alias (__llrint, llrint)
+libm_alias_double (__llrint, llrint)
 #ifndef __ILP32__
 strong_alias (__llrint, __lrint)
-weak_alias (__llrint, lrint)
+libm_alias_double (__llrint, lrint)
 #endif
index 86d258c192f319e3b80079602ede40b44ea2ef8b..373351556b7e90414cac16f9ee8ca5d73471c853 100644 (file)
    <http://www.gnu.org/licenses/>.  */
 
 #include <sysdep.h>
+#include <libm-alias-double.h>
 
        .text
 ENTRY(__lrint)
        cvtsd2si %xmm0,%eax
        ret
 END(__lrint)
-weak_alias (__lrint, lrint)
+libm_alias_double (__lrint, lrint)