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)
> > 
> 

Reply via email to