procedure _InitializeControlWord;
begin
{$IF defined(IOS) and defined(CPUX86)} // iOS Simulator
TestSSE := $3; // All Intel Mac supports SSE2.
FPUExceptionMaskBits := (Default8087CW and $003F) or ((DefaultMXCSR and $1F80) shr 7) or $8000;
{$ELSEIF defined(CPUX86) and defined(ASSEMBLER)} // Win32 or OSX32
TestSSE := GetBriefSSEType;
DefaultMXCSR := GetMXCSR and $FFC0; // Remove flag bits;
{$ELSEIF defined(CPUX64) and defined(MSWINDOWS)} // Win64
TestSSE := $3; // SSE & SSE2 are available on X64
Default8087CW := Get8087CW and $1F3F; // Remove reserved bits.
{$ELSEIF defined(CPUX64) and defined(ARITH_USE_LIBM)} // Linux64
TestSSE := $3; // SSE & SSE2 are available on X64
FPExceptionMaskBits := DefaultFPEnv;
{$ENDIF}
end;
LDMXCSR DefaultMXCSR。Delphi本身支持一套代码编译出Win、linux、Andriod、IOS,但对于Win,只有Win32和Win64可以选择,没有ARM64的选项,所以要么它本身就支撑(包括异常),要么连编译的64 bit EXE都跑不起来。不过我隐约记得,64位的异常表结构,好像是分CPU的。