603e Instructions
Last updated: 4 December 1997
Important: This is not 'simplified mnemonic' used in this doc, so when you see instructions don't panic :))
Index:    Integer Instructions
          Interger Arithmetic Instructions
          Interger Compare Instructions
          Integer Logical Instructions
          Integer Rotate Instructions
          Integer Shift Instructions
	  Integer Load Instructions
          Integer Store Instructions
          Integer Load and Store with Byte-Reverse Instructions
          Integer Load and Store Multiple Instructions
          Integer Load and Store String Instructions

          Floating-Point Instructions
          Floating-Point Arithmetic Instructions
          Floating-Point Multiply-Add Instructions
          Floating-Point Rounding and Conversion Instructions
          Floating-Point Compare Instructions
          Floating-Point Status and Control Register Instructions
          Floating-Point Move Instructtions
          Floating-Point Load Instructions
          Floating-Point Store Instructions

          Branch and Flow Control Instructions
          Branch Instructions
          Condition Register Logical Instructions

          Some Others :)
          Trap Instructions
          Move to/from Condition Register Intstructions
          Memory Synchronisation Instructions

          VEA Instructions
          Processor Control Instructions
          Memory Synchronisation Instructions
          User-Level Cache Instructions
          External Control Instructions

          OEA Instructions
          System Linkage Instructions
          Move to/from Machine State Register Instructions
          Move to/from Special-Purpose Register Instructions
          Memory Control Instructions
          System linkage instructions
          Segment Register Manipulation Instructions
          Translation lookaside Buffer Management Instructions


Integer Arithmetic Instructions Name Mnemonic Operand Syntax Add immediate addi rD,rA,SIMM Add immediate Shifted addis rD,rA,SIMM Add add (add. addo addo.) rD,rA,rB Sub from subf (subf. subfo subfo.) rD,rA,rB Add Immediate Carrying addic rD,rA,SIMM Add Immediate Carrying & Record addic. rD,rA,SIMM Sub from Immediate Carrying subfic rD,rA,SIMM Add Carrying addc (addc. addco addco.) rD,rA,rB Sub from Carrying subfc (subfc. subfco subfco.) rD,rA,rB Add Extended adde (adde. addeo addeo.) rD,rA,rB Sub from Extended subfe (subfe. subfeo subfeo.) rD,rA,rB Add to Minus One Extended addme (addme. addmeo addmeo.) rD,rA Sub from Minus One Extended subfme (subfme. subfmeo subfmeo.) rD,rA Add to Zero Extended addze (addze. addzeo addzeo.) rD,rA Sub from Zero Extended subfze (subfze subfzeo subfzeo.) rD,rA Negate neg (neg. nego nego.) rD,rA Multiply Low Immediate mulli rD,rA,SIMM Multiply Low mullw (mullw. mullwo mullwo.) rD,rA,rB Multiply High Word mulhw (mulhw.) rD,rA,rB Multiply High Word Unsigned mulhwu (mulhwu.) rD,rA,rB Divide Word divw (divw. divwo divwo.) rD,rA,rB Divide Word Unsigned divwu (divwu. divwuo divwuo.) rD,rA,rB
Integer Compare Instructions Name Mnemonic Operand Syntax Compare Immediate cmpi crfD,L,rA,SIMM Compare cmp crfD,L,rA,rB Compare Logical Immediate cmpli crfD,L,rA,UIMM Compare Logical cmpl crfD,L,rA,rB
Integer Logical Instructions Name Mnemonic Operand Syntax AND Immediate andi. rA,rS,UIMM AND Immediate Shifted andis. rA,rS,UIMM OR Immediate ori rA,rS,UIMM OR Immediate Shifted oris rA,rS,UIMM XOR Immediate xori rA,rS,UIMM XOR Immediate Shifted xoris rA,rS,UIMM AND and (and.) rA,rS,rB OR or (or.) rA,rS,rB XOR xor (xor.) rA,rS,rB NAND nand (nand.) rA,rS,rB NOR nor (nor.) rA,rS,rB Equivalent eqv (eqv.) rA,rS,rB AND with Complement andc (andc.) rA,rS,rB OR with Complement orc (orc.) rA,rS,rB Extend Sign Byte extsb (extsb.) rA,rS Extend Sign Half Word extsh (extsh.) rA,rS Count Leading Zeros Word cntlzw (cntlzw.) rA,rS
Integer Rotate Instructions NOTE: R='Rotate Left Word' Name Mnemonic Operand Syntax R Immediate then AND with Mask rlwinm (rlwinm.) rA,rS,SH,MB,ME R then AND with Mask rlwnm (rlwnm.) rA,rS,rB,MB,ME R Immediate the Mask Insert rlwimi (rlwimi.) rA,rS,rB,MB,ME
Integer Shift Instructions NOTE: SR='Shift Right' Name Mnemonic Operand Syntax Shift Left Word slw (slw.) rA,rS,rB SR Word srw (srw.) rA,rS,rB SR Algebraic Word Immediate srawi (srawi.) rA,rS,SH SR Algebraic Word sraw (sraw.) rA,rS,rB
Integer Load Instructions Name Mnemonic Operand Syntax Load Byte and Zero lbz rD,d(rA) Load Byte and Zero Indexed lbzx rD,rA,rB Load Byte and Zero Update lbzu rD,d(rA) Load Byte and Zero Update Indexed lbzux rD,rA,rB Load Half Word and Zero lhz rD,d(rA) Load Half Word and Zero Indexed lhzx rD,rA,rB Load Half Word and Zero Update lhzu rD,d(rA) Load Half Word and Zero Update Indexed lhzux rD,rA,rB Load Half Word Algebraic lha rD,d(rA) Load Half Word Algebraic Indexed lhax rD,rA,rB Load Half Word Algebraic with Update lhau rD,d(rA) Load Half Word Algebraic with Update Indexed lhaux rD,rA,rB Load Word and Zero lwz rD,d(rA) Load Word and Zero Indexed lwzx rD,rA,rB Load Word and Zero Update lwzu rD,d(rA) Load Word and Zero Update Indexed lwzux rD,rA,rB
Integer Store Instructions Name Mnemonic Operand Syntax Store Byte stb rS,d(rA) Store Byte Indexed stbx rS,rA,rB Store Byte with Update stbu rS,d(rA) Store Byte with Update Indexed stbux rS,rA,rB Store Half Word sth rS,d(rA) Store Half Word Indexed sthx rS,rA,rB Store Half Word with Update sthu rS,d(rA) Store Half Word with Update Indexed sthux rS,rA,rB Store Word stw rS,d(rA) Store Word Indexed stwx rS,rA,rB Store Word with Update stwu rS,d(rA) Store Word with Update Indexed stwux rS,rA,rB
Integer Load and Store with Byte-Reverse Instructions Name Mnemonic Operand Syntax Load Half Word Byte-Reverse Indexed lhbrx rD,rA,rB Load Word Byte-Reverse Indexed lwbrx rD,rA,rB Store Half Word Byte-Reverse Indexed shbrx rS,rA,rB Sotre Word Byte-Reverse Indexed swbrx rS,rA,rB
Integer Load and Store Multiple Instructions Name Mnemonic Operand Syntax Load Multiple Word lmw rD,d(rA) Store Multiple Word stmw rS,d(rA)
Integer Load and Store String Instructions Name Mnemonic Operand Syntax Load String Word Immediate lswi rD,rA,NB Load Sting Word Indexed lswx rD,rA,rB Store String Word Immediate stswi rS,rA,NB Store Sting Word Indexed stswx rS,rA,rB
Floating Point Arithmetic Instructions Name Mnemonic Operand Syntax Add (Double Precision) fadd (fadd.) frD,frA,frB Add Single fadds (fadds.) frD,frA,frB Subtract (Double Precision) fsub (fsub.) frD,frA,frB Subtract Single fsubs (fsubs.) frD,frA,frB Multiply (Double Precision) fmul (fmul.) frD,frA,frC Multiply Single fmuls (fmuls.) frD,frA,frC Divide (Double Precision) fdiv (fdiv.) frD,frA,frB Divide Single fdivs (fdivs.) frD,frA,frB Reciprocal Estimate Single fres (fres.) frD,frB Reciprocal Square Root Estimate frsqrte (frsqte.) frD,frB Select fsel (fsel.) frD,frA,frC,frB
Floating Point Multiply-Add Instructions Name Mnemonic Operand Syntax Multiply-Add (Double Precision) fmadd (fmadd.) frD,frA,frC,frB Multiply-Add Single fmadds (fmadds.) frD,frA,frC,frB Multiply-Sub (Double Precision) fmsub (fmsub.) frD,frA,frC,frB Multiply-Sub Single fmsubs (fmsubs.) frD,frA,frC,frB Negative Mul-Add (Double) fnmadd (fnmadd.) frD,frA,frC,frB Negative Mul-Add Single fnmadds (fnmadds.) frD,frA,frC,frB Negative Mul-Sub (Double) fnmsub (fnmsub.) frD,frA,frC,frB Negative Mul-Sub Single fnmsubs (fnmsubs.) frD,frA,frC,frB
Floating Point Rounding and Conversion Instructions Note: CIW='Convert to Integer Word' Name Mnemonic Operand Syntax Round to Single-Precision frsp (frsp.) frD,frB CIW fctiw (fctiw.) frD,frB CIW with Round toward Zero fctiwz (fctiwz.) frD,frB
Floating Point Compare Instructions Name Mnemonic Operand Syntax Compare Unordered fcmpu crfD,frA,frB Compare Ordered fcmpo crfD,frA,frB
Floating Point Status and Control Register Instructions Name Mnemonic Operand Syntax Move from FPSCR mffs (mffs.) frD Move to Condition Register from FPSCR mcrfs crfD,crfS Move to FPSCR Field Immediate mtfsfi (mtfsfi.) crfD,IMM Move to FPSCR Field mtfsf (mtfsf.) FM,frB Move to FPSCR bit 0 mtfsb0 (mtfsb0.) crbD Move to FPSCR Bit 1 mtfsb1 (mtfsb1.) crbD
Floating Point Move Instructions Name Mnemonic Operand Syntax Move Register fmr (fmr.) frD,frB Negate fneg (fneg.) frD,frB Absolute Value fabs (fabs.) frD,frB Negative Absolute Value fnabs (fnabs.) frD,frB
Floating-Point Load Instructions Name Mnemonic Operand Syntax Load FloatingPoint Single lfs frD,d(rA) Load FloatingPoint Single Indexed lfsx frD,rA,rB Load FloatingPoint Single with Update lfsu frD,d(rA) Load FloatingPoint Single with Update Indexed lfsux frD,rA,rB Load FloatingPoint Double lfd frD,d(rA) Load FloatingPoint Double Indexed lfdx frD,rA,rB Load FloatingPoint Double with Update lfdu frD,d(rA) Load FloatingPoint Double with Update Indexed lfdux frD,rA,rB
Floating-Point Store Instructions Name Mnemonic Operand Syntax Store FloatingPoint Single stfs frS,d(rA) Store FloatingPoint Single Indexed stfsx frS,rA,rB Store FloatingPoint Single with Update stfsu frS,d(rA) Store FloatingPoint Single with Update Indexed stfsux frS,rA,rB Store FloatingPoint Double stfd frS,d(rA) Store FloatingPoint Double Indexed stfdx frS,rA,rB Store FloatingPoint Double with Update stfdu frS,d(rA) Store FloatingPoint Double with Update Indexed stfdux frS,rA,rB Store FloatingPoint as Interger Word Indexed stfiwx frS,rA,rB
Branch Instructions Name Mnemonic Operand Syntax Branch b (ba bl bla) target addr Branch Conditional bc (bca bcl bcla) BO,Bl,target addr Branch Conditional to Link Reg bclr (bclrl) BO,Bl Branch Conditional to Count Reg bcctr (bcctrl) BO,Bl
Condition Register Logical Instructions Name Mnemonic Operand Syntax Condition Register AND crand crbD,crbA,crbB Condition Register OR cror crbD,crbA,crbB Condition Register XOR crxor crbD,crbA,crbB Condition Register NAND crnand crbD,crbA,crbB Condition Register NOR crnor crbD,crbA,crbB Condition Register Equivalent creqv crbD,crbA,crbB Condition Register AND with Complement crandc crbD,crbA,crbB Condition Register OR with Complement crorc crbD,crbA,crbB Move Condition Register Field mcrf crfD,crfS
Trap Name Mnemonic Operand Syntax Trap Word Immediate twi TO,rA,SIMM Trap Word tw TO,rA,rB
Move to/from Condition Register Instructions Name Mnemonic Operand Syntax Move to Condition Register Fields mtcrf CRM,rS Move to Condition Register from XER mcrxr crfD Move from Condition Register mfcr rD
Memory Synchronisation Instructions (UISA) Name Mnemonic Operand Syntax Load Word and Reserve Indexed lwarx rD,rA,rB Store Word Conditional Indexed stwcx. rS,rA,rB Synchronize sync --
Processor Control Instructions (VEA) Name Mnemonic Operand Syntax Move from Time Base mftb rD,TBR
Memory Synchronization Instructions (VEA) Name Mnemonic Operand Syntax Enforce In-Order Execution of I/O eieio -- Instruction Synchronize isync --
User-Level Cache Instructions (VEA) Name Mnemonic Operand Syntax Data Cache Block Touch dcbt rA,rB Data Cache Block Touch for Store dcbtst rA,rB Data Cache Block Set to Zero dcbz rA,rB Data Cache Block Store dcbst rA,rB Data Cache Block Flush dcbf rA,rB Instruction Cache Block Invalidate icbi rA,rB
External Control Instructions (VEA) Name Mnemonic Operand Syntax External Control in Word Indexed eciwx rD,rA,rB External Control Out Word Indexed ecowx rS,rA,rB
System Linkage Instructions (OEA) Name Mnemonic Operand Syntax System Call sc -- Return from Interrupt rfi --
Move to/from Machine State Register Instructions (OEA) Name Mnemonic Operand Syntax Move to Machine State Register mtmsr rS Move from Machine State Register mfmsr rD
Move to/from Special-Purpose Register Instructions (OEA) Name Mnemonic Operand Syntax Move to Special-Purpose Register mtspr SPR,rS Move from Special-Purpose Register mfspr rD,SPR
Memory Control Instructions (OEA) Name Mnemonic Operand Syntax Data Cache Block Invalidate dcbi rA,rB
Segment Register Manipulation Instructions (OEA) Name Mnemonic Operand Syntax Move to Segment Register mtsr SR,rS Move to Segment Register Indirect mtsrin rS,rB Move from Segment Register mfsr rD,SR Move from Segment Register Indirect mfsrin rD,rB
Translation Lookaside Buffer Management Instructions (OEA) Name Mnemonic Operand Syntax TLB Invalidate Entry tlbie rB TLB Synchronize tlbsync -- Load Data TLB Entry tlbld rB Load Instruction TLB Entry tlbli rB