memcpy asm for i386 and x86_64
[musl] / src / string / x86_64 / memcpy.s
diff --git a/src/string/x86_64/memcpy.s b/src/string/x86_64/memcpy.s
new file mode 100644 (file)
index 0000000..1282dc3
--- /dev/null
@@ -0,0 +1,22 @@
+.global memcpy
+.type memcpy,@function
+memcpy:
+       mov %rdi,%rax
+       cmp $8,%rdx
+       jc 1f
+       test $7,%edi
+       jz 1f
+2:     movsb
+       dec %rdx
+       test $7,%edi
+       jnz 2b
+1:     mov %rdx,%rcx
+       shr $3,%rcx
+       rep
+       movsq
+       and $7,%edx
+       jz 1f
+2:     movsb
+       dec %edx
+       jnz 2b
+1:     ret