23 lines
334 B
ArmAsm
23 lines
334 B
ArmAsm
.global memmove
|
|
.type memmove,@function
|
|
memmove:
|
|
mov 4(%esp),%eax
|
|
sub 8(%esp),%eax
|
|
cmp 12(%esp),%eax
|
|
.hidden __memcpy_fwd
|
|
jae __memcpy_fwd
|
|
push %esi
|
|
push %edi
|
|
mov 12(%esp),%edi
|
|
mov 16(%esp),%esi
|
|
mov 20(%esp),%ecx
|
|
lea -1(%edi,%ecx),%edi
|
|
lea -1(%esi,%ecx),%esi
|
|
std
|
|
rep movsb
|
|
cld
|
|
lea 1(%edi),%eax
|
|
pop %edi
|
|
pop %esi
|
|
ret
|