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
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to