+2018-11-27 Alan Modra <amodra@gmail.com>
+
+ * config/rs6000/aix71.h (ASM_SPEC): Don't select default -maix64
+ cpu here.
+ (ASM_CPU_SPEC): Do so here. Rewrite using if .. else if .. specs
+ form. Error on missing -mcpu case.
+ * config/rs6000/driver-rs6000.c (asm_names <_AIX>): Update NULL case.
+ (asm_names <!_AIX>): Add missing cpus. Update NULL case. Apply
+ PR63177 fix for -mcpu=power8 and -mcpu=powerpc64le.
+ * config/rs6000/rs6000.h (ASM_CPU_SPEC): Rewrite using if ..
+ else if .. specs form. Error on missing -mcpu case. Don't output
+ duplicate -maltivec. Apply PR63177 fix for -mcpu=powerpc64le.
+
2018-11-26 David Malcolm <dmalcolm@redhat.com>
* dump-context.h (dump_context::dump_loc): Convert 1st param from
} while (0)
#undef ASM_SPEC
-#define ASM_SPEC "-u %{maix64:-a64 %{!mcpu*:-mppc64}} %(asm_cpu)"
+#define ASM_SPEC "-u %{maix64:-a64} %(asm_cpu)"
/* Common ASM definitions used by ASM_SPEC amongst the various targets for
handling -mcpu=xxx switches. There is a parallel list in driver-rs6000.c to
you make changes here, make them there also. */
#undef ASM_CPU_SPEC
#define ASM_CPU_SPEC \
-"%{!mcpu*: %{!maix64: \
- %{mpowerpc64: -mppc64} \
- %{maltivec: -m970} \
- %{!maltivec: %{!mpowerpc64: %(asm_default)}}}} \
-%{mcpu=native: %(asm_cpu_native)} \
-%{mcpu=power3: -m620} \
-%{mcpu=power4: -mpwr4} \
-%{mcpu=power5: -mpwr5} \
-%{mcpu=power5+: -mpwr5x} \
-%{mcpu=power6: -mpwr6} \
-%{mcpu=power6x: -mpwr6} \
-%{mcpu=power7: -mpwr7} \
-%{mcpu=power8: -mpwr8} \
-%{mcpu=power9: -mpwr9} \
-%{mcpu=powerpc: -mppc} \
-%{mcpu=rs64a: -mppc} \
-%{mcpu=603: -m603} \
-%{mcpu=603e: -m603} \
-%{mcpu=604: -m604} \
-%{mcpu=604e: -m604} \
-%{mcpu=620: -m620} \
-%{mcpu=630: -m620} \
-%{mcpu=970: -m970} \
-%{mcpu=G5: -m970} \
-%{mvsx: %{!mcpu*: -mpwr6}} \
+"%{mcpu=native: %(asm_cpu_native); \
+ mcpu=power9: -mpwr9; \
+ mcpu=power8: -mpwr8; \
+ mcpu=power7: -mpwr7; \
+ mcpu=power6x|mcpu=power6: -mpwr6; \
+ mcpu=power5+: -mpwr5x; \
+ mcpu=power5: -mpwr5; \
+ mcpu=power4: -mpwr4; \
+ mcpu=power3: -m620; \
+ mcpu=powerpc: -mppc; \
+ mcpu=rs64a: -mppc; \
+ mcpu=603: -m603; \
+ mcpu=603e: -m603; \
+ mcpu=604: -m604; \
+ mcpu=604e: -m604; \
+ mcpu=620: -m620; \
+ mcpu=630: -m620; \
+ mcpu=970|mcpu=G5: -m970; \
+ !mcpu*: %{mvsx: -mpwr6; \
+ maltivec: -m970; \
+ maix64|mpowerpc64: -mppc64; \
+ : %(asm_default)}; \
+ :%eMissing -mcpu option in ASM_SPEC_CPU?\n} \
-many"
#undef ASM_DEFAULT_SPEC
{ "970", "-m970" },
{ "G5", "-m970" },
{ NULL, "\
-%{!maix64: \
-%{mpowerpc64: -mppc64} \
-%{maltivec: -m970} \
-%{!maltivec: %{!mpowerpc64: %(asm_default)}}}" },
+ %{mvsx: -mpwr6; \
+ maltivec: -m970; \
+ maix64|mpowerpc64: -mppc64; \
+ : %(asm_default)}" },
#else
{ "cell", "-mcell" },
{ "power4", "-mpower4" },
{ "power5", "-mpower5" },
{ "power5+", "-mpower5" },
- { "power6", "-mpower6 -maltivec" },
- { "power6x", "-mpower6 -maltivec" },
+ { "power6", "-mpower6 %{!mvsx:%{!maltivec:-maltivec}}" },
+ { "power6x", "-mpower6 %{!mvsx:%{!maltivec:-maltivec}}" },
{ "power7", "-mpower7" },
- { "power8", "-mpower8" },
+ { "power8", "%{mpower9-vector:-mpower9;:-mpower8}" },
{ "power9", "-mpower9" },
+ { "a2", "-ma2" },
{ "powerpc", "-mppc" },
+ { "powerpc64le", "%{mpower9-vector:-mpower9;:-mpower8}" },
{ "rs64a", "-mppc64" },
{ "401", "-mppc" },
{ "403", "-m403" },
{ "440fp", "-m440" },
{ "464", "-m440" },
{ "464fp", "-m440" },
+ { "476", "-m476" },
+ { "476fp", "-m476" },
{ "505", "-mppc" },
{ "601", "-m601" },
{ "602", "-mppc" },
{ "740", "-mppc" },
{ "750", "-mppc" },
{ "G3", "-mppc" },
- { "7400", "-mppc -maltivec" },
- { "7450", "-mppc -maltivec" },
- { "G4", "-mppc -maltivec" },
+ { "7400", "-mppc %{!mvsx:%{!maltivec:-maltivec}}" },
+ { "7450", "-mppc %{!mvsx:%{!maltivec:-maltivec}}" },
+ { "G4", "-mppc %{!mvsx:%{!maltivec:-maltivec}}" },
{ "801", "-mppc" },
{ "821", "-mppc" },
{ "823", "-mppc" },
{ "860", "-mppc" },
- { "970", "-mpower4 -maltivec" },
- { "G5", "-mpower4 -maltivec" },
+ { "970", "-mpower4 %{!mvsx:%{!maltivec:-maltivec}}" },
+ { "G5", "-mpower4 %{!mvsx:%{!maltivec:-maltivec}}" },
{ "8540", "-me500" },
{ "8548", "-me500" },
{ "e300c2", "-me300" },
{ "e300c3", "-me300" },
{ "e500mc", "-me500mc" },
+ { "e500mc64", "-me500mc64" },
+ { "e5500", "-me5500" },
+ { "e6500", "-me6500" },
{ NULL, "\
-%{mpowerpc64*: -mppc64} \
-%{!mpowerpc64*: %(asm_default)}" },
+%{mpower9-vector: -mpower9; \
+ mpower8-vector|mcrypto|mdirect-move|mhtm: -mpower8; \
+ mvsx: -mpower7; \
+ mpowerpc64: -mppc64; \
+ : %(asm_default)}" },
#endif
};
you make changes here, make them also there. PR63177: Do not pass -mpower8
to the assembler if -mpower9-vector was also used. */
#define ASM_CPU_SPEC \
-"%{!mcpu*: \
- %{mpowerpc64*: -mppc64} \
- %{!mpowerpc64*: %(asm_default)}} \
-%{mcpu=native: %(asm_cpu_native)} \
-%{mcpu=cell: -mcell} \
-%{mcpu=power3: -mppc64} \
-%{mcpu=power4: -mpower4} \
-%{mcpu=power5: -mpower5} \
-%{mcpu=power5+: -mpower5} \
-%{mcpu=power6: -mpower6 -maltivec} \
-%{mcpu=power6x: -mpower6 -maltivec} \
-%{mcpu=power7: -mpower7} \
-%{mcpu=power8: %{!mpower9-vector: -mpower8}} \
-%{mcpu=power9: -mpower9} \
-%{mcpu=a2: -ma2} \
-%{mcpu=powerpc: -mppc} \
-%{mcpu=powerpc64le: -mpower8} \
-%{mcpu=rs64a: -mppc64} \
-%{mcpu=401: -mppc} \
-%{mcpu=403: -m403} \
-%{mcpu=405: -m405} \
-%{mcpu=405fp: -m405} \
-%{mcpu=440: -m440} \
-%{mcpu=440fp: -m440} \
-%{mcpu=464: -m440} \
-%{mcpu=464fp: -m440} \
-%{mcpu=476: -m476} \
-%{mcpu=476fp: -m476} \
-%{mcpu=505: -mppc} \
-%{mcpu=601: -m601} \
-%{mcpu=602: -mppc} \
-%{mcpu=603: -mppc} \
-%{mcpu=603e: -mppc} \
-%{mcpu=ec603e: -mppc} \
-%{mcpu=604: -mppc} \
-%{mcpu=604e: -mppc} \
-%{mcpu=620: -mppc64} \
-%{mcpu=630: -mppc64} \
-%{mcpu=740: -mppc} \
-%{mcpu=750: -mppc} \
-%{mcpu=G3: -mppc} \
-%{mcpu=7400: -mppc -maltivec} \
-%{mcpu=7450: -mppc -maltivec} \
-%{mcpu=G4: -mppc -maltivec} \
-%{mcpu=801: -mppc} \
-%{mcpu=821: -mppc} \
-%{mcpu=823: -mppc} \
-%{mcpu=860: -mppc} \
-%{mcpu=970: -mpower4 -maltivec} \
-%{mcpu=G5: -mpower4 -maltivec} \
-%{mcpu=8540: -me500} \
-%{mcpu=8548: -me500} \
-%{mcpu=e300c2: -me300} \
-%{mcpu=e300c3: -me300} \
-%{mcpu=e500mc: -me500mc} \
-%{mcpu=e500mc64: -me500mc64} \
-%{mcpu=e5500: -me5500} \
-%{mcpu=e6500: -me6500} \
-%{maltivec: -maltivec} \
-%{mvsx: -mvsx %{!maltivec: -maltivec} %{!mcpu*: -mpower7}} \
-%{mpower8-vector|mcrypto|mdirect-move|mhtm: %{!mcpu*: -mpower8}} \
-%{mpower9-vector: %{!mcpu*|mcpu=power8: -mpower9}} \
+"%{mcpu=native: %(asm_cpu_native); \
+ mcpu=power9: -mpower9; \
+ mcpu=power8|mcpu=powerpc64le: %{mpower9-vector: -mpower9;: -mpower8}; \
+ mcpu=power7: -mpower7; \
+ mcpu=power6x: -mpower6 %{!mvsx:%{!maltivec:-maltivec}}; \
+ mcpu=power6: -mpower6 %{!mvsx:%{!maltivec:-maltivec}}; \
+ mcpu=power5+: -mpower5; \
+ mcpu=power5: -mpower5; \
+ mcpu=power4: -mpower4; \
+ mcpu=power3: -mppc64; \
+ mcpu=powerpc: -mppc; \
+ mcpu=a2: -ma2; \
+ mcpu=cell: -mcell; \
+ mcpu=rs64a: -mppc64; \
+ mcpu=401: -mppc; \
+ mcpu=403: -m403; \
+ mcpu=405: -m405; \
+ mcpu=405fp: -m405; \
+ mcpu=440: -m440; \
+ mcpu=440fp: -m440; \
+ mcpu=464: -m440; \
+ mcpu=464fp: -m440; \
+ mcpu=476: -m476; \
+ mcpu=476fp: -m476; \
+ mcpu=505: -mppc; \
+ mcpu=601: -m601; \
+ mcpu=602: -mppc; \
+ mcpu=603: -mppc; \
+ mcpu=603e: -mppc; \
+ mcpu=ec603e: -mppc; \
+ mcpu=604: -mppc; \
+ mcpu=604e: -mppc; \
+ mcpu=620: -mppc64; \
+ mcpu=630: -mppc64; \
+ mcpu=740: -mppc; \
+ mcpu=750: -mppc; \
+ mcpu=G3: -mppc; \
+ mcpu=7400: -mppc %{!mvsx:%{!maltivec:-maltivec}}; \
+ mcpu=7450: -mppc %{!mvsx:%{!maltivec:-maltivec}}; \
+ mcpu=G4: -mppc %{!mvsx:%{!maltivec:-maltivec}}; \
+ mcpu=801: -mppc; \
+ mcpu=821: -mppc; \
+ mcpu=823: -mppc; \
+ mcpu=860: -mppc; \
+ mcpu=970: -mpower4 %{!mvsx:%{!maltivec:-maltivec}}; \
+ mcpu=G5: -mpower4 %{!mvsx:%{!maltivec:-maltivec}}; \
+ mcpu=8540: -me500; \
+ mcpu=8548: -me500; \
+ mcpu=e300c2: -me300; \
+ mcpu=e300c3: -me300; \
+ mcpu=e500mc: -me500mc; \
+ mcpu=e500mc64: -me500mc64; \
+ mcpu=e5500: -me5500; \
+ mcpu=e6500: -me6500; \
+ !mcpu*: %{mpower9-vector: -mpower9; \
+ mpower8-vector|mcrypto|mdirect-move|mhtm: -mpower8; \
+ mvsx: -mpower7; \
+ mpowerpc64: -mppc64;: %(asm_default)}; \
+ :%eMissing -mcpu option in ASM_SPEC_CPU?\n} \
+%{mvsx: -mvsx -maltivec; maltivec: -maltivec} \
-many"
#define CPP_DEFAULT_SPEC ""