aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2022-01-18 12:44:53 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-01-19 07:50:49 +0100
commit1ead972cef7622682c5e6c4fa563c4a894d6e0c3 (patch)
tree78e9340ea18dcc787612c5ecfefab5bb3767c1fb
parent8160b410517e1e3493d92358579d380872acb3e8 (diff)
downloadgcc-1ead972cef7622682c5e6c4fa563c4a894d6e0c3.zip
gcc-1ead972cef7622682c5e6c4fa563c4a894d6e0c3.tar.gz
gcc-1ead972cef7622682c5e6c4fa563c4a894d6e0c3.tar.bz2
powerc: Fix asm machine directive for some CPUs
For some CPUs, the assembler machine directive cannot be determined by ISA flags. gcc/ PR target/104090 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also rs6000_cpu.
-rw-r--r--gcc/config/rs6000/rs6000.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index 7a4ef5e..2a338a2 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -5935,6 +5935,31 @@ 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";
+ }
+
HOST_WIDE_INT flags = rs6000_isa_flags;
/* Disable the flags that should never influence the .machine selection. */