Files
banan-os/kernel/klibc/arch/x86_64/string.S
Bananymous 2a9dad2dd8 LibC: Add SSE2 non-temporal memset and memcpy
Also cleanup other assembly by using local labels to emit them from the
assembled program.
2026-04-11 03:30:52 +03:00

32 lines
377 B
ArmAsm

.align 16
.global memcpy
memcpy:
movq %rdi, %rax
movq %rdx, %rcx
rep movsb
ret
.align 16
.global memmove
memmove:
cmpq %rdi, %rsi
jae memcpy
movq %rdi, %rax
leaq -1(%rdi, %rdx), %rdi
leaq -1(%rsi, %rdx), %rsi
movq %rdx, %rcx
std
rep movsb
cld
ret
.align 16
.global memset
memset:
movq %rdi, %r8
movb %sil, %al
movq %rdx, %rcx
rep stosb
movq %r8, %rax
ret