Branches can be direct or indirect. A direct branch address is determined
solely by the instruction word (for example,
branch gets its address from the contents of a DAG register (for example,
).
JUMP(P3)
All types of
JUMP
can be absolute or PC-relative.
CALL
Direct Short and Long Jumps
The sequencer supports both short and long jumps. The target of the
branch is a PC-relative address from the location of the instruction, plus
an offset. The PC-relative offset for the short jump is a 13-bit immediate
value that must be a multiple of two (bit 0 must be a 0). The 13-bit value
gives an effective dynamic range of –4096 to +4094 bytes.
The PC-relative offset for the long jump is a 25-bit immediate value that
must also be a multiple of two (bit 0 must be a 0). The 25-bit value gives
an effective dynamic range of –16,777,216 to +16,777,214 bytes.
If, at the time of writing the program, the destination is known to be less
than a 13-bit offset from the current PC value, then the
instruction may be used. If the destination requires more than a 13-bit
offset, then the
nation offset is unknown and development tools must evaluate the offset,
then use the instruction
tion is replaced by the appropriate
Rather than hard coding jump target addresses, use symbolic addresses in
assembly source files. Symbolic addresses are called labels and are marked
by a trailing colon. See the Visual DSP++ Assembler and Preprocessor Man-
ual for details.
ADSP-BF53x/BF56x Blackfin Processor Programming Reference
s and
s can be PC-relative. The indirect
CALL
JUMP.L 0xnnnnnnn
JUMP 0xnnnnnnn
Program Sequencer
JUMP 0x30
instruction must be used. If the desti-
. Upon disassembly, the instruc-
or
JUMP.S
JUMP.L
), while an indirect
and
JUMP
JUMP.S 0xnnnn
instruction.
4-11
Need help?
Do you have a question about the ADSP-BF53x Blackfin and is the answer not in the manual?
Questions and answers