about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>2017-06-23 11:24:30 +0530
committerRajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com>2017-06-23 11:24:30 +0530
commit12f50337ae80672c393c2317d471d097ad92c492 (patch)
tree835c6553f10f8238a8ed4c1888d255ccb296ebb9
parent001b09a6a2176b22bd7524a8329950c1ef98f06f (diff)
downloadglibc-12f50337ae80672c393c2317d471d097ad92c492.tar.gz
glibc-12f50337ae80672c393c2317d471d097ad92c492.tar.xz
glibc-12f50337ae80672c393c2317d471d097ad92c492.zip
powerpc: refactor strrchr IFUNC
As done in commit 6d15a5c2e9450a1e926d5b4991759e1cfa50fccf
clean up IFUNC implementation for power8 in order to remove
unneeded macro definitions.
-rw-r--r--ChangeLog9
-rw-r--r--sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S18
-rw-r--r--sysdeps/powerpc/powerpc64/power8/strrchr.S8
3 files changed, 16 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index ed0192b51f..e495f4cf5f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2017-06-23  Rajalakshmi Srinivasaraghavan  <raji@linux.vnet.ibm.com>
 
+	* sysdeps/powerpc/powerpc64/multiarch/strchr-power8.S(STRRCHR): Define
+	the implementation-specific function name and remove unneeded macros
+	definition.
+	* sysdeps/powerpc/powerpc64/power8/strrchr.S(STRRCHR): Set a default
+	function name if not defined and pass as parameter to macros
+	accordingly.
+
+2017-06-23  Rajalakshmi Srinivasaraghavan  <raji@linux.vnet.ibm.com>
+
 	* sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
 	(libm-sysdep_routines): Add s_llroundf-ppc64.
 	* sysdeps/powerpc/powerpc64/power5+fpu/s_llround.S
diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S
index 2b2b1de148..63080f5ecb 100644
--- a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S
+++ b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S
@@ -18,23 +18,7 @@
 
 #include <sysdep.h>
 
-#undef ENTRY_TOCLESS
-#ifndef PROF
-#define ENTRY_TOCLESS(name, ...)				\
-	ENTRY_3 __strrchr_power8, ## __VA_ARGS__;		\
-	cfi_startproc
-#else
-#define ENTRY_TOCLESS(name, ...)				\
-	ENTRY_3 __strrchr_power8, ## __VA_ARGS__;		\
-	cfi_startproc;						\
-	LOCALENTRY(__strrchr_power8)
-#endif
-
-#undef END
-#define END(name)						\
-  cfi_endproc;							\
-  TRACEBACK(__strrchr_power8);					\
-  END_2(__strrchr_power8)
+#define STRRCHR __strrchr_power8
 
 #undef libc_hidden_builtin_def
 #define libc_hidden_builtin_def(name)
diff --git a/sysdeps/powerpc/powerpc64/power8/strrchr.S b/sysdeps/powerpc/powerpc64/power8/strrchr.S
index 0ba61389a7..090eb96fa6 100644
--- a/sysdeps/powerpc/powerpc64/power8/strrchr.S
+++ b/sysdeps/powerpc/powerpc64/power8/strrchr.S
@@ -76,8 +76,12 @@
 1: \
 	vsumsws	v2, v2, v0;
 #endif	/* !__LITTLE_ENDIAN__  */
+
+#ifndef STRRCHR
+# define STRRCHR strrchr
+#endif
 	.machine  power7
-ENTRY_TOCLESS (strrchr)
+ENTRY_TOCLESS (STRRCHR)
 	CALL_MCOUNT 2
 	dcbt	0,r3
 	clrrdi	r8,r3,3	      /* Align the address to doubleword boundary.  */
@@ -459,6 +463,6 @@ L(continue1):
 #endif
 	add	r3, r3, r6      /* Compute final length.  */
 	blr
-END (strrchr)
+END_GEN_TB (STRRCHR, TB_TOCLESS)
 weak_alias (strrchr, rindex)
 libc_hidden_builtin_def (strrchr)