https://gcc.gnu.org/g:92eb0f0e330ba1b78a339846c0840534bcc11c4c

commit 92eb0f0e330ba1b78a339846c0840534bcc11c4c
Author: Michael Meissner <meiss...@linux.ibm.com>
Date:   Wed Jul 31 13:03:39 2024 -0400

    Add gp, gfx to arch flags.
    
    2024-07-31  Michael Meissner  <meiss...@linux.ibm.com>
    
    gcc/
    
            * config/rs6000/rs6000-arch.def (ARCH_MASK_GP): Add gp.
            (ARCH_MASK_GFX): Add gfx.
            * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use arch
            masks for gp and gfx.
            * config/rs6000/rs6000.cc (get_arch_flags): Add support for gp and 
gfx.

Diff:
---
 gcc/config/rs6000/rs6000-arch.def |  2 ++
 gcc/config/rs6000/rs6000-c.cc     |  4 ++--
 gcc/config/rs6000/rs6000.cc       | 10 +++++++++-
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/gcc/config/rs6000/rs6000-arch.def 
b/gcc/config/rs6000/rs6000-arch.def
index e5b6e9581331..91bd2f638cf3 100644
--- a/gcc/config/rs6000/rs6000-arch.def
+++ b/gcc/config/rs6000/rs6000-arch.def
@@ -37,6 +37,8 @@
    the appropriate architecture flags based on the actual processor
    enumeration.  */
 
+ARCH_EXPAND(GPOPT,   "gpopt")
+ARCH_EXPAND(GFXOPT,  "gfxopt")
 ARCH_EXPAND(POWER4,  "power4")
 ARCH_EXPAND(POWER5,  "power5")
 ARCH_EXPAND(POWER5X, "power5+")
diff --git a/gcc/config/rs6000/rs6000-c.cc b/gcc/config/rs6000/rs6000-c.cc
index d7b1625f0867..63cf580b20b4 100644
--- a/gcc/config/rs6000/rs6000-c.cc
+++ b/gcc/config/rs6000/rs6000-c.cc
@@ -414,9 +414,9 @@ rs6000_target_modify_macros (bool define_p, HOST_WIDE_INT 
flags,
 
   /* rs6000_isa_flags and rs6000_arch_flags based options.  */
   rs6000_define_or_undefine_macro (define_p, "_ARCH_PPC");
-  if ((flags & OPTION_MASK_PPC_GPOPT) != 0)
+  if ((arch_flags & ARCH_MASK_GPOPT) != 0)
     rs6000_define_or_undefine_macro (define_p, "_ARCH_PPCSQ");
-  if ((flags & OPTION_MASK_PPC_GFXOPT) != 0)
+  if ((arch_flags & ARCH_MASK_GFXOPT) != 0)
     rs6000_define_or_undefine_macro (define_p, "_ARCH_PPCGR");
   if ((flags & OPTION_MASK_POWERPC64) != 0)
     rs6000_define_or_undefine_macro (define_p, "_ARCH_PPC64");
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index c89a6ea8e792..17c22dc59117 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -1827,7 +1827,9 @@ get_arch_flags (int cpu_index)
 {
   HOST_WIDE_INT ret = 0;
 
-  const HOST_WIDE_INT ARCH_COMBO_POWER4  = ARCH_MASK_POWER4;
+  const HOST_WIDE_INT ARCH_COMBO_POWER4  = (ARCH_MASK_POWER4
+                                           | ARCH_MASK_GPOPT
+                                           | ARCH_MASK_GFXOPT);
   const HOST_WIDE_INT ARCH_COMBO_POWER5  = ARCH_MASK_POWER5  | 
ARCH_COMBO_POWER4;
   const HOST_WIDE_INT ARCH_COMBO_POWER5X = ARCH_MASK_POWER5X | 
ARCH_COMBO_POWER5;
   const HOST_WIDE_INT ARCH_COMBO_POWER6  = ARCH_MASK_POWER6  | 
ARCH_COMBO_POWER5X;
@@ -1888,6 +1890,12 @@ get_arch_flags (int cpu_index)
 
        if (TARGET_CMPB)
          ret |= ARCH_MASK_POWER6;
+
+       if (TARGET_PPC_GPOPT)
+         ret |= ARCH_MASK_GPOPT;
+
+       if (TARGET_PPC_GFXOPT)
+         ret |= ARCH_MASK_GFXOPT;
        break;
       }

Reply via email to