Files
Xenia-Canary/docs/ppc_instructions.md
MechaCat02 7a682d7cf4 [Docs] Land the PPC / Xbox 360 export reference tables
These were sitting in stash@{0} ("On canary_experimental: doc", 2026-04-11) as
untracked files only -- no tracked change was ever stashed with them, so they
were one `git stash drop` away from being lost:

  docs/ppc_instructions.{json,md}   PPC instruction reference
  docs/xbox360_exports.{json,md}    XAM / xboxkrnl export tables
  docs/xex2_format.md               XEX2 container format
  tools/generate_export_docs.py     the generator behind them

xex2_format.md in particular is the spec a static XEX reader would need to
pull the title's XACH achievement table and .rdata tables off the disc.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 18:10:16 +02:00

34 KiB

Xenia Canary — PowerPC Instruction Reference

Complete catalog of all 455 PowerPC instructions implemented in the Xenia (canary) Xbox 360 emulator. These instructions are defined in tools/ppc-instructions.xml and code-generated into the emitter/decoder/disassembler pipeline.

Architecture Overview

PPC Binary → Decoder (ppc_opcode_lookup_gen.cc)
           → Frontend Emit (ppc_emit_*.cc)  →  HIR (intermediate representation)
           → Backend Sequences (x64_seq_*.cc / a64_seq_*.cc)  →  Host Machine Code

Source Files

File Role
tools/ppc-instructions.xml Master instruction definitions (source of truth)
tools/ppc-table-gen.py Code generator
src/xenia/cpu/ppc/ppc_opcode.h Generated enum (PPCOpcode)
src/xenia/cpu/ppc/ppc_opcode_table_gen.cc Generated opcode info table
src/xenia/cpu/ppc/ppc_opcode_lookup_gen.cc Generated instruction decoder
src/xenia/cpu/ppc/ppc_opcode_disasm_gen.cc Generated disassembler
src/xenia/cpu/ppc/ppc_emit_alu.cc Integer/ALU emission (~68 handlers)
src/xenia/cpu/ppc/ppc_emit_control.cc Branch/control emission (~28 handlers)
src/xenia/cpu/ppc/ppc_emit_memory.cc Load/store emission (~80 handlers)
src/xenia/cpu/ppc/ppc_emit_fpu.cc Floating-point emission (~40 handlers)
src/xenia/cpu/ppc/ppc_emit_altivec.cc Vector/VMX emission (~306 handlers)

Backend Targets

Backend Directory
x86-64 src/xenia/cpu/backend/x64/
ARM64 src/xenia/cpu/backend/a64/

Instruction Encoding Formats

27 formats: A, B, D, DCBZ, DS, I, M, MD, MDS, SC, VA, VC, VX, VX128, VX128_1, VX128_2, VX128_3, VX128_4, VX128_5, VX128_P, VX128_R, X, XFL, XFX, XL, XO, XS


Instruction Catalog

Summary

Category Count
Integer / ALU 70
Branch / System 9
Condition Register / SPR 26
Floating-Point 33
Memory (Load/Store/Cache) 112
Vector / VMX (AltiVec) 205
Total 455

Integer / ALU (70 instructions)

