This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ARM float ordering
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: gcc at gcc dot gnu dot org, nickc at redhat dot com, Richard dot Earnshaw at arm dot com
- Date: Fri, 20 Jun 2003 17:31:09 +0100
- Subject: Re: ARM float ordering
- Organization: ARM Ltd.
- Reply-to: Richard dot Earnshaw at arm dot com
> I was looking at xscale-elf.h this morning, and noticed this:
>
> #define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
> %{mhard-float:-mfpu=fpa} \
> %{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
>
> This comes from:
> revision 1.6 date: 2003/04/09 15:14:23; author: nickc; state: Exp; lines: +24 -1
> * doc/install.texi: Note that ARM toolchains need binutils 2.13 or newer.
> * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa instead of -mno-fpu.
> * config/arm/semi.h (ASM_SPEC): Likewise.
> * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise,
> but only if -msoft-float is specified pass. Otherwise pass -mfpu=softvfp.
>
>
> So, if -mhard-float we specify -mfpu=fpa; for -msoft-float we specify
> -mfpu=softfpa; and for neither we specify -mfpu=softvfp. However, nowhere
> that I can find does this set a flag for the compiler. This never triggers
> TARGET_VFP, so arm_float_words_big_endian will always be wrong for
> little-endian Xscale with default options.
>
> Am I missing something?
>
Not really, the patch that makes softvfp available as a user-selectable
option hasn't been contributed yet... I want to kill (well, deprecate)
the -msoft/hard-float options and replace them with a -mfpu= option which
behaves the same way as the assembler flag of the same name.
Unfortunately, my ideas for implementing this were complicated somewhat by
the contribution of the Cirrus Maverick code, where the separation of
floating point from other features of the Maverick co-processor are
blurred -- I haven't had time recently to sort the issues out. I suspect
I shall want to separate the Maverick features into two distinct parts:
floating point and non-fp.
R.