diff options
author | Wainer dos Santos Moschetta <wainersm@linux.vnet.ibm.com> | 2017-04-11 14:18:34 -0300 |
---|---|---|
committer | Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> | 2017-04-11 17:13:54 -0300 |
commit | 3bc426e156c6952a1b7e32435c308aaab76616a1 (patch) | |
tree | c9592b0d03ce0acd5aa1fd9e9828187d9c7b46a4 /sysdeps/powerpc/powerpc64/power9 | |
parent | dbcc7d089390f53ec90c1cbd3bea165b924a023a (diff) | |
download | glibc-3bc426e156c6952a1b7e32435c308aaab76616a1.tar glibc-3bc426e156c6952a1b7e32435c308aaab76616a1.tar.gz glibc-3bc426e156c6952a1b7e32435c308aaab76616a1.tar.bz2 glibc-3bc426e156c6952a1b7e32435c308aaab76616a1.zip |
powerpc: refactor strcasecmp, strcmp, and strncmp 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/strcasecmp_l-power7.S: Define
the implementation-specific function name and remove unneeded
macros definition.
* sysdeps/powerpc/powerpc64/multiarch/strcmp-power7.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strcmp-power8.S Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strcmp-power9.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strcmp-ppc64.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strncmp-power7.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strncmp-power8.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strncmp-power9.S: Likewise.
* sysdeps/powerpc/powerpc64/multiarch/strncmp-ppc64.S: Likewise.
* sysdeps/powerpc/powerpc64/power4/strncmp.S: Set a default function
name if not defined and pass as parameter to macros accordingly.
* sysdeps/powerpc/powerpc64/power7/strcmp.S: Likewise.
* sysdeps/powerpc/powerpc64/power7/strncmp.S: Likewise.
* sysdeps/powerpc/powerpc64/power8/strcmp.S: Likewise.
* sysdeps/powerpc/powerpc64/power8/strncmp.S: Likewise.
* sysdeps/powerpc/powerpc64/power9/strcmp.S: Likewise.
* sysdeps/powerpc/powerpc64/power9/strncmp.S: Likewise.
* sysdeps/powerpc/powerpc64/strcmp.S: Likewise.
* sysdeps/powerpc/powerpc64/strncmp.S: Likewise.
Diffstat (limited to 'sysdeps/powerpc/powerpc64/power9')
-rw-r--r-- | sysdeps/powerpc/powerpc64/power9/strcmp.S | 8 | ||||
-rw-r--r-- | sysdeps/powerpc/powerpc64/power9/strncmp.S | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/sysdeps/powerpc/powerpc64/power9/strcmp.S b/sysdeps/powerpc/powerpc64/power9/strcmp.S index 17ec8c24c3..2dc4f6c722 100644 --- a/sysdeps/powerpc/powerpc64/power9/strcmp.S +++ b/sysdeps/powerpc/powerpc64/power9/strcmp.S @@ -18,6 +18,10 @@ #ifdef __LITTLE_ENDIAN__ #include <sysdep.h> +#ifndef STRCMP +# define STRCMP strcmp +#endif + /* Implements the function int [r3] strcmp (const char *s1 [r3], const char *s2 [r4]) @@ -62,7 +66,7 @@ allows it. */ .machine power7 -EALIGN (strcmp, 4, 0) +EALIGN (STRCMP, 4, 0) li r0, 0 /* Check if [s1]+16 or [s2]+16 will cross a 4K page boundary using @@ -257,7 +261,7 @@ L(pagecross_retdiff): L(pagecross_nullfound): li r3, 0 b L(pagecross_retdiff) -END (strcmp) +END (STRCMP) libc_hidden_builtin_def (strcmp) #else #include <sysdeps/powerpc/powerpc64/power8/strcmp.S> diff --git a/sysdeps/powerpc/powerpc64/power9/strncmp.S b/sysdeps/powerpc/powerpc64/power9/strncmp.S index 14d016a0e2..c946a5c638 100644 --- a/sysdeps/powerpc/powerpc64/power9/strncmp.S +++ b/sysdeps/powerpc/powerpc64/power9/strncmp.S @@ -26,6 +26,10 @@ code paths depending of data alignment for first 32 bytes and uses vectorised loops after that. */ +#ifndef STRNCMP +# define STRNCMP strncmp +#endif + /* TODO: Change this to actual instructions when minimum binutils is upgraded to 2.27. Macros are defined below for these newer instructions in order to maintain compatibility. */ @@ -64,7 +68,7 @@ /* TODO: change this to .machine power9 when minimum binutils is upgraded to 2.27. */ .machine power7 -EALIGN (strncmp, 4, 0) +EALIGN (STRNCMP, 4, 0) /* Check if size is 0. */ cmpdi cr0, r5, 0 beq cr0, L(ret0) @@ -368,7 +372,7 @@ L(byte_ne_2): L(byte_ne_3): extsw r7, r7 b L(byte_ne_1) -END(strncmp) +END(STRNCMP) libc_hidden_builtin_def(strncmp) #else #include <sysdeps/powerpc/powerpc64/power8/strncmp.S> |