mirror of
https://sourceware.org/git/glibc.git
synced 2025-06-28 11:21:08 +03:00
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.
This commit is contained in:
committed by
Andreas Krebbel
parent
cee82e70cc
commit
cf150d45a9
@ -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)
|
||||
|
Reference in New Issue
Block a user