forked from KolibriOS/kolibrios
1402c59305
git-svn-id: svn://kolibrios.org@1408 a494cfbc-eb01-0410-851d-a64ba20cac60
27 lines
815 B
ArmAsm
27 lines
815 B
ArmAsm
# memcpy() Author: Kees J. Bot 2 Jan 1994
|
|
|
|
# void *memcpy(void *s1, const void *s2, size_t n)
|
|
# Copy a chunk of memory.
|
|
# This routine need not handle overlap, so it does not handle overlap.
|
|
# One could simply call __memmove, the cost of the overlap check is
|
|
# negligible, but you are dealing with a programmer who believes that
|
|
# if anything can go wrong, it should go wrong.
|
|
|
|
.intel_syntax
|
|
|
|
.globl _memcpy
|
|
|
|
.text
|
|
|
|
.align 16
|
|
_memcpy:
|
|
push ebp
|
|
mov ebp, esp
|
|
push esi
|
|
push edi
|
|
mov edi, [ebp+8] # String s1
|
|
mov esi, [ebp+12] # String s2
|
|
mov ecx, [ebp+16] # Length
|
|
# No overlap check here
|
|
jmp __memcpy # Call the part of __memmove that copies up
|