Browse Source

* store and restore the 8087 control world only on x86 systems

git-svn-id: trunk@44922 -
(cherry picked from commit 1972b05cc8840e95d01ee332d4c931226f1e8f3f)
svenbarth 5 years ago
parent
commit
1b05238a38
1 changed files with 6 additions and 0 deletions
  1. 6 0
      rtl/win/sysutils.pp

+ 6 - 0
rtl/win/sysutils.pp

@@ -1350,16 +1350,20 @@ end;
 
 Procedure InitInternational;
 var
+{$if defined(CPU386) or defined(CPUX86_64)}
   { A call to GetSystemMetrics changes the value of the 8087 Control Word on
     Pentium4 with WinXP SP2 }
   old8087CW: word;
+{$endif}
   DefaultCustomLocaleID : LCID;   // typedef DWORD LCID;
   DefaultCustomLanguageID : Word; // typedef WORD LANGID;
 begin
   /// workaround for Windows 7 bug, see bug report #18574
   SetThreadLocale(GetUserDefaultLCID);
   InitInternationalGeneric;
+{$if defined(CPU386) or defined(CPUX86_64)}
   old8087CW:=Get8087CW;
+{$endif}
   SysLocale.MBCS:=GetSystemMetrics(SM_DBCSENABLED)<>0;
   SysLocale.RightToLeft:=GetSystemMetrics(SM_MIDEASTENABLED)<>0;
   SysLocale.DefaultLCID := $0409;
@@ -1389,7 +1393,9 @@ begin
         end;
      end;
 
+{$if defined(CPU386) or defined(CPUX86_64)}
   Set8087CW(old8087CW);
+{$endif}
   GetFormatSettings;
   if SysLocale.FarEast then GetEraNamesAndYearOffsets;
 end;