<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">J. Gareth Moreton <<a href="mailto:gareth@moreton-family.com">gareth@moreton-family.com</a>> schrieb am Do., 2. Apr. 2020, 15:25:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">For standard record types (no "packed" modifier or compiler directives <br>
or anything), I'm wondering how many liberties that the compiler is <br>
allowed to take in storing its data.  Take the following example (from <br>
raybench.pas over here: <a href="http://runtimeterror.com/tools/raybench" rel="noreferrer noreferrer" target="_blank">http://runtimeterror.com/tools/raybench</a> ):<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">With no explicit packing specified the compiler in general follows the platform's C compiler for compatibility reasons. </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">P.S. Of course you can force it by forcing the vector to be an m128 type <br>
and specifying vectorcall for x86_64-win64, but not everyone will know <br>
to do that and it gets unwieldly rather quickly.  Speaking of <br>
vectorcall, I'm wondering if we can introduce 'fastcall' as an alias for <br>
'ms_abi_default', mostly so if we follow Microsoft Visual C++'s example <br>
of automatically making all routines vectorcall (which is closer to the <br>
System V ABI used by linux and will make vectorisation easier), we can <br>
force the default one if we need a routine that, say, has to interface <br>
with a third-party library ('fastcall' under win32 is what the MS ABI is <br>
based off... first parameter in ECX, second in EDX and everything else <br>
on the stack).<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Please provide a source for your statement that MSVC uses vectorcall by default. Cause I highly doubt that as Microsoft is huge on backwards compatibility especially regarding the lower level stuff. </div><div dir="auto"><br></div><div dir="auto">Regards, </div><div dir="auto">Sven </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>