2.4.5. The Q flag

ARMv5TE, and ARMv6 and above, have a Q flag to record when saturation has occurred in saturating arithmetic instructions (see QADD, QSUB, QDADD, and QDSUB), or when overflow has occurred in certain multiply instructions (see SMULxy and SMLAxy and SMULWy and SMLAWy).

The Q flag is a sticky flag. Although these instructions can set the flag, they cannot clear it. You can execute a series of such instructions, and then test the flag to find out whether saturation or overflow occurred at any point in the series, without having to check the flag after each instruction.

To clear the Q flag, use an MSR instruction (see MSR).

The state of the Q flag cannot be tested directly by the condition codes. To read the state of the Q flag, use an MRS instruction (see MRS).

Copyright © 2002-2010 ARM. All rights reserved.ARM DUI 0204J