浮動小数点コントロール・ワードの概要

IA-32 アーキテクチャー・ベース・システムでは、FPU コントロール・ワードには、FPU の精度、丸めモード、および例外が発生したときに信号が生成されるかどうかを制御するビットが含まれています。コントロール・ワード値を GETCONTROLFPQQ (IA-32 アーキテクチャーのみ) で読み取り、現在の制御設定を調べることができます。また、SETCONTROLFPQQ (IA-32 アーキテクチャーのみ) でコントロール・ワードを変更することができます。

Note icon

GETCONTROLFPQQ ルーチンと SETCONTROLFPQQ ルーチンは、x87 ステータスレジスターのみに影響します。これらのルーチンは、MXCSR レジスター (インテル® SSE 命令とインテル® SSE2 命令のコントロール・レジスターとステータスレジスター) には影響ありません。

浮動小数点コントロール・ワードの各ビットは、浮動小数点算術プロセッサーのモードに対応しています。...\INCLUDE フォルダーの IFORT.F90 モジュールファイルには、次の表で示すように、コントロール・ワードに対して定義された INTEGER(2) パラメーターが含まれています。

パラメーター名

16 進値

説明

FPCW$MCW_PC

#0300

精度制御マスク

FPCW$64

#0300

64 ビット精度

FPCW$53

#0200

53 ビット精度

FPCW$24

#0000

24 ビット精度

FPCW$MCW_RC

#0C00

丸めの制御マスク

FPCW$CHOP

#0C00

切り捨て

FPCW$UP

#0800

大きい方へ丸める

FPCW$DOWN

#0400

小さい方へ丸める

FPCW$NEAR

#0000

最も近い値に丸める

FPCW$MCW_EM

#003F

例外マスク

FPCW$INVALID

#0001

無効な数値を許容する

FPCW$DENORMAL

#0002

デノーマル (非常に小さい数字) を許容する

FPCW$ZERODIVIDE

#0004

ゼロ除算を許容する

FPCW$OVERFLOW

#0008

オーバーフローを許容する

FPCW$UNDERFLOW

#0010

アンダーフローを許容する

FPCW$INEXACT

#0020

不正確な精度を許容する

次に、コントロール・ワードのデフォルト設定を示します。