System.Set8087CW

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

procedure Set8087CW(NewCW: Word);

C++

extern DELPHI_PACKAGE void __fastcall Set8087CW(Word NewCW);

プロパティ

種類 可視性 ソース ユニット
procedure
function
public
System.pas
System.hpp
System System


説明

FPU 制御ワードを設定します。

32 ビット Windows の場合: この制御ワードは、浮動小数点計算の精度、丸めモード、および特定の浮動小数点演算の結果例外が発生するかどうかを制御するものです。 詳細は、Intel 社のプロセッサに関するドキュメントを参照してください。

このルーチンを使用すれば、CW に直接アクセスできます。 ただし、このルーチンを使用して 8087CW の値を変更すると、プログラムの浮動小数点計算の動作が変わることに注意してください。 これを避けるには、8087CW をリセットしてください。たとえば、以下に一覧されている Set8087CW コード例を参照してください。

メモ: 浮動小数点の例外モード、丸めモード、および精度を変更するには、Set8087CWSystem.SetMXCSR の代わりに、System.Math.SetExceptionMaskSystem.Math.SetPrecisionModeSystem.Math.SetRoundMode を使うことが推奨されます。

OpenGL を使用して 3D グラフィックをレンダリングする場合、パフォーマンスのためにすべての浮動小数点例外を無効にすることを推奨します。これを行うには、メイン フォームの OnCreate イベントで、OpenGL 関数を呼び出す前に、Set8087CW(0x133f) を呼び出します。

64 ビット Windows の場合: この制御ワードは、浮動小数点オペレーションを制御しません。64 ビット モードでの浮動小数点には、FPU(浮動小数点ユニット)の代わりに、SSE レジスタを使用されるからです。しかし、FPU は 64 ビット モードでも存在しているため、SGet8087CW は、制御ワードの値を、32 ビット モードと同様に設定します。

iOS/シミュレータ: この関数は、X87 制御ワード マスク ビットの例外を変更しません。この例外のマスク ビットは、常に値 1 です。

関連項目

コード サンプル