QADD、QSUB、QDADD、QDSUB

-231x ≤ 231-1 の符号付き範囲で演算結果をサチュレートさせる、符号付き加算、減算、倍演算と加算、および倍演算と減算です。

Show/hide構文

op{cond} {Rd}, Rm, Rn

各パラメータには以下の意味があります。

op

QADDQSUBQDADDQDSUB のいずれかを指定します。

cond

任意の条件コードを指定します。

Rd

デスティネーションレジスタを指定します。

Rm、Rn

オペランドを保持するレジスタを指定します。

Show/hide使用法

QADD 命令は RmRn の値を加算します。

QSUB 命令は Rm の値から Rn の値を減算します。

QDADD 命令は SAT(Rm + SAT(Rn * 2)) を計算します。倍演算、加算、あるいはその両方で、サチュレーションが発生する可能性があります。倍演算でサチュレーションが発生し、かつ加算では発生しない場合、Q フラグは設定されますが、最終結果はサチュレートしていません。

QDSUB 命令は SAT(Rm - SAT(Rn * 2)) を計算します。倍演算、減算、あるいはその両方で、サチュレーションが発生する可能性があります。倍演算でサチュレーションが発生し、かつ減算では発生しない場合、Q フラグは設定されますが、最終結果はサチュレートしていません。

Note

これらの命令では、すべての値が 2 の補数の符号付き整数として処理されます。

Show/hideレジスタの制約条件

オペランドに PC は使用できません。

SP は ARM 命令で使用できますが、これらは ARMv6T2 以降では非推奨です。Thumb 命令では SP は使用できません。

Show/hide条件フラグ

サチュレーションが発生すると、これらの命令によって Q フラグが設定されます。Q フラグの状態を読み出すには、MRS 命令を使用します。

Show/hideアーキテクチャ

これらの ARM 命令は、ARMv6 以降、および ARMv5T の E バリアントで使用できます。

これらの 32 ビット Thumb 命令は、ARMv6T2 以降で使用できます。ARMv7-M アーキテクチャでは、これらは ARMv7E-M 実装でだけ使用できます。

これらの命令の 16 ビット Thumb バージョンはありません。

Show/hide サンプル

    QADD    r0, r1, r9
    QDSUBLT r9, r0, r1

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489FJ
Non-ConfidentialID111211