Commit Graph

3 Commits

Author SHA1 Message Date
Stefan Liebler
680df122ab S390: Optimize strcpy and wcscpy.
This patch provides optimized versions of strcpy and wcscpy with the z13
vector instructions.

ChangeLog:

	* sysdeps/s390/multiarch/strcpy-vx.S: New File.
	* sysdeps/s390/multiarch/strcpy.c: Likewise.
	* sysdeps/s390/multiarch/wcscpy-c.c: Likewise.
	* sysdeps/s390/multiarch/wcscpy-vx.S: Likewise.
	* sysdeps/s390/multiarch/wcscpy.c: Likewise.
	* sysdeps/s390/s390-32/multiarch/strcpy.c: Likewise.
	* sysdeps/s390/s390-64/multiarch/strcpy.c: Likewise.
	* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strcpy and
	wcscpy functions.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Add ifunc test for strcpy, wcscpy.
	* benchtests/bench-wcscpy.c: New File.
	* benchtests/Makefile (wcsmbs-bench): Add wcscpy.
2015-08-26 10:26:20 +02:00
Stefan Liebler
fcf40ebe26 S390: Optimize strnlen and wcsnlen.
This patch provides optimized versions of strnlen and wcsnlen with the z13
vector instructions.

ChangeLog:

	* sysdeps/s390/multiarch/strnlen-c.c: New File.
	* sysdeps/s390/multiarch/strnlen-vx.S: Likewise.
	* sysdeps/s390/multiarch/strnlen.c: Likewise.
	* sysdeps/s390/multiarch/wcsnlen-c.c: Likewise.
	* sysdeps/s390/multiarch/wcsnlen-vx.S: Likewise.
	* sysdeps/s390/multiarch/wcsnlen.c: Likewise.
	* sysdeps/s390/multiarch/Makefile (sysdep_routines): Add strnlen and
	wcsnlen functions.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(__libc_ifunc_impl_list): Add ifunc test for strnlen, wcsnlen.
	* wcsmbs/wcsnlen.c: Use WCSNLEN if defined.
	* string/test-strnlen.c: Add wcsnlen support.
	* wcsmbs/test-wcsnlen.c: New File.
	* wcsmbs/Makefile (strop-tests): Add wcsnlen.
	* benchtests/bench-strnlen.c: Add wcsnlen support.
	* benchtests/bench-wcsnlen.c: New File.
	* benchtests/Makefile (wcsmbs-bench): Add wcsnlen.
2015-08-26 10:26:20 +02:00
Stefan Liebler
9472f35a0a S390: Optimize strlen and wcslen.
This patch provides optimized versions of strlen and wcslen with the z13 vector
instructions.
The helper macro IFUNC_VX_IMPL is introduced and is used to register all
__<func>_c() and __<func>_vx() functions within __libc_ifunc_impl_list()
to the ifunc test framework.

ChangeLog:

	* sysdeps/s390/multiarch/Makefile: New File.
	* sysdeps/s390/multiarch/strlen-c.c: Likewise.
	* sysdeps/s390/multiarch/strlen-vx.S: Likewise.
	* sysdeps/s390/multiarch/strlen.c: Likewise.
	* sysdeps/s390/multiarch/wcslen-c.c: Likewise.
	* sysdeps/s390/multiarch/wcslen-vx.S: Likewise.
	* sysdeps/s390/multiarch/wcslen.c: Likewise.
	* string/strlen.c (STRLEN): Define and use macro.
	* sysdeps/s390/multiarch/ifunc-impl-list.c
	(IFUNC_VX_IMPL): New macro function.
	(__libc_ifunc_impl_list): Add ifunc test for strlen, wcslen.
	* benchtests/Makefile (wcsmbs-bench): New variable.
	(string-bench-all): Added wcsmbs-bench.
	* benchtests/bench-wcslen.c: New File.
2015-08-26 10:26:20 +02:00