summaryrefslogtreecommitdiff
path: root/libc/arch-x86/dynamic_function_dispatch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libc/arch-x86/dynamic_function_dispatch.cpp')
-rw-r--r--libc/arch-x86/dynamic_function_dispatch.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/libc/arch-x86/dynamic_function_dispatch.cpp b/libc/arch-x86/dynamic_function_dispatch.cpp
index 70f4b3e70..370b37204 100644
--- a/libc/arch-x86/dynamic_function_dispatch.cpp
+++ b/libc/arch-x86/dynamic_function_dispatch.cpp
@@ -107,6 +107,13 @@ DEFINE_IFUNC_FOR(wmemcmp) {
RETURN_FUNC(wmemcmp_func, wmemcmp_freebsd);
}
+typedef int wmemset_func(const wchar_t* __lhs, const wchar_t* __rhs, size_t __n);
+DEFINE_IFUNC_FOR(wmemset) {
+ __builtin_cpu_init();
+ if (__builtin_cpu_supports("avx2")) RETURN_FUNC(wmemset_func, wmemset_avx2);
+ RETURN_FUNC(wmemset_func, wmemset_freebsd);
+}
+
typedef int strcmp_func(const char* __lhs, const char* __rhs);
DEFINE_IFUNC_FOR(strcmp) {
__builtin_cpu_init();