mirror of https://git.musl-libc.org/git/musl
2 changed files with 51 additions and 0 deletions
@ -0,0 +1,29 @@ |
|||||
|
.global memcpy |
||||
|
.type memcpy,@function |
||||
|
memcpy: |
||||
|
push %esi |
||||
|
push %edi |
||||
|
mov 12(%esp),%edi |
||||
|
mov 16(%esp),%esi |
||||
|
mov 20(%esp),%ecx |
||||
|
mov %edi,%eax |
||||
|
cmp $4,%ecx |
||||
|
jc 1f |
||||
|
test $3,%edi |
||||
|
jz 1f |
||||
|
2: movsb |
||||
|
dec %ecx |
||||
|
test $3,%edi |
||||
|
jnz 2b |
||||
|
1: mov %ecx,%edx |
||||
|
shr $2,%ecx |
||||
|
rep |
||||
|
movsl |
||||
|
and $3,%edx |
||||
|
jz 1f |
||||
|
2: movsb |
||||
|
dec %edx |
||||
|
jnz 2b |
||||
|
1: pop %edi |
||||
|
pop %esi |
||||
|
ret |
||||
@ -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 |
||||
Loading…
Reference in new issue