The Cortex-M4 Instruction Set
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
3-100
ID121610
Non-Confidential
3.7.4
QASX and QSAX
Saturating Add and Subtract with Exchange and Saturating Subtract and Add with Exchange,
signed.
Syntax
op{
cond
} {
Rd
},
Rm
,
Rn
where:
op
Is one of:
QASX
Add and Subtract with Exchange and Saturate.
QSAX
Subtract and Add with Exchange and Saturate.
cond
Is an optional condition code, see
.
Rd
Specifies the destination register.
Rn
,
Rm
Are registers holding the first and second operands.
Operation
The
QASX
instruction:
1.
Adds the top halfword of the source operand with the bottom halfword of the second
operand.
2.
Subtracts the top halfword of the second operand from the bottom highword of the first
operand.
3.
Saturates the result of the subtraction and writes a 16-bit signed integer in the range –215
≤
x
≤
215 – 1, where
x
equals 16, to the bottom halfword of the destination register.
4.
Saturates the results of the sum and writes a 16-bit signed integer in the range –215
≤
x
≤
215 – 1, where
x
equals 16, to the top halfword of the destination register.
The
QSAX
instruction:
1.
Subtracts the bottom halfword of the second operand from the top highword of the first
operand.
2.
Adds the bottom halfword of the source operand with the top halfword of the second
operand.
3.
Saturates the results of the sum and writes a 16-bit signed integer in the range –215
≤
x
≤
215 – 1, where
x
equals 16, to the bottom halfword of the destination register.
4.
Saturates the result of the subtraction and writes a 16-bit signed integer in the range –215
≤
x
≤
215 – 1, where
x
equals 16, to the top halfword of the destination register.
Restrictions
Do not use SP and do not use PC
.
Condition flags
These instructions do not affect the condition code flags.