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