[AArch64] Fix cfi_adjust_cfa_offset usage in dl-tlsdesc.S
Commit Message
On 22/04/15 14:01, Szabolcs Nagy wrote:
> Some of the cfi annotations used incorrect sign.
> (This is a trivial patch, but depends on the fix
> for lazy TLSDESC initialization)
>
updated for https://sourceware.org/ml/libc-alpha/2015-06/msg00496.html
2015-06-16 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.
Comments
On 16 June 2015 at 10:27, Szabolcs Nagy <szabolcs.nagy@arm.com> wrote:
> On 22/04/15 14:01, Szabolcs Nagy wrote:
>> Some of the cfi annotations used incorrect sign.
>> (This is a trivial patch, but depends on the fix
>> for lazy TLSDESC initialization)
>>
>
> updated for https://sourceware.org/ml/libc-alpha/2015-06/msg00496.html
>
> 2015-06-16 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.
OK. You should write to overseers@sourceware.org to ask for write
access to glibc. Cheers /Marcus
@@ -118,7 +118,7 @@ _dl_tlsdesc_return_lazy:
.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
@@ -130,7 +130,7 @@ _dl_tlsdesc_undefweak:
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
@@ -208,7 +208,7 @@ _dl_tlsdesc_dynamic:
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:
@@ -297,7 +297,7 @@ _dl_tlsdesc_resolve_rela:
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
@@ -359,7 +359,7 @@ _dl_tlsdesc_resolve_hold:
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