FpCsr

レジスタ状態には x87 FPU 制御ワードも含まれています。呼び出し規約は、このレジスタを不揮発性として指定します。

x87 FPU 制御ワード レジスタには、プログラムの実行の開始時点で次の標準値が設定されます。

FPCSR[0:6]: Exception masks all 1's (all exceptions masked)
FPCSR[7]: Reserved – 0
FPCSR[8:9]: Precision Control – 10B (double precision)
FPCSR[10:11]: Rounding  control - 0 (round to nearest)
FPCSR[12]: Infinity control – 0 (not used)

FPCSR 内のフィールドを変更した呼び出し先は、呼び出し元に戻す前にそのフィールドを復元する必要があります。さらに、これらのフィールドのいずれかを変更した呼び出し元は、呼び出し先が変更された値を受け入れることに同意しない限り、呼び出し先を呼び出す前にフィールドの標準値に戻す必要があります。

コントロール フラグの不揮発性に関する規則には、次の 2 つの例外があります。

  1. 指定した関数のドキュメント化の目的が、不揮発性 FpCsr フラグを変更することにある関数の場合。

  2. これらの規則に違反した結果のプログラムが、これらの規則に違反していないプログラムと同じ動作または意味を持つことが、プログラム全体の解析などをとおして明らかになった場合。

参照

関連項目

呼び出し規約