<div dir="ltr">Hi Kit/Gareth<div><br></div><div>Thanks for this work - I've been following all your changes to win64. Can't say I understand all of the vector ones. Be good to commit to trunk asap - tho' gather your are waiting for some Florian mods.</div><div><br></div><div>Just few qs - maybe these could be clarified in comments/example/tests</div><div><br></div><div>1) How does this work on amd processors that have vector stuff?</div><div><br></div><div>2)exactly which processors amd/intel have this stuff?</div><div><br></div><div>3) don't understand why this stuff doesn't work w/o mods on linux, which I think you say somewhere.</div><div><br></div><div>Thanks again </div><div>john</div><div><br></div><div>PS assume you are on devel list tho' doing a reply to this email in gmail copies you and devel? Dohhhhh.</div><div><br></div><div><br></div><div> </div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 7 February 2018 at 08:23, J. Gareth Moreton <span dir="ltr"><<a href="mailto:gareth@moreton-family.com" target="_blank">gareth@moreton-family.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi everyone,<br>
<br>
After a lot of work, I have implemented 'vectorcall' into Win64, and made a patch for Lazarus to recognise<br>
the keyword in the IDE and highlight it accordingly.<br>
<br>
FPC vectorcall patch:<br>
<br>
<a href="https://bugs.freepascal.org/view.php?id=32781" rel="noreferrer" target="_blank">https://bugs.freepascal.org/<wbr>view.php?id=32781</a><br>
<br>
Lazarus vectorcall support patch:<br>
<br>
<a href="https://bugs.freepascal.org/view.php?id=33134" rel="noreferrer" target="_blank">https://bugs.freepascal.org/<wbr>view.php?id=33134</a><br>
<br>
The vectorcall patch also contains the code in the patch for issue #27870, since they share a lot in common.<br>
So far, I have confirmed that FPC and Lazarus successfully compile on Win32 and Win64, but I know for a fact<br>
that the code changes affect Linux 64-bit as well in that the SSEUP_CLASS is now properly supported<br>
(vectorcall reuses the System V ABI code for convenience and compatibility), so FPC's implementation of the<br>
System V ABI should now properly support 128-bit SSE vectors.<br>
<br>
Note that 256-bit and 512-bit vectors are currently disabled in the code, since the compiler does not fully<br>
support vectors of this size yet, and Florian is working on this himself.<br>
<br>
I have provided 3 test programs in #32781 that should compile under both Win64 and Linux 64-bit (it will<br>
throw a custom $FATAL error if it's not one of these two platforms) in order to test correct code production<br>
and register allocation. However, testing will have to be very extensive for this addition.<br>
<br>
I hope this will serve the x86-64 assembly programmers well - have fun!<br>
<br>
Gareth aka. Kit<br>
______________________________<wbr>_________________<br>
fpc-devel maillist - <a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a><br>
<a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel" rel="noreferrer" target="_blank">http://lists.freepascal.org/<wbr>cgi-bin/mailman/listinfo/fpc-<wbr>devel</a><br>
</blockquote></div><br></div>