| PowerPC Instructions | ||||
| Mnemonic | Instruction | Format | Primary Op Code | Extended Op Code | 
| add[o][.] | Add | XO | 31 | 266 | 
| addc[o][.] | Add Carrying | XO | 31 | 10 | 
| adde[o][.] | Add Extended | XO | 31 | 138 | 
| addi | Add Immediate | D | 14 | |
| addic | Add Immediate Carrying | D | 12 | |
| addic. | Add Immediate Carrying and Record | D | 13 | |
| addis | Add Immediate Shifted | D | 15 | |
| addme | Add to Minus One Extended | XO | 31 | 234 | 
| addze[o][.] | Add to Zero Extended | XO | 31 | 202 | 
| and[.] | AND | X | 31 | 28 | 
| andc[.] | AND with Complement | X | 31 | 60 | 
| andi. | AND Immediate | D | 28 | |
| andis. | AND Immediate Shifted | D | 29 | |
| b[l][a] | Branch | I | 18 | |
| bc[l][a] | Branch Conditional | B | 16 | |
| bcctr[l] | Branch Conditional to Count Register | XL | 19 | 528 | 
| bclr[l] | Branch Conditional Link Register | XL | 19 | 16 | 
| cmp | Compare | X | 31 | 0 | 
| cmpi | Compare Immediate | D | 11 | |
| cmpl | Compare Logical | X | 31 | 32 | 
| cmpli | Compare Logical Immediate | D | 10 | |
| cntlzw[.] | Count Leading Zeros Word | X | 31 | 26 | 
| crand | Condition Register AND | XL | 19 | 257 | 
| crandc | Condition Register AND with Complement | XL | 19 | 129 | 
| creqv | Condition Register Equivalent | XL | 19 | 289 | 
| crnand | Condition Register NAND | XL | 19 | 225 | 
| crnor | Condition Register NOR | XL | 19 | 33 | 
| cror | Condition Register OR | XL | 19 | 449 | 
| crorc | Condition Register OR with Complement | XL | 19 | 417 | 
| crxor | Condition Register XOR | XL | 19 | 193 | 
| dcbf | Data Cache Block Flush | X | 31 | 86 | 
| dcbi | Data Cache Block Invalidate | X | 31 | 470 | 
| dcbst | Data Cache Block Store | X | 31 | 54 | 
| dcbt | Data Cache Block Touch | X | 31 | 278 | 
| dcbtst | Data Cache Block Touch for Store | X | 31 | 246 | 
| dcbz | Data Cache Block Set to Zero | X | 31 | 1014 | 
| divw[o][.] | Divide Word | XO | 31 | 491 | 
| divwu[o][.] | Divide Word Unsigned | XO | 31 | 459 | 
| eciwx | External Control in Word Indexed (opt.) | X | 31 | 310 | 
| ecowx | External Control out Word Indexed (opt.) | X | 31 | 438 | 
| eieio | Enforce In-order Execution of I/O | X | 31 | 854 | 
| eqv[.] | Equivalent | X | 31 | 284 | 
| extsb[.] | Extend Sign Byte | X | 31 | 954 | 
| extsh[.] | Extend Sign Halfword | XO | 31 | 922 | 
| fabs[.] | Floating Absolute Value | X | 63 | 264 | 
| fadd[.] | Floating Add | A | 63 | 21 | 
| fadds[.] | Floating Add Single | A | 59 | 21 | 
| fcmpo | Floating Compare Ordered | X | 63 | 32 | 
| fcmpu | Floating Compare Unordered | XL | 63 | 0 | 
| fctiw[.] | Floating Convert to Integer Word | X | 63 | 14 | 
| fctiwz[.] | Floating Convert to Integer Word with Round to Zero | XL | 63 | 15 | 
| fdiv[.] | Floating Divide | A | 63 | 18 | 
| fdivs[.] | Floating Divide Single | A | 59 | 18 | 
| fmadd[.] | Floating Multiply-Add | A | 63 | 29 | 
| fmadds[.] | Floating Multiply-Add Single | A | 59 | 29 | 
| fmr[.] | Floating Move Register | X | 63 | 72 | 
| fmsub[.] | Floating Multiply-Subtract | A | 63 | 28 | 
| fmsubs[.] | Floating Multiply-Subtract Single | A | 59 | 28 | 
| fmul[.] | Floating Multiply | A | 63 | 25 | 
| fmuls[.] | Floating Multiply Single | A | 59 | 25 | 
| fnabs[.] | Floating Negative Absolute Value | X | 63 | 136 | 
| fneg[.] | Floating Negate | X | 63 | 40 | 
| fnmadd[.] | Floating Negative Multiply-Add | A | 63 | 31 | 
| fnmadds[.] | Floating Negative Multiply-Add Single | A | 59 | 31 | 
| fnmsub[.] | Floating Negative Multiply-Subtract | A | 63 | 30 | 
| fnmsubs[.] | Floating Negative Multiply-Subtract Single | A | 59 | 30 | 
| fres[.] | Floating Reciprocal Estimate Single (optional) | A | 59 | 24 | 
| frsp[.] | Floating Round to Single Precision | X | 63 | 12 | 
| frsqrte[.] | Floating Reciprocal Square Root Estimate (optional) | A | 63 | 26 | 
| fsel[.] | Floating-Point Select (optional) | A | 63 | 23 | 
| fsub[.] | Floating Subtract | A | 63 | 20 | 
| fsubs[.] | Floating Subtract Single | A | 59 | 20 | 
| icbi | Instruction Cache Block Invalidate | X | 31 | 982 | 
| isync | Instruction Synchronize | X | 19 | 150 | 
| lbz | Load Byte and Zero | D | 34 | |
| lbzu | Load Byte and Zero with Update | D | 35 | |
| lbzux | Load Byte and Zero with Update Indexed | X | 31 | 119 | 
| lbzx | Load Byte and Zero Indexed | X | 31 | 87 | 
| lfd | Load Floating-Point Double | D | 50 | |
| lfdu | Load Floating-Point Double with Update | D | 51 | |
| lfdux | Load Floating-Point Double with Update Indexed | X | 31 | 631 | 
| lfdx | Load Floating-Point Double Indexed | X | 31 | 599 | 
| lfs | Load Floating-Point Single | D | 48 | |
| lfsu | Load Floating-Point Single with Update | D | 49 | |
| lfsux | Load Floating-Point Single with Update Indexed | X | 31 | 567 | 
| lfsx | Load Floating-Point Single Indexed | X | 31 | 535 | 
| lha | Load Half Algebraic | D | 42 | |
| lhau | Load Half Algebraic with Update | D | 43 | |
| lhaux | Load Half Algebraic with Update Indexed | X | 31 | 375 | 
| lhax | Load Half Algebraic Indexed | X | 31 | 343 | 
| lhbrx | Load Half Byte-Reversed Indexed | X | 31 | 790 | 
| lhz | Load Half and Zero | D | 40 | |
| lhzu | Load Half and Zero with Update | D | 41 | |
| lhzux | Load Half and Zero with Update Indexed | X | 31 | 331 | 
| lhzx | Load Half and Zero Indexed | X | 31 | 279 | 
| lmw | Load Multiple Word | D | 46 | |
| lswi | Load String Word Immediate | X | 31 | 597 | 
| lswx | Load String Word Indexed | X | 31 | 533 | 
| lwarx | Load Word and Reserve Indexed | X | 31 | 20 | 
| lwbrx | Load Word Byte-Reversed Indexed | X | 31 | 534 | 
| lwz | Load Word and Zero | D | 32 | |
| lwzu | Load Word with Zero Update | D | 33 | |
| lwzux | Load Word and Zero with Update Indexed | X | 31 | 55 | 
| lwzx | Load Word and Zero Indexed | X | 31 | 23 | 
| mcrf | Move Condition Register Field | XL | 19 | 0 | 
| mcrfs | Move to Condition Register from FPSCR | X | 63 | 64 | 
| mcrxr | Move to Condition Register from XER | X | 31 | 512 | 
| mfcr | Move from Condition Register | X | 31 | 19 | 
| mffs[.] | Move from FPSCR | X | 63 | 583 | 
| mfmsr | Move from Machine State Register | X | 31 | 83 | 
| mfspr | Move from Special-Purpose Register | X | 31 | 339 | 
| mfsr | Move from Segment Register | X | 31 | 595 | 
| mfsrin | Move from Segment Register Indirect | X | 31 | 659 | 
| mtcrf | Move to Condition Register Fields | XFX | 31 | 144 | 
| mtfsb0[.] | Move to FPSCR Bit 0 | X | 63 | 70 | 
| mtfsb1[.] | Move to FPSCR Bit 1 | X | 63 | 38 | 
| mtfsf[.] | Move to FPSCR Fields | XFL | 63 | 711 | 
| mtfsfi[.] | Move to FPSCR Field Immediate | X | 63 | 134 | 
| mtmsr | Move to Machine State Register | X | 31 | 146 | 
| mtspr | Move to Special-Purpose Register | X | 31 | 467 | 
| mtsr | Move to Segment Register | X | 31 | 210 | 
| mtsrin | Move to Segment Register Indirect | X | 31 | 242 | 
| mulhw[.] | Multiply High Word | XO | 31 | 75 | 
| mulhwu[.] | Multiply High Word Unsigned | XO | 31 | 11 | 
| mulli | Multiply Low Immediate | D | 07 | |
| mullw[o][.] | Multiply Low Word | XO | 31 | 235 | 
| nand[.] | NAND | X | 31 | 476 | 
| neg[o][.] | Negate | XO | 31 | 104 | 
| nor[.] | NOR | X | 31 | 124 | 
| or[.] | OR | X | 31 | 444 | 
| orc[.] | OR with Complement | X | 31 | 412 | 
| ori | OR Immediate | D | 24 | |
| oris | OR Immediate Shifted | D | 25 | |
| rfi | Return from Interrupt | X | 19 | 50 | 
| rlwimi[.] | Rotate Left Word Immediate then Mask Insert | M | 20 | |
| rlwinm[.] | Rotate Left Word Immediate then AND with Mask | M | 21 | |
| rlwnm[.] | Rotate Left Word then AND with Mask | M | 23 | |
| sc | System Call | SC | 17 | |
| si | Subtract Immediate | D | 12 | |
| si. | Subtract Immediate and Record | D | 13 | |
| slw[.] | Shift Left Word | X | 31 | 24 | 
| sraw[.] | Shift Right Algebraic Word | X | 31 | 792 | 
| srawi[.] | Shift Right Algebraic Word Immediate | X | 31 | 824 | 
| srw[.] | Shift Right Word | X | 31 | 536 | 
| stb | Store Byte | D | 38 | |
| stbu | Store Byte with Update | D | 31 | 215 | 
| stbux | Store Byte with Update Indexed | X | 31 | 247 | 
| stbx | Store Byte Indexed | X | 31 | 215 | 
| stfd | Store Floating-Point Double | D | 54 | |
| stfdu | Store Floating-Point Double with Update | D | 55 | |
| stfdux | Store Floating-Point Double with Update Indexed | X | 31 | 759 | 
| stfdx | Store Floating-Point Double Indexed | X | 31 | 727 | 
| stfiwx | Store Floating-Point as Integer Word Indexed (optional) | X | 31 | 983 | 
| stfs | Store Floating-Point Single | D | 52 | |
| stfsu | Store Floating-Point Single with Update | D | 53 | |
| stfsux | Store Floating-Point Single with Update Indexed | X | 31 | 695 | 
| stfsx | Store Floating-Point Single Indexed | X | 31 | 663 | 
| sth | Store Half | D | 44 | |
| sthbrx | Store Half Byte-Reverse Indexed | X | 31 | 918 | 
| sthu | Store Half with Update | D | 45 | |
| sthux | Store Half with Update Indexed | X | 31 | 439 | 
| sthx | Store Half Indexed | X | 31 | 407 | 
| stmw | Store Multiple Word | D | 47 | |
| stswi | Store String Word Immediate | X | 31 | 725 | 
| stswx | Store String Word Indexed | X | 31 | 661 | 
| stw | Store | D | 36 | |
| stwbrx | Store Word Byte-Reversed Indexed | X | 31 | 662 | 
| stwcx. | Store Word Conditional Indexed | X | 31 | 150 | 
| stwu | Store Word with Update | D | 37 | |
| stwux | Store Word with Update Indexed | X | 31 | 183 | 
| stwx | Store Word Indexed | X | 31 | 151 | 
| subf[o][.] | Subtract from | XO | 31 | 40 | 
| subfc[o][.] | Subtract from Carrying | XO | 31 | 08 | 
| subfe[o][.] | Subtract from Extended | XO | 31 | 136 | 
| subfic | Subtract from Immediate Carrying | D | 08 | |
| subfme[o][.] | Subtract from Minus One Extended | XO | 31 | 232 | 
| subfze[o][.] | Subtract from Zero Extended | XO | 31 | 200 | 
| sync | Synchronize | X | 31 | 598 | 
| tlbie | Translation Look-aside Buffer Invalidate Entry (optional) | X | 31 | 306 | 
| tlbsync | Translation Look-aside Buffer Synchronize (optional) | X | 31 | 566 | 
| tw | Trap Word | X | 31 | 04 | 
| twi | Trap Word Immediate | D | 03 | |
| xor[.] | XOR | X | 31 | 316 | 
| xori | XOR Immediate | D | 26 | |
| xoris | XOR Immediate Shift | D | 27 | |