[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