IBM PPC440X5 Computer Hardware User Manual


 
bclr
Branch Conditional to Link Register
PPC440x5 CPU Core User’s Manual Preliminary
Page 278 of 589
instrset.fm.
September 12, 2002
bclr
Branch Conditional to Link Register
if BO
2
= 0 then
CTR
CTR 1
if (BO
2
= 1 ((CTR = 0) = BO
3
)) (BO
0
=1 (CR
BI
=BO
1
)) then
NIA
LR
0:29
||
2
0
else
NIA
CIA + 4
if LK = 1 then
(LR)
CIA + 4
PC
NIA
If BO
2
contains 0, the CTR decrements, and the decremented value is tested for 0 as part of the branch
condition. In this case, BO
3
indicates whether the test for 0 must be true or false in order for the branch to be
taken. If BO
2
contains 1, then the CTR is neither decremented nor tested as part of the branch condition.
If BO
0
contains 0, then the CR bit specified by the BI field is compared to BO
1
as part of the branch condition.
If BO
0
contains 1, then the CR is not tested as part of the branch condition, and the BI field is ignored.
The next instruction address (NIA) is either the effective address of the branch target, or the address of the
instruction after the branch, depending on whether the branch is taken or not. The branch target address is
formed by concatenating two 0-bits to the right of the 30 most significant bits of the LR.
BO
4
affects branch prediction, a performance-improvement feature. See Branch Prediction on page 65 for a
complete discussion.
Instruction execution resumes with the instruction at the NIA.
If the LK field contains 1, then (CIA + 4) is placed into the LR.
Registers Altered
CTR if BO
2
contains 0
LR if LK contains 1
Invalid Instruction Forms
Reserved fields
bclr BO, BI LK= 0
bclrl BO, BI LK =1
19 BO BI 16 LK
0 6 11 16 21 31