diff options
Diffstat (limited to 'lib/libc/aarch64/string/Makefile.inc')
| -rw-r--r-- | lib/libc/aarch64/string/Makefile.inc | 33 |
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 |
