aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-stdarg.cc
diff options
context:
space:
mode:
authorXianmiao Qu <cooper.qu@linux.alibaba.com>2023-10-09 07:24:39 -0600
committerJeff Law <jlaw@ventanamicro.com>2023-10-09 07:24:39 -0600
commit578aa2f80056175b902671b30cc77e38945e3ba4 (patch)
tree68d5bd210e75202c03366e1535280540003a7080 /gcc/tree-stdarg.cc
parent11b8cf1685bb40af5b86653e492e350983025957 (diff)
downloadgcc-578aa2f80056175b902671b30cc77e38945e3ba4.zip
gcc-578aa2f80056175b902671b30cc77e38945e3ba4.tar.gz
gcc-578aa2f80056175b902671b30cc77e38945e3ba4.tar.bz2
THead: Fix missing CFI directives for th.sdd in prologue.
When generating CFI directives for the store-pair instruction, if we add two parallel REG_FRAME_RELATED_EXPR expr_lists like (expr_list:REG_FRAME_RELATED_EXPR (set (mem/c:DI (plus:DI (reg/f:DI 2 sp) (const_int 8 [0x8])) [1 S8 A64]) (reg:DI 1 ra)) (expr_list:REG_FRAME_RELATED_EXPR (set (mem/c:DI (reg/f:DI 2 sp) [1 S8 A64]) (reg:DI 8 s0)) only the first expr_list will be recognized by dwarf2out_frame_debug funciton. So, here we generate a SEQUENCE expression of REG_FRAME_RELATED_EXPR, which includes two sub-expressions of RTX_FRAME_RELATED_P. Then the dwarf2out_frame_debug_expr function will iterate through all the sub-expressions and generate the corresponding CFI directives. gcc/ * config/riscv/thead.cc (th_mempair_save_regs): Fix missing CFI directives for store-pair instruction. gcc/testsuite/ * gcc.target/riscv/xtheadmempair-4.c: New test.
Diffstat (limited to 'gcc/tree-stdarg.cc')
0 files changed, 0 insertions, 0 deletions