1From 6de33ed642f119f1e2543095dd56e4a94f97c27f Mon Sep 17 00:00:00 2001
2From: Segher Boessenkool <segher@kernel.crashing.org>
3Date: Fri, 11 Mar 2022 21:15:18 +0000
4Subject: [PATCH] rs6000: Do not use rs6000_cpu for .machine ppc and ppc64
5 (PR104829)
6
7Fixes: 77eccbf39ed5
8
9rs6000.h has
10  #define PROCESSOR_POWERPC   PROCESSOR_PPC604
11  #define PROCESSOR_POWERPC64 PROCESSOR_RS64A
12which means that if you use things like  -mcpu=powerpc -mvsx  it will no
13longer work after my latest .machine patch.  This causes GCC build errors
14in some cases, not a good idea (even if the errors are actually
15pre-existing: using -mvsx with a machine that does not have VSX cannot
16work properly).
17
182022-03-11  Segher Boessenkool  <segher@kernel.crashing.org>
19
20	PR target/104829
21	* config/rs6000/rs6000.c (rs6000_machine_from_flags): Don't output
22	"ppc" and "ppc64" based on rs6000_cpu.
23
24(cherry picked from commit 80fcc4b6afee72443bef551064826b3b4b6785e6)
25(cherry picked from commit d87e0e297b1cba73a0c055d2a3e9267d288f435a)
26Signed-off-by: Romain Naour <romain.naour@gmail.com>
27---
28 gcc/config/rs6000/rs6000.c | 12 ++++++++++--
29 1 file changed, 10 insertions(+), 2 deletions(-)
30
31diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
32index 0a55c979c36..7e5cdd34840 100644
33--- a/gcc/config/rs6000/rs6000.c
34+++ b/gcc/config/rs6000/rs6000.c
35@@ -5782,20 +5782,28 @@ rs6000_machine_from_flags (void)
36   if (rs6000_cpu == PROCESSOR_MPCCORE)
37     return "\"821\"";
38
39+#if 0
40+  /* This (and ppc64 below) are disabled here (for now at least) because
41+     PROCESSOR_POWERPC, PROCESSOR_POWERPC64, and PROCESSOR_COMMON
42+     are #define'd as some of these.  Untangling that is a job for later.  */
43+
44   /* 600 series and 700 series, "classic" */
45   if (rs6000_cpu == PROCESSOR_PPC601 || rs6000_cpu == PROCESSOR_PPC603
46       || rs6000_cpu == PROCESSOR_PPC604 || rs6000_cpu == PROCESSOR_PPC604e
47-      || rs6000_cpu == PROCESSOR_PPC750 || rs6000_cpu == PROCESSOR_POWERPC)
48+      || rs6000_cpu == PROCESSOR_PPC750)
49     return "ppc";
50+#endif
51
52   /* Classic with AltiVec, "G4" */
53   if (rs6000_cpu == PROCESSOR_PPC7400 || rs6000_cpu == PROCESSOR_PPC7450)
54     return "\"7450\"";
55
56+#if 0
57   /* The older 64-bit CPUs */
58   if (rs6000_cpu == PROCESSOR_PPC620 || rs6000_cpu == PROCESSOR_PPC630
59-      || rs6000_cpu == PROCESSOR_RS64A || rs6000_cpu == PROCESSOR_POWERPC64)
60+      || rs6000_cpu == PROCESSOR_RS64A)
61     return "ppc64";
62+#endif
63
64   HOST_WIDE_INT flags = rs6000_isa_flags;
65
66--
672.34.3
68
69