[libc] Add rep;movsb as an accelerator under x86
GitOrigin-RevId: ad82fe7b280aa8732dd1336e4fad66d1ef5870c6
diff --git a/src/string/memory_utils/elements_x86.h b/src/string/memory_utils/elements_x86.h
index c7e1ff9..9b32b42 100644
--- a/src/string/memory_utils/elements_x86.h
+++ b/src/string/memory_utils/elements_x86.h
@@ -163,6 +163,12 @@
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