https://gcc.gnu.org/g:59ff32799814ab6ce7f7da7a026470cea2a13084
commit 59ff32799814ab6ce7f7da7a026470cea2a13084 Author: Surya Kumari Jangala <[email protected]> Date: Wed Jun 10 11:45:31 2026 -0500 rs6000: Make DMR registers as call-used DMR regs are call-used registers by convention. But they were erroneously denoted as call-saved. This led to incorrect cost computations in assign_hard_reg() resulting in VSX registers being assigned to allocnos having TDO mode. Assigning VSX registers to TDO mode allocnos will result in the LRA generating extra instructions to spill/restore DMR registers to/from VSX registers. This patch changes CALL_REALLY_USED_REGISTERS to indicate DMR registers as call-used. 2026-06-10 Surya Kumari Jangala <[email protected]> Diff: --- gcc/config/rs6000/rs6000.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 33669b2f5606..1eff9d2c48fd 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -832,7 +832,7 @@ enum data_align { align_abi, align_opt, align_both }; /* vrsave vscr sfp */ \ 0, 0, 0, \ /* Dense math registers. */ \ - 0, 0, 0, 0, 0, 0, 0, 0 \ + 1, 1, 1, 1, 1, 1, 1, 1 \ } #define TOTAL_ALTIVEC_REGS (LAST_ALTIVEC_REGNO - FIRST_ALTIVEC_REGNO + 1)
