41ccf82b29
Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54560
66 lines
1.5 KiB
Makefile
66 lines
1.5 KiB
Makefile
#
|
|
# String handling from the Arm Optimized Routines
|
|
# https://github.com/ARM-software/optimized-routines
|
|
#
|
|
|
|
AARCH64_STRING_FUNCS= \
|
|
memcmp \
|
|
memmove \
|
|
memrchr \
|
|
stpcpy \
|
|
strchr \
|
|
strchrnul \
|
|
strcpy \
|
|
strnlen \
|
|
strrchr
|
|
|
|
# SIMD-enhanced routines not derived from Arm's code
|
|
MDSRCS+= \
|
|
memchr.S \
|
|
strcmp.S \
|
|
strspn.S \
|
|
strcspn.S \
|
|
strpbrk.c \
|
|
strsep.c \
|
|
strcat.c \
|
|
strlcpy.S \
|
|
strncmp.S \
|
|
memccpy.S \
|
|
strncat.c \
|
|
strlcat.c \
|
|
strlen.S \
|
|
timingsafe_bcmp.S \
|
|
timingsafe_memcmp.S \
|
|
bcopy.c \
|
|
bzero.c \
|
|
memcpy.S \
|
|
memcpy_resolver.c \
|
|
memmove_resolver.c \
|
|
memset.S \
|
|
memset_resolver.c
|
|
|
|
#
|
|
# Add the above functions. Generate an asm file that includes the needed
|
|
# Arm Optimized Routines file defining the function name to the libc name.
|
|
# Some file need multiple macros defined or a weak symbol added we can
|
|
# override the generated file in these cases.
|
|
#
|
|
.for FUNC in ${AARCH64_STRING_FUNCS}
|
|
.if !exists(${FUNC}.S)
|
|
${FUNC}.S:
|
|
printf '/* %sgenerated by libc/aarch64/string/Makefile.inc */\n' @ > ${.TARGET}
|
|
printf '#define __%s_aarch64 %s\n' ${FUNC} ${FUNC} >> ${.TARGET}
|
|
printf '#include "aarch64/%s.S"\n' ${FUNC} >> ${.TARGET}
|
|
CLEANFILES+= ${FUNC}.S
|
|
.endif
|
|
|
|
MDSRCS+= ${FUNC}.S
|
|
CFLAGS.${FUNC}.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string
|
|
.endfor
|
|
|
|
# Several files are wrappers in the src tree for the implementation from
|
|
# arm-optimized-routines
|
|
CFLAGS.memchr.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string
|
|
CFLAGS.memcpy.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string
|
|
CFLAGS.memset.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string
|