MPC563XM Reference Manual, Rev. 1
908
Freescale Semiconductor
Preliminary—Subject to Change Without Notice
23.4.9.4.2
Branch Operations
Branch operations can be
jump
or
call
. The target address of
jump
or
call
microoperations is always
immediate and absolute. Branch microoperation is affected by FLS field (refer to
”).
Selecting Jump or Call Microoperations
The only difference between
jump
and
call
microoperations is that when a
call
is executed the value of PC
or PC+1 (depending on flush, see
Section 23.4.9.4.5, “Flush Pipeline
) is saved in RAR register. The
microcode field J/C (1 bit) selects whether
jump
or a
call
is executed, according to
Branch Target Address
Microcode BAF field (14 bits) indicates the absolute address of a
jump
/
call
target.
Conditional/Unconditional Branch
Jump
and
call
can be conditional or unconditional, depending on the BCC (6 bits) and BCF (1 bit) fields,
. BCF determines whether branch is taken when condition
specified by BCC is true or false. When a branch condition uses the channel flags, the channel context is
related to the channel number written in CHAN register.
Table 23-92. Jump / Call Selection - J/C
J/C
Meaning
0
jump
1
call
Table 23-93. Branch Condition Inversion - BCF
BCF
Meaning
0
branch if condition determined by BCC is false
1
branch if condition determined by BCC is true
Table 23-94. Branch Condition Selection - BCC
BCC
Meaning
BCC
Meaning
001110
Flag 0
001111
Flag 1
100000
V ALU flag
110000
PSS channel flag
100001
N ALU flag
110001
PRSS channel flag
100010
C ALU flag
110010
“Less Than” ALU flag combination (signed)
1
100011
Z ALU flag
110011
“Lower or Equal” ALU flag combination
(unsigned)
2
100100
MV MDU flag
110100
P[24]
100101
MN MDU flag
110101
P[25]
100110
MC MDU flag
110110
P[26]