Branch with Link.
- is an optional condition code.
is not available on all forms of this instruction.
- is an optional instruction width specifier to force the use of a
BLinstruction in T32.
- is a PC-relative expression.
BL instruction causes a branch
label, and copies the address
of the next instruction into LR (
R14, the link
Instruction availability and branch ranges
The following table shows the
instructions that are available in A32 and T32 state. Instructions that are not shown in
this table are not available.
Table 13-5 BL instruction availability and range
|Instruction||A32||T32, 16-bit encoding||T32, 32-bit encoding|
Extending branch ranges
BL instructions have
restricted ranges from the address of the current instruction. However,
you can use these instructions even if
out of range. Often you do not know where the linker places
When necessary, the linker adds code to enable longer branches. The
added code is called a veneer.
BL instruction does not change
See the preceding table for details of availability of the
BL instruction in both instruction sets.
BLE ng+8 BL subC BLLT rtX