[fpc-devel] Double-check Linux 64-bit SSE return value handling
jonas at freepascal.org
Sun Dec 3 15:18:58 CET 2017
On 03/12/17 01:01, J. Gareth Moreton wrote:
> The rules of the
> x86_64 ABI - http://refspecs.linuxbase.org/elf/x86_64-abi-0.21.pdf - page 15-17, specify that the equivalent
> of a __float128 or __m128 should be split into two classes, with the lower half being SSE and the upper half
> being SSEUP, hence the two can be merged into a single XMM register.
FPC does not have a way to specify equivalent types of either __float128
or __m128 at this time. FPC needs either a dedicated vector type or an
array modifier (similar to "packed") to represent vector types.
Otherwise it becomes very muddy regarding which types should be/are
treated as vectors and which as plain plain arrays in context of ABI
More information about the fpc-devel