2015-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
+ * sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_return_lazy): Fix
+ cfi_adjust_cfa_offset argument.
+ (_dl_tlsdesc_undefweak, _dl_tlsdesc_dynamic): Likewise.
+ (_dl_tlsdesc_resolve_rela, _dl_tlsdesc_resolve_hold): Likewise.
+
[BZ #18034]
* sysdeps/aarch64/dl-tlsdesc.h (_dl_tlsdesc_return_lazy): Declare.
* sysdeps/aarch64/dl-tlsdesc.S (_dl_tlsdesc_return_lazy): Define.
.align 2
_dl_tlsdesc_undefweak:
str x1, [sp, #-16]!
- cfi_adjust_cfa_offset(16)
+ cfi_adjust_cfa_offset (16)
/* The ldar here happens after the load from [x0] at the call site
(that is generated by the compiler as part of the TLS access ABI),
so it reads the same value (this function is the final value of
mrs x1, tpidr_el0
sub x0, x0, x1
ldr x1, [sp], #16
- cfi_adjust_cfa_offset(16)
+ cfi_adjust_cfa_offset (-16)
RET
cfi_endproc
.size _dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak
ldp x3, x4, [sp, #32+16*1]
ldp x29, x30, [sp], #(32+16*NSAVEXREGPAIRS)
- cfi_adjust_cfa_offset (32+16*NSAVEXREGPAIRS)
+ cfi_adjust_cfa_offset (-32-16*NSAVEXREGPAIRS)
# undef NSAVEXREGPAIRS
RET
2:
ldp x15, x16, [sp, #32+16*6]
ldp x17, x18, [sp, #32+16*7]
ldp x29, x30, [sp], #(32+16*NSAVEXREGPAIRS)
- cfi_adjust_cfa_offset (-32+16*NSAVEXREGPAIRS)
+ cfi_adjust_cfa_offset (-32-16*NSAVEXREGPAIRS)
ldp x2, x3, [sp], #16
cfi_adjust_cfa_offset (-16)
RET
ldp x15, x16, [sp, #32+16*7]
ldp x17, x18, [sp, #32+16*8]
ldp x29, x30, [sp], #(32+16*NSAVEXREGPAIRS)
- cfi_adjust_cfa_offset (-32+16*NSAVEXREGPAIRS)
+ cfi_adjust_cfa_offset (-32-16*NSAVEXREGPAIRS)
RET
cfi_endproc
.size _dl_tlsdesc_resolve_hold, .-_dl_tlsdesc_resolve_hold