For some CPUs, the assembler machine directive cannot be determined by ISA flags.
gcc/ PR 104090/target * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also rtems_cpu. --- gcc/config/rs6000/rs6000.cc | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc index 7a4ef5e6c0a8..d37775ece84d 100644 --- a/gcc/config/rs6000/rs6000.cc +++ b/gcc/config/rs6000/rs6000.cc @@ -5935,6 +5935,34 @@ const char *rs6000_machine; const char * rs6000_machine_from_flags (void) { + /* For some CPUs, the machine cannot be determined by ISA flags. We have to + check them first. */ + switch (rs6000_cpu) + { + case PROCESSOR_PPC8540: + case PROCESSOR_PPC8548: + return "e500"; + + case PROCESSOR_PPCE300C2: + case PROCESSOR_PPCE300C3: + return "e300"; + + case PROCESSOR_PPCE500MC: + return "e500mc"; + + case PROCESSOR_PPCE500MC64: + return "e500mc64"; + + case PROCESSOR_PPCE5500: + return "e5500"; + + case PROCESSOR_PPCE6500: + return "e6500"; + + default: + break; + } + HOST_WIDE_INT flags = rs6000_isa_flags; /* Disable the flags that should never influence the .machine selection. */ -- 2.26.2