]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
sparc: Remove ununsed ifunc assembly macros
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 13 Oct 2017 16:47:36 +0000 (13:47 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 1 Dec 2017 17:48:40 +0000 (15:48 -0200)
Now that all SPARC ifunc converted to C implementation there is no need
for both C and assembly macros.  This patch removes the assembly ones.

Checked on sparcv9-linux-gnu and sparc64-linux-gnu.

* sysdeps/sparc/sparc-ifunc.h (SPARC_ASM_IFUNC_DFLT,
SPARC_ASM_IFUNC1, SPARC_ASM_IFUNC2, SET, SPARC_ASM_VIS2_IFUNC,
SPARC_ASM_VIS3_IFUNC, SPARC_ASM_VIS3_VIS2_IFUNC): Remove macros.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
ChangeLog
sysdeps/sparc/sparc-ifunc.h

index 27d267c5ed9fec9d13b4183185c07f419591118d..1b666c7ca48d596e28d2a27bfa388dcdc84125c3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2017-12-01  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
+       * sysdeps/sparc/sparc-ifunc.h (SPARC_ASM_IFUNC_DFLT,
+       SPARC_ASM_IFUNC1, SPARC_ASM_IFUNC2, SET, SPARC_ASM_VIS2_IFUNC,
+       SPARC_ASM_VIS3_IFUNC, SPARC_ASM_VIS3_VIS2_IFUNC): Remove macros.
+
        * sysdeps/sparc/sparc32/sparcv9/fpu/multiarch/s_copysign.c: Fix build
        due redirect macro.
 
index 4a68cf1583e04ba24f327db83ed90dfe02335706..221cebdcd63307b3f56aafe7ff7d7e2c2c703fce 100644 (file)
 
 #include <sysdep.h>
 
-#ifdef __ASSEMBLER__
+#define INIT_ARCH()
 
-# ifdef SHARED
-
-#  define SPARC_ASM_IFUNC_DFLT(name, dflt)             \
-ENTRY (__##name)                                       \
-       .type   __##name, @gnu_indirect_function;       \
-       SETUP_PIC_REG_LEAF(o3, o5);                     \
-       sethi   %gdop_hix22(dflt), %o1;                 \
-       xor     %o1, %gdop_lox10(dflt), %o1;            \
-       add     %o3, %o1, %o1;                          \
-       retl;                                           \
-        mov    %o1, %o0;                               \
-END (__##name)
-
-#  define SPARC_ASM_IFUNC1(name, m1, f1, dflt)         \
-ENTRY (__##name)                                       \
-       .type   __##name, @gnu_indirect_function;       \
-       SETUP_PIC_REG_LEAF(o3, o5);                     \
-       set     m1, %o1;                                \
-       andcc   %o0, %o1, %g0;                          \
-       be      9f;                                     \
-        nop;                                           \
-       sethi   %gdop_hix22(f1), %o1;                   \
-       xor     %o1, %gdop_lox10(f1), %o1;              \
-       ba      10f;                                    \
-        nop;                                           \
-9:     sethi   %gdop_hix22(dflt), %o1;                 \
-       xor     %o1, %gdop_lox10(dflt), %o1;            \
-10:    add     %o3, %o1, %o1;                          \
-       retl;                                           \
-        mov    %o1, %o0;                               \
-END (__##name)
-
-#  define SPARC_ASM_IFUNC2(name, m1, f1, m2, f2, dflt) \
-ENTRY (__##name)                                       \
-       .type   __##name, @gnu_indirect_function;       \
-       SETUP_PIC_REG_LEAF(o3, o5);                     \
-       set     m1, %o1;                                \
-       andcc   %o0, %o1, %g0;                          \
-       be      8f;                                     \
-        nop;                                           \
-       sethi   %gdop_hix22(f1), %o1;                   \
-       xor     %o1, %gdop_lox10(f1), %o1;              \
-       ba      10f;                                    \
-        nop;                                           \
-8:     set     m2, %o1;                                \
-       andcc   %o0, %o1, %g0;                          \
-       be      9f;                                     \
-        nop;                                           \
-       sethi   %gdop_hix22(f2), %o1;                   \
-       xor     %o1, %gdop_lox10(f2), %o1;              \
-       ba      10f;                                    \
-        nop;                                           \
-9:     sethi   %gdop_hix22(dflt), %o1;                 \
-       xor     %o1, %gdop_lox10(dflt), %o1;            \
-10:    add     %o3, %o1, %o1;                          \
-       retl;                                           \
-        mov    %o1, %o0;                               \
-END (__##name)
-
-# else /* SHARED */
-
-# ifdef __arch64__
-#  define SET(SYM, TMP, REG)   setx SYM, TMP, REG
-# else
-#  define SET(SYM, TMP, REG)   set SYM, REG
-# endif
-
-#  define SPARC_ASM_IFUNC_DFLT(name, dflt)             \
-ENTRY (__##name)                                       \
-       .type   __##name, @gnu_indirect_function;       \
-       SET(dflt, %g1, %o1);                            \
-       retl;                                           \
-        mov    %o1, %o0;                               \
-END (__##name)
-
-#  define SPARC_ASM_IFUNC1(name, m1, f1, dflt)         \
-ENTRY (__##name)                                       \
-       .type   __##name, @gnu_indirect_function;       \
-       set     m1, %o1;                                \
-       andcc   %o0, %o1, %g0;                          \
-       be      9f;                                     \
-        nop;                                           \
-       SET(f1, %g1, %o1);                              \
-       ba      10f;                                    \
-        nop;                                           \
-9:     SET(dflt, %g1, %o1);                            \
-10:    retl;                                           \
-        mov    %o1, %o0;                               \
-END (__##name)
-
-#  define SPARC_ASM_IFUNC2(name, m1, f1, m2, f2, dflt) \
-ENTRY (__##name)                                       \
-       .type   __##name, @gnu_indirect_function;       \
-       set     m1, %o1;                                \
-       andcc   %o0, %o1, %g0;                          \
-       be      8f;                                     \
-        nop;                                           \
-       SET(f1, %g1, %o1);                              \
-       ba      10f;                                    \
-        nop;                                           \
-8:     set     m2, %o1;                                \
-       andcc   %o0, %o1, %g0;                          \
-       be      9f;                                     \
-        nop;                                           \
-       SET(f2, %g1, %o1);                              \
-       ba      10f;                                    \
-        nop;                                           \
-9:     SET(dflt, %g1, %o1);                            \
-10:    retl;                                           \
-        mov    %o1, %o0;                               \
-END (__##name)
-
-# endif /* SHARED */
-
-#define SPARC_ASM_VIS2_IFUNC(name)                     \
-       SPARC_ASM_IFUNC1(name, HWCAP_SPARC_VIS2,        \
-                        __##name##_vis2, __##name##_generic)
-
-#define SPARC_ASM_VIS3_IFUNC(name)                     \
-       SPARC_ASM_IFUNC1(name, HWCAP_SPARC_VIS3,        \
-                        __##name##_vis3, __##name##_generic)
-
-#define SPARC_ASM_VIS3_VIS2_IFUNC(name)                        \
-       SPARC_ASM_IFUNC2(name, HWCAP_SPARC_VIS3,        \
-                        __##name##_vis3,               \
-                        HWCAP_SPARC_VIS2,              \
-                        __##name##_vis2, __##name##_generic)
-
-#else  /* __ASSEMBLER__ */
-# define INIT_ARCH()
-
-# define sparc_libc_ifunc_redirected(redirected_name, name, expr)      \
+#define sparc_libc_ifunc_redirected(redirected_name, name, expr)       \
   __ifunc (redirected_name, name, expr(hwcap), int hwcap, INIT_ARCH)
 
-# define sparc_libm_ifunc(name, expr)                          \
+#define sparc_libm_ifunc(name, expr)                           \
   __ifunc (name, name, expr, int hwcap, libm_ifunc_init)
 
-# define sparc_libc_ifunc(name, expr) sparc_libm_ifunc (name, expr)
+#define sparc_libc_ifunc(name, expr) sparc_libm_ifunc (name, expr)
 
-# define sparc_libm_ifunc_redirected(redirected_name, name, expr)      \
+#define sparc_libm_ifunc_redirected(redirected_name, name, expr)       \
   __ifunc (redirected_name, name, expr, int hwcap, libm_ifunc_init)
 
 /* It essentially does libc_hidden_builtin_def (name) and redirect
    the internal redirected symbol to ifunc implementation.  */
-# if defined SHARED
-#  define sparc_ifunc_redirected_hidden_def(redirect_name, name) \
+#if defined SHARED
+# define sparc_ifunc_redirected_hidden_def(redirect_name, name) \
   __hidden_ver1 (name, __GI_##name, redirect_name) \
     __attribute__ ((visibility ("hidden")));
-# else
-#  define sparc_ifunc_redirected_hidden_def(redirect_name, name)
-# endif
-#endif /* __ASSEMBLER__ */
+#else
+# define sparc_ifunc_redirected_hidden_def(redirect_name, name)
+#endif