| PowerPC 601 RISC Microprocessor Instructions | ||||
| Mnemonic | Instruction | Format | Primary Op Code | Extended Op Code | 
| a[o][.] | Add Carrying | XO | 31 | 10 | 
| abs[o][.] | Absolute | XO | 31 | 360 | 
| 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 | 
| ae[o][.] | Add Extended | XO | 31 | 138 | 
| ai | Add Immediate | D | 12 | |
| ai. | Add Immediate and Record | D | 13 | |
| ame[o][.] | Add to Minus One Extended | XO | 31 | 234 | 
| and[.] | AND | X | 31 | 28 | 
| andc[.] | AND with Complement | X | 31 | 60 | 
| andi. | AND Immediate | D | 28 | |
| andil. | AND Immediate Lower | D | 28 | |
| andis. | AND Immediate Shifted | D | 29 | |
| andiu. | AND Immediate Upper | D | 29 | |
| aze[o][.] | Add to Zero Extended | XO | 31 | 202 | 
| b[l][a] | Branch | I | 18 | |
| bc[l][a] | Branch Conditional | B | 16 | |
| bcc[l] | Branch Conditional to Count Register | XL | 19 | 528 | 
| bcctr[l] | Branch Conditional to Count Register | XL | 19 | 528 | 
| bclr[l] | Branch Conditional Link Register | XL | 19 | 16 | 
| bcr[l] | Branch Conditional Register | XL | 19 | 16 | 
| cal | Compute Address Lower | D | 14 | |
| cau | Compute Address Upper | D | 15 | |
| cax[o][.] | Compute Address | XO | 31 | 266 | 
| clcs | Cache Line Compute Size | X | 31 | 531 | 
| cmp | Compare | X | 31 | 0 | 
| cmpi | Compare Immediate | D | 11 | |
| cmpl | Compare Logical | X | 31 | 32 | 
| cmpli | Compare Logical Immediate | D | 10 | |
| cntlz[.] | Count Leading Zeros | X | 31 | 26 | 
| 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 | 
| dcs | Data Cache Synchronize | X | 31 | 598 | 
| div[o][.] | Divide | XO | 31 | 331 | 
| divs[o][.] | Divide Short | XO | 31 | 363 | 
| divw[o][.] | Divide Word | XO | 31 | 491 | 
| divwu[o][.] | Divide Word Unsigned | XO | 31 | 459 | 
| doz[o][.] | Difference or Zero | XO | 31 | 264 | 
| dozi | Difference or Zero Immediate | D | 09 | |
| eciwx | External Control in Word Indexed | X | 31 | 310 | 
| ecowx | External Control out Word Indexed | X | 31 | 438 | 
| eieio | Enforce In-order Execution of I/O | X | 31 | 854 | 
| eqv[.] | Equivalent | X | 31 | 284 | 
| exts[.] | Extend Sign | X | 31 | 922 | 
| extsb[.] | Extend Sign Byte | X | 31 | 954 | 
| extsh[.] | Extend Sign Halfword | XO | 31 | 922 | 
| fa[.] | Floating Add | A | 63 | 21 | 
| fabs[.] | Floating Absolute Value | X | 63 | 264 | 
| fadd[.] | Floating Add | A | 63 | 21 | 
| fadds[.] | Floating Add Single | A | 59 | 21 | 
| fcir[.] | Floating Convert to Integer Word | X | 63 | 14 | 
| fcirz[.] | Floating Convert to Integer Word with Round to Zero | X | 63 | 15 | 
| 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 | 
| fd[.] | Floating Divide | A | 63 | 18 | 
| fdiv[.] | Floating Divide | A | 63 | 18 | 
| fdivs[.] | Floating Divide Single | A | 59 | 18 | 
| fm[.] | Floating Multiply | A | 63 | 25 | 
| fma[.] | Floating Multiply-Add | A | 63 | 29 | 
| fmadd[.] | Floating Multiply-Add | A | 63 | 29 | 
| fmadds[.] | Floating Multiply-Add Single | A | 59 | 29 | 
| fmr[.] | Floating Move Register | X | 63 | 72 | 
| fms[.] | Floating Multiply-Subtract | A | 63 | 28 | 
| 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 | 
| fnma[.] | Floating Negative Multiply-Add | A | 63 | 31 | 
| fnmadd[.] | Floating Negative Multiply-Add | A | 63 | 31 | 
| fnmadds[.] | Floating Negative Multiply-Add Single | A | 59 | 31 | 
| fnms[.] | Floating Negative Multiply-Subtract | A | 63 | 30 | 
| fnmsub[.] | Floating Negative Multiply-Subtract | A | 63 | 30 | 
| fnmsubs[.] | Floating Negative Multiply-Subtract Single | A | 59 | 30 | 
| frsp[.] | Floating Round to Single Precision | X | 63 | 12 | 
| fs[.] | Floating Subtract | A | 63 | 20 | 
| fsub[.] | Floating Subtract | A | 63 | 20 | 
| fsubs[.] | Floating Subtract Single | A | 59 | 20 | 
| icbi | Instruction Cache Block Invalidate | X | 31 | 982 | 
| ics | Instruction Cache Synchronize | X | 19 | 150 | 
| isync | Instruction Synchronize | X | 19 | 150 | 
| l | Load | D | 32 | |
| lbrx | Load Byte-Reversed Indexed | X | 31 | 534 | 
| 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 | 
| lm | Load Multiple | D | 46 | |
| lmw | Load Multiple Word | D | 46 | |
| lscbx | Load String and Compare Byte Indexed | X | 31 | 277 | 
| lsi | Load String Immediate | X | 31 | 597 | 
| lswi | Load String Word Immediate | X | 31 | 597 | 
| lswx | Load String Word Indexed | X | 31 | 533 | 
| lsx | Load String Indexed | X | 31 | 533 | 
| lu | Load with Update | D | 33 | |
| lux | Load with Update Indexed | X | 31 | 55 | 
| 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 | 
| lx | Load Indexed | X | 31 | 23 | 
| maskg[.] | Mask Generate | X | 31 | 29 | 
| maskir[.] | Mask Insert from Register | X | 31 | 541 | 
| 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 | 
| mtsri | Move to Segment Register Indirect | X | 31 | 242 | 
| mtsrin | Move to Segment Register Indirect | X | 31 | 242 | 
| mul[o][.] | Multiply | XO | 31 | 107 | 
| mulhw[.] | Multiply High Word | XO | 31 | 75 | 
| mulhwu[.] | Multiply High Word Unsigned | XO | 31 | 11 | 
| muli | Multiply Immediate | D | 07 | |
| mulli | Multiply Low Immediate | D | 07 | |
| mullw[o][.] | Multiply Low Word | XO | 31 | 235 | 
| muls[o][.] | Multiply Short | XO | 31 | 235 | 
| nabs[o][.] | Negative Absolute | XO | 31 | 488 | 
| 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 | |
| oril | OR Immediate Lower | D | 24 | |
| oris | OR Immediate Shifted | D | 25 | |
| oriu | OR Immediate Upper | D | 25 | |
| rfi | Return from Interrupt | X | 19 | 50 | 
| rlimi[.] | Rotate Left Immediate then Mask Insert | M | 20 | |
| rlinm[.] | Rotate Left Immediate then AND with Mask | M | 21 | |
| rlmi[.] | Rotate Left then Mask Insert | M | 22 | |
| rlnm[.] | Rotate Left then AND with Mask | M | 23 | |
| 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 | |
| rrib[.] | Rotate Right and Insert Bit | X | 31 | 537 | 
| sc | System Call | SC | 17 | |
| sf[o][.] | Subtract from | XO | 31 | 08 | 
| sfe[o][.] | Subtract from Extended | XO | 31 | 136 | 
| sfi | Subtract from Immediate | D | 08 | |
| sfme[o][.] | Subtract from Minus One Extended | XO | 31 | 232 | 
| sfze[o][.] | Subtract from Zero Extended | XO | 31 | 200 | 
| si | Subtract Immediate | D | 12 | |
| si. | Subtract Immediate and Record | D | 13 | |
| sl[.] | Shift Left | X | 31 | 24 | 
| sle[.] | Shift Left Extended | X | 31 | 153 | 
| sleq[.] | Shift Left Extended with MQ | X | 31 | 217 | 
| sliq[.] | Shift Left Immediate with MQ | X | 31 | 184 | 
| slliq[.] | Shift Left Long Immediate with MQ | X | 31 | 248 | 
| sllq[.] | Shift Left Long with MQ | X | 31 | 216 | 
| slq[.] | Shift Left with MQ | X | 31 | 152 | 
| slw[.] | Shift Left Word | X | 31 | 24 | 
| sr[.] | Shift Right | X | 31 | 536 | 
| sra[.] | Shift Right Algebraic | X | 31 | 792 | 
| srai[.] | Shift Right Algebraic Immediate | X | 31 | 824 | 
| sraiq[.] | Shift Right Algebraic Immediate with MQ | X | 31 | 952 | 
| sraq[.] | Shift Right Algebraic with MQ | X | 31 | 920 | 
| sraw[.] | Shift Right Algebraic Word | X | 31 | 792 | 
| srawi[.] | Shift Right Algebraic Word Immediate | X | 31 | 824 | 
| sre[.] | Shift Right Extended | X | 31 | 665 | 
| srea[.] | Shift Right Extended Algebraic | X | 31 | 921 | 
| sreq[.] | Shift Right Extended with MQ | X | 31 | 729 | 
| sriq[.] | Shift Right Immediate with MQ | X | 31 | 696 | 
| srliq[.] | Shift Right Long Immediate with MQ | X | 31 | 760 | 
| srlq[.] | Shift Right Long with MQ | X | 31 | 728 | 
| srq[.] | Shift RIght with MQ | X | 31 | 664 | 
| srw[.] | Shift Right Word | X | 31 | 536 | 
| st | Store | D | 36 | |
| stb | Store Byte | D | 38 | |
| stbrx | Store Byte-Reversed Indexed | X | 31 | 662 | 
| 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 | 
| 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 | 
| stm | Store Multiple | D | 47 | |
| stmw | Store Multiple Word | D | 47 | |
| stsi | Store String Immediate | X | 31 | 725 | 
| stswi | Store String Word Immediate | X | 31 | 725 | 
| stswx | Store String Word Indexed | X | 31 | 661 | 
| stsx | Store String Indexed | X | 31 | 661 | 
| stu | Store with Update | D | 37 | |
| stux | Store with Update Indexed | X | 31 | 183 | 
| 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 | 
| stx | Store 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 | 
| t | Trap | X | 31 | 04 | 
| ti | Trap Immediate | D | 03 | |
| tlbie | Translation Look-aside Buffer Invalidate Entry | X | 31 | 306 | 
| tw | Trap Word | X | 31 | 04 | 
| twi | Trap Word Immediate | D | 03 | |
| xor[.] | XOR | X | 31 | 316 | 
| xori | XOR Immediate | D | 26 | |
| xoril | XOR Immediate Lower | D | 26 | |
| xoris | XOR Immediate Shift | D | 27 | |
| xoriu | XOR Immediate Upper | D | 27 | |