J. Gareth Moreton <gar...@moreton-family.com> schrieb am Do., 2. Apr. 2020, 15:25:
> For standard record types (no "packed" modifier or compiler directives > or anything), I'm wondering how many liberties that the compiler is > allowed to take in storing its data. Take the following example (from > raybench.pas over here: http://runtimeterror.com/tools/raybench ): > With no explicit packing specified the compiler in general follows the platform's C compiler for compatibility reasons. > P.S. Of course you can force it by forcing the vector to be an m128 type > and specifying vectorcall for x86_64-win64, but not everyone will know > to do that and it gets unwieldly rather quickly. Speaking of > vectorcall, I'm wondering if we can introduce 'fastcall' as an alias for > 'ms_abi_default', mostly so if we follow Microsoft Visual C++'s example > of automatically making all routines vectorcall (which is closer to the > System V ABI used by linux and will make vectorisation easier), we can > force the default one if we need a routine that, say, has to interface > with a third-party library ('fastcall' under win32 is what the MS ABI is > based off... first parameter in ECX, second in EDX and everything else > on the stack). > 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. Regards, Sven >
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel