Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- format ELF64
- public copy_aligned
- public copy_unaligned
- public copy_aligned_nontemporal
- public copy_naive
- section '.text' executable align 16
- ;RDI = dest
- ;RSI = source
- ;RDX = bytes
- copy_aligned:
- mov rcx, rdx
- shr rcx, 4
- align 16
- copy_aligned_loop:
- movaps xmm0, [rsi]
- movaps [rdi], xmm0
- add rsi, 16
- add rdi, 16
- loop copy_aligned_loop
- ret
- copy_aligned_nontemporal:
- mov rcx, rdx
- shr rcx, 4
- align 16
- copy_aligned_nontemporal_loop:
- movaps xmm0, [rsi]
- movntps [rdi], xmm0
- add rsi, 16
- add rdi, 16
- loop copy_aligned_nontemporal_loop
- ret
- copy_unaligned:
- mov rcx, rdx
- shr rcx, 4
- align 16
- copy_unaligned_loop:
- movups xmm0, [rsi]
- movups [rdi], xmm0
- add rsi, 16
- add rdi, 16
- loop copy_unaligned_loop
- ret
- copy_naive:
- mov rcx, rdx
- rep movsb
- ret
Advertisement
Add Comment
Please, Sign In to add comment