[libc-commits] [libc] 1c71603 - [libc] Add rep; movsb as an accelerator under x86
Guillaume Chatelet via libc-commits
libc-commits at lists.llvm.org
Fri Oct 8 06:35:16 PDT 2021
Author: Guillaume Chatelet
Date: 2021-10-08T13:34:59Z
New Revision: 1c7160300db124468ef4a26ec55ad3d6e6527a69
URL: https://github.com/llvm/llvm-project/commit/1c7160300db124468ef4a26ec55ad3d6e6527a69
DIFF: https://github.com/llvm/llvm-project/commit/1c7160300db124468ef4a26ec55ad3d6e6527a69.diff
LOG: [libc] Add rep;movsb as an accelerator under x86
Added:
Modified:
libc/src/string/memory_utils/elements_x86.h
Removed:
################################################################################
diff --git a/libc/src/string/memory_utils/elements_x86.h b/libc/src/string/memory_utils/elements_x86.h
index 2873fff8b2e22..9521e0625ab85 100644
--- a/libc/src/string/memory_utils/elements_x86.h
+++ b/libc/src/string/memory_utils/elements_x86.h
@@ -160,6 +160,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
More information about the libc-commits
mailing list