diff options
author | Rich Felker <dalias@aerifal.cx> | 2013-07-21 03:48:35 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2013-07-21 03:48:35 -0400 |
commit | 976c0fdcb55fafc55682d86441e5293d8aa5259d (patch) | |
tree | c49aa1da4a8e97524c2996bce8fa90ed07a6f6d9 /crt | |
parent | 3edfd07073dd145124e15c80ea0276cd52c9909a (diff) | |
download | musl-976c0fdcb55fafc55682d86441e5293d8aa5259d.zip musl-976c0fdcb55fafc55682d86441e5293d8aa5259d.tar.gz musl-976c0fdcb55fafc55682d86441e5293d8aa5259d.tar.bz2 |
remove init/fini array asm from arm crti/crtn files
this code has been replaced by portable C code that works on all
archs. the old asm needs to be removed or ctors/dtors will run twice.
Diffstat (limited to 'crt')
-rw-r--r-- | crt/arm/crti.s | 24 | ||||
-rw-r--r-- | crt/arm/crtn.s | 24 |
2 files changed, 4 insertions, 44 deletions
diff --git a/crt/arm/crti.s b/crt/arm/crti.s index 35ae6ae..0d479cd 100644 --- a/crt/arm/crti.s +++ b/crt/arm/crti.s @@ -1,29 +1,9 @@ .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 + push {r0,lr} .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: + push {r0,lr} diff --git a/crt/arm/crtn.s b/crt/arm/crtn.s index eb0e883..1b626c0 100644 --- a/crt/arm/crtn.s +++ b/crt/arm/crtn.s @@ -1,31 +1,11 @@ -.weak __init_array_start -.weak __init_array_end -.hidden __init_array_start -.hidden __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} + pop {r0,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} + pop {r0,lr} tst lr,#1 moveq pc,lr bx lr |