[24/25] sparc: Remove ununsed ifunc assembly macros

Message ID 1509044813-9951-25-git-send-email-adhemerval.zanella@linaro.org
State New
Headers show
Series
  • Refactor IFUNC selection in C
Related show

Commit Message

Adhemerval Zanella Oct. 26, 2017, 7:06 p.m.
* 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                   |   4 ++
 sysdeps/sparc/sparc-ifunc.h | 154 ++++----------------------------------------
 2 files changed, 15 insertions(+), 143 deletions(-)

-- 
2.7.4

Comments

Adhemerval Zanella Dec. 1, 2017, 2:48 p.m. | #1
If no one opposes it, I will commit it shortly.

On 26/10/2017 17:06, Adhemerval Zanella wrote:
> 	* 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                   |   4 ++

>  sysdeps/sparc/sparc-ifunc.h | 154 ++++----------------------------------------

>  2 files changed, 15 insertions(+), 143 deletions(-)

> 

> diff --git a/sysdeps/sparc/sparc-ifunc.h b/sysdeps/sparc/sparc-ifunc.h

> index 4a68cf1..69951e7 100644

> --- a/sysdeps/sparc/sparc-ifunc.h

> +++ b/sysdeps/sparc/sparc-ifunc.h

> @@ -17,157 +17,25 @@

>  

>  #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)				\

> -  __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(name, expr)				\

> +  __ifunc (name, name, expr, int hwcap, libm_ifunc_init)

>  

> -# 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

>

Patch

diff --git a/sysdeps/sparc/sparc-ifunc.h b/sysdeps/sparc/sparc-ifunc.h
index 4a68cf1..69951e7 100644
--- a/sysdeps/sparc/sparc-ifunc.h
+++ b/sysdeps/sparc/sparc-ifunc.h
@@ -17,157 +17,25 @@ 
 
 #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)				\
-  __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(name, expr)				\
+  __ifunc (name, name, expr, int hwcap, libm_ifunc_init)
 
-# 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