https://gcc.gnu.org/g:5a7127c4074d42f75f36f02773662ace4fc6eef5

commit 5a7127c4074d42f75f36f02773662ace4fc6eef5
Author: Surya Kumari Jangala <[email protected]>
Date:   Tue Jun 9 11:55:13 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 9fb008a9b9fa..1266d2932e26 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -853,7 +853,7 @@ enum data_align { align_abi, align_opt, align_both };
    /* vrsave vscr sfp */                          \
    0, 0, 0,                                       \
    /* DMR 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)

Reply via email to