diff options
author | Szabolcs Nagy <nsz@port70.net> | 2015-06-17 12:44:53 +0100 |
---|---|---|
committer | Szabolcs Nagy <nsz@port70.net> | 2015-06-17 12:44:53 +0100 |
commit | c71c89e5c72baf43fd44d08dda8ab846eec5b1d6 (patch) | |
tree | 86e293c469bba98068896f16a1458e76201d45ef | |
parent | 08325735c2efb0257b8c07ac0ff91e44c27ecbf8 (diff) | |
download | glibc-c71c89e5c72baf43fd44d08dda8ab846eec5b1d6.zip glibc-c71c89e5c72baf43fd44d08dda8ab846eec5b1d6.tar.gz glibc-c71c89e5c72baf43fd44d08dda8ab846eec5b1d6.tar.bz2 |
[AArch64] Fix cfi_adjust_cfa_offset usage in dl-tlsdesc.S
Some of the cfi annotations used incorrect sign.
* 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.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | sysdeps/aarch64/dl-tlsdesc.S | 10 |
2 files changed, 10 insertions, 5 deletions
@@ -1,5 +1,10 @@ 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. diff --git a/sysdeps/aarch64/dl-tlsdesc.S b/sysdeps/aarch64/dl-tlsdesc.S index c7adf79..64719eb 100644 --- a/sysdeps/aarch64/dl-tlsdesc.S +++ b/sysdeps/aarch64/dl-tlsdesc.S @@ -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 |