System.SetMXCSR
Delphi
procedure SetMXCSR(NewMXCSR: UInt32);
C++
extern DELPHI_PACKAGE void __fastcall SetMXCSR(unsigned NewMXCSR);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure function |
public | System.pas System.hpp |
System | System |
説明
SSE の MXCSR レジスタを設定します。
SetMXCSR は、指定した値を MXCSR(制御および状態レジスタ)に書き込みます。このレジスタに無効な値を設定すると、予測できない動作を引き起こす可能性があります。MXCSR レジスタについての詳細は、『x87 and SSE Floating Point Assists in IA-32: Flush-To-Zero (FTZ) and Denormals-Are-Zero (DAZ)』(x87 および SSE 浮動小数点演算を IA-32 アーキテクチャ(FTZ および DAZ)でサポートする)および『Intel® 64 and IA-32 Architectures Developer's Manual: Vol. 1』(64/IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル 上巻)を参照してください。
メモ:例外モード、丸めモード、浮動小数点数の精度を変更するには、System.Set8087CW や SetMXCSR ではなく、System.Math.SetExceptionMask、System.Math.SetRoundMode、System.Math.SetPrecisionMode を使用することをお勧めします。
64 ビット版 Windows の場合:MXCSR レジスタは、丸めモード、および特定の浮動小数点演算により例外が発生するかどうかを制御します。
32 ビット版 Windows の場合:MXCSR レジスタは浮動小数点演算を制御しません。SSE レジスタではなく FPU レジスタが浮動小数点に使用されるためです。ただし、32 ビット モードでも SSE は存在しており、SetMXCSR は、64 ビット モードの場合と同じように、MXCSR の値を設定します。
iOS/シミュレータの場合: SetMXCSR では、MXCSR 例外に対するマスク ビットを変更しません。これらのマスク ビットは常に 1 です。