summaryrefslogtreecommitdiff
path: root/ports/sysdeps/arm/dl-tlsdesc.S
diff options
context:
space:
mode:
Diffstat (limited to 'ports/sysdeps/arm/dl-tlsdesc.S')
-rw-r--r--ports/sysdeps/arm/dl-tlsdesc.S31
1 files changed, 16 insertions, 15 deletions
diff --git a/ports/sysdeps/arm/dl-tlsdesc.S b/ports/sysdeps/arm/dl-tlsdesc.S
index 7203c06ae6..d4b046669a 100644
--- a/ports/sysdeps/arm/dl-tlsdesc.S
+++ b/ports/sysdeps/arm/dl-tlsdesc.S
@@ -29,13 +29,13 @@
.global _dl_tlsdesc_return
.type _dl_tlsdesc_return,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_return:
sfi_breg r0, \
ldr r0, [\B]
BX (lr)
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_return, .-_dl_tlsdesc_return
@@ -43,14 +43,14 @@ _dl_tlsdesc_return:
.global _dl_tlsdesc_undefweak
.type _dl_tlsdesc_undefweak,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_undefweak:
GET_TLS (r1)
rsb r0, r0, #0
BX (lr)
cfi_endproc
- .fnend
+ eabi_fnend
.size _dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak
#ifdef SHARED
@@ -80,12 +80,12 @@ _dl_tlsdesc_dynamic(struct tlsdesc *tdp)
*/
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_dynamic:
/* Our calling convention is to clobber r0, r1 and the processor
flags. All others that are modified must be saved */
- .save {r2,r3,r4,lr}
+ eabi_save ({r2,r3,r4,lr})
push {r2,r3,r4,lr}
cfi_adjust_cfa_offset (16)
cfi_rel_offset (r2,0)
@@ -115,6 +115,7 @@ _dl_tlsdesc_dynamic:
#endif
cmn r2, #1
ittt ne
+ sfi_breg r1, \
ldrne r3, [r1, #4]
addne r3, r2, r3
rsbne r0, r4, r3
@@ -135,7 +136,7 @@ _dl_tlsdesc_dynamic:
#else
pop {r2,r3,r4, pc}
#endif
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
#endif /* SHARED */
@@ -145,7 +146,7 @@ _dl_tlsdesc_dynamic:
.global _dl_tlsdesc_lazy_resolver
.type _dl_tlsdesc_lazy_resolver,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_lazy_resolver:
/* r0 points at the tlsdesc,
@@ -155,10 +156,10 @@ _dl_tlsdesc_lazy_resolver:
We push the remaining call-clobbered registers here, and also
R1 -- to keep the stack correctly aligned. */
/* Tell the unwinder that r2 has already been pushed. */
- .save {r2}
+ eabi_save ({r2})
cfi_adjust_cfa_offset (4)
cfi_rel_offset (r2, 0)
- .save {r0,r1,r3,ip,lr}
+ eabi_save ({r0,r1,r3,ip,lr})
push {r0, r1, r3, ip, lr}
cfi_adjust_cfa_offset (20)
cfi_rel_offset (r0, 0)
@@ -180,7 +181,7 @@ _dl_tlsdesc_lazy_resolver:
sfi_breg r0, \
ldr r1, [\B, #4]
BX (r1)
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_lazy_resolver, .-_dl_tlsdesc_lazy_resolver
@@ -190,14 +191,14 @@ _dl_tlsdesc_lazy_resolver:
.global _dl_tlsdesc_resolve_hold
.type _dl_tlsdesc_resolve_hold,#function
cfi_startproc
- .fnstart
+ eabi_fnstart
.align 2
_dl_tlsdesc_resolve_hold:
/* Tell the unwinder that r2 has already been pushed. */
- .save {r2}
+ eabi_save ({r2})
cfi_adjust_cfa_offset (4)
cfi_rel_offset (r2, 0)
- .save {r0,r1,r3,ip,lr}
+ eabi_save ({r0,r1,r3,ip,lr})
push {r0, r1, r3, ip, lr}
cfi_adjust_cfa_offset (20)
cfi_rel_offset (r0, 0)
@@ -220,6 +221,6 @@ _dl_tlsdesc_resolve_hold:
sfi_breg r0, \
ldr r1, [\B, #4]
BX (r1)
- .fnend
+ eabi_fnend
cfi_endproc
.size _dl_tlsdesc_resolve_hold, .-_dl_tlsdesc_resolve_hold