# Mnemonic Description Form Opcode
1 addx Add XO 7c000214
2 addcx Add Carrying XO 7c000014
3 addex Add Extended XO 7c000114
4 addi Add Immediate D 38000000
5 addic Add Immediate Carrying D 30000000
6 addic. Add Immediate Carrying and Record D 34000000
7 addis Add Immediate Shifted D 3c000000
8 addmex Add to Minus One Extended XO 7c0001d4
9 addzex Add to Zero Extended XO 7c000194
10 andx AND X 7c000038
11 andcx AND with Complement X 7c000078
12 andi. AND Immediate D 70000000
13 andis. AND Immediate Shifted D 74000000
14 cmp Compare X 7c000000
15 cmpi Compare Immediate D 2c000000
16 cmpl Compare Logical X 7c000040
17 cmpli Compare Logical Immediate D 28000000
18 cntlzdx Count Leading Zeros Doubleword X 7c000074
19 cntlzwx Count Leading Zeros Word X 7c000034
20 divdx Divide Doubleword XO 7c0003d2
21 divdux Divide Doubleword Unsigned XO 7c000392
22 divwx Divide Word XO 7c0003d6
23 divwux Divide Word Unsigned XO 7c000396
24 eieio Enforce In-Order Execution of I/O X 7c0006ac
25 eqvx Equivalent X 7c000238
26 extsbx Extend Sign Byte X 7c000774
27 extshx Extend Sign Half Word X 7c000734
28 extswx Extend Sign Word X 7c0007B4
29 isync Instruction Synchronize XL 4c00012c
30 mulhdx Multiply High Doubleword XO 7c000092
31 mulhdux Multiply High Doubleword Unsigned XO 7c000012
32 mulhwx Multiply High Word XO 7c000096
33 mulhwux Multiply High Word Unsigned XO 7c000016
34 mulldx Multiply Low Doubleword XO 7c0001d2
35 mulli Multiply Low Immediate D 1c000000
36 mullwx Multiply Low Word XO 7c0001d6
37 nandx NAND X 7c0003b8
38 negx Negate XO 7c0000d0
39 norx NOR X 7c0000f8
40 orx OR X 7c000378
41 orcx OR with Complement X 7c000338
42 ori OR Immediate D 60000000
43 oris OR Immediate Shifted D 64000000
44 rldclx Rotate Left Doubleword then Clear Left MDS 78000010
45 rldcrx Rotate Left Doubleword then Clear Right MDS 78000012
46 rldicx Rotate Left Doubleword Immediate then Clear MD 78000008
47 rldiclx Rotate Left Doubleword Immediate then Clear Left MD 78000000
48 rldicrx Rotate Left Doubleword Immediate then Clear Right MD 78000004
49 rldimix Rotate Left Doubleword Immediate then Mask Insert MD 7800000C
50 rlwimix Rotate Left Word Immediate then Mask Insert M 50000000
51 rlwinmx Rotate Left Word Immediate then AND with Mask M 54000000
52 rlwnmx Rotate Left Word then AND with Mask M 5c000000
53 sldx Shift Left Doubleword X 7c000036
54 slwx Shift Left Word X 7c000030
55 sradx Shift Right Algebraic Doubleword X 7c000634
56 sradix Shift Right Algebraic Doubleword Immediate XS 7c000674
57 srawx Shift Right Algebraic Word X 7c000630
58 srawix Shift Right Algebraic Word Immediate X 7c000670
59 srdx Shift Right Doubleword X 7c000436
60 srwx Shift Right Word X 7c000430
61 subfx Subtract From XO 7c000050
62 subfcx Subtract From Carrying XO 7c000010
63 subfex Subtract From Extended XO 7c000110
64 subficx Subtract From Immediate Carrying D 20000000
65 subfmex Subtract From Minus One Extended XO 7c0001d0
66 subfzex Subtract From Zero Extended XO 7c000190
67 sync Synchronize X 7c0004ac
68 xorx XOR X 7c000278
69 xori XOR Immediate D 68000000
70 xoris XOR Immediate Shifted D 6c000000

Branch / System (9 instructions)

# Mnemonic Description Form Opcode
1 bx Branch I 48000000
2 bcx Branch Conditional B 40000000
3 bcctrx Branch Conditional to Count Register XL 4c000420
4 bclrx Branch Conditional to Link Register XL 4c000020
5 sc System Call SC 44000002
6 td Trap Doubleword X 7c000088
7 tdi Trap Doubleword Immediate D 08000000
8 tw Trap Word X 7c000008
9 twi Trap Word Immediate D 0c000000

Condition Register / SPR (26 instructions)

# Mnemonic Description Form Opcode
1 crand Condition Register AND XL 4c000202
2 crandc Condition Register AND with Complement XL 4c000102
3 creqv Condition Register Equivalent XL 4c000242
4 crnand Condition Register NAND XL 4c0001c2
5 crnor Condition Register NOR XL 4c000042
6 cror Condition Register OR XL 4c000382
7 crorc Condition Register OR with Complement XL 4c000342
8 crxor Condition Register XOR XL 4c000182
9 mcrf Move Condition Register Field XL 4c000000
10 mcrfs Move to Condition Register from FPSCR X fc000080
11 mcrxr Move to Condition Register from XER X 7c000400
12 mfcr Move from Condition Register X 7c000026
13 mffsx Move from FPSCR X fc00048e
14 mfmsr Move from Machine State Register X 7c0000a6
15 mfspr Move from Special-Purpose Register XFX 7c0002a6
16 mftb Move from Time Base XFX 7c0002e6
17 mtcrf Move to Condition Register Fields XFX 7c000120
18 mtfsb0x Move to FPSCR Bit 0 X fc00008c
19 mtfsb1x Move to FPSCR Bit 1 X fc00004c
20 mtfsfx Move to FPSCR Fields XFL fc00058e
21 mtfsfix Move to FPSCR Field Immediate X fc00010c
22 mtmsr Move to Machine State Register X 7c000124
23 mtmsrd Move to Machine State Register Doubleword X 7c000164
24 mtspr Move to Special-Purpose Register XFX 7c0003a6
25 mfvscr Move from VSCR VX 10000604
26 mtvscr Move to VSCR VX 10000644

