FPSCR(浮動小数点ステータス/制御レジスタ)

FPSCR には、ユーザレベルの NEON/VFP ステータス/制御ビットがすべて保持されています。NEON ではビット [31:27] のみを使用します。ビットは以下のよう使用されます。

ビット [31:28]

N、Z、C、および V の各フラグです。これらは NEON / VFP ステータスフラグです。これらのフラグを CPSR のステータスフラグにコピーするまでは、こらを使用して条件付き実行を制御することはできません。

ビット [27]

QC(累積サチュレート)フラグです。NEON サチュレート命令でサチュレーションが発生した場合に設定されます。

ビット [25]

デフォルトの NaN(DN)モード制御ビットです。

0

無効。NaN オペランドは浮動小数点演算の出力にまで伝播します。

1

有効。NaN が関係する演算がデフォルトの NaN を返します。

Note

NEON では、このビットに関係なくデフォルトの NaN が有効にされた設定を常に使用します。

ビット [24]

flush-to-zero モード制御ビットです。

0

flush-to-zero モードは無効になります。

1

flush-to-zero モードは有効になります。

使用するハードウェアとソフトウェアによっては、flush-to-zero モードを使用すると、範囲情報が失われる代わりにパフォーマンスが向上します。

Note

NEON では、このビットに関係なくflush-to-zero モードを常に使用します。

IEEE 754 との互換性が必要な場合、flush-to-zero モードを使用しないで下さい。

ビット [23:22]

丸めモードを以下のように制御します。

0b00

近似値への丸め(RN)モード

0b01

正の無限大方向への丸め(RP)モード

0b10

負の無限大方向への丸め(RM)モード

0b11

ゼロ方向への丸め(RZ)モード

Note

NEON では、このビットに関係なく近似値への丸めモードを常に使用します。

ビット [21:20]

STRIDE は、ベクタ内で連続する値の間の距離です。ストライドは以下のように制御されます。

0b00

STRIDE = 1

0b11

STRIDE = 2

ビット [18:16]

LEN は、各ベクタによって使用されるレジスタの数です。1 + ビット [18:16] の値になります。

0b000

LEN = 1

...

0b111

LEN = 8

ビット [15, 12:8]

例外のトラップイネーブルビットです。

IDE

入力非正規例外イネーブル

IXE

不正確例外イネーブル

UFE

アンダーフロー例外イネーブル

OFE

オーバーフロー例外イネーブル

DZE

ゼロ除算例外イネーブル

IOE

無効演算例外イネーブル

本書では、浮動小数点例外トラップの使用について説明しません。詳細については、使用している VFP コプロセッサのテクニカルリファレンスマュアルを参照して下さい。

ビット [7, 4:0]

累積例外ビットです。

IDC

入力非正規例外

IXC

不正確例外

UFC

アンダーフロー例外

OFC

オーバーフロー例外

DZC

ゼロ除算例外

IOC

無効演算例外

累積例外ビットは、対応する例外が発生すると設定されます。これらの例外ビットは、FPSCR への直接の書き込みによってクリアされるまで、設定されたままとなります。

その他すべてのビット

基本的な NEON/VFP 仕様では使用されません。これらのビットは特定の実装で使用できます。特定の実装で使用されている場合を除き、これらのビットを変更しないで下さい。

他のビットに影響を及ぼすことなく一部のビットだけを変更するには、読み出し-変更-書き込みプロシージャを使用します。

Note

ベクタモードの使用は廃止される予定です。LENSTRIDE は 1 に設定して下さい。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0473FJ
Non-ConfidentialID111311