.global memcpy | |
.global __memcpy_fwd | |
.hidden __memcpy_fwd | |
.type memcpy,@function | |
memcpy: | |
__memcpy_fwd: | |
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 |