about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWainer dos Santos Moschetta <wainersm@linux.vnet.ibm.com>2017-04-11 14:18:34 -0300
committerTulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>2017-04-11 17:13:31 -0300
commitdbcc7d089390f53ec90c1cbd3bea165b924a023a (patch)
tree9ce610761c13ba8263d62255b44a615ce58688bb
parentd031600dd2e8381e9cd2ccc20c4ce94a04f04eaf (diff)
downloadglibc-dbcc7d089390f53ec90c1cbd3bea165b924a023a.tar.gz
glibc-dbcc7d089390f53ec90c1cbd3bea165b924a023a.tar.xz
glibc-dbcc7d089390f53ec90c1cbd3bea165b924a023a.zip
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.
-rw-r--r--ChangeLog15
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpcpy-power8.S16
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy-power7.S16
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/stpncpy-power8.S16
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strcpy-power8.S16
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy-power7.S16
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strncpy-power8.S16
-rw-r--r--sysdeps/powerpc/powerpc64/power7/strncpy.S14
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strcpy.S14
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strncpy.S14
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  <wainersm@linux.vnet.ibm.com>
+
+	* 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  <pc@us.ibm.com>
 
 	* 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 <sysdep.h>
 
-#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 <sysdep.h>
 
-#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 <sysdep.h>
 
-#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 <sysdep.h>
 
-#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 <sysdep.h>
 
 #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 <sysdep.h>
 
 #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