[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