X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=crt%2Farm%2Fcrtn.s;h=928e06861e01f9d098724b3109d2bbd99736a4d3;hp=9d7107d0230b3e1ebcf0cb187bb39dfa4480c474;hb=c6383b7b10303457306932584fc23f24b5153a81;hpb=4ce3cb5cddda7b4ee9643e1f75ee5b8f1f191906 diff --git a/crt/arm/crtn.s b/crt/arm/crtn.s index 9d7107d0..928e0686 100644 --- a/crt/arm/crtn.s +++ b/crt/arm/crtn.s @@ -1,9 +1,29 @@ +.weak __init_array_start +.weak __init_array_end + .section .init + adr lr, 1f + ldr r4, 2f + ldr r5, 2f+4 + add r4, r4, lr + add r5, r5, lr +1: adr lr, 1b + cmp r4, r5 + beq 3f + ldmia r4!, {r3} + ldm sp, {r0,r1,r2} + tst r3,#1 + moveq pc,r3 + bx r3 +3: pop {r0,r1,r2,r4,r5,lr} tst lr,#1 moveq pc,lr bx lr +2: .word __init_array_start-1b + .word __init_array_end-1b .section .fini + pop {r4,r5,r6,lr} tst lr,#1 moveq pc,lr bx lr