Register suffix [0] means, if register is r0, 0 is used instead of register. res = reserved bits, mbz addX rD,rA,rB X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 b.5 oe.1 266.9 rc.1 addcX rD,rA,rB X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 b.5 oe.1 10.9 rc.1 addeX rD,rA,rB X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 b.5 oe.1 138.9 rc.1 addi rD,rA[0],SIMM 14.6 d.5 a.5 simm.16 addic rD,rA,SIMM 12.6 d.5 a.5 simm.16 addic. rD,rA,SIMM 13.6 d.5 a.5 simm.16 addis rD,rA[0],SIMM 15.6 d.5 a.5 simm.16 addmeX rD,rA X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 res.5 oe.1 234.9 rc.1 addzeX rD,rA X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 res.5 oe.1 202.9 rc.1 andX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.5 28.10 rc.1 andcX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.5 60.10 rc.1 andi. rA,rS,UIMM 28.6 s.5 a.5 uimm.16 andis. rA,rS,UIMM 29.6 s.5 a.5 uimm.16 bX target X = {,l,a,la}[AA|LK] 18.6 li.24 aa.1 lk.1 (AA=1, li is absolute; AA=0, relative to .) bcX BO,BI,target X = {,l,a,la}[AA|LK] 16.6 bo.5 bi.5 dest.14 aa.1 lk.1 (AA, LK as for bX) BO bits ..00. dec CTR; ctr test true if (new) CTR != 0 ..01. dec CTR; ctr test true if (new) CTR == 0 ..1z. ctr test true .0... cond test true if CR[BI] is 0 .1... cond test true if CR[BI] is 1 0.... use cond test 1z... override cond test (act as if it's true) ....y branch prediction bit, except 1z1zz z = ignored, use 0 as they may be reassigned bcctrX BO,BI X = {,l}[LK] 19.6 bo.5 bi.5 res.5 528.10 lk.1 BO of the form ..0.. is invalid. bclrX BO,BI X = {,l}[LK] 19.6 bo.5 bi.5 res.5 16.10 lk.1 cmp crfD,L,rA,rB (L is actually reserved and MBZ) 31.6 d.3 res.1 l.1 a.5 b.5 0.10 res.1 cmpi crfD,L,rA,SIMM (L is actually reserved and MBZ) 11.6 d.3 res.1 l.1 a.5 simm.16 cmpl crfD,L,rA,rB (L is actually reserved and MBZ) 31.6 d.3 res.1 l.1 a.5 b.5 32.10 res.1 cmpli crfD,L,rA,UIMM (L is actually reserved and MBZ) 10.6 d.3 res.1 l.1 a.5 uimm.16 cntlzwX rA,rS X = {,.}[Rc] 31.6 s.5 a.5 res.5 26.10 rc.1 crand crbD,crbA,crbB 19.6 d.5 a.5 b.5 257.10 res.1 crandc crbD,crbA,crbB 19.6 d.5 a.5 b.5 129.10 res.1 creqv crbD,crbA,crbB 19.6 d.5 a.5 b.5 289.10 res.1 crnand crbD,crbA,crbB 19.6 d.5 a.5 b.5 225.10 res.1 crnor crbD,crbA,crbB 19.6 d.5 a.5 b.5 33.10 res.1 cror crbD,crbA,crbB 19.6 d.5 a.5 b.5 449.10 res.1 crorc crbD,crbA,crbB 19.6 d.5 a.5 b.5 417.10 res.1 crxor crbD,crbA,crbB 19.6 d.5 a.5 b.5 193.10 res.1 dcba rA,rB 31.6 res.5 a.5 b.5 758.10 res.1 dcbf rA,rB 31.6 res.5 a.5 b.5 86.10 res.1 dcbi rA,rB 31.6 res.5 a.5 b.5 470.10 res.1 dcbst rA,rB 31.6 res.5 a.5 b.5 54.10 res.1 dcbt rA,rB 31.6 res.5 a.5 b.5 278.10 res.1 dcbtst rA,rB 31.6 res.5 a.5 b.5 246.10 res.1 dcbz rA,rB 31.6 res.5 a.5 b.5 1014.10 res.1 divwX rD,rA,rB X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 b.5 oe.1 491.9 rc.1 divwuX rD,rA,rB X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 b.5 oe.1 459.9 rc.1 eciwx rD,rA[0],rB 31.6 d.5 a.5 b.5 310.10 res.1 ecowx rS,rA[0],rB 31.6 s.5 a.5 b.5 438.10 res.1 eieio 31.6 res.15 854.10 res.1 eqvX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.6 284.9 rc.1 (b.5 284.10, surely?) extsbX rA,rS X = {,.}[Rc] 31.6 s.5 a.5 res.5 954.10 rc.1 extshX rA,rS X = {,.}[Rc] 31.6 s.5 a.5 res.5 922.10 rc.1 fabsX frD,frB X = {,.}[Rc] 63.6 d.5 res.5 b.5 264.10 rc.1 faddX frD,frA,frB X = {,.}[Rc] 63.6 d.5 a.5 b.5 res.5 21.5 rc.1 faddsX frD,frA,frB X = {,.}[Rc] 59.6 d.5 a.5 b.5 res.5 21.5 rc.1 fcmpo crfD,frA,frB 63.6 d.3 res.2 a.5 b.5 32.10 res.1 fcmpu crfD,frA,frB 63.6 d.3 res.2 a.5 b.5 0.10 res.1 fctiwX frD,frB X = {,.}[Rc] 63.6 d.5 res.5 b.5 14.10 rc.1 fctiwzX frD,frB X = {,.}[Rc] 63.6 d.5 res.5 b.5 15.10 rc.1 fdivX frD,fA,frB X = {,.}[Rc] 63.6 d.5 a.5 b.5 res.5 18.5 rc.1 fdivsX frD,fA,frB X = {,.}[Rc] 59.6 d.5 a.5 b.5 res.5 18.5 rc.1 fmaddX frD,frA,frC,frB X = {,.}[Rc] 63.6 d.5 a.5 b.5 c.5 29.5 rc.1 fmaddsX frD,frA,frC,frB X = {,.}[Rc] 59.6 d.5 a.5 b.5 c.5 29.5 rc.1 fmrX frD,frB X = {,.}[Rc] 63.6 d.5 res.5 b.5 72.10 rc.1 fmsubX frD,frA,frC,frB X = {,.}[Rc] 63.6 d.5 a.5 b.5 c.5 28.5 rc.1 fmsubsX frD,frA,frC,frB X = {,.}[Rc] 59.6 d.5 a.5 b.5 c.5 28.5 rc.1 fmulX frD,frA,frC X = {,.}[Rc] 63.6 d.5 a.5 res.5 c.5 25.5 rc.1 fmulsX frD,frA,frC X = {,.}[Rc] 59.6 d.5 a.5 res.5 c.5 25.5 rc.1 fnabsX frD,frB X = {,.}[Rc] 63.6 d.5 res.5 b.5 136.10 rc.1 fnegX frD,frB X = {,.}[Rc] 63.6 d.5 res.5 b.5 40.10 rc.1 fnmaddX frD,frA,frC,frB X = {,.}[Rc] 63.6 d.5 a.5 b.5 c.5 31.5 rc.1 fnmaddsX frD,frA,frC,frB X = {,.}[Rc] 59.6 d.5 a.5 b.5 c.5 31.5 rc.1 fnmsubX frD,frA,frC,frB X = {,.}[Rc] 63.6 d.5 a.5 b.5 c.5 30.5 rc.1 fnmsubsX frD,frA,frC,frB X = {,.}[Rc] 59.6 d.5 a.5 b.5 c.5 30.5 rc.1 fresX frD,frB X = {,.}[Rc] 59.6 d.5 res.5 b.5 res.5 24.5 rc.1 frspX frD,frB X = {,.}[Rc] 63.6 d.5 res.5 b.5 12.10 rc.1 frsqrteX frD,frB X = {,.}[Rc] 63.6 d.5 res.5 b.5 res.5 26.5 rc.1 fselX frD,frA,frC,frB X = {,.}[Rc] 63.6 d.5 a.5 b.5 c.5 23.5 rc.1 fsqrtX frD,frB X = {,.}[Rc] 63.6 d.5 res.5 b.5 res.5 22.5 rc.1 fsqrtsX frD,frB X = {,.}[Rc] 59.6 d.5 res.5 b.5 res.5 22.5 rc.1 fsubX frD,frA,frB X = {,.}[Rc] 63.6 d.5 a.5 b.5 res.5 20.5 rc.1 fsubsX frD,frA,frB X = {,.}[Rc] 59.6 d.5 a.5 b.5 res.5 20.5 rc.1 icbi rA,rB 31.6 res.5 a.5 b.5 982.10 res.1 isync 19.6 res.15 150.10 res.1 lbz rD,sdisp(rA[0]) 34.6 d.5 a.5 sdisp.16 lbzu rD,sdisp(rA) (invalid if rA=r0 or rA=rD) 35.6 d.5 a.5 sdisp.16 lbzux rD,rA,rB (invalid if rA=r0 or rA=rD) 31.6 d.5 a.5 b.5 119.10 res.1 lbzx rD,rA[0],rB 31.6 d.5 a.5 b.5 87.10 res.1 lfd frD,sdisp(rA[0]) 50.6 d.5 a.5 sdisp.16 lfdu frD,sdisp(rA) (invalid if rA=r0) 51.6 d.5 a.5 sdisp.16 lfdux frD,rA,rB (invalid if rA=r0) 31.6 d.5 a.5 b.5 631.10 res.1 lfdx frD,rA[0],rB 31.6 d.5 a.5 b.5 599.10 res.1 lfs frD,sdisp(rA[0]) 48.6 d.5 a.5 sdisp.16 lfsu frD,sdisp(rA) (invalid if rA=r0) 49.6 d.5 a.5 sdisp.16 lfsux frD,rA,rB (invalid if rA=r0) 31.6 d.5 a.5 b.5 567.10 res.1 lfsx frD,rA[0],rB 31.6 d.5 a.5 b.5 535.10 res.1 lha rD,sdisp(rA) 42.6 d.5 a.5 sdisp.16 lhau rD,sdisp(rA) (invalid if rA=r0 or rA=rD) 43.6 d.5 a.5 sdisp.16 lhaux rD,rA,rB (invalid if rA=r0 or rA=rD) 31.6 d.5 a.5 b.5 375.10 res.1 lhax rD,rA[0],rB 31.6 d.5 a.5 b.5 343.10 res.1 lhbrx rD,rA[0],rB 31.6 d.5 a.5 b.5 790.10 res.1 lhz rD,sdisp(rA[0]) 40.6 d.5 a.5 sdisp.16 lhzu rD,sdisp(rA) (invalid if rA=r0 or rA=rD) 41.6 d.5 a.5 sdisp.16 lhzux rD,rA,rB (invalid if rA=r0 or rA=rD) 31.6 d.5 a.5 b.5 311.10 res.1 lhzx rD,rA[0],rB 31.6 d.5 a.5 b.5 279.10 res.1 lmw rD,sdisp(rA[0]) 46.6 d.5 a.5 sdisp.16 lswi rD,rA[0],NB (if NB=0, effective NB is 32) 31.6 d.5 a.5 nb.5 597.10 res.1 lswx rD,rA[0],rB 31.6 d.5 a.5 b.5 533.10 res.1 lwarx rD,rA[0],rB 31.6 d.5 a.5 b.5 20.10 res.1 lwbrx rD,rA[0],rB 31.6 d.5 a.5 b.5 534.10 res.1 lwz rD,sdisp(rA[0]) 32.6 d.5 a.5 sdisp.16 lwzu rD,sdisp(rA) (invalid if rA=r0 or rA=rD) 33.6 d.5 a.5 sdisp.16 lwzux rD,rA,rB 31.6 d.5 a.5 b.5 55.10 res.1 lwzx rD,rA[0],rB 31.6 d.5 a.5 b.5 23.10 res.1 mcrf crfD,crfS 19.6 d.3 res.2 s.3 res.2 res.5 0.10 res.1 mcrfs crfD,crfS 63.6 d.3 res.2 s.3 res.2 res.5 64.10 res.1 mcrxr crfD 31.6 d.3 res.2 res.5 res.5 512.10 res.1 mfcr rD 31.6 d.5 res.5 res.5 19.10 res.1 mffsX frD X = {,.}[Rc] 63.6 d.5 res.5 res.5 583.10 rc.1 mfmsr rD 31.6 d.5 res.5 res.5 83.10 res.1 mfspr rD,SPR (SPR is stored split and swapped: #=(sprh<<5)|sprl) 31.6 d.5 sprl.5 sprh.5 339.10 res.1 (this is same as mtspr encoding except for 284, 285, 287) SPR # 1 8 9 18 19 22 25 26 reg XER LR CTR DSISR DAR DEC SDR1 SRR0 SPR # 27 272 273 274 275 282 287 reg SRR1 SPRG0 SPRG1 SPRG2 SPRG3 EAR PVR SPR # 528 529 530 531 532 533 534 535 reg IBAT0U IBAT0L IBAT1U IBAT1L IBAT2U IBAT2L IBAT3U IBAT3L SPR # 536 537 538 539 540 541 542 543 reg DBAT0U DBAT0L DBAT1U DBAT1L DBAT2U DBAT2L DBAT3U DBAT3L SPR # 1013 reg DABR mfsr rD,SR 31.6 d.5 res.1 sr.4 res.5 595.10 res.1 mfsrin rD,rB 31.6 d.5 res.5 b.5 659.10 res.1 mftb rD,TBR (TBR is stored split and swapped: TBR=(tbrh<<5)|tbrl) 31.6 d.5 tbrl.5 tbrh.5 371.10 res.1 TBR # 268 269 reg TBL TBH mtcrf CRM,rS 31.6 s.5 res.1 crm.8 res.1 144.10 res.1 mtfsb0X crbD X = {,.}[Rc] 63.6 d.5 res.5 res.5 70.10 rc.1 mtfsb1X crbD X = {,.}[Rc] 63.6 d.5 res.5 res.5 38.10 rc.1 mtfsfX FM,frB X = {,.}[Rc] 63.6 res.1 fm.8 res.1 b.5 711.10 rc.1 mtfsfiX crfD,IMM X = {,.}[Rc] 63.6 d.3 res.2 res.5 imm.4 res.1 134.10 rc.1 mtmsr rS 31.6 s.5 res.5 res.5 146.10 res.1 mtspr SPR,rS (SPR is stored split and swapped: #=(sprh<<5)|sprl) 31.6 s.5 sprl.5 sprh.5 467.10 res.1 (this is same as mfspr encoding except for 284, 285, 287) SPR # 1 8 9 18 19 22 25 26 reg XER LR CTR DSISR DAR DEC SDR1 SRR0 SPR # 27 272 273 274 275 282 284 285 reg SRR1 SPRG0 SPRG1 SPRG2 SPRG3 EAR TBL TBH SPR # 528 529 530 531 532 533 534 535 reg IBAT0U IBAT0L IBAT1U IBAT1L IBAT2U IBAT2L IBAT3U IBAT3L SPR # 536 537 538 539 540 541 542 543 reg DBAT0U DBAT0L DBAT1U DBAT1L DBAT2U DBAT2L DBAT3U DBAT3L SPR # 1013 reg DABR mtsr SR,rS 31.6 s.5 res.1 sr.4 res.5 210.10 res.1 mtsrin rS,rB 31.6 s.5 res.5 b.5 242.10 res.1 mulhwX rD,rA,rB X = {,.}[Rc] 31.6 d.5 a.5 b.5 res.1 75.9 rc.1 mulhwuX rD,rA,rB X = {,.}[Rc] 31.6 d.5 a.5 b.5 res.1 11.9 rc.1 mulli rD,rA,SIMM 7.6 d.5 a.5 simm.16 mullwX rD,rA,rB X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 b.5 oe.1 235.9 rc.1 nandX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.5 476.10 rc.1 negX rD,rA X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 res.5 oe.1 104.9 rc.1 norX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.5 124.10 rc.1 orX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.5 444.10 rc.1 orcX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.5 412.10 rc.1 ori rA,rS,UIMM 24.6 s.5 a.5 uimm.16 oris rA,rS,UIMM 25.6 s.5 a.5 uimm.16 rfi 19.6 res.5 res.5 res.5 50.10 res.1 rlwimiX rA,rS,SH,MB,ME X = {,.}[Rc] 20.6 s.5 a.5 sh.5 mb.5 me.5 rc.1 rlwinmX rA,rS,SH,MB,ME X = {,.}[Rc] 21.6 s.5 a.5 sh.5 mb.5 me.5 rc.1 rlwnmX rA,rS,rB,MB,ME X = {,.}[Rc] 23.6 s.5 a.5 b.5 mb.5 me.5 rc.1 sc 17.6 res.5 res.5 res.14 1.1 res.1 slwX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.5 24.10 rc.1 srawX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.5 792.10 rc.1 srawiX rA,rS,SH X = {,.}[Rc] 31.6 s.5 a.5 sh.5 824.10 rc.1 srwX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.5 536.10 rc.1 stb rS,sdisp(rA[0]) 38.6 s.5 a.5 sdisp.16 stbu rS,sdisp(rA) (invalid if rA=r0) 39.6 s.5 a.5 sdisp.16 stbux rS,rA,rB (invalid if rA=r0) 31.6 s.5 a.5 b.6 247.9 res.1 (b.5 247.10, surely?) stbx rS,rA[0],rB 31.6 s.5 a.5 b.6 215.9 res.1 (b.5 215.10, surely?) stfd frS,sdisp(rA[0]) 54.6 s.5 a.5 sdisp.16 stfdu frS,sdisp(rA) (invalid if rA=r0) 55.6 s.5 a.5 sdisp.16 stfdux frS,rA,rB 31.6 s.5 a.5 b.5 759.10 res.1 stfdx frS,rA[0],rB 31.6 s.5 a.5 b.5 727.10 res.1 stfiwx frS,rA[0],rB 31.6 s.5 a.5 b.5 983.10 res.1 stfs frS,sdisp(rA[0]) 52.6 s.5 a.5 sdisp.16 stfsu frS,sdisp(rA) 53.6 s.5 a.5 sdisp.16 stfsux frS,rA,rB 31.6 s.5 a.5 b.5 695.10 res.1 stfsx frS,rA[0],rB 31.6 s.5 a.5 b.5 663.10 res.1 sth rS,sdisp(rA[0]) 44.6 s.5 a.5 sdisp.16 sthbrx rS,rA[0],rB 31.6 s.5 a.5 b.5 918.10 res.1 sthu rS,sdisp(rA) (invalid if rA=r0) 45.6 s.5 a.5 sdisp.16 sthux rS,rA,rB 31.6 s.5 a.5 b.5 439.10 res.1 sthx rS,rA[0],rB 31.6 s.5 a.5 b.5 407.10 res.1 stmw rS,sdisp(rA[0]) 47.6 s.5 a.5 sdisp.16 stswi rS,rA[0],NB 31.6 s.5 a.5 nb.5 725.10 res.1 stswx rS,rA[0],rB 31.6 s.5 a.5 b.5 661.10 res.1 stw rS,sdisp(rA[0]) 36.6 s.5 a.5 sdisp.16 stwbrx rS,rA[0],rB 31.6 s.5 a.5 b.5 662.10 res.1 stwcx. rS,rA[0],rB 31.6 s.5 a.5 b.5 150.10 res.1 stwu rS,sdisp(rA) 37.6 s.5 a.5 sdisp.16 stwux rS,rA,rB (invalid if rA=r0) 31.6 s.5 a.5 b.5 183.10 res.1 stwx rS,rA[0],rB 31.6 s.5 a.5 b.5 151.10 res.1 subfX rD,rA,rB X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 b.5 oe.1 40.9 rc.1 subfcX rD,rA,rB X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 b.5 oe.1 8.9 rc.1 subfeX rD,rA,rB X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 b.5 oe.1 136.9 rc.1 subfic rD,rA,SIMM 8.6 d.5 a.5 simm.16 subfmeX rD,rA X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 res.5 oe.1 232.9 rc.1 subfzeX rD,rA X = {,.,o,o.}[oe|Rc] 31.6 d.5 a.5 res.5 oe.1 200.9 rc.1 sync 31.6 res.5 res.5 res.5 598.10 res.1 tlbia 31.6 res.5 res.5 res.5 370.10 res.1 tlbie rB 31.6 res.5 res.5 b.5 306.10 res.1 tlbsync 31.6 res.5 res.5 res.5 566.10 res.1 tw TO,rA,rB 31.6 to.5 a.5 b.5 4.10 res.1 twi TO,rA,SIMM 3.6 to.5 a.5 simm.16 xorX rA,rS,rB X = {,.}[Rc] 31.6 s.5 a.5 b.5 316.10 res.1 xori rA,rS,UIMM 26.6 s.5 a.5 uimm.16 xoris rA,rS,UIMM 27.6 s.5 a.5 uimm.16 cr0 = 0 through cr7 = 28, plus lt=0 gt=1 eq=2 so=3 (summary overflow) un=3 (unordered) subi rD,rA,SIMM = addi rD,rA,-SIMM subis rD,rA,SIMM = addis rD,rA,-SIMM subic rD,rA,SIMM = addic rD,rA,-SIMM subic. rD,rA,SIMM = addic. rD,rA,-SIMM subX rD,rA,rB = subfX rD,rB,rA subcX rD,rA,rB = subfcX rD,rB,rA cmpwi crfD,rA,SIMM = cmpi crfD,0,rA,SIMM cmpw crfD,rA,rB = cmp crfD,0,rA,rB cmplwi crfD,rA,UIMM = cmpli crfD,0,rA,UIMM cmplw crfD,rA,rB = cmpl crfD,0,rA,rB extlwi rA,rS,n>0,b = rlwinm rA,rS,b,0,n-1 extrwi rA,rS,n>0,b = rlwinm rA,rS,b+n,32-n,31 inslwi rA,rS,n>0,b = rlwimi rA,rS,32-b,b,b+n-1 insrwi rA,rS,n>0,b = rlwimi rA,rS,32-(b+n),b,b+n-1 rotlwi rA,rS,n = rlwinm rA,rS,n,0,31 rotrwi rA,rS,n = rlwinm rA,rS,32-n,0,31 rotlw rA,rS,rB = rlwnm rA,rS,rB,0,31 slwi rA,rS,n<32 = rlwinm rA,rS,n,0,31-n srwi rA,rS,n<32 = rlwinm rA,rS,32-n,n,31 clrlwi rA,rS,n<32 = rlwinm rA,rS,0,n,31 clrrwi rA,rS,n<32 = rlwinm rA,rS,0,0,31-n clrlslwi rA,rS,b,n (n<=b<=31) = rlwinm rA,rS,n,b-n,31-n no LR update--------------- LR update------------------ rel abs LR CTR rel abs LR CTR uncond - - blr bctr - - blrl bctrl if t bt bta btlr btctr btl btla btlrl btctrl if f bf bfa bflr bctr bfl bfla bflrl bfctrl decnz bdnz bdnza bdnzlr - bdnzl bdnzla bdnzlrl - decnz t bdnzt bdnzta bdnztlr - bdnztl bdnztla bdnztlrl - decnz f bdnzf bdnzfa bdnzflr - bdnzfl bdnzfla bdnzflrl - decz bdz bdza bdzlr - bdzl bdzla bdzlrl - decz t bdzt bdzta bdztlr - bdztl bdztla bdztlrl - decz f bdzf bdzfa bdzflr - bdzfl bdzfla bdzflrl - XX bXX bXXa bXXlr bXXctr bXXl bXXla bXXlrl bXXctrl XX = lt <, le <=, eq ==, ge >=, gt >, nl !<, ne !=, ng !>, so, ns, un, nu 0t 1f 2t 0f 1t 0f 2f 1f 3t 3f 3t 3f + suffix = predict taken; - suffix = predict not taken y=0 (default) means: backwards relative taken, others untaken crset bx = creqv bx,bx,bx crclr bx = crxor bx,bx,bx crmove bx,by = cror bx,by,by crnot bx,by = crnor bx,by,by trap codes TT lt 16 le 20 eq 4 ge 12 gt 8 nl 12 ne 24 ng 20 llt 2 lle 6 lge 5 lgt 1 lnl 5 lng 6 (unconditional) 31 twTTi (twi), twTT (tw) trap = tw 31,0,0 preferred nop is "ori 0,0,0" li rD,SIMM = addi rD,r0,SIMM lis rD,SIMM = addis rD,r0,SIMM la rD,sdisp(rA) = addi rD,rA,sdisp mrX rA,rS = or rA,rS,rS notX rA,rS = nor rA,rS,rS mtcr rS = mtcrf 0xff,rS