X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=crt%2Farm%2Fcrti.s;h=35ae6ae695d79ae4e453b63d6c115ba4e12322db;hp=2eb23ed5884155d0bbe795a2b60a2c2c2bb39950;hb=d432b2c057fc64256645422382c2f7e32c45b3cc;hpb=4ce3cb5cddda7b4ee9643e1f75ee5b8f1f191906 diff --git a/crt/arm/crti.s b/crt/arm/crti.s index 2eb23ed5..35ae6ae6 100644 --- a/crt/arm/crti.s +++ b/crt/arm/crti.s @@ -1,7 +1,29 @@ .section .init .global _init _init: + push {r0,r1,r2,r4,r5,lr} + +.weak __fini_array_start +.weak __fini_array_end +.hidden __fini_array_start +.hidden __fini_array_end .section .fini .global _fini _fini: + push {r4,r5,r6,lr} + 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} + tst r3,#1 + moveq pc,r3 + bx r3 +2: .word __fini_array_start-1b + .word __fini_array_end-1b +3: