[fpc-devel] Difficulty in specifying record alignment... and more compiler optimisation shenanigans!

Florian Klämpfl mail at florianklaempfl.de
Wed Oct 23 07:59:57 CEST 2019


Am 23. Oktober 2019 01:14:03 schrieb "J. Gareth Moreton" <gareth at moreton-family.com>:

> That's definitely a marked improvement.  Under the System V ABI and
> vectorcall, both fields of a complex type would be passed through xmm0.
> Splitting it up into two separate registers would require something like:
>
>
> shufpd    %xmm0,%xmm1,3 { Copy the high-order Double into the low-order
> position - an immediate operand of "1" will also work, since we're not
> concerned with the upper 64 bits of %xmm1 }
>
>
> After which your complied code will work correctly (since it looks like
> %xmm1 was undefined before):

The code is correct, on x86_64-linux vectorcall is ignored. Supporting vectorcall with my approach would be more difficult.





More information about the fpc-devel mailing list