rs6000: Ignore GFXOPT (and GPOPT) for choosing machine
The function rs6000_machine_from_flags chooses what .machine string to used based on the rs6000_isa_flags flags. For that it checks for each ISA level if something for its ISA_*_MASKS is selected. This does not work for GFXOPT and GPOPT: these are set as flags in ISA_2_5_MASKS_SERVER, but they aren't actually new there, they just are not selected by default for older ISAs (they were optional). This patch makes OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT not influence the .machine selection. * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the .machine string. From-SVN: r273246
This commit is contained in:
parent
9d9171550a
commit
c83faba13d
2 changed files with 19 additions and 9 deletions
|
@ -1,3 +1,9 @@
|
|||
2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
* config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
|
||||
OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
|
||||
.machine string.
|
||||
|
||||
2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
|
||||
|
||||
PR rtl-optimization/88233
|
||||
|
|
|
@ -5547,22 +5547,26 @@ const char *rs6000_machine;
|
|||
const char *
|
||||
rs6000_machine_from_flags (void)
|
||||
{
|
||||
if ((rs6000_isa_flags & (ISA_FUTURE_MASKS_SERVER & ~ISA_3_0_MASKS_SERVER))
|
||||
!= 0)
|
||||
HOST_WIDE_INT flags = rs6000_isa_flags;
|
||||
|
||||
/* Disable the flags that should never influence the .machine selection. */
|
||||
flags &= ~(OPTION_MASK_PPC_GFXOPT | OPTION_MASK_PPC_GPOPT);
|
||||
|
||||
if ((flags & (ISA_FUTURE_MASKS_SERVER & ~ISA_3_0_MASKS_SERVER)) != 0)
|
||||
return "future";
|
||||
if ((rs6000_isa_flags & (ISA_3_0_MASKS_SERVER & ~ISA_2_7_MASKS_SERVER)) != 0)
|
||||
if ((flags & (ISA_3_0_MASKS_SERVER & ~ISA_2_7_MASKS_SERVER)) != 0)
|
||||
return "power9";
|
||||
if ((rs6000_isa_flags & (ISA_2_7_MASKS_SERVER & ~ISA_2_6_MASKS_SERVER)) != 0)
|
||||
if ((flags & (ISA_2_7_MASKS_SERVER & ~ISA_2_6_MASKS_SERVER)) != 0)
|
||||
return "power8";
|
||||
if ((rs6000_isa_flags & (ISA_2_6_MASKS_SERVER & ~ISA_2_5_MASKS_SERVER)) != 0)
|
||||
if ((flags & (ISA_2_6_MASKS_SERVER & ~ISA_2_5_MASKS_SERVER)) != 0)
|
||||
return "power7";
|
||||
if ((rs6000_isa_flags & (ISA_2_5_MASKS_SERVER & ~ISA_2_4_MASKS)) != 0)
|
||||
if ((flags & (ISA_2_5_MASKS_SERVER & ~ISA_2_4_MASKS)) != 0)
|
||||
return "power6";
|
||||
if ((rs6000_isa_flags & (ISA_2_4_MASKS & ~ISA_2_1_MASKS)) != 0)
|
||||
if ((flags & (ISA_2_4_MASKS & ~ISA_2_1_MASKS)) != 0)
|
||||
return "power5";
|
||||
if ((rs6000_isa_flags & ISA_2_1_MASKS) != 0)
|
||||
if ((flags & ISA_2_1_MASKS) != 0)
|
||||
return "power4";
|
||||
if ((rs6000_isa_flags & OPTION_MASK_POWERPC64) != 0)
|
||||
if ((flags & OPTION_MASK_POWERPC64) != 0)
|
||||
return "ppc64";
|
||||
return "ppc";
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue