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