[PATCHv2] powerpc: refactor strrchr IFUNC

Message ID 1498025513-7282-1-git-send-email-raji@linux.vnet.ibm.com
State Committed
Delegated to: Tulio Magno Quites Machado Filho
Headers

Commit Message

Rajalakshmi S June 21, 2017, 6:11 a.m. UTC
  As done in commit 6d15a5c2e9450a1e926d5b4991759e1cfa50fccf
clean up IFUNC implementation for power8 in order to remove
unneeded macro definitions.

2017-06-21  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.
---
 sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S | 18 +-----------------
 sysdeps/powerpc/powerpc64/power8/strrchr.S           |  8 ++++++--
 2 files changed, 7 insertions(+), 19 deletions(-)
  

Comments

Tulio Magno Quites Machado Filho June 22, 2017, 4:11 p.m. UTC | #1
Rajalakshmi Srinivasaraghavan <raji@linux.vnet.ibm.com> writes:

> As done in commit 6d15a5c2e9450a1e926d5b4991759e1cfa50fccf
> clean up IFUNC implementation for power8 in order to remove
> unneeded macro definitions.
>
> 2017-06-21  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.

OK

> diff --git a/sysdeps/powerpc/powerpc64/power8/strrchr.S b/sysdeps/powerpc/powerpc64/power8/strrchr.S
> index 0ba6138..0c7c900 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 (STRRCHR)

Shouldn't it be END_GEN_TB (STRRCHR, TB_TOCLESS)  ?

Looks good to me with that change.
  

Patch

diff --git a/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S b/sysdeps/powerpc/powerpc64/multiarch/strrchr-power8.S
index 2b2b1de..63080f5 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 0ba6138..0c7c900 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 (STRRCHR)
 weak_alias (strrchr, rindex)
 libc_hidden_builtin_def (strrchr)