diff --git a/libc/src/string/memory_utils/elements_x86.h b/libc/src/string/memory_utils/elements_x86.h index c7e1ff901795..9b32b427f76e 100644 --- a/libc/src/string/memory_utils/elements_x86.h +++ b/libc/src/string/memory_utils/elements_x86.h @@ -163,6 +163,12 @@ using _64 = __llvm_libc::Repeated<_8, 8>; using _128 = __llvm_libc::Repeated<_8, 16>; #endif +struct Accelerator { + static void Copy(char *dst, const char *src, size_t count) { + asm volatile("rep movsb" : "+D"(dst), "+S"(src), "+c"(count) : : "memory"); + } +}; + } // namespace x86 } // namespace __llvm_libc