From dbcc7d089390f53ec90c1cbd3bea165b924a023a Mon Sep 17 00:00:00 2001 From: Wainer dos Santos Moschetta Date: Tue, 11 Apr 2017 14:18:34 -0300 Subject: [PATCH] powerpc: refactor stpcpy, stpncpy, strcpy, and strncpy IFUNC. Clean up the IFUNC implementations for powerpc in order to remove unneeded macro definitions. Tested on ppc64le with and without --disable-multi-arch flag. * sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S: Define the implementation-specific function name and remove unneeded macros definition. * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S: Likewise. * sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S: Likewise. * sysdeps/powerpc/powerpc64/power7/strncpy.S: Set a default function name if not defined. * sysdeps/powerpc/powerpc64/power8/strcpy.S: Likewise. * sysdeps/powerpc/powerpc64/power8/strncpy.S: Likewise. --- ChangeLog | 15 +++++++++++++++ sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S | 16 +--------------- sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S | 16 +--------------- sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S | 16 +--------------- sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S | 16 +--------------- sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S | 16 +--------------- sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S | 16 +--------------- sysdeps/powerpc/powerpc64/power7/strncpy.S | 14 +++++++++++--- sysdeps/powerpc/powerpc64/power8/strcpy.S | 14 +++++++++++--- sysdeps/powerpc/powerpc64/power8/strncpy.S | 14 +++++++++++--- 10 files changed, 54 insertions(+), 99 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5df70040e3..d4bbc560f4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2017-04-11 Wainer dos Santos Moschetta + + * sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S: Define the + implementation-specific function name and remove unneeded macros + definition. + * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S: Likewise. + * sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S: Likewise. + * sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S: Likewise. + * sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S: Likewise. + * sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S: Likewise. + * sysdeps/powerpc/powerpc64/power7/strncpy.S: Set a default + function name if not defined. + * sysdeps/powerpc/powerpc64/power8/strcpy.S: Likewise. + * sysdeps/powerpc/powerpc64/power8/strncpy.S: Likewise. + 2017-04-11 Paul Clarke * elf/elf.h (AT_L1I_CACHESIZE, AT_L1I_CACHEGEOMETRY, AT_L1D_CACHESIZE, diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S index a614b5b85f..935347115a 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S @@ -18,21 +18,7 @@ #include -#undef EALIGN -#define EALIGN(name, alignt, words) \ - .section ".text"; \ - ENTRY_2(__stpcpy_power8) \ - .align ALIGNARG(alignt); \ - EALIGN_W_##words; \ - BODY_LABEL(__stpcpy_power8): \ - cfi_startproc; \ - LOCALENTRY(__stpcpy_power8) - -#undef END -#define END(name) \ - cfi_endproc; \ - TRACEBACK(__stpcpy_power8) \ - END_2(__stpcpy_power8) +#define STPCPY __stpcpy_power8 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S index 6c88da383e..6636b01d07 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S @@ -20,21 +20,7 @@ #define USE_AS_STPNCPY -#undef EALIGN -#define EALIGN(name, alignt, words) \ - .section ".text"; \ - ENTRY_2(__stpncpy_power7) \ - .align ALIGNARG(alignt); \ - EALIGN_W_##words; \ - BODY_LABEL(__stpncpy_power7): \ - cfi_startproc; \ - LOCALENTRY(__stpncpy_power7) - -#undef END -#define END(name) \ - cfi_endproc; \ - TRACEBACK(__stpncpy_power7) \ - END_2(__stpncpy_power7) +#define STPNCPY __stpncpy_power7 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) diff --git a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S index ff6d3ddc7e..6ce706a879 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S @@ -20,21 +20,7 @@ #define USE_AS_STPNCPY -#undef EALIGN -#define EALIGN(name, alignt, words) \ - .section ".text"; \ - ENTRY_2(__stpncpy_power8) \ - .align ALIGNARG(alignt); \ - EALIGN_W_##words; \ - BODY_LABEL(__stpncpy_power8): \ - cfi_startproc; \ - LOCALENTRY(__stpncpy_power8) - -#undef END -#define END(name) \ - cfi_endproc; \ - TRACEBACK(__stpncpy_power8) \ - END_2(__stpncpy_power8) +#define STPNCPY __stpncpy_power8 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) diff --git a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S index 576d26038d..6c753b5d1a 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S @@ -18,21 +18,7 @@ #include -#undef EALIGN -#define EALIGN(name, alignt, words) \ - .section ".text"; \ - ENTRY_2(__strcpy_power8) \ - .align ALIGNARG(alignt); \ - EALIGN_W_##words; \ - BODY_LABEL(__strcpy_power8): \ - cfi_startproc; \ - LOCALENTRY(__strcpy_power8) - -#undef END -#define END(name) \ - cfi_endproc; \ - TRACEBACK(__strcpy_power8) \ - END_2(__strcpy_power8) +#define STRCPY __strcpy_power8 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S index 5387e4922f..03f7f83448 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S @@ -18,21 +18,7 @@ #include -#undef EALIGN -#define EALIGN(name, alignt, words) \ - .section ".text"; \ - ENTRY_2(__strncpy_power7) \ - .align ALIGNARG(alignt); \ - EALIGN_W_##words; \ - BODY_LABEL(__strncpy_power7): \ - cfi_startproc; \ - LOCALENTRY(__strncpy_power7) - -#undef END -#define END(name) \ - cfi_endproc; \ - TRACEBACK(__strncpy_power7) \ - END_2(__strncpy_power7) +#define STRNCPY __strncpy_power7 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S index 37902cfc0a..17117eb7ec 100644 --- a/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S +++ b/sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S @@ -18,21 +18,7 @@ #include -#undef EALIGN -#define EALIGN(name, alignt, words) \ - .section ".text"; \ - ENTRY_2(__strncpy_power8) \ - .align ALIGNARG(alignt); \ - EALIGN_W_##words; \ - BODY_LABEL(__strncpy_power8): \ - cfi_startproc; \ - LOCALENTRY(__strncpy_power8) - -#undef END -#define END(name) \ - cfi_endproc; \ - TRACEBACK(__strncpy_power8) \ - END_2(__strncpy_power8) +#define STRNCPY __strncpy_power8 #undef libc_hidden_builtin_def #define libc_hidden_builtin_def(name) diff --git a/sysdeps/powerpc/powerpc64/power7/strncpy.S b/sysdeps/powerpc/powerpc64/power7/strncpy.S index 98aabda6e9..0224f74898 100644 --- a/sysdeps/powerpc/powerpc64/power7/strncpy.S +++ b/sysdeps/powerpc/powerpc64/power7/strncpy.S @@ -40,10 +40,18 @@ memset. */ #ifdef USE_AS_STPNCPY -# define FUNC_NAME __stpncpy +# ifndef STPNCPY +# define FUNC_NAME __stpncpy +# else +# define FUNC_NAME STPNCPY +# endif #else -# define FUNC_NAME strncpy -#endif +# ifndef STRNCPY +# define FUNC_NAME strncpy +# else +# define FUNC_NAME STRNCPY +# endif +#endif /* !USE_AS_STPNCPY */ #define FRAMESIZE (FRAME_MIN_SIZE+32) diff --git a/sysdeps/powerpc/powerpc64/power8/strcpy.S b/sysdeps/powerpc/powerpc64/power8/strcpy.S index 27440cd4dd..7f2cee4b1b 100644 --- a/sysdeps/powerpc/powerpc64/power8/strcpy.S +++ b/sysdeps/powerpc/powerpc64/power8/strcpy.S @@ -19,10 +19,18 @@ #include #ifdef USE_AS_STPCPY -# define FUNC_NAME __stpcpy +# ifndef STPCPY +# define FUNC_NAME __stpcpy +# else +# define FUNC_NAME STPCPY +# endif #else -# define FUNC_NAME strcpy -#endif +# ifndef STRCPY +# define FUNC_NAME strcpy +# else +# define FUNC_NAME STRCPY +# endif +#endif /* !USE_AS_STPCPY */ /* Implements the function diff --git a/sysdeps/powerpc/powerpc64/power8/strncpy.S b/sysdeps/powerpc/powerpc64/power8/strncpy.S index 622a55d983..6d40f30ff7 100644 --- a/sysdeps/powerpc/powerpc64/power8/strncpy.S +++ b/sysdeps/powerpc/powerpc64/power8/strncpy.S @@ -19,10 +19,18 @@ #include #ifdef USE_AS_STPNCPY -# define FUNC_NAME __stpncpy +# ifndef STPNCPY +# define FUNC_NAME __stpncpy +# else +# define FUNC_NAME STPNCPY +# endif #else -# define FUNC_NAME strncpy -#endif +# ifndef STRNCPY +# define FUNC_NAME strncpy +# else +# define FUNC_NAME STRNCPY +# endif +#endif /* !USE_AS_STPNCPY */ #ifndef MEMSET /* For builds without IFUNC support, local calls should be made to internal -- 2.11.4.GIT