| |||
Home > ARM 命令と Thumb 命令 > サチュレート命令 > QADD、QSUB、QDADD、QDSUB |
-231 ≤ x
≤
231-1 の符号付き範囲で演算結果をサチュレートさせる、符号付き加算、減算、倍演算と加算、および倍演算と減算です。
{
op
cond
} {Rd
},Rm
,Rn
各パラメータには以下の意味があります。
op
QADD
、QSUB
、QDADD
、QDSUB
のいずれかを指定します。
cond
任意の条件コードを指定します。
Rd
デスティネーションレジスタを指定します。
Rm、Rn
オペランドを保持するレジスタを指定します。
QADD
命令は
と Rm
の値を加算します。Rn
QSUB
命令は
の値から Rm
の値を減算します。Rn
QDADD
命令は SAT(
を計算します。倍演算、加算、あるいはその両方で、サチュレーションが発生する可能性があります。倍演算でサチュレーションが発生し、かつ加算では発生しない場合、Q
フラグは設定されますが、最終結果はサチュレートしていません。Rm
+
SAT(Rn
* 2))
QDSUB
命令は SAT(
を計算します。倍演算、減算、あるいはその両方で、サチュレーションが発生する可能性があります。倍演算でサチュレーションが発生し、かつ減算では発生しない場合、Q
フラグは設定されますが、最終結果はサチュレートしていません。Rm
-
SAT(Rn
* 2))
これらの命令では、すべての値が 2 の補数の符号付き整数として処理されます。
これらの ARM 命令は、ARMv6 以降、および ARMv5T の E バリアントで使用できます。
これらの 32 ビット Thumb 命令は、ARMv6T2 以降で使用できます。ARMv7-M アーキテクチャでは、これらは ARMv7E-M 実装でだけ使用できます。
これらの命令の 16 ビット Thumb バージョンはありません。