PowerPC Instruction Set Reference

Documentation for PowerPC/Gekko microprocessor instructions

Quick Links

Table of Contents - Instructions (A-Z)

Instruction Mnemonic Description
add add / add. / addo / addo. Add
addc addc / addc. / addco / addco. Add Carrying
adde adde / adde. / addeo / addeo. Add Extended
addi addi / la / subi Add Immediate
addic addic / subic Add Immediate Carrying
addic. addic. / subic. Add Immediate Carrying and Record
addis addis / lis / subis Add Immediate Shifted
addme addme / addme. / addmeo / addmeo. Add to Minus One Extended
addze addze / addze. / addzeo / addzeo. Add to Zero Extended
and and / and. AND
andc andc / andc. AND with Complement
andi. andi. AND Immediate
andis. andis. AND Immediate Shifted
b b / ba / bla Branch
bl bl Branch and Link
bc bc / bca / bcl / bcla Branch Conditional
bcctr bcctr / bcctrl Branch Conditional to Count Register
bclr bclr / bclrl Branch Conditional to Link Register
blr blr / blrl Branch to Link Register
bctr bctr / bctrl Branch to Count Register
bdnz bdnz / bdnzl Branch if Decrement Not Zero
bdnzf bdnzf / bdnzfl Branch if Decrement Not Zero False
bdnzt bdnzt / bdnztl Branch if Decrement Not Zero True
cmp cmp / cmpw Compare
cmpi cmpi / cmpwi Compare Immediate
cmpl cmpl / cmplw Compare Logical
cmpli cmpli / cmplwi Compare Logical Immediate
cntlzw cntlzw / cntlzw. Count Leading Zeros Word
crand crand Condition Register AND
crandc crandc Condition Register AND with Complement
creqv creqv / crset Condition Register Equivalent
crnand crnand Condition Register NAND
crnor crnor Condition Register NOR
cror cror Condition Register OR
crorc crorc Condition Register OR with Complement
crxor crxor / crclr Condition Register XOR
dcba dcba Data Cache Block Allocate
dcbf dcbf Data Cache Block Flush
dcbi dcbi Data Cache Block Invalidate
dcbst dcbst Data Cache Block Store
dcbt dcbt Data Cache Block Touch
dcbtst dcbtst Data Cache Block Touch for Store
dcbz dcbz Data Cache Block Set to Zero
divw divw / divw. / divwo / divwo. Divide Word
divwu divwu / divwu. / divwuo / divwuo. Divide Word Unsigned
eciwx eciwx External Control In Word Indexed
ecowx ecowx External Control Out Word Indexed
eieio eieio Enforce In-Order Execution of I/O
eqv eqv / eqv. Equivalent
extsb extsb / extsb. Extend Sign Byte
extsh extsh / extsh. Extend Sign Half Word
fabs fabs / fabs. Floating Absolute Value
fadd fadd / fadd. Floating Add
fadds fadds / fadds. Floating Add Single
fcmpo fcmpo Floating Compare Ordered
fcmpu fcmpu Floating Compare Unordered
fctiw fctiw / fctiw. Floating Convert to Integer Word
fctiwz fctiwz / fctiwz. Floating Convert to Integer Word with Round toward Zero
fdiv fdiv / fdiv. Floating Divide
fdivs fdivs / fdivs. Floating Divide Single
fmadd fmadd / fmadd. Floating Multiply-Add
fmadds fmadds / fmadds. Floating Multiply-Add Single
fmr fmr / fmr. Floating Move Register
fmsub fmsub / fmsub. Floating Multiply-Subtract
fmsubs fmsubs / fmsubs. Floating Multiply-Subtract Single
fmul fmul / fmul. Floating Multiply
fmuls fmuls / fmuls. Floating Multiply Single
fnabs fnabs / fnabs. Floating Negative Absolute Value
fneg fneg / fneg. Floating Negate
fnmadd fnmadd / fnmadd. Floating Negative Multiply-Add
fnmadds fnmadds / fnmadds. Floating Negative Multiply-Add Single
fnmsub fnmsub / fnmsub. Floating Negative Multiply-Subtract
fnmsubs fnmsubs / fnmsubs. Floating Negative Multiply-Subtract Single
fres fres / fres. Floating Reciprocal Estimate Single
frsp frsp / frsp. Floating Round to Single Precision
frsqrte frsqrte / frsqrte. Floating Reciprocal Square Root Estimate
fsel fsel / fsel. Floating Select
fsqrt fsqrt / fsqrt. Floating Square Root
fsqrts fsqrts / fsqrts. Floating Square Root Single
fsub fsub / fsub. Floating Subtract
fsubs fsubs / fsubs. Floating Subtract Single
icbi icbi Instruction Cache Block Invalidate
icbt icbt Instruction Cache Block Touch
iccci iccci Instruction Cache Coherency Control
isync isync Instruction Synchronize
lbz lbz Load Byte and Zero
lbzu lbzu Load Byte and Zero with Update
lbzux lbzux Load Byte and Zero with Update Indexed
lbzx lbzx Load Byte and Zero Indexed
lfd lfd Load Floating-Point Double
lfdu lfdu Load Floating-Point Double with Update
lfdux lfdux Load Floating-Point Double with Update Indexed
lfdx lfdx Load Floating-Point Double Indexed
lfs lfs Load Floating-Point Single
lfsu lfsu Load Floating-Point Single with Update
lfsux lfsux Load Floating-Point Single with Update Indexed
lfsx lfsx Load Floating-Point Single Indexed
lha lha Load Half Word Algebraic
lhau lhau Load Half Word Algebraic with Update
lhaux lhaux Load Half Word Algebraic with Update Indexed
lhax lhax Load Half Word Algebraic Indexed
lhz lhz Load Half Word and Zero
lhzu lhzu Load Half Word and Zero with Update
lhzux lhzux Load Half Word and Zero with Update Indexed
li li Load Immediate
lis lis Load Immediate Shifted
lhzx lhzx Load Half Word and Zero Indexed
lmw lmw Load Multiple Word
lswi lswi Load String Word Immediate
lswx lswx Load String Word Indexed
lwa lwa Load Word Algebraic
lwarx lwarx Load Word and Reserve Indexed
lwaux lwaux Load Word Algebraic with Update Indexed
lwax lwax Load Word Algebraic Indexed
lwz lwz Load Word and Zero
lwzu lwzu Load Word and Zero with Update
lwzux lwzux Load Word and Zero with Update Indexed
lwzx lwzx Load Word and Zero Indexed
mcrf mcrf Move Condition Register Field
mcrfs mcrfs Move to Condition Register from FPSCR
mcrxr mcrxr Move to Condition Register from XER
mfcr mfcr Move from Condition Register
mffs mffs / mffs. Move from FPSCR
mflr mflr Move from Link Register
mtlr mtlr Move to Link Register
mfctr mfctr Move from Count Register
mtctr mtctr Move to Count Register
mfmsr mfmsr Move from Machine State Register
mfspr mfspr Move from Special Purpose Register
mftb mftb Move from Time Base
mtcrf mtcrf Move to Condition Register Fields
mtfsb0 mtfsb0 / mtfsb0. Move to FPSCR Bit 0
mtfsb1 mtfsb1 / mtfsb1. Move to FPSCR Bit 1
mtfsf mtfsf / mtfsf. Move to FPSCR Fields
mtfsfi mtfsfi / mtfsfi. Move to FPSCR Field Immediate
mtmsr mtmsr Move to Machine State Register
mtspr mtspr Move to Special Purpose Register
mtsr mtsr Move to Segment Register
mulhw mulhw / mulhw. Multiply High Word
mulhwu mulhwu / mulhwu. Multiply High Word Unsigned
mulli mulli Multiply Low Immediate
mullw mullw / mullw. / mullwo / mullwo. Multiply Low Word
nand nand / nand. NAND
neg neg / neg. / nego / nego. Negate
nor nor / nor. NOR
or or / or. OR
orc orc / orc. OR with Complement
ori ori OR Immediate
oris oris OR Immediate Shifted
rfi rfi Return from Interrupt
rlwimi rlwimi / rlwimi. Rotate Left Word Immediate then Mask Insert
rlwinm rlwinm / rlwinm. Rotate Left Word Immediate then AND with Mask
rlwnm rlwnm / rlwnm. Rotate Left Word then AND with Mask
sc sc System Call
slw slw / slw. Shift Left Word
sraw sraw / sraw. Shift Right Algebraic Word
srawi srawi / srawi. Shift Right Algebraic Word Immediate
srw srw / srw. Shift Right Word
stb stb Store Byte
stbu stbu Store Byte with Update
stbux stbux Store Byte with Update Indexed
stbx stbx Store Byte Indexed
stfd stfd Store Floating-Point Double
stfdu stfdu Store Floating-Point Double with Update
stfdux stfdux Store Floating-Point Double with Update Indexed
stfdx stfdx Store Floating-Point Double Indexed
stfiwx stfiwx Store Floating-Point as Integer Word Indexed
stfs stfs Store Floating-Point Single
stfsu stfsu Store Floating-Point Single with Update
stfsux stfsux Store Floating-Point Single with Update Indexed
stfsx stfsx Store Floating-Point Single Indexed
sth sth Store Half Word
sthu sthu Store Half Word with Update
sthux sthux Store Half Word with Update Indexed
sthx sthx Store Half Word Indexed
stmw stmw Store Multiple Word
stswi stswi Store String Word Immediate
stswx stswx Store String Word Indexed
stw stw Store Word
stwu stwu Store Word with Update
stwux stwux Store Word with Update Indexed
stwx stwx Store Word Indexed
stwcx stwcx Store Word Conditional Indexed
subf subf / subf. / subfo / subfo. Subtract From
subfc subfc / subfc. / subfco / subfco. Subtract From Carrying
subfe subfe / subfe. / subfeo / subfeo. Subtract From Extended
subfic subfic Subtract From Immediate Carrying
subfme subfme / subfme. / subfmeo / subfmeo. Subtract From Minus One Extended
subfze subfze / subfze. / subfzeo / subfzeo. Subtract From Zero Extended
sync sync Synchronize
tlbia tlbia Translation Lookaside Buffer Invalidate All
tlbie tlbie Translation Lookaside Buffer Invalidate Entry
tlbsync tlbsync Translation Lookaside Buffer Synchronize
tw tw Trap Word
twi twi Trap Word Immediate
xor xor / xor. XOR
xori xori XOR Immediate
xoris xoris XOR Immediate Shifted