iconv: fix missing bounds checking for shift_jis decoding
[musl.git] / src / string / arm / __aeabi_memcpy.s
blob3a527e41b8f02006840dd2f606797915d0fd58f2
1 .syntax unified
3 .global __aeabi_memcpy8
4 .global __aeabi_memcpy4
5 .global __aeabi_memcpy
6 .global __aeabi_memmove8
7 .global __aeabi_memmove4
8 .global __aeabi_memmove
10 .type __aeabi_memcpy8,%function
11 .type __aeabi_memcpy4,%function
12 .type __aeabi_memcpy,%function
13 .type __aeabi_memmove8,%function
14 .type __aeabi_memmove4,%function
15 .type __aeabi_memmove,%function
17 __aeabi_memmove8:
18 __aeabi_memmove4:
19 __aeabi_memmove:
20 cmp r0, r1
21 bls 3f
22 cmp r2, #0
23 beq 2f
24 adds r0, r0, r2
25 adds r2, r1, r2
26 1: subs r2, r2, #1
27 ldrb r3, [r2]
28 subs r0, r0, #1
29 strb r3, [r0]
30 cmp r1, r2
31 bne 1b
32 2: bx lr
33 __aeabi_memcpy8:
34 __aeabi_memcpy4:
35 __aeabi_memcpy:
36 3: cmp r2, #0
37 beq 2f
38 adds r2, r1, r2
39 1: ldrb r3, [r1]
40 adds r1, r1, #1
41 strb r3, [r0]
42 adds r0, r0, #1
43 cmp r1, r2
44 bne 1b
45 2: bx lr