fix regression that made shared libs crash on arm
[musl] / crt / arm / crtn.s
1 .weak __init_array_start
2 .weak __init_array_end
3 .hidden __init_array_start
4 .hidden __init_array_end
5
6 .section .init
7         adr lr, 1f
8         ldr r4, 2f
9         ldr r5, 2f+4
10         add r4, r4, lr
11         add r5, r5, lr
12 1:      adr lr, 1b
13         cmp r4, r5
14         beq 3f
15         ldmia r4!, {r3}
16         ldm sp, {r0,r1,r2}
17         tst r3,#1
18         moveq pc,r3
19         bx r3
20 3:      pop {r0,r1,r2,r4,r5,lr}
21         tst lr,#1
22         moveq pc,lr
23         bx lr
24 2:      .word __init_array_start-1b
25         .word __init_array_end-1b
26
27 .section .fini
28         pop {r4,r5,r6,lr}
29         tst lr,#1
30         moveq pc,lr
31         bx lr