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@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to