Floating-Point (33 instructions)

# Mnemonic Description Form Opcode
1 fabsx Floating Absolute Value X fc000210
2 faddx Floating Add A fc00002a
3 faddsx Floating Add Single A ec00002a
4 fcfidx Floating Convert From Integer Doubleword X FC00069C
5 fcmpo Floating Compare Ordered X fc000040
6 fcmpu Floating Compare Unordered X fc000000
7 fctidx Floating Convert to Integer Doubleword X fc00065c
8 fctidzx Floating Convert to Integer Doubleword with Round Toward Zero X fc00065e
9 fctiwx Floating Convert to Integer Word X fc00001c
10 fctiwzx Floating Convert to Integer Word with Round Toward Zero X fc00001e
11 fdivx Floating Divide A fc000024
12 fdivsx Floating Divide Single A ec000024
13 fmaddx Floating Multiply-Add A fc00003a
14 fmaddsx Floating Multiply-Add Single A ec00003a
15 fmrx Floating Move Register X fc000090
16 fmsubx Floating Multiply-Subtract A fc000038
17 fmsubsx Floating Multiply-Subtract Single A ec000038
18 fmulx Floating Multiply A fc000032
19 fmulsx Floating Multiply Single A ec000032
20 fnabsx Floating Negative Absolute Value X fc000110
21 fnegx Floating Negate X fc000050
22 fnmaddx Floating Negative Multiply-Add A fc00003e
23 fnmaddsx Floating Negative Multiply-Add Single A ec00003e
24 fnmsubx Floating Negative Multiply-Subtract A fc00003c
25 fnmsubsx Floating Negative Multiply-Subtract Single A ec00003c
26 fresx Floating Reciprocal Estimate Single A ec000030
27 frspx Floating Round to Single X fc000018
28 frsqrtex Floating Reciprocal Square Root Estimate A fc000034
29 fselx Floating Select A fc00002e
30 fsqrtx Floating Square Root A fc00002c
31 fsqrtsx Floating Square Root Single A ec00002c
32 fsubx Floating Subtract A fc000028
33 fsubsx Floating Subtract Single A ec000028

Memory (Load/Store/Cache) (112 instructions)

