default64.h: Include rs6000-cpus.def.
authorDavid Edelsohn <dje.gcc@gmail.com>
Mon, 19 Jan 2015 18:33:24 +0000 (18:33 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Mon, 19 Jan 2015 18:33:24 +0000 (13:33 -0500)
        * config/rs6000/default64.h: Include rs6000-cpus.def.
        (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
        (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
        * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
        and POWER8.
        * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
        POWER8.
        * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
        pseudo-op to specify assembler dialect.

From-SVN: r219854

gcc/ChangeLog
gcc/config/rs6000/default64.h
gcc/config/rs6000/driver-rs6000.c
gcc/config/rs6000/linux64.h
gcc/config/rs6000/rs6000.c

index ac1e45935c565a24d304e740d4a81f463a664c69..7bcc9bc9ac3caaca9110408fac3aa602e855fe8c 100644 (file)
@@ -1,3 +1,15 @@
+2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
+
+       * config/rs6000/default64.h: Include rs6000-cpus.def.
+       (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
+       (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
+       * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
+       and POWER8.
+       * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
+       POWER8.
+       * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
+       pseudo-op to specify assembler dialect.
+
 2015-01-19  Martin Liska  <mliska@suse.cz>
 
        PR ipa/64664
index 1e7966ed134561f1e0e266ccc3ee48bbe5cc86a3..7a29672a1eac8a6ad7a4f049112490fedb725b68 100644 (file)
@@ -18,10 +18,14 @@ You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING3.  If not see
 <http://www.gnu.org/licenses/>.  */
 
+#define RS6000_CPU(NAME, CPU, FLAGS)
+#include "rs6000-cpus.def"
+#undef RS6000_CPU
+
 #if (TARGET_DEFAULT & MASK_LITTLE_ENDIAN)
 #undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_64BIT | MASK_LITTLE_ENDIAN)
+#define TARGET_DEFAULT (ISA_2_7_MASKS_SERVER | MASK_POWERPC64 | MASK_64BIT | MASK_LITTLE_ENDIAN)
 #else
 #undef TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_64BIT)
+#define TARGET_DEFAULT (MASK_PPC_GFXOPT | MASK_PPC_GPOPT | MASK_MFCRF | MASK_POWERPC64 | MASK_64BIT)
 #endif
index 18c8f25e7fa2f690554248f773d44e22af4814d7..af324712b2088aae2e53da649e122b9731193310 100644 (file)
@@ -327,6 +327,12 @@ detect_processor_aix (void)
     case 0x4000:
       return "power6";
 
+    case 0x8000:
+      return "power7";
+
+    case 0x10000:
+      return "power8";
+
     default:
       return "powerpc";
     }
index 1ec9e61986a621e138e7a0e9b951b89773087a55..0fb3911a1656a44801fa220831e693083733d06b 100644 (file)
@@ -71,11 +71,7 @@ extern int dot_symbols;
 #undef  PROCESSOR_DEFAULT
 #define PROCESSOR_DEFAULT PROCESSOR_POWER7
 #undef  PROCESSOR_DEFAULT64
-#ifdef LINUX64_DEFAULT_ABI_ELFv2
 #define PROCESSOR_DEFAULT64 PROCESSOR_POWER8
-#else
-#define PROCESSOR_DEFAULT64 PROCESSOR_POWER7
-#endif
 
 /* We don't need to generate entries in .fixup, except when
    -mrelocatable or -mrelocatable-lib is given.  */
index 80fcd655ffffb643b09c20a1e8f9ebc7b44a583f..aad4c02132d4c5e80cf07134ec2a02822bb7db88 100644 (file)
@@ -5077,6 +5077,28 @@ rs6000_file_start (void)
        putc ('\n', file);
     }
 
+#ifdef USING_ELFOS_H
+  if (rs6000_default_cpu == 0 || rs6000_default_cpu[0] == '\0'
+      || !global_options_set.x_rs6000_cpu_index)
+    {
+      fputs ("\t.machine ", asm_out_file);
+      if ((TARGET_DEFAULT & OPTION_MASK_DIRECT_MOVE) != 0)
+       fputs ("power8\n", asm_out_file);
+      else if ((TARGET_DEFAULT & OPTION_MASK_POPCNTD) != 0)
+       fputs ("power7\n", asm_out_file);
+      else if ((TARGET_DEFAULT & OPTION_MASK_CMPB) != 0)
+       fputs ("power6\n", asm_out_file);
+      else if ((TARGET_DEFAULT & OPTION_MASK_POPCNTB) != 0)
+       fputs ("power5\n", asm_out_file);
+      else if ((TARGET_DEFAULT & OPTION_MASK_MFCRF) != 0)
+       fputs ("power4\n", asm_out_file);
+      else if ((TARGET_DEFAULT & OPTION_MASK_POWERPC64) != 0)
+       fputs ("ppc64\n", asm_out_file);
+      else
+       fputs ("ppc\n", asm_out_file);
+    }
+#endif
+
   if (DEFAULT_ABI == ABI_ELFv2)
     fprintf (file, "\t.abiversion 2\n");