Module Name: src Committed By: rin Date: Fri Apr 16 02:26:43 UTC 2021
Modified Files: src/external/gpl3/gcc/dist/gcc/config/rs6000: rs6000.c Log Message: Fix regression introduced to GCC10, where it wrongly recognizes 32-bit processors as POWER9 if -misel flag is specified. rs6000_machine_from_flags() assumes ISEL instructions are supported only for POWER9 and successors. However, ISEL is also implemented for 32-bit booke processors. Since our kernel for booke is compiled with -misel, this regression completely breaks it. As a fix, check whether CPU is 64-bit capable or not, before checking -misel flag. The problem has been reported as 100108 to upstream: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100108 OK mrg To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 \ src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c diff -u src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c:1.25 src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c:1.26 --- src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c:1.25 Fri Apr 16 02:18:04 2021 +++ src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c Fri Apr 16 02:26:43 2021 @@ -5552,6 +5552,8 @@ rs6000_machine_from_flags (void) /* Disable the flags that should never influence the .machine selection. */ flags &= ~(OPTION_MASK_PPC_GFXOPT | OPTION_MASK_PPC_GPOPT); + if ((flags & OPTION_MASK_POWERPC64) == 0) + return "ppc"; if ((flags & (ISA_3_1_MASKS_SERVER & ~ISA_3_0_MASKS_SERVER)) != 0) return "power10"; if ((flags & (ISA_3_0_MASKS_SERVER & ~ISA_2_7_MASKS_SERVER)) != 0) @@ -5566,9 +5568,7 @@ rs6000_machine_from_flags (void) return "power5"; if ((flags & ISA_2_1_MASKS) != 0) return "power4"; - if ((flags & OPTION_MASK_POWERPC64) != 0) - return "ppc64"; - return "ppc"; + return "ppc64"; } void