From: Andreas Schwab Date: Wed, 16 Jul 2025 12:48:51 +0000 (+0200) Subject: [RISC-V] Fix wrong CFA during stack probe X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b441d735c092f5d60c4a9c7167ed9153003d49fa;p=thirdparty%2Fgcc.git [RISC-V] Fix wrong CFA during stack probe temp1 is used by the probe loop for the step size, but we need the final address of the stack after the loop which resides in temp2. PR target/121121 * config/riscv/riscv.cc (riscv_allocate_and_probe_stack_space): Use temp2 instead of temp1 for the CFA note. --- diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc index 6e630695b61..3324819864a 100644 --- a/gcc/config/riscv/riscv.cc +++ b/gcc/config/riscv/riscv.cc @@ -9077,7 +9077,7 @@ riscv_allocate_and_probe_stack_space (rtx temp1, HOST_WIDE_INT size) /* We want the CFA independent of the stack pointer for the duration of the loop. */ add_reg_note (insn, REG_CFA_DEF_CFA, - plus_constant (Pmode, temp1, + plus_constant (Pmode, temp2, initial_cfa_offset + rounded_size)); RTX_FRAME_RELATED_P (insn) = 1; }