diff options
author | Stefan Liebler <stli@linux.vnet.ibm.com> | 2015-08-26 10:26:23 +0200 |
---|---|---|
committer | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2015-08-26 10:26:23 +0200 |
commit | cf150d45a97c6bb8410d6d3acf6e1560e8fe96cc (patch) | |
tree | 678f57e8e7da3268797cd6567617a27491e4d0fa /string | |
parent | cee82e70ccb7b2f054cd781b0a603ae244523e72 (diff) | |
download | glibc-cf150d45a97c6bb8410d6d3acf6e1560e8fe96cc.tar.gz |
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) |