This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: crosstool-0.40 preview


> So would it be a good solution to change just the default behaviour,
> with default like in "no -mfpu= and no -msoft-float switch was given",
> to '-mfpu=vfp -msoft-float' for a arm-softvfp-linux-gnu toolchain and
> '-mfpu=fpa -msoftfloat' for arm-softfpa-linux-gnu (which is what it does
> at the moment)?

There are performance issues too.

If you *don't* have an FPU, then -msoft-float (which uses IEEE format)
is 10 times faster than generating FP instructions (presumably FPA
instructions with FPA emulation in the kernel) and trapping illegal instruction.

If you *do* have an FPU then -msoft-float is 7 times *slower* that using
real FP instructions in fp-intensive code (an FIR filter in this case).

I don't know whether at present you can compile the bulk libraries
with softfloat
(so as to get IEEE format in use and have them still usable on fpu-less systems)
and then compile individual programs and FP-intensive libs with real
FP instructions
when you know you will have a hardware FPU. Give it a try and let me know.

If you can't now, you can do so using the "new" ARM ABI aka EABI, though tools
supporting it are few: there is one compiler, CodeSourcery's version
of gcc-3.4.4,
and some bits in gcc-4.0, but mainline support for it is still
experimental in gcc-4.1.
For some pointers see http://wiki.debian.org/ArmEabiPort
(though Debian is more afflicted by the mainline ARM ABI than most since, for
historical reasons, it uses what is now the worst combination of all: native FPA
instructions emulated in the kernel)

    M

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.org


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]