]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[RISC-V] Fix wrong CFA during stack probe
authorAndreas Schwab <schwab@suse.de>
Wed, 16 Jul 2025 12:48:51 +0000 (14:48 +0200)
committerAndreas Schwab <schwab@suse.de>
Thu, 31 Jul 2025 10:51:41 +0000 (12:51 +0200)
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.

(cherry picked from commit b441d735c092f5d60c4a9c7167ed9153003d49fa)

gcc/config/riscv/riscv.cc

index 962bfe3aea503f67be803a377d23b2cf8136a9dc..bd0046ad2e8ffc4f0c85153db02f739c207b1d7b 100644 (file)
@@ -8698,7 +8698,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;
        }