[arm] Implement soft-float abi

Richard Earnshaw rearnsha@arm.com
Tue Aug 24 10:32:00 GMT 2004

On Tue, 2004-08-24 at 10:21, Vladimir Ivanov wrote:
> What about endianness even in case of soft-float calling convention?
> double foo (double d)
> {
>    ...
> }
> Argument and result would be:
>    FPA			r0:r1
>    MaverickCrunch	r1:r0
>    VFP			depending on ARM endianness
> What are the plans about this?

It should match the bit-layout in use by the caller (otherwise things
get very complicated on the caller side to no real benefit inside the

The reason for wanting these to use the soft float ABI is that generally
they will never be called from ARM code if you have hardware support
(why call a function to add two doubles together if you have an
instruction that can do it?).  However, in thumb there are no such
instructions.  Having the ABI defined this way gives better
compatibility between the hard ABI and Thumb code (you still can't pass
floating point arguments to/from Thumb-compiled functions in this ABI,
but you could use floating point within a function compiled as Thumb).


PS.  I can't find any statement within the EP9312 document (ds515um1) on
the word-order of Maverick.  Is it really 'words-little-endian' at all
times?  What about int64 types?

More information about the Gcc-patches mailing list