Appendix G PowerPC 601 RISC Microprocessor instructions

Item Description Description Description Description
PowerPC 601 RISC Microprocessor Instructions PowerPC 601 RISC Microprocessor Instructions PowerPC 601 RISC Microprocessor Instructions PowerPC 601 RISC Microprocessor Instructions 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[o][.] 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 39  
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