blob: 5e84c7be1f7d6fc42e64476a536cce2f289f16da [file] [log] [blame]
function(add_bcmp bcmp_name)
add_implementation(bcmp ${bcmp_name}
SRCS ${LIBC_SOURCE_DIR}/src/strings/bcmp.cpp
HDRS ${LIBC_SOURCE_DIR}/src/strings/bcmp.h
DEPENDS
libc.src.string.memory_utils.memory_utils
${ARGN}
)
endfunction()
if(${LIBC_TARGET_ARCHITECTURE_IS_X86})
add_bcmp(bcmp_x86_64_opt_sse2 COMPILE_OPTIONS -march=k8 REQUIRE SSE2)
add_bcmp(bcmp_x86_64_opt_sse4 COMPILE_OPTIONS -march=nehalem REQUIRE SSE4_2)
add_bcmp(bcmp_x86_64_opt_avx2 COMPILE_OPTIONS -march=haswell REQUIRE AVX2)
add_bcmp(bcmp_x86_64_opt_avx512 COMPILE_OPTIONS -march=skylake-avx512 REQUIRE AVX512BW)
add_bcmp(bcmp_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
add_bcmp(bcmp)
elseif(LIBC_TARGET_OS_IS_GPU)
add_bcmp(bcmp)
else()
add_bcmp(bcmp_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
add_bcmp(bcmp)
endif()
function(add_bzero bzero_name)
add_implementation(bzero ${bzero_name}
SRCS ${LIBC_SOURCE_DIR}/src/strings/bzero.cpp
HDRS ${LIBC_SOURCE_DIR}/src/strings/bzero.h
DEPENDS
libc.src.string.memory_utils.inline_memset
${ARGN}
)
endfunction()
if(${LIBC_TARGET_ARCHITECTURE_IS_X86})
add_bzero(bzero_x86_64_opt_sse2 COMPILE_OPTIONS -march=k8 REQUIRE SSE2)
add_bzero(bzero_x86_64_opt_sse4 COMPILE_OPTIONS -march=nehalem REQUIRE SSE4_2)
add_bzero(bzero_x86_64_opt_avx2 COMPILE_OPTIONS -march=haswell REQUIRE AVX2)
add_bzero(bzero_x86_64_opt_avx512 COMPILE_OPTIONS -march=skylake-avx512 REQUIRE AVX512F)
add_bzero(bzero_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
add_bzero(bzero)
elseif(LIBC_TARGET_OS_IS_GPU)
add_bzero(bzero)
else()
add_bzero(bzero_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})
add_bzero(bzero)
endif()
add_entrypoint_object(
bcopy
SRCS
bcopy.cpp
HDRS
bcopy.h
)
add_entrypoint_object(
index
SRCS
index.cpp
HDRS
index.h
DEPENDS
libc.src.string.string_utils
)
add_entrypoint_object(
rindex
SRCS
rindex.cpp
HDRS
rindex.h
DEPENDS
libc.src.string.string_utils
)
add_entrypoint_object(
strcasecmp
SRCS
strcasecmp.cpp
HDRS
strcasecmp.h
DEPENDS
libc.src.__support.ctype_utils
libc.src.string.memory_utils.inline_strcmp
)
add_entrypoint_object(
strncasecmp
SRCS
strncasecmp.cpp
HDRS
strncasecmp.h
DEPENDS
libc.src.__support.ctype_utils
libc.src.string.memory_utils.inline_strcmp
)