| |||
| Home > Programmers Model > Program status registers > The Q bit | |||
Certain multiply and fractional arithmetic instructions can set the Sticky Overflow, Q, flag:
QADD
QDADD
QSUB
QDSUB
SMLAD
SMLAxy
SMLAWy
SMLSD
SMUAD
SSAT
SSAT16
USAT
USAT16.
The Q flag is sticky in that, when an instruction sets it,
this bit remains set until an MSR instruction writing
to the CPSR explicitly clears it. Instructions cannot execute conditionally
on the status of the Q flag.
To determine the status of the Q flag you must read the PSR into a register and extract the Q flag from this. For information of how the Q flag is set and cleared, see individual instruction definitions in the ARM Architecture Reference Manual.