]> sourceware.org Git - glibc.git/commit
LoongArch: Add cfi instructions for _dl_tlsdesc_dynamic
authormengqinggang <mengqinggang@loongson.cn>
Fri, 5 Jul 2024 02:40:33 +0000 (10:40 +0800)
committercaiyinyu <caiyinyu@loongson.cn>
Wed, 17 Jul 2024 01:32:25 +0000 (09:32 +0800)
commit43224b1379d60b1ad98d29ef3d7905d55f828a9f
treec1819b63daa3898945b46319965ab291cbb74b47
parent5bcf6265f215326d14dfacdce8532792c2c7f8f8
LoongArch: Add cfi instructions for _dl_tlsdesc_dynamic

In _dl_tlsdesc_dynamic, there are three 'addi.d sp, sp, -size'
instructions to allocate stack size for Float/LSX/LASX registers.
Every 'addi.d sp, sp, -size' needs a cfi_adjust_cfa_offset because
of sp is used to compute CFA. But only one 'addi.d sp, sp, -size'
will be run according to HWCAP value. And all cfi_adjust_cfa_offset
will be executed in stack unwinding, it result in incorrect CFA.

Change _dl_tlsdesc_dynamic to _dl_tlsdesc_dynamic,
_dl_tlsdesc_dynamic_lsx and _dl_tlsdesc_dynamic_lasx.
Conflicting cfi instructions can be distributed to the three functions.
And cfi instructions can correspond to stack down instructions.
sysdeps/loongarch/dl-machine.h
sysdeps/loongarch/dl-tlsdesc-dynamic.h [new file with mode: 0644]
sysdeps/loongarch/dl-tlsdesc.S
sysdeps/loongarch/dl-tlsdesc.h
sysdeps/loongarch/tlsdesc.sym
This page took 0.037545 seconds and 5 git commands to generate.