Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/gpl3/gcc/dist/gcc/config/rs6000 Fix regression intr...
details: https://anonhg.NetBSD.org/src/rev/538916499198
branches: trunk
changeset: 961335:538916499198
user: rin <rin%NetBSD.org@localhost>
date: Fri Apr 16 02:26:43 2021 +0000
description:
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
diffstat:
external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diffs (23 lines):
diff -r aa02ea6406e2 -r 538916499198 external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c
--- a/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c Fri Apr 16 02:26:25 2021 +0000
+++ b/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000.c Fri Apr 16 02:26:43 2021 +0000
@@ -5552,6 +5552,8 @@
/* 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 @@
return "power5";
if ((flags & ISA_2_1_MASKS) != 0)
return "power4";
- if ((flags & OPTION_MASK_POWERPC64) != 0)
- return "ppc64";
- return "ppc";
+ return "ppc64";
}
void
Home |
Main Index |
Thread Index |
Old Index