Saturating instructions
Some A32 and T32 instructions perform saturating arithmetic.
The saturating instructions are:
QADD
.QDADD
.QDSUB
.QSUB
.SSAT
.USAT
.
Some of the parallel instructions are also saturating.
Saturating arithmetic
Saturation means that, for some value of
2n
that depends on the instruction:
-
For a signed saturating operation, if the full result would be less than -2
n
, the result returned is -2n
. -
For an unsigned saturating operation, if the full result would be negative, the result returned is zero.
-
If the full result would be greater than 2
n
-1, the result returned is 2n
-1.
When any of these occurs, it is called saturation. Some instructions set the Q flag when saturation occurs.
Note
Saturating instructions do not clear the Q flag when saturation does not occur. To clear the Q flag, use anMSR
instruction.
The Q flag can also be set by two other instructions, but these instructions do not saturate.