[fpc-devel] Double-check Linux 64-bit SSE return value handling
J. Gareth Moreton
gareth at moreton-family.com
Tue Dec 5 22:09:49 CET 2017
Ah, thank you for clearing that up. Time for a different approach then - feature request!
Kit
On Tue 05/12/17 21:08 , Jonas Maebe jonas at freepascal.org sent:
> On 04/12/17 13:01, J. Gareth Moreton wrote:
>
> > Fair enough. I would have thought that
> "array[0..3] of Single" would count - granted, there's no clean
> way
> > to specify a type-specific byte alignment yet,
> it seems.
> >
>
> > The question came about because it looked like
> the lower 2 Singles were put into one XMM register and the
> > upper 2 Singles put into another, instead of
> into an XMM register each, say.
>
>
> That's because the ABI specifies that arguments are passed per
>
> "eightbyte". Two 4-byte elements of an aggregate that have the
> same
> register class (SSE in this case) are merged into a single eightbyte for
>
> parameter passing (and function returning).
>
>
>
> FWIW, a more recent version of the ABI is linked from
>
> https://github.com/hjl-tools/x86-psABI/wiki/X86-psABI
>
>
>
>
> Jonas
>
> _______________________________________________
>
> fpc-devel maillist - fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>
>
>
>
More information about the fpc-devel
mailing list