# Mnemonic Description Form Opcode
1 dcbf Data Cache Block Flush X 7c0000ac
2 dcbi Data Cache Block Invalidate X 7c0003ac
3 dcbst Data Cache Block Store X 7c00006c
4 dcbt Data Cache Block Touch X 7c00022c
5 dcbtst Data Cache Block Touch for Store X 7c0001ec
6 dcbz Data Cache Block Clear to Zero DCBZ 7c0007ec
7 dcbz128 Data Cache Block Clear to Zero 128 DCBZ 7c2007ec
8 icbi Instruction Cache Block Invalidate X 7c0007ac
9 lbz Load Byte and Zero D 88000000
10 lbzu Load Byte and Zero with Update D 8c000000
11 lbzux Load Byte and Zero with Update Indexed X 7c0000ee
12 lbzx Load Byte and Zero Indexed X 7c0000ae
13 ld Load Doubleword DS E8000000
14 ldarx Load Doubleword and Reserve Indexed X 7C0000A8
15 ldbrx Load Doubleword Byte-Reverse Indexed X 7C000428
16 ldu Load Doubleword with Update DS E8000001
17 ldux Load Doubleword with Update Indexed X 7c00006a
18 ldx Load Doubleword Indexed X 7c00002a
19 lfd Load Floating-Point Double D c8000000
20 lfdu Load Floating-Point Double with Update D cc000000
21 lfdux Load Floating-Point Double with Update Indexed X 7c0004ee
22 lfdx Load Floating-Point Double Indexed X 7c0004ae
23 lfs Load Floating-Point Single D c0000000
24 lfsu Load Floating-Point Single with Update D c4000000
25 lfsux Load Floating-Point Single with Update Indexed X 7c00046e
26 lfsx Load Floating-Point Single Indexed X 7c00042e
27 lha Load Half Word Algebraic D a8000000
28 lhau Load Half Word Algebraic with Update D ac000000
29 lhaux Load Half Word Algebraic with Update Indexed X 7c0002ee
30 lhax Load Half Word Algebraic Indexed X 7c0002ae
31 lhbrx Load Half Word Byte-Reverse Indexed X 7c00062c
32 lhz Load Half Word and Zero D a0000000
33 lhzu Load Half Word and Zero with Update D a4000000
34 lhzux Load Half Word and Zero with Update Indexed X 7c00026e
35 lhzx Load Half Word and Zero Indexed X 7c00022e
36 lmw Load Multiple Word D b8000000
37 lswi Load String Word Immediate X 7c0004aa
38 lswx Load String Word Indexed X 7c00042a
39 lwa Load Word Algebraic DS e8000002
40 lwarx Load Word and Reserve Indexed X 7c000028
41 lwaux Load Word Algebraic with Update Indexed X 7c0002ea
42 lwax Load Word Algebraic Indexed X 7c0002aa
43 lwbrx Load Word Byte-Reverse Indexed X 7c00042c
44 lwz Load Word and Zero D 80000000
45 lwzu Load Word and Zero with Update D 84000000
46 lwzux Load Word and Zero with Update Indexed X 7c00006e
47 lwzx Load Word and Zero Indexed X 7c00002e
48 stb Store Byte D 98000000
49 stbu Store Byte with Update D 9c000000
50 stbux Store Byte with Update Indexed X 7c0001ee
51 stbx Store Byte Indexed X 7c0001ae
52 std Store Doubleword DS f8000000
53 stdbrx Store Doubleword Byte-Reverse Indexed X 7c000528
54 stdcx Store Doubleword Conditional Indexed X 7c0001ad
55 stdu Store Doubleword with Update DS f8000001
56 stdux Store Doubleword with Update Indexed X 7c00016a
57 stdx Store Doubleword Indexed X 7c00012a
58 stfd Store Floating-Point Double D d8000000
59 stfdu Store Floating-Point Double with Update D dc000000
60 stfdux Store Floating-Point Double with Update Indexed X 7c0005ee
61 stfdx Store Floating-Point Double Indexed X 7c0005ae
62 stfiwx Store Floating-Point as Integer Word Indexed X 7c0007ae
63 stfs Store Floating-Point Single D d0000000
64 stfsu Store Floating-Point Single with Update D d4000000
65 stfsux Store Floating-Point Single with Update Indexed X 7c00056e
66 stfsx Store Floating-Point Single Indexed X 7c00052e
67 sth Store Half Word D b0000000
68 sthbrx Store Half Word Byte-Reverse Indexed X 7c00072c
69 sthu Store Half Word with Update D b4000000
70 sthux Store Half Word with Update Indexed X 7c00036e
71 sthx Store Half Word Indexed X 7c00032e
72 stmw Store Multiple Word D bc000000
73 stswi Store String Word Immediate X 7c0005aa
74 stswx Store String Word Indexed X 7c00052a
75 stw Store Word D 90000000
76 stwbrx Store Word Byte-Reverse Indexed X 7c00052c
77 stwcx Store Word Conditional Indexed X 7c00012d
78 stwu Store Word with Update D 94000000
79 stwux Store Word with Update Indexed X 7c00016e
80 stwx Store Word Indexed X 7c00012e
81 lvebx Load Vector Element Byte Indexed X 7c00000e
82 lvehx Load Vector Element Half Word Indexed X 7c00004e
83 lvewx Load Vector Element Word Indexed X 7c00008e
84 lvewx128 Load Vector Element Word Indexed 128 VX128_1 10000083
85 lvx Load Vector Indexed X 7c0000ce
86 lvx128 Load Vector Indexed 128 VX128_1 100000C3
87 lvxl Load Vector Indexed LRU X 7c0002ce
88 lvxl128 Load Vector Indexed LRU 128 VX128_1 100002C3
89 lvlx Load Vector Left Indexed X 7C00040E
90 lvlx128 Load Vector Left Indexed 128 VX128_1 10000403
91 lvlxl Load Vector Left Indexed LRU X 7C00060E
92 lvlxl128 Load Vector Left Indexed LRU 128 VX128_1 10000603
93 lvrx Load Vector Right Indexed X 7C00044E
94 lvrx128 Load Vector Right Indexed 128 VX128_1 10000443
95 lvrxl Load Vector Right Indexed LRU X 7C00064E
96 lvrxl128 Load Vector Right Indexed LRU 128 VX128_1 10000643
97 stvebx Store Vector Element Byte Indexed X 7c00010e
98 stvehx Store Vector Element Half Word Indexed X 7c00014e
99 stvewx Store Vector Element Word Indexed X 7c00018e
100 stvewx128 Store Vector Element Word Indexed 128 VX128_1 10000183
101 stvx Store Vector Indexed X 7c0001ce
102 stvx128 Store Vector Indexed 128 VX128_1 100001c3
103 stvxl Store Vector Indexed LRU X 7c0003ce
104 stvxl128 Store Vector Indexed LRU 128 VX128_1 100003c3
105 stvlx Store Vector Left Indexed X 7c00050e
106 stvlx128 Store Vector Left Indexed 128 VX128_1 10000503
107 stvlxl Store Vector Left Indexed LRU X 7c00070e
108 stvlxl128 Store Vector Left Indexed LRU 128 VX128_1 10000703
109 stvrx Store Vector Right Indexed X 7c00054e
110 stvrx128 Store Vector Right Indexed 128 VX128_1 10000543
111 stvrxl Store Vector Right Indexed LRU X 7c00074e
112 stvrxl128 Store Vector Right Indexed LRU 128 VX128_1 10000743

Vector / VMX (AltiVec) (205 instructions)

# Mnemonic Description Form Opcode
1 lvsl Load Vector for Shift Left Indexed X 7c00000c
2 lvsl128 Load Vector for Shift Left Indexed 128 VX128_1 10000003
3 lvsr Load Vector for Shift Right Indexed X 7c00004c
4 lvsr128 Load Vector for Shift Right Indexed 128 VX128_1 10000043
5 vaddcuw Vector Add Carryout Unsigned Word VX 10000180
6 vaddfp Vector Add Floating Point VX 1000000A
7 vaddfp128 Vector128 Add Floating Point VX128 14000010
8 vaddsbs Vector Add Signed Byte Saturate VX 10000300
9 vaddshs Vector Add Signed Half Word Saturate VX 10000340
10 vaddsws Vector Add Signed Word Saturate VX 10000380
11 vaddubm Vector Add Unsigned Byte Modulo VX 10000000
12 vaddubs Vector Add Unsigned Byte Saturate VX 10000200
13 vadduhm Vector Add Unsigned Half Word Modulo VX 10000040
14 vadduhs Vector Add Unsigned Half Word Saturate VX 10000240
15 vadduwm Vector Add Unsigned Word Modulo VX 10000080
16 vadduws Vector Add Unsigned Word Saturate VX 10000280
17 vand Vector Logical AND VX 10000404
18 vand128 Vector128 Logical AND VX128 14000210
19 vandc Vector Logical AND with Complement VX 10000444
20 vandc128 Vector128 Logical AND with Complement VX128 14000250
21 vavgsb Vector Average Signed Byte VX 10000502
22 vavgsh Vector Average Signed Half Word VX 10000542
23 vavgsw Vector Average Signed Word VX 10000582
24 vavgub Vector Average Unsigned Byte VX 10000402
25 vavguh Vector Average Unsigned Half Word VX 10000442
26 vavguw Vector Average Unsigned Word VX 10000482
27 vcfsx Vector Convert from Signed Fixed-Point Word VX 1000034A
28 vcfux Vector Convert from Unsigned Fixed-Point Word VX 1000030A
29 vcmpbfp Vector Compare Bounds Floating Point VC 100003C6
30 vcmpbfp128 Vector128 Compare Bounds Floating Point VX128_R 18000180
31 vcmpeqfp Vector Compare Equal-to Floating Point VC 100000C6
32 vcmpeqfp128 Vector128 Compare Equal-to Floating Point VX128_R 18000000
33 vcmpequb Vector Compare Equal-to Unsigned Byte VC 10000006
34 vcmpequh Vector Compare Equal-to Unsigned Half Word VC 10000046
35 vcmpequw Vector Compare Equal-to Unsigned Word VC 10000086
36 vcmpequw128 Vector128 Compare Equal-to Unsigned Word VX128_R 18000200
37 vcmpgefp Vector Compare Greater-Than-or-Equal-to Floating Point VC 100001C6
38 vcmpgefp128 Vector128 Compare Greater-Than-or-Equal-to Floating Point VX128_R 18000080
39 vcmpgtfp Vector Compare Greater-Than Floating Point VC 100002C6
40 vcmpgtfp128 Vector128 Compare Greater-Than Floating-Point VX128_R 18000100
41 vcmpgtsb Vector Compare Greater-Than Signed Byte VC 10000306
42 vcmpgtsh Vector Compare Greater-Than Signed Half Word VC 10000346
43 vcmpgtsw Vector Compare Greater-Than Signed Word VC 10000386
44 vcmpgtub Vector Compare Greater-Than Unsigned Byte VC 10000206
45 vcmpgtuh Vector Compare Greater-Than Unsigned Half Word VC 10000246
46 vcmpgtuw Vector Compare Greater-Than Unsigned Word VC 10000286
47 vctsxs Vector Convert to Signed Fixed-Point Word Saturate VX 100003CA
48 vctuxs Vector Convert to Unsigned Fixed-Point Word Saturate VX 1000038A
49 vexptefp Vector 2 Raised to the Exponent Estimate Floating Point VX 1000018A
50 vexptefp128 Vector128 Log2 Estimate Floating Point VX128_3 180006B0
51 vlogefp Vector Log2 Estimate Floating Point VX 100001CA
52 vlogefp128 Vector128 Log2 Estimate Floating Point VX128_3 180006F0
53 vmaddfp Vector Multiply-Add Floating Point VA 1000002E
54 vmaddfp128 Vector128 Multiply Add Floating Point VX128 140000D0
55 vmaxfp Vector Maximum Floating Point VX 1000040A
56 vmaxfp128 Vector128 Maximum Floating Point VX128 18000280
57 vmaxsb Vector Maximum Signed Byte VX 10000102
58 vmaxsh Vector Maximum Signed Half Word VX 10000142
59 vmaxsw Vector Maximum Signed Word VX 10000182
60 vmaxub Vector Maximum Unsigned Byte VX 10000002
61 vmaxuh Vector Maximum Unsigned Half Word VX 10000042
62 vmaxuw Vector Maximum Unsigned Word VX 10000082
63 vmhaddshs Vector Multiply-High and Add Signed Signed Half Word Saturate VA 10000020
64 vmhraddshs Vector Multiply-High Round and Add Signed Signed Half Word Saturate VA 10000021
65 vminfp Vector Minimum Floating Point VX 1000044A
66 vminfp128 Vector128 Minimum Floating Point VX128 180002C0
67 vminsb Vector Minimum Signed Byte VX 10000302
68 vminsh Vector Minimum Signed Half Word VX 10000342
69 vminsw Vector Minimum Signed Word VX 10000382
70 vminub Vector Minimum Unsigned Byte VX 10000202
71 vminuh Vector Minimum Unsigned Half Word VX 10000242
72 vminuw Vector Minimum Unsigned Word VX 10000282
73 vmladduhm Vector Multiply-Low and Add Unsigned Half Word Modulo VA 10000022
74 vmrghb Vector Merge High Byte VX 1000000C
75 vmrghh Vector Merge High Half Word VX 1000004C
76 vmrghw Vector Merge High Word VX 1000008C
77 vmrghw128 Vector128 Merge High Word VX128 18000300
78 vmrglb Vector Merge Low Byte VX 1000010C
79 vmrglh Vector Merge Low Half Word VX 1000014C
80 vmrglw Vector Merge Low Word VX 1000018C
81 vmrglw128 Vector128 Merge Low Word VX128 18000340
82 vmsummbm Vector Multiply-Sum Mixed-Sign Byte Modulo VA 10000025
83 vmsumshm Vector Multiply-Sum Signed Half Word Modulo VA 10000028
84 vmsumshs Vector Multiply-Sum Signed Half Word Saturate VA 10000029
85 vmsumubm Vector Multiply-Sum Unsigned Byte Modulo VA 10000024
86 vmsumuhm Vector Multiply-Sum Unsigned Half Word Modulo VA 10000026
87 vmsumuhs Vector Multiply-Sum Unsigned Half Word Saturate VA 10000027
88 vmulesb Vector Multiply Even Signed Byte VX 10000308
89 vmulesh Vector Multiply Even Signed Half Word VX 10000348
90 vmuleub Vector Multiply Even Unsigned Byte VX 10000208
91 vmuleuh Vector Multiply Even Unsigned Half Word VX 10000248
92 vmulosb Vector Multiply Odd Signed Byte VX 10000108
93 vmulosh Vector Multiply Odd Signed Half Word VX 10000148
94 vmuloub Vector Multiply Odd Unsigned Byte VX 10000008
95 vmulouh Vector Multiply Odd Unsigned Half Word VX 10000048
96 vnmsubfp Vector Negative Multiply-Subtract Floating Point VA 1000002F
97 vnmsubfp128 Vector128 Negative Multiply-Subtract Floating Point VX128 14000150
98 vnor Vector Logical NOR VX 10000504
99 vnor128 Vector128 Logical NOR VX128 14000290
100 vor Vector Logical OR VX 10000484
101 vor128 Vector128 Logical OR VX128 140002D0
102 vperm Vector Permute VA 1000002B
103 vperm128 Vector128 Permute VX128_2 14000000
104 vpkpx Vector Pack Pixel VX 1000030E
105 vpkshss Vector Pack Signed Half Word Signed Saturate VX 1000018E
106 vpkshss128 Vector128 Pack Signed Half Word Signed Saturate VX128 14000200
107 vpkshus Vector Pack Signed Half Word Unsigned Saturate VX 1000010E
108 vpkshus128 Vector128 Pack Signed Half Word Unsigned Saturate VX128 14000240
109 vpkswss Vector Pack Signed Word Signed Saturate VX 100001CE
110 vpkswss128 Vector128 Pack Signed Word Signed Saturate VX128 14000280
111 vpkswus Vector Pack Signed Word Unsigned Saturate VX 1000014E
112 vpkswus128 Vector128 Pack Signed Word Unsigned Saturate VX128 140002C0
113 vpkuhum Vector Pack Unsigned Half Word Unsigned Modulo VX 1000000E
114 vpkuhum128 Vector128 Pack Unsigned Half Word Unsigned Modulo VX128 14000300
115 vpkuhus Vector Pack Unsigned Half Word Unsigned Saturate VX 1000008E
116 vpkuhus128 Vector128 Pack Unsigned Half Word Unsigned Saturate VX128 14000340
117 vpkuwum Vector Pack Unsigned Word Unsigned Modulo VX 1000004E
118 vpkuwum128 Vector128 Pack Unsigned Word Unsigned Modulo VX128 14000380
119 vpkuwus Vector Pack Unsigned Word Unsigned Saturate VX 100000CE
120 vpkuwus128 Vector128 Pack Unsigned Word Unsigned Saturate VX128 140003C0
121 vrefp Vector Reciprocal Estimate Floating Point VX 1000010A
122 vrefp128 Vector128 Reciprocal Estimate Floating Point VX128_3 18000630
123 vrfim Vector Round to Floating-Point Integer toward -Infinity VX 100002CA
124 vrfim128 Vector128 Round to Floating-Point Integer toward -Infinity VX128_3 18000330
125 vrfin Vector Round to Floating-Point Integer Nearest VX 1000020A
126 vrfin128 Vector128 Round to Floating-Point Integer Nearest VX128_3 18000370
127 vrfip Vector Round to Floating-Point Integer toward +Infinity VX 1000028A
128 vrfip128 Vector128 Round to Floating-Point Integer toward +Infinity VX128_3 180003B0
129 vrfiz Vector Round to Floating-Point Integer toward Zero VX 1000024A
130 vrfiz128 Vector128 Round to Floating-Point Integer toward Zero VX128_3 180003F0
131 vrlb Vector Rotate Left Integer Byte VX 10000004
132 vrlh Vector Rotate Left Integer Half Word VX 10000044
133 vrlw Vector Rotate Left Integer Word VX 10000084
134 vrlw128 Vector128 Rotate Left Word VX128 18000050
135 vrsqrtefp Vector Reciprocal Square Root Estimate Floating Point VX 1000014A
136 vrsqrtefp128 Vector128 Reciprocal Square Root Estimate Floating Point VX128_3 18000670
137 vsel Vector Conditional Select VA 1000002A
138 vsel128 Vector128 Conditional Select VX128 14000350
139 vsl Vector Shift Left VX 100001C4
140 vslb Vector Shift Left Integer Byte VX 10000104
141 vsldoi Vector Shift Left Double by Octet Immediate VA 1000002C
142 vsldoi128 Vector128 Shift Left Double by Octet Immediate VX128_5 10000010
143 vslh Vector Shift Left Integer Half Word VX 10000144
144 vslo Vector Shift Left by Octet VX 1000040C
145 vslo128 Vector128 Shift Left Octet VX128 14000390
146 vslw Vector Shift Left Integer Word VX 10000184
147 vslw128 Vector128 Shift Left Integer Word VX128 180000D0
148 vspltb Vector Splat Byte VX 1000020C
149 vsplth Vector Splat Half Word VX 1000024C
150 vspltisb Vector Splat Immediate Signed Byte VX 1000030C
151 vspltish Vector Splat Immediate Signed Half Word VX 1000034C
152 vspltisw Vector Splat Immediate Signed Word VX 1000038C
153 vspltisw128 Vector128 Splat Immediate Signed Word VX128_3 18000770
154 vspltw Vector Splat Word VX 1000028C
155 vspltw128 Vector128 Splat Word VX128_3 18000730
156 vsr Vector Shift Right VX 100002C4
157 vsrab Vector Shift Right Algebraic Byte VX 10000304
158 vsrah Vector Shift Right Algebraic Half Word VX 10000344
159 vsraw Vector Shift Right Algebraic Word VX 10000384
160 vsraw128 Vector128 Shift Right Arithmetic Word VX128 18000150
161 vsrb Vector Shift Right Byte VX 10000204
162 vsrh Vector Shift Right Half Word VX 10000244
163 vsro Vector Shift Right Octet VX 1000044C
164 vsro128 Vector128 Shift Right Octet VX128 140003D0
165 vsrw Vector Shift Right Word VX 10000284
166 vsrw128 Vector128 Shift Right Word VX128 180001D0
167 vsubcuw Vector Subtract Carryout Unsigned Word VX 10000580
168 vsubfp Vector Subtract Floating Point VX 1000004A
169 vsubfp128 Vector128 Subtract Floating Point VX128 14000050
170 vsubsbs Vector Subtract Signed Byte Saturate VX 10000700
171 vsubshs Vector Subtract Signed Half Word Saturate VX 10000740
172 vsubsws Vector Subtract Signed Word Saturate VX 10000780
173 vsububm Vector Subtract Unsigned Byte Modulo VX 10000400
174 vsububs Vector Subtract Unsigned Byte Saturate VX 10000600
175 vsubuhm Vector Subtract Unsigned Half Word Modulo VX 10000440
176 vsubuhs Vector Subtract Unsigned Half Word Saturate VX 10000640
177 vsubuwm Vector Subtract Unsigned Word Modulo VX 10000480
178 vsubuws Vector Subtract Unsigned Word Saturate VX 10000680
179 vsumsws Vector Sum Across Signed Word Saturate VX 10000788
180 vsum2sws Vector Sum Across Partial (1/2) Signed Word Saturate VX 10000688
181 vsum4sbs Vector Sum Across Partial (1/4) Signed Byte Saturate VX 10000708
182 vsum4shs Vector Sum Across Partial (1/4) Signed Half Word Saturate VX 10000648
183 vsum4ubs Vector Sum Across Partial (1/4) Unsigned Byte Saturate VX 10000608
184 vupkhpx Vector Unpack High Pixel VX 1000034E
185 vupkhsb Vector Unpack High Signed Byte VX 1000020E
186 vupkhsb128 Vector128 Unpack High Signed Byte VX128 18000380
187 vupkhsh Vector Unpack High Signed Half Word VX 1000024E
188 vupklpx Vector Unpack Low Pixel VX 100003CE
189 vupklsb Vector Unpack Low Signed Byte VX 1000028E
190 vupklsb128 Vector128 Unpack Low Signed Byte VX128 180003C0
191 vupklsh Vector Unpack Low Signed Half Word VX 100002CE
192 vxor Vector Logical XOR VX 100004C4
193 vxor128 Vector128 Logical XOR VX128 14000310
194 vmulfp128 Vector128 Multiply Floating-Point VX128 14000090
195 vmaddcfp128 Vector128 Multiply Add Floating Point VX128 14000110
196 vmsum3fp128 Vector128 Multiply Sum 3-way Floating Point VX128 14000190
197 vmsum4fp128 Vector128 Multiply Sum 4-way Floating-Point VX128 140001D0
198 vpermwi128 Vector128 Permutate Word Immediate VX128_P 18000210
199 vcfpsxws128 Vector128 Convert From Floating-Point to Signed Fixed-Point Word Saturate VX128_3 18000230
200 vcfpuxws128 Vector128 Convert From Floating-Point to Unsigned Fixed-Point Word Saturate VX128_3 18000270
201 vcsxwfp128 Vector128 Convert From Signed Fixed-Point Word to Floating-Point VX128_3 180002B0
202 vcuxwfp128 Vector128 Convert From Unsigned Fixed-Point Word to Floating-Point VX128_3 180002F0
203 vpkd3d128 Vector128 Pack D3Dtype, Rotate Left Immediate and Mask Insert VX128_4 18000610
204 vrlimi128 Vector128 Rotate Left Immediate and Mask Insert VX128_4 18000710
205 vupkd3d128 Vector128 Unpack D3Dtype VX128_3 180007F0

Generated from tools/ppc-instructions.xml — 455 instructions across 6 categories.