This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RE: [PATCH mips] Pass -msoft-float/-mhard-float flags to GAS
- From: Matthew Fortune <Matthew dot Fortune at imgtec dot com>
- To: "Moore, Catherine" <Catherine_Moore at mentor dot com>, Steve Ellcey <Steve dot Ellcey at imgtec dot com>, "echristo at gmail dot com" <echristo at gmail dot com>, "GCC Patches" <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 9 Aug 2014 19:00:10 +0000
- Subject: RE: [PATCH mips] Pass -msoft-float/-mhard-float flags to GAS
- Authentication-results: sourceware.org; auth=none
- References: <dbb904a0-4070-407c-b3e7-c04703769bb8 at BAMAIL02 dot ba dot imgtec dot org> <1407526900 dot 2601 dot 48 dot camel at ubuntu-sellcey> <FD3DCEAC5B03E9408544A1E416F11242015A68B00E at NA-MBX-04 dot mgc dot mentorg dot com>
Moore, Catherine <Catherine_Moore@mentor.com> writes:
> > -----Original Message-----
> > From: Steve Ellcey [mailto:sellcey@mips.com]
> > Sent: Friday, August 08, 2014 3:42 PM
> > To: Moore, Catherine; matthew.fortune@imgtec.com; echristo@gmail.com;
> >
> > 2014-08-08 Steve Ellcey <sellcey@mips.com>
> >
> > * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
> >
> > diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index
> > 8d7a09f..9a15287 100644
> > --- a/gcc/config/mips/mips.h
> > +++ b/gcc/config/mips/mips.h
> > @@ -1187,6 +1187,8 @@ struct mips_cpu_info { %{mshared} %{mno-
> > shared} \ %{msym32} %{mno-sym32} \ %{mtune=*} \
> > +%{mhard-float} %{msoft-float} \
> > +%{msingle-float} %{mdouble-float} \
> > %(subtarget_asm_spec)"
> >
> > /* Extra switches sometimes passed to the linker. */
> >
>
> Hi Steve,
> The patch itself looks okay, but perhaps a question for Matthew.
> Does the fact that the assembler requires -msoft-float even if .set
> softfloat is present in the .s file deliberate behavior?
The assembler requires -msoft-float if .gnu_attribute 4,3 is given. I.e. the
overall module options must match the ABI which has been specified. .set
directives can still be used to override the 'current' options and be
inconsistent with the overall module and/or .gnu_attribute setting.
> I don't have a problem with passing along the *float* options to gas, but
> would hope that the .set options were honored as well.
Yes they should be.
> My short test indicated that the .set *float* options were being ignored if
> the correct command line option wasn't present.
I'm not certain what you are describing here. Could you confirm with an example
just in case something is not working as expected?
Thanks,
Matthew