3
3-20 M32R-FPU Software Manual (Rev.1.01)

BLBL

branch instruction

Branch and link

[Mnemonic]
(1) BL pcdisp8
(2) BL pcdisp24
[Function]
Subroutine call (PC relative)
(1) R14 = ( PC & 0xfffffffc ) + 4;
PC = ( PC & 0xfffffffc ) + ( ( ( signed char ) pcdisp8 ) << 2 );
(2) R14 = ( PC & 0xfffffffc ) + 4;
PC = ( PC & 0xfffffffc ) + ( sign_extend ( pcdisp24 ) << 2 );
where
#define sign_extend(x) ( ( ( signed ) ( (x)<< 8 ) ) >>8 )
[Description]
BL causes an unconditional branch to the address specified by the label and puts the return
address in R14.
There are two instruction formats; this allows software, such as an assembler, to decide on the
better format.
The condition bit (C) is unchanged.
[EIT occurrence]
None
[Encoding]
11101111
11100111
BL pcdisp24
BL pcdisp8
pcdisp8
pcdisp24
INSTRUCTIONS
3.2 Instruction description