This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]