Hi, thank you for your prompt response! On 2016/12/11 14:34, Matt Thomas wrote:
On Dec 10, 2016, at 9:44 AM, Rin Okuyama <rokuyama%rk.phys.keio.ac.jp@localhost> wrote: GCC >= 4.8.5 passes ".machine ppc" pseudo-op to assembler for 32-bit powerpc: @@ -5199,10 +5204,8 @@ fputs ("power5\n", asm_out_file); else if ((rs6000_isa_flags & OPTION_MASK_MFCRF) != 0) fputs ("power4\n", asm_out_file); - else if ((rs6000_isa_flags & OPTION_MASK_POWERPC64) != 0) - fputs ("ppc64\n", asm_out_file); else - fputs ("ppc\n", asm_out_file); + fputs ("ppc64\n", asm_out_file); } #endif ==== Could I commit this patch? Any comments or suggestions?Is that fragment needed? It doesn't seem to matter if you emit -mcpu= so why change it?
Yes, it is needed. ".machine ppc" pseudo-op overrides CPU type specified by -mcpu=XXX option. As a result, even if we emit -mcpu=XXX, gas assembles mnemonics into instructions for generic powerpc. Actually, Makefile for IBM 405 specifies -mcpu=405: src/sys/arch/evbppc/conf/Makefile.obs405.inc 3 CFLAGS+=-mcpu=405 4 AFLAGS+=-mcpu=405 But it is neglected by assembler for the above reason. To avoid this, we need to stop GCC emitting ".machine ppc" pseudo-op. Thanks, Rin ---- P.S. I've sent a problem report to GCC: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78764