Aw: Re: [PATCH] FPU IEEE 754 for MIPS r5900

"Jürgen Urban" JuergenUrban@gmx.de
Thu Jul 25 18:07:00 GMT 2013


Hello Richard,

Sorry in the last days, I was not at home. So I couldn't test it until now.

> "Jürgen Urban" <JuergenUrban@gmx.de> writes:
> > Index: gcc/config.gcc
> > ===================================================================
> > --- gcc/config.gcc	(Revision 200583)
> > +++ gcc/config.gcc	(Arbeitskopie)
> > @@ -3080,7 +3080,7 @@
> >    esac
> >  fi
> >
> > -# Infer a default setting for --with-float.
> > +# Infer a default setting for --with-float and --with-fpu.
> >  if test x$with_float = x; then
> >    case ${target} in
> >      mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
> > @@ -3089,6 +3089,17 @@
> >        with_float=soft
> >        ;;
> >    esac
> > +else
> > +  case ${target} in
> > +    mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
> > +      if test $with_float = hard; then
> > +        if test x$with_fpu = x; then
> > +	  # The FPU of the R5900 is 32 bit.
> > +	  with_fpu=single
> > +        fi
> > +      fi
> > +      ;;
> > +  esac
> >  fi
>
> I think the --with-fpu default should be independent of the --with-float
> default.  Passing -mhard-float to the default soft-float configuration
> should produce the same code as configuring with --with-float=hard.

OK. I hoped to get more software working on the PS2 when the default is the same as on other mips64 systems with soft float.

> > Index: gcc/config/mips/mips.c
> > ===================================================================
> > --- gcc/config/mips/mips.c	(Revision 200583)
> > +++ gcc/config/mips/mips.c	(Arbeitskopie)
> > @@ -16830,6 +16830,19 @@
> >  	target_flags &= ~MASK_FLOAT64;
> >      }
> >
> > +  if (TARGET_HARD_FLOAT_ABI && TARGET_FLOAT64 && TARGET_MIPS5900)
> > +    {
> > +      /* FPU of r5900 only supports 32 bit. */
> > +      error ("unsupported combination: %s", "-march=r5900 -mfp64 -mhard-float");
> > +    }
> > +
> > +  if (TARGET_HARD_FLOAT_ABI && TARGET_DOUBLE_FLOAT && TARGET_MIPS5900)
> > +    {
> > +      /* FPU of r5900 only supports 32 bit. */
> > +      error ("unsupported combination: %s",
> > +             "-march=r5900 -mdouble-float -mhard-float");
> > +    }
>
> Only one of these should be needed, since we complain about -mfp64
> -msingle-float earlier in the function.  Also, the coding conventions
> say that there should be no braces for single-statement if blocks.
>
> Here's what I installed.  Please let me know if I managed to mangle
> things somehow.
>

The patch is OK and tested.

Best regards
Jürgen



More information about the Gcc-patches mailing list