# Branch
-b
-ba
-bl
-bla
+b target_addr (AA=0 LK=0)
-target_addr
-target_addr
-target_addr
-target_addr
+ba target_addr (AA=1 LK=0)
-(AA=0 LK=0)
-(AA=1 LK=0)
-(AA=0 LK=1)
-(AA=1 LK=1)
+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)
# Branch Conditional
-bc
-bca
-bcl
-bcla
+bc BO,BI,target_addr (AA=0 LK=0)
+
+bca BO,BI,target_addr (AA=1 LK=0)
-BO,BI,target_addr
-BO,BI,target_addr
-BO,BI,target_addr
-BO,BI,target_addr
+bcl BO,BI,target_addr (AA=0 LK=1)
-(AA=0 LK=0)
-(AA=1 LK=0)
-(AA=0 LK=1)
-(AA=1 LK=1)
+bcla BO,BI,target_addr (AA=1 LK=1)
if (64-bit mode)
then M <- 0
# Branch Conditional to Link Register
-XL-form
-
-bclr
-bclrl
+bclr BO,BI,BH (LK=0)
-BO,BI,BH
-BO,BI,BH
-
-(LK=0)
-(LK=1)
+bclrl BO,BI,BH (LK=1)
if (64-bit mode)
then M <- 0
# Branch Conditional to Count Register
-bcctr
-bcctrl
-
-BO,BI,BH
-BO,BI,BH
+bcctr BO,BI,BH (LK=0)
-(LK=0)
-(LK=1)
+bcctrl BO,BI,BH (LK=1)
cond_ok <- BO[0] | (CR[BI+32] => BO[1])
if cond_ok then NIA <-iea CTR[0:61] || 0b00
# Branch Conditional to Branch Target Address Register
-bctar
-bctarl
-
-BO,BI,BH
-BO,BI,BH
+bctar BO,BI,BH (LK=0)
-(LK=0)
-(LK=1)
+bctarl BO,BI,BH (LK=1)
if (64-bit mode)
then M <- 0
CR[BT+32] <- CR[BA+32] | CR[BB+32]
-Condition Register XOR
+# Condition Register XOR
crxor BT,BA,BB
CR[BT+32] <- CR[BA+32] | ¬CR[BB+32]
-
# Move Condition Register Field
mcrf BF,BFA
CR[4*BF+32:4*BF+35] <- CR[4*BFA+32:4*BFA+35]
-