2 the q bit, 3 the it bits – ARM Cortex R4F User Manual

Page 57

Advertising
background image

Programmer’s Model

ARM DDI 0363E

Copyright © 2009 ARM Limited. All rights reserved.

2-11

ID013010

Non-Confidential, Unrestricted Access

MRRC2

PLD

RFE

SETEND

SRS

STC2

.

In Thumb state, the processor can only execute the Branch instruction conditionally. Other
instructions can be made conditional by placing them in the If-Then (IT) block. For more
information about conditional execution in Thumb state, see the ARM Architecture Reference
Manual
.

2.7.2

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.

2.7.3

The IT bits

IT[7:5] encodes the base condition code for the current IT block, if any. It contains b000 when
no IT block is active.

IT[4:0] encodes the number of instructions that are to be conditionally executed, and whether
the condition for each is the base condition code or the inverse of the base condition code. It
contains b00000 when no IT block is active.

When an IT instruction is executed, these bits are set according to the condition in the
instruction, and the Then and Else (T and E) parameters in the instruction. During execution of
an IT block, IT[4:0] is shifted to:

reduce the number of instructions to be conditionally executed by one

move the next bit into position to form the least significant bit of the condition code.

Advertising
This manual is related to the following products: