Question about the rtl source - I see a lot of procedures/functions that have assembly versions and pascal versions. When is the pure pascal version used and when is the assembly version used? I notice most of the assembly is x86 only, so I guess that at least x64 and the mobile compilers use the pascal versions, but does x86 use the assembly versions?
Question about the rtl source - I see a lot of procedures/functions that have assembly versions and pascal versions. When is the pure pascal version used and when is the assembly version used? I notice most of the assembly is x86 only, so I guess that at least x64 and the mobile compilers use the pascal versions, but does x86 use the assembly versions?
It's not clear from reading the source whether the assembly versions are used at all these days (likewise, the code is still full of ifdefs for .net support)
It's not clear from reading the source whether the assembly versions are used at all these days (likewise, the code is still full of ifdefs for .net support)
/sub
ReplyDeleteThe assy code is mostly VCL/Win32 AFAIK.
ReplyDelete{$IFDEF CPUX64}
ReplyDelete{$DEFINE PUREPASCAL}
{$ENDIF CPUX64}
{$IFDEF CPUARM}
{$DEFINE PUREPASCAL}
{$ENDIF CPUARM}
So it seems that Asm versions are used in Win32 and OSX32
Geeze, how did I miss that! Need more coffee!
ReplyDeleteThe pure pascal versions may also be used when the RTL devs are developing and testing because they may well compile in pure pascal mode for ease of debugging.
ReplyDelete