Hi everyone, After a lot of work, I have implemented 'vectorcall' into Win64, and made a patch for Lazarus to recognise the keyword in the IDE and highlight it accordingly.
FPC vectorcall patch: https://bugs.freepascal.org/view.php?id=32781 Lazarus vectorcall support patch: https://bugs.freepascal.org/view.php?id=33134 The vectorcall patch also contains the code in the patch for issue #27870, since they share a lot in common. So far, I have confirmed that FPC and Lazarus successfully compile on Win32 and Win64, but I know for a fact that the code changes affect Linux 64-bit as well in that the SSEUP_CLASS is now properly supported (vectorcall reuses the System V ABI code for convenience and compatibility), so FPC's implementation of the System V ABI should now properly support 128-bit SSE vectors. Note that 256-bit and 512-bit vectors are currently disabled in the code, since the compiler does not fully support vectors of this size yet, and Florian is working on this himself. I have provided 3 test programs in #32781 that should compile under both Win64 and Linux 64-bit (it will throw a custom $FATAL error if it's not one of these two platforms) in order to test correct code production and register allocation. However, testing will have to be very extensive for this addition. I hope this will serve the x86-64 assembly programmers well - have fun! Gareth aka. Kit _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel