diff options
author | 2015-08-26 10:26:23 +0200 | |
---|---|---|
committer | 2015-08-26 10:26:23 +0200 | |
commit | cf150d45a97c6bb8410d6d3acf6e1560e8fe96cc (patch) | |
tree | 678f57e8e7da3268797cd6567617a27491e4d0fa /string | |
parent | S390: Optimize strncmp and wcsncmp. (diff) | |
download | glibc-cf150d45a97c6bb8410d6d3acf6e1560e8fe96cc.tar.gz glibc-cf150d45a97c6bb8410d6d3acf6e1560e8fe96cc.tar.bz2 glibc-cf150d45a97c6bb8410d6d3acf6e1560e8fe96cc.zip |
S390: Optimize strchr and wcschr.
This patch provides optimized versions of strchr and wcschr with the z13
vector instructions.
ChangeLog:
* sysdeps/s390/multiarch/strchr-c.c: New File.
* sysdeps/s390/multiarch/strchr-vx.S: Likewise.
* sysdeps/s390/multiarch/strchr.c: Likewise.
* sysdeps/s390/multiarch/wcschr-c.c: Likewise.
* sysdeps/s390/multiarch/wcschr-vx.S: Likewise.
* sysdeps/s390/multiarch/wcschr.c: Likewise.
* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strchr and
wcschr functions.
* sysdeps/s390/multiarch/ifunc-impl-list.c
(__libc_ifunc_impl_list): Add ifunc test for strchr, wcschr.
* string/strchr.c (STRCHR): Define and use macro.
* benchtests/bench-wcschr.c: New File.
* benchtests/Makefile (wcsmbs-bench): Add wcschr.
Diffstat (limited to 'string')
-rw-r--r-- | string/strchr.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/string/strchr.c b/string/strchr.c index f13b2b3d94..f73891d439 100644 --- a/string/strchr.c +++ b/string/strchr.c @@ -25,9 +25,13 @@ #undef strchr +#ifndef STRCHR +# define STRCHR strchr +#endif + /* Find the first occurrence of C in S. */ char * -strchr (const char *s, int c_in) +STRCHR (const char *s, int c_in) { const unsigned char *char_ptr; const unsigned long int *longword_ptr; @@ -175,7 +179,7 @@ strchr (const char *s, int c_in) } #ifdef weak_alias -#undef index +# undef index weak_alias (strchr, index) #endif libc_hidden_builtin_def (strchr) |