1
0
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:
Stefan Liebler
2015-08-26 10:26:23 +02:00
committed by Andreas Krebbel
parent cee82e70cc
commit cf150d45a9
12 changed files with 376 additions and 5 deletions

View File

@ -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)