On Fri, 2021-08-27 at 13:11 +0800, YunQiang Su wrote: > 在 2021/6/18 11:29, YunQiang Su 写道: > > Currently, the asm output file for MIPS has no rev info. > > It can make some trouble, for example: > > assembler is mips1 by default, > > gcc is fpxx by default. > > To assemble the output of gcc -S, we have to pass -mips2 > > to assembler. > > > > gcc/ChangeLog: > > > > * gcc/config/mips/mips.c (mips_module_isa_name): New. > > mips_file_start: add .module mipsREV to all asm output > > ping for this patch. > > > --- > > gcc/config/mips/mips.c | 37 +++++++++++++++++++++++++++++++++++++ > > 1 file changed, 37 insertions(+) > > > > diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c > > index 1f1475cf400..51cc70e6ceb 100644 > > --- a/gcc/config/mips/mips.c > > +++ b/gcc/config/mips/mips.c > > @@ -9877,6 +9877,40 @@ mips_mdebug_abi_name (void) > > } > > } > > > > +static const char * > > +mips_module_isa_name()
GNU style: there should be a space before (). > > +{ I think it's better to add enum values like MIPS_ISA_MIPS64R2 and use a switch statement here? switch (mips_isa) { case MIPS_ISA_MIPS1: return "mips1"; // ... } It looks better, and (maybe) generates better code. Just my 2 cents though. > > + if (ISA_MIPS1) > > + return "mips1"; > > + else if (ISA_MIPS2) > > + return "mips2"; > > + else if (ISA_MIPS3) > > + return "mips3"; > > + else if (ISA_MIPS4) > > + return "mips4"; > > + else if (ISA_MIPS32) > > + return "mips32"; > > + else if (ISA_MIPS32R2) > > + return "mips32r2"; > > + else if (ISA_MIPS32R3) > > + return "mips32r3"; > > + else if (ISA_MIPS32R5) > > + return "mips32r5"; > > + else if (ISA_MIPS32R6) > > + return "mips32r6"; > > + else if (ISA_MIPS64) > > + return "mips64"; > > + else if (ISA_MIPS64R2) > > + return "mips64r2"; > > + else if (ISA_MIPS64R3) > > + return "mips64r3"; > > + else if (ISA_MIPS64R5) > > + return "mips64r5"; > > + else if (ISA_MIPS64R6) > > + return "mips64r6"; > > + gcc_unreachable (); > > +} > > + > > /* Implement TARGET_ASM_FILE_START. */ > > > > static void > > @@ -9908,6 +9942,9 @@ mips_file_start (void) > > fprintf (asm_out_file, "\t.nan\t%s\n", > > mips_nan == MIPS_IEEE_754_2008 ? "2008" : "legacy"); > > > > + fprintf (asm_out_file, "\t.module\t%s\n", > > + mips_module_isa_name ()); > > + > > #ifdef HAVE_AS_DOT_MODULE > > /* Record the FP ABI. See below for comments. */ > > if (TARGET_NO_FLOAT) > > >