46 lines
800 B
ArmAsm
46 lines
800 B
ArmAsm
|
.syntax unified
|
||
|
|
||
|
.global __aeabi_memcpy8
|
||
|
.global __aeabi_memcpy4
|
||
|
.global __aeabi_memcpy
|
||
|
.global __aeabi_memmove8
|
||
|
.global __aeabi_memmove4
|
||
|
.global __aeabi_memmove
|
||
|
|
||
|
.type __aeabi_memcpy8,%function
|
||
|
.type __aeabi_memcpy4,%function
|
||
|
.type __aeabi_memcpy,%function
|
||
|
.type __aeabi_memmove8,%function
|
||
|
.type __aeabi_memmove4,%function
|
||
|
.type __aeabi_memmove,%function
|
||
|
|
||
|
__aeabi_memmove8:
|
||
|
__aeabi_memmove4:
|
||
|
__aeabi_memmove:
|
||
|
cmp r0, r1
|
||
|
bls 3f
|
||
|
cmp r2, #0
|
||
|
beq 2f
|
||
|
adds r0, r0, r2
|
||
|
adds r2, r1, r2
|
||
|
1: subs r2, r2, #1
|
||
|
ldrb r3, [r2]
|
||
|
subs r0, r0, #1
|
||
|
strb r3, [r0]
|
||
|
cmp r1, r2
|
||
|
bne 1b
|
||
|
2: bx lr
|
||
|
__aeabi_memcpy8:
|
||
|
__aeabi_memcpy4:
|
||
|
__aeabi_memcpy:
|
||
|
3: cmp r2, #0
|
||
|
beq 2f
|
||
|
adds r2, r1, r2
|
||
|
1: ldrb r3, [r1]
|
||
|
adds r1, r1, #1
|
||
|
strb r3, [r0]
|
||
|
adds r0, r0, #1
|
||
|
cmp r1, r2
|
||
|
bne 1b
|
||
|
2: bx lr
|