[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).


More information about the fpc-devel mailing list