The Cortex-M4 Instruction Set
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
3-105
ID121610
Non-Confidential
3.7.7
UQADD and UQSUB
Saturating Add and Saturating Subtract Unsigned.
Syntax
op{
cond
} {
Rd
},
Rn
,
Rm
op{
cond
} {
Rd
},
Rn
,
Rm
where:
op
Is one of:
UQADD8
Saturating four unsigned 8-bit integer additions.
UQADD16
Saturating two unsigned 16-bit integer additions.
UDSUB8
Saturating four unsigned 8-bit integer subtractions.
UQSUB16
Saturating two unsigned 16-bit integer subtractions.
cond
Is an optional condition code, see
.
Rd
Specifies the destination register.
Rn, Rm
Are registers holding the first and second operands.
Operation
These instructions add or subtract two or four values and then writes an unsigned saturated value
in the destination register.
The
UQADD16
instruction:
•
Adds the respective top and bottom halfwords of the first and second operands.
•
Saturates the result of the additions for each halfword in the destination register to the
unsigned range 0
≤
x
≤
2
16
−
1, where
x
is 16.
The
UQADD8
instruction:
•
Adds each respective byte of the first and second operands.
•
Saturates the result of the addition for each byte in the destination register to the unsigned
range 0
≤
x
≤
2
8
−
1, where
x
is 8.
The
UQSUB16
instruction:
•
Subtracts both halfwords of the second operand from the respective halfwords of the first
operand.
•
Saturates the result of the differences in the destination register to the unsigned range
0
≤
x
≤
2
16
−
1, where
x
is 16.
The
UQSUB8
instructions:
•
Subtracts the respective bytes of the second operand from the respective bytes of the first
operand.
•
Saturates the results of the differences for each byte in the destination register to the
unsigned range 0
≤
x
≤
2
8
−
1, where
x
is 8.
Restrictions
Do not use SP and do not use PC
.