| 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 | |