The Cortex-M4 Instruction Set
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
3-95
ID121610
Non-Confidential
3.7
Saturating instructions
shows the saturating instructions:
For signed
n
-bit saturation, this means that:
•
if the value to be saturated is less than
−
2
n
−
1
, the result returned is
−
2
n-1
•
if the value to be saturated is greater than 2
n
−
1
−
1, the result returned is 2
n-1
−
1
•
otherwise, the result returned is the same as the value to be saturated.
For unsigned
n
-bit saturation, this means that:
•
if the value to be saturated is less than 0, the result returned is 0
•
if the value to be saturated is greater than 2
n
−
1, the result returned is 2
n
−
1
•
otherwise, the result returned is the same as the value to be saturated.
If the returned result is different from the value to be saturated, it is called
saturation
. If
saturation occurs, the instruction sets the Q flag to 1 in the APSR. Otherwise, it leaves the Q flag
unchanged. To clear the Q flag to 0, you must use the
MSR
instruction, see
To read the state of the Q flag, use the
MRS
instruction, see
Table 3-10 Saturating instructions
Mnemonic
Brief description
See
SSAT
Signed Saturate
SSAT16
Signed Saturate Halfword
USAT
Unsigned Saturate
USAT16
Unsigned Saturate Halfword
QADD
Saturating Add
QSUB
Saturating Subtract
QSUB16
Saturating Subtract 16
QASX
Saturating Add and Subtract with Exchange
QSAX
Saturating Subtract and Add with Exchange
QDADD
Saturating Double and Add
QDSUB
Saturating Double and Subtract
UQADD16
Unsigned Saturating Add 16
UQADD8
Unsigned Saturating Add 8
UQASX
Unsigned Saturating Add and Subtract with Exchange
UQSAX
Unsigned Saturating Subtract and Add with Exchange
UQSUB16
Unsigned Saturating Subtract 16
UQSUB8
Unsigned Saturating Subtract 8