有符号加法、减法,加倍加法,加倍减法,将结果饱和到有符号范围 –2^31 ≤ x ≤ 2^31–1 内。
语法op{cond} {Rd}, Rm, Rn
其中:
op
是 QADD、QSUB、QDADD 或 QDSUB 之一。
cond
是一个可选的条件代码(请参阅条件执行)。
Rd
是目标寄存器。
Rm、Rn
是存放操作数的寄存器。
不要将 r15 用作 Rd、Rm 或 Rn。
用法
QADD 指令可将 Rm 和 Rn 中的值相加。
QSUB 指令可从 Rm 中的值中减去 Rn 中的值。
QDADD 指令可计算 SAT(Rm + SAT(Rn * 2))。 进行加倍和加法运算均有可能出现饱和。如果加倍运算发生饱和,而加法运算没有出现饱和,则将设置 Q 标记,但最终结果是不饱和的。
QDSUB 指令可计算 SAT(Rm ‑ SAT(Rn * 2))。 进行加倍和加法运算均有可能出现饱和。如果加倍运算发生饱和,而加法运算没有出现饱和,则将设置 Q 标记,但最终结果是不饱和的。
Note
这些指令会将所有值视为有符号整数的二进制补码。
条件标记
如果发生饱和,则这些指令设置 Q 标记。 若要读取 Q 标记的状态,请使用 MRS 指令(请参阅MRS)。
体系结构
这些指令可用于 ARMv6 及更高版本,以及 ARMv5 的 E 变体。
这些 32 位 Thumb 指令可用于 ARMv6T2 及更高版本(ARMv7-M 架构除外)。
这些指令均无 16 位 Thumb 版本。
示例 QADD r0, r1, r9
QDSUBLT r9, r0, r1
星期四, 三月 26, 2009
订阅:
博文评论 (Atom)
没有评论:
发表评论