diff options
| author | mengqinggang <mengqinggang@loongson.cn> | 2024-07-05 10:40:33 +0800 |
|---|---|---|
| committer | caiyinyu <caiyinyu@loongson.cn> | 2024-07-17 09:32:25 +0800 |
| commit | 43224b1379d60b1ad98d29ef3d7905d55f828a9f (patch) | |
| tree | c1819b63daa3898945b46319965ab291cbb74b47 /malloc/scratch_buffer_set_array_size.c | |
| parent | 5bcf6265f215326d14dfacdce8532792c2c7f8f8 (diff) | |
| download | glibc-43224b1379d60b1ad98d29ef3d7905d55f828a9f.tar.xz glibc-43224b1379d60b1ad98d29ef3d7905d55f828a9f.zip | |
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.
Diffstat (limited to 'malloc/scratch_buffer_set_array_size.c')
0 files changed, 0 insertions, 0 deletions
