The Cortex-M4 Instruction Set
ARM DUI 0553A
Copyright © 2010 ARM. All rights reserved.
3-120
ID121610
Non-Confidential
Note
You might have to use the
.W
suffix to get the maximum branch range. See
Restrictions
The restrictions are:
•
do not use PC in the
BLX
instruction
•
for
BX
and
BLX
, bit[0] of
Rm
must be 1 for correct execution but a branch occurs to the target
address created by changing bit[0] to 0
•
when any of these instructions is inside an IT block, it must be the last instruction of the
IT block.
Note
B
cond
is the only conditional instruction that is not required to be inside an IT block. However,
it has a longer branch range when it is inside an IT block.
Condition flags
These instructions do not change the flags.
Examples
B
loopA
; Branch to loopA
BLE
ng
; Conditionally branch to label ng
B.W
target ; Branch to target within 16MB range
BEQ
target ; Conditionally branch to target
BEQ.W
target ; Conditionally branch to target within 1MB
BL
funC
; Branch with link (Call) to function funC, return address
; stored in LR
BX
LR
; Return from function call
BXNE
R0
; Conditionally branch to address stored in R0
BLX
R0
; Branch with link and exchange (Call) to a address stored
; in R0.