aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/aarch64/string/Makefile.inc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/aarch64/string/Makefile.inc')
-rw-r--r--lib/libc/aarch64/string/Makefile.inc33
1 files changed, 27 insertions, 6 deletions
diff --git a/lib/libc/aarch64/string/Makefile.inc b/lib/libc/aarch64/string/Makefile.inc
index 35523fb954be..bc05e849aa20 100644
--- a/lib/libc/aarch64/string/Makefile.inc
+++ b/lib/libc/aarch64/string/Makefile.inc
@@ -5,10 +5,8 @@
AARCH64_STRING_FUNCS= \
memcmp \
- memcpy \
memmove \
memrchr \
- memset \
stpcpy \
strchr \
strchrnul \
@@ -16,6 +14,11 @@ AARCH64_STRING_FUNCS= \
strnlen \
strrchr
+AARCH64_STRING_IFUNC_FILES= \
+ memcpy-mops.S \
+ memmove-mops.S \
+ memset-mops.S
+
# SIMD-enhanced routines not derived from Arm's code
MDSRCS+= \
memchr.S \
@@ -34,7 +37,13 @@ MDSRCS+= \
timingsafe_bcmp.S \
timingsafe_memcmp.S \
bcopy.c \
- bzero.c
+ bzero.c \
+ memcpy.S \
+ memcpy_resolver.c \
+ memmove_resolver.c \
+ memset.S \
+ memset_resolver.c \
+ memset_zva64.S
#
# Add the above functions. Generate an asm file that includes the needed
@@ -43,8 +52,8 @@ MDSRCS+= \
# override the generated file in these cases.
#
.for FUNC in ${AARCH64_STRING_FUNCS}
-.if !exists(${FUNC}.S)
-${FUNC}.S:
+.if !exists(${LIBC_SRCTOP}/aarch64/string/${FUNC}.S)
+${FUNC}.S: ${LIBC_SRCTOP}/aarch64/string/Makefile.inc
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}
@@ -55,6 +64,18 @@ MDSRCS+= ${FUNC}.S
CFLAGS.${FUNC}.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string
.endfor
-# memchr.S is a wrapper in the src tree for the implementation from
+.for FILE in ${AARCH64_STRING_IFUNC_FILES}
+${FILE}: ${LIBC_SRCTOP}/aarch64/string/Makefile.inc
+ printf '/* %sgenerated by libc/aarch64/string/Makefile.inc */\n' @ > ${.TARGET}
+ printf '#include "aarch64/%s"\n' ${FILE} >> ${.TARGET}
+CLEANFILES+= ${FILE}
+MDSRCS+= ${FILE}
+CFLAGS.${FILE}+=-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
+CFLAGS.memset_zva64.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string