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 |