<p>Am 19.05.2017 12:51 schrieb "Mattias Gaertner" <<a href="mailto:nc-gaertnma@netcologne.de">nc-gaertnma@netcologne.de</a>>:<br>
><br>
> On Fri, 19 May 2017 10:54:25 +0200<br>
> Sven Barth via fpc-pascal <<a href="mailto:fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a>> wrote:<br>
><br>
> >[...]<br>
> > Even though FPC might use SSE for maths it will still use the x87 to<br>
> > transfer floating values to/from function, especially if they take Extended<br>
> > as parameter/result.<br>
><br>
> Can you elaborate on this?<br>
> I thought on x64 does not have extended, so extended is double.</p>
<p>Only on Win64 cause Microsoft declared the x87 as deprecated there. All other x86_64 OSes can happily make use of it and thus Extended is 80bit there, thus resulting in the usage of the x87 instead of solely SSE.<br>
(Note: you can also enable the x87 for Win64 per define when building the compiler, but your mileage may vary...)</p>
<p>><br>
> > I did a test by disabling Extended on Linux x64 trunk compiler and RTL and<br>
> > it tripled the framerate from ~3 to ~10.<br>
><br>
> And it works?</p>
<p>Yes, why shouldn't it? :)</p>
<p>Regards,<br>
Sven</p>