glibc/sysdeps
Wainer dos Santos Moschetta 18b6e2c86c powerpc64: Add POWER8 strnlen
Added strnlen POWER8 otimized for long strings. It delivers
same performance as POWER7 implementation for short strings.

This takes advantage of reasonably performing unaligned loads
and bit permutes to check the first 1-16 bytes until
quadword aligned, then checks in 64 bytes strides until unsafe,
then 16 bytes, truncating the count if need be.

Likewise, the POWER7 code is recycled for less than 32 bytes strings.

Tested on ppc64 and ppc64le.

	* sysdeps/powerpc/powerpc64/multiarch/Makefile
	(sysdep_routines): Add strnlen-power8.
	* sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c
	(strnlen): Add __strnlen_power8 to list of strnlen functions.
	* sysdeps/powerpc/powerpc64/multiarch/strnlen-power8.S:
	New file.
	* sysdeps/powerpc/powerpc64/multiarch/strnlen.c
	(__strnlen): Add __strnlen_power8 to ifunc list.
	* sysdeps/powerpc/powerpc64/power8/strnlen.S: New file.
2017-04-05 10:26:58 -03:00
..
aarch64 [AArch64] Update libm-test-ulps 2017-03-27 12:02:47 +01:00
alpha Remove _dl_platform_string 2017-03-14 17:18:52 +01:00
arm Update arm, mips, powerpc-nofpu libm-test-ulps. 2017-02-17 23:10:01 +00:00
generic Change return type in the declaration of __ieee754_rem_pio2l 2017-03-30 15:22:27 -03:00
gnu Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
hppa hppa: Fix setting of __libc_stack_end 2017-03-15 13:37:16 -07:00
i386 Remove CALL_THREAD_FCT macro 2017-04-04 18:03:35 -03:00
ia64 Allow direct use of math_ldbl.h in testsuite. 2017-02-25 10:40:48 -05:00
ieee754 Improve float range reduction accuracy near pi/2 (bug 21094). 2017-03-15 22:00:54 +00:00
init_array Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
m68k m68k: fix 64bit atomic ops 2017-02-01 01:32:31 +01:00
mach hurd: Make send/recv more posixish 2017-03-13 20:41:12 +01:00
microblaze Remove very old libm-test-ulps entries. 2017-01-20 23:58:49 +00:00
mips Remove _dl_platform_string 2017-03-14 17:18:52 +01:00
nacl Narrowing the visibility of libc-internal.h even further. 2017-03-01 20:33:46 -05:00
nios2 New pthread rwlock that is more scalable. 2017-01-10 11:50:17 +01:00
nptl Narrowing the visibility of libc-internal.h even further. 2017-03-01 20:33:46 -05:00
posix Remove the str(n)dup inlines from string/bits/string2.h. Although inlining 2017-03-13 18:45:42 +00:00
powerpc powerpc64: Add POWER8 strnlen 2017-04-05 10:26:58 -03:00
pthread Refer to <signal.h> instead of <pthread.h> in <bits/sigthread.h> 2017-02-28 10:34:15 +01:00
s390 S390: Clobber also r14 in TLS_LD, TLS_GD macros on 31bit. 2017-04-04 13:16:28 +02:00
sh sh: Fix building with gcc5/6 2017-03-12 17:29:32 -03:00
sparc Fix sparc64 bits/setjmp.h namespace (bug 21261). 2017-03-18 00:17:25 +00:00
tile tile: Check for pointer add overflow in memchr 2017-01-16 15:44:48 -05:00
unix Remove __ASSUME_REQUEUE_PI 2017-04-04 18:02:02 -03:00
wordsize-32 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wordsize-64 Add missing header files throughout the testsuite. 2017-02-16 17:33:18 -05:00
x86 Use CPU_FEATURES_CPU_P to check if AVX is available 2017-03-17 11:38:13 -07:00
x86_64 Remove CALL_THREAD_FCT macro 2017-04-04 18:03:35 -03:00