Sunday, 19 February 2017
Branch I-form
b target_addr (AA=0 LK=0)
ba target_addr (AA=1 LK=0)
bl target_addr (AA=0 LK=1)
bla target_addr (AA=1 LK=1)
if AA then NIA <-- iea EXTS(LI || 0b00)
else NIA <-- iea CIA + EXTS(LI || 0b00)
if LK then LR <--iea CIA + 4
target_addr specifies the branch target address.
If AA=0 then the branch target address is the sum of
LI || 0b00 sign-extended and the address of this
instruction, with the high-order 32 bits of the branch target
address set to 0 in 32-bit mode.
If AA=1 then the branch target address is the value
LI || 0b00 sign-extended, with the high-order 32 bits of
the branch target address set to 0 in 32-bit mode.
If LK=1 then the effective address of the instruction following
the Branch instruction is placed into the Link
Register.
Special Registers Altered:
LR (if LK=1)
Note: bl ADDRESS usually used to do subroutine call to address ADDRESS
Labels:
PowerPC instr
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment