152 lines · plain
1function(add_bcmp bcmp_name)2 add_implementation(bcmp ${bcmp_name}3 SRCS ${LIBC_SOURCE_DIR}/src/strings/bcmp.cpp4 HDRS ${LIBC_SOURCE_DIR}/src/strings/bcmp.h5 DEPENDS6 libc.src.string.memory_utils.memory_utils7 ${ARGN}8 )9endfunction()10 11if(${LIBC_TARGET_ARCHITECTURE_IS_X86_64})12 add_bcmp(bcmp_x86_64_opt_sse2 COMPILE_OPTIONS -march=k8 REQUIRE SSE2)13 add_bcmp(bcmp_x86_64_opt_sse4 COMPILE_OPTIONS -march=nehalem REQUIRE SSE4_2)14 add_bcmp(bcmp_x86_64_opt_avx2 COMPILE_OPTIONS -march=haswell REQUIRE AVX2)15 add_bcmp(bcmp_x86_64_opt_avx512 COMPILE_OPTIONS -march=skylake-avx512 REQUIRE AVX512BW)16 add_bcmp(bcmp_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})17 add_bcmp(bcmp)18elseif(LIBC_TARGET_OS_IS_GPU)19 add_bcmp(bcmp)20else()21 add_bcmp(bcmp_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})22 add_bcmp(bcmp)23endif()24 25function(add_bzero bzero_name)26 add_implementation(bzero ${bzero_name}27 SRCS ${LIBC_SOURCE_DIR}/src/strings/bzero.cpp28 HDRS ${LIBC_SOURCE_DIR}/src/strings/bzero.h29 DEPENDS30 libc.src.string.memory_utils.inline_memset31 ${ARGN}32 )33endfunction()34 35if(${LIBC_TARGET_ARCHITECTURE_IS_X86_64})36 add_bzero(bzero_x86_64_opt_sse2 COMPILE_OPTIONS -march=k8 REQUIRE SSE2)37 add_bzero(bzero_x86_64_opt_sse4 COMPILE_OPTIONS -march=nehalem REQUIRE SSE4_2)38 add_bzero(bzero_x86_64_opt_avx2 COMPILE_OPTIONS -march=haswell REQUIRE AVX2)39 add_bzero(bzero_x86_64_opt_avx512 COMPILE_OPTIONS -march=skylake-avx512 REQUIRE AVX512F)40 add_bzero(bzero_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})41 add_bzero(bzero)42elseif(LIBC_TARGET_OS_IS_GPU)43 add_bzero(bzero)44else()45 add_bzero(bzero_opt_host COMPILE_OPTIONS ${LIBC_COMPILE_OPTIONS_NATIVE})46 add_bzero(bzero)47endif()48 49add_entrypoint_object(50 bcopy51 SRCS52 bcopy.cpp53 HDRS54 bcopy.h55)56 57add_entrypoint_object(58 ffs59 SRCS60 ffs.cpp61 HDRS62 ffs.h63 DEPENDS64 libc.src.__support.math_extras65)66 67add_entrypoint_object(68 ffsl69 SRCS70 ffsl.cpp71 HDRS72 ffsl.h73 DEPENDS74 libc.src.__support.math_extras75)76 77add_entrypoint_object(78 ffsll79 SRCS80 ffsll.cpp81 HDRS82 ffsll.h83 DEPENDS84 libc.src.__support.math_extras85)86 87add_entrypoint_object(88 index89 SRCS90 index.cpp91 HDRS92 index.h93 DEPENDS94 libc.src.string.string_utils95)96 97add_entrypoint_object(98 rindex99 SRCS100 rindex.cpp101 HDRS102 rindex.h103 DEPENDS104 libc.src.string.string_utils105)106 107add_entrypoint_object(108 strcasecmp109 SRCS110 strcasecmp.cpp111 HDRS112 strcasecmp.h113 DEPENDS114 libc.src.__support.ctype_utils115 libc.src.string.memory_utils.inline_strcmp116)117 118add_entrypoint_object(119 strcasecmp_l120 SRCS121 strcasecmp_l.cpp122 HDRS123 strcasecmp_l.h124 DEPENDS125 libc.hdr.types.locale_t126 libc.src.__support.ctype_utils127 libc.src.string.memory_utils.inline_strcmp128)129 130add_entrypoint_object(131 strncasecmp132 SRCS133 strncasecmp.cpp134 HDRS135 strncasecmp.h136 DEPENDS137 libc.src.__support.ctype_utils138 libc.src.string.memory_utils.inline_strcmp139)140 141add_entrypoint_object(142 strncasecmp_l143 SRCS144 strncasecmp_l.cpp145 HDRS146 strncasecmp_l.h147 DEPENDS148 libc.hdr.types.locale_t149 libc.src.__support.ctype_utils150 libc.src.string.memory_utils.inline_strcmp151)152