mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-04 10:50:07 +00:00
a23bd00f9d
This started as a trivial change to Anton's rawmemchr. I got carried away. This is a hybrid between P8's asympotically faster 64B checks with extremely efficient small string checks e.g <64B (and sometimes a little bit more depending on alignment). The second trick is to align to 64B by running a 48B checking loop 16B at a time until we naturally align to 64B (i.e checking 48/96/144 bytes/iteration based on the alignment after the first 5 comparisons). This allieviates the need to check page boundaries. Finally, explicly use the P7 strlen with the runtime loader when building P9. We need to be cautious about vector/vsx extensions here on P9 only builds.
41 lines
1.7 KiB
Makefile
41 lines
1.7 KiB
Makefile
ifeq ($(subdir),string)
|
|
sysdep_routines += memcpy-power8-cached memcpy-power7 memcpy-a2 memcpy-power6 \
|
|
memcpy-cell memcpy-power4 memcpy-ppc64 \
|
|
memcmp-power8 memcmp-power7 memcmp-power4 memcmp-ppc64 \
|
|
memset-power7 memset-power6 memset-power4 \
|
|
memset-ppc64 memset-power8 \
|
|
mempcpy-power7 mempcpy-ppc64 \
|
|
memchr-power8 memchr-power7 memchr-ppc64 \
|
|
memrchr-power8 memrchr-power7 memrchr-ppc64 \
|
|
rawmemchr-power7 rawmemchr-ppc64 \
|
|
strlen-power7 strlen-ppc64 \
|
|
strnlen-power8 strnlen-power7 strnlen-ppc64 \
|
|
strcasecmp-power7 strcasecmp_l-power7 \
|
|
strncase-power7 strncase_l-power7 \
|
|
strncmp-power8 strncmp-power7 \
|
|
strncmp-power4 strncmp-ppc64 \
|
|
strchr-power8 strchr-power7 strchr-ppc64 \
|
|
strchrnul-power8 strchrnul-power7 strchrnul-ppc64 \
|
|
strcpy-power8 strcpy-power7 strcpy-ppc64 stpcpy-power8 \
|
|
stpcpy-power7 stpcpy-ppc64 \
|
|
strrchr-power8 strrchr-power7 strrchr-ppc64 \
|
|
strncat-power8 strncat-power7 strncat-ppc64 \
|
|
strncpy-power7 strncpy-ppc64 \
|
|
stpncpy-power8 stpncpy-power7 stpncpy-ppc64 \
|
|
strcmp-power8 strcmp-power7 strcmp-ppc64 \
|
|
strcat-power8 strcat-power7 strcat-ppc64 \
|
|
memmove-power7 memmove-ppc64 wordcopy-ppc64 bcopy-ppc64 \
|
|
strncpy-power8 strstr-power7 strstr-ppc64 \
|
|
strspn-power8 strspn-ppc64 strcspn-power8 strcspn-ppc64 \
|
|
strlen-power8 strcasestr-power8 strcasestr-ppc64 \
|
|
strcasecmp-ppc64 strcasecmp-power8 strncase-ppc64 \
|
|
strncase-power8
|
|
|
|
ifneq (,$(filter %le,$(config-machine)))
|
|
sysdep_routines += strcmp-power9 strncmp-power9 strcpy-power9 stpcpy-power9 \
|
|
rawmemchr-power9 strlen-power9
|
|
endif
|
|
CFLAGS-strncase-power7.c += -mcpu=power7 -funroll-loops
|
|
CFLAGS-strncase_l-power7.c += -mcpu=power7 -funroll-loops
|
|
endif
|