I guess you're right. It just seems weird because the System V ABI was
designed from the start to use the MM registers fully, so long as the
data is aligned. In effect, it had vectorcall wrapped into its design
from the start. Granted, vectorcall has some advantages and can deal
with relatively complex aggregates that the System V ABI cannot handle
(for example, a record type that contains a normal vector and
information relating to bump mapping).
I just hoped that making updates to uComplex, while ensuring existing
Pascal code still compiles, would help take advantage of modern ABI designs.
Gareth aka. Kit
On 27/10/2019 01:12, Sven Barth via fpc-devel wrote:
I don't think the compiler can be made smart and safe enough to
auto-align something like the complex type to take full advantage
of the
System V ABI, and vectorcall is not the default Win64 calling
convention
(and the default convention is a little badly-designed if I'm
allowed to
say, since it doesn't vectorise anything at all).
It's not badly designed, it's a child of its time. Back when Win64 was
conceived it wasn't expected that the use of SSE would become as
widespread as it is now. And one doesn't simply change a platform ABI
on a whim. That's why Microsoft introduced vectorcall after all...
Regards,
Sven
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
--
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel