public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* ARM float ordering
@ 2003-06-20 16:39 Daniel Jacobowitz
  2003-06-20 18:16 ` Richard Earnshaw
  0 siblings, 1 reply; 3+ messages in thread
From: Daniel Jacobowitz @ 2003-06-20 16:39 UTC (permalink / raw)
  To: gcc; +Cc: nickc

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?

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: ARM float ordering
  2003-06-20 16:39 ARM float ordering Daniel Jacobowitz
@ 2003-06-20 18:16 ` Richard Earnshaw
  2003-06-20 18:27   ` Daniel Jacobowitz
  0 siblings, 1 reply; 3+ messages in thread
From: Richard Earnshaw @ 2003-06-20 18:16 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gcc, nickc, Richard.Earnshaw

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: ARM float ordering
  2003-06-20 18:16 ` Richard Earnshaw
@ 2003-06-20 18:27   ` Daniel Jacobowitz
  0 siblings, 0 replies; 3+ messages in thread
From: Daniel Jacobowitz @ 2003-06-20 18:27 UTC (permalink / raw)
  To: Richard.Earnshaw; +Cc: gcc, nickc

On Fri, Jun 20, 2003 at 05:31:09PM +0100, Richard Earnshaw wrote:
> > 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.

Thanks, that makes sense.  I'm just worried about producing VFP-tagged
binaries with FPA-ordered floats in 'em :)

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-06-20 16:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-20 16:39 ARM float ordering Daniel Jacobowitz
2003-06-20 18:16 ` Richard Earnshaw
2003-06-20 18:27   ` Daniel Jacobowitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).