[fpc-devel] Problems with MM types (__m128 etc).
Jonas Maebe
jonas at freepascal.org
Fri Apr 8 21:58:57 CEST 2022
On 08/04/2022 20:31, J. Gareth Moreton via fpc-devel wrote:
> That might explain a few things. The problem is that under vectorcall
> and the System V ABI (the default x86_64 calling convention for Linux),
> vector types are supposed to be fully supported, like an aligned array
> of 4 Singles should be passed in a single XMM register.
That's no problem in itself. Normally, make_not_regable will ensure that
such values will be stored in memory on procedure entry and kept there.
Various architectures require that records are also passed in registers
(even if they're larger than 1 register), which also work fine even
though the compiler only supports record regvars occupying at most one
register (or perhaps two, I don't remember).
Jonas
More information about the fpc-devel
mailing list