]>
Commit | Line | Data |
---|---|---|
2d21ac55 A |
1 | /* |
2 | * Copyright (c) 2007 Apple Inc. All rights reserved. | |
3 | * | |
4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ | |
5 | * | |
6 | * This file contains Original Code and/or Modifications of Original Code | |
7 | * as defined in and that are subject to the Apple Public Source License | |
8 | * Version 2.0 (the 'License'). You may not use this file except in | |
9 | * compliance with the License. The rights granted to you under the License | |
10 | * may not be used to create, or enable the creation or redistribution of, | |
11 | * unlawful or unlicensed copies of an Apple operating system, or to | |
12 | * circumvent, violate, or enable the circumvention or violation of, any | |
13 | * terms of an Apple operating system software license agreement. | |
14 | * | |
15 | * Please obtain a copy of the License at | |
16 | * http://www.opensource.apple.com/apsl/ and read it before using this file. | |
17 | * | |
18 | * The Original Code and all software distributed under the License are | |
19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | |
20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | |
21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | |
22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | |
23 | * Please see the License for the specific language governing rights and | |
24 | * limitations under the License. | |
25 | * | |
26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ | |
27 | */ | |
28 | ||
29 | struct dcdtab { | |
30 | ||
31 | uint8_t dcdFlgs; /* Flags needed to decode */ | |
32 | #define dcdStep 0x80 /* Step to next table entry on non-match */ | |
33 | #define dcdJump 0x40 /* Jump to new entry in table. Index is in dcdMatch. */ | |
34 | #define dcdMask 0x0F /* Index into mask table. 0 matches everything */ | |
35 | ||
36 | uint8_t dcdType; /* Instruction type */ | |
37 | #define diINV 0x00 | |
38 | #define diTRP 0x01 | |
39 | #define diSC 0x02 | |
40 | #define diRFI 0x03 | |
41 | #define diB 0x04 | |
42 | #define diBC 0x05 | |
43 | #define diBLR 0x06 | |
44 | #define diBCTR 0x07 | |
45 | #define diOR 0x08 | |
46 | #define diSPR 0x09 | |
47 | #define diCMN 0x0A | |
48 | #define diPRV 0x0B | |
49 | ||
50 | uint16_t dcdMatch; /* Extended op code to match */ | |
51 | }; | |
52 | ||
53 | typedef struct dcdtab dcdtab; | |
54 | ||
55 | static uint16_t masktab[] = {0x0000, 0x0003, 0x001C, 0x001E, 0x003E, /* Table of extended op masks */ | |
56 | 0x003F, 0x03FE, 0x03FF, 0x07FC, 0x07FE, 0x07FF}; | |
57 | ||
58 | static dcdtab insts[] = { | |
59 | { 0x40, 0, 64 }, // 0 Maj op = 0, jump to entry 64 | |
60 | { 0x00, diINV, 0x0000 }, // 1 Maj op = 1, invalid | |
61 | { 0x00, diTRP, 0x0000 }, // 2 Maj op = 2, tdi | |
62 | { 0x00, diTRP, 0x0000 }, // 3 Maj op = 3, twi | |
63 | { 0x40, 0, 65 }, // 4 Maj op = 4, jump to entry 65 | |
64 | { 0x00, diINV, 0x0000 }, // 5 Maj op = 5, invalid | |
65 | { 0x00, diINV, 0x0000 }, // 6 Maj op = 6, invalid | |
66 | { 0x00, diCMN, 0x0000 }, // 7 Maj op = 7, mulli | |
67 | { 0x00, diCMN, 0x0000 }, // 8 Maj op = 8, subfic | |
68 | { 0x00, diINV, 0x0000 }, // 9 Maj op = 9, invalid | |
69 | { 0x00, diCMN, 0x0000 }, // 10 Maj op = 10, cmpli | |
70 | { 0x00, diCMN, 0x0000 }, // 11 Maj op = 11, cmpi | |
71 | { 0x00, diCMN, 0x0000 }, // 12 Maj op = 12, addic | |
72 | { 0x00, diCMN, 0x0000 }, // 13 Maj op = 13, addic. | |
73 | { 0x00, diCMN, 0x0000 }, // 14 Maj op = 14, addi | |
74 | { 0x00, diCMN, 0x0000 }, // 15 Maj op = 15, addis | |
75 | { 0x00, diBC, 0x0000 }, // 16 Maj op = 16, bc | |
76 | { 0x00, diSC, 0x0000 }, // 17 Maj op = 17, sc | |
77 | { 0x00, diB, 0x0000 }, // 18 Maj op = 18, b | |
78 | { 0x40, 0, 209 }, // 19 Maj op = 19, jump to entry 209 | |
79 | { 0x00, diCMN, 0x0000 }, // 20 Maj op = 20, rlwimi | |
80 | { 0x00, diCMN, 0x0000 }, // 21 Maj op = 21, rlwinm | |
81 | { 0x00, diINV, 0x0000 }, // 22 Maj op = 22, invalid | |
82 | { 0x00, diCMN, 0x0000 }, // 23 Maj op = 23, rlwnm | |
83 | { 0x00, diOR, 0x0000 }, // 24 Maj op = 24, ori | |
84 | { 0x00, diCMN, 0x0000 }, // 25 Maj op = 25, oris | |
85 | { 0x00, diCMN, 0x0000 }, // 26 Maj op = 26, xori | |
86 | { 0x00, diCMN, 0x0000 }, // 27 Maj op = 27, xoris | |
87 | { 0x00, diCMN, 0x0000 }, // 28 Maj op = 28, andi. | |
88 | { 0x00, diCMN, 0x0000 }, // 29 Maj op = 29, andis. | |
89 | { 0x40, 0, 224 }, // 30 Maj op = 30, jump to entry 224 | |
90 | { 0x40, 0, 230 }, // 31 Maj op = 31, jump to entry 230 | |
91 | { 0x00, diCMN, 0x0000 }, // 32 Maj op = 32, lwz | |
92 | { 0x00, diCMN, 0x0000 }, // 33 Maj op = 33, lwzu | |
93 | { 0x00, diCMN, 0x0000 }, // 34 Maj op = 34, lbz | |
94 | { 0x00, diCMN, 0x0000 }, // 35 Maj op = 35, lbzu | |
95 | { 0x00, diCMN, 0x0000 }, // 36 Maj op = 36, stw | |
96 | { 0x00, diCMN, 0x0000 }, // 37 Maj op = 37, stwu | |
97 | { 0x00, diCMN, 0x0000 }, // 38 Maj op = 38, stb | |
98 | { 0x00, diCMN, 0x0000 }, // 39 Maj op = 39, stbu | |
99 | { 0x00, diCMN, 0x0000 }, // 40 Maj op = 40, lhz | |
100 | { 0x00, diCMN, 0x0000 }, // 41 Maj op = 41, lhzu | |
101 | { 0x00, diCMN, 0x0000 }, // 42 Maj op = 42, lha | |
102 | { 0x00, diCMN, 0x0000 }, // 43 Maj op = 43, lhau | |
103 | { 0x00, diCMN, 0x0000 }, // 44 Maj op = 44, sth | |
104 | { 0x00, diCMN, 0x0000 }, // 45 Maj op = 45, sthu | |
105 | { 0x00, diCMN, 0x0000 }, // 46 Maj op = 46, lmw | |
106 | { 0x00, diCMN, 0x0000 }, // 47 Maj op = 47, stmw | |
107 | { 0x00, diCMN, 0x0000 }, // 48 Maj op = 48, lfs | |
108 | { 0x00, diCMN, 0x0000 }, // 49 Maj op = 49, lfsu | |
109 | { 0x00, diCMN, 0x0000 }, // 50 Maj op = 50, lfd | |
110 | { 0x00, diCMN, 0x0000 }, // 51 Maj op = 51, lfdu | |
111 | { 0x00, diCMN, 0x0000 }, // 52 Maj op = 52, stfs | |
112 | { 0x00, diCMN, 0x0000 }, // 53 Maj op = 53, stfsu | |
113 | { 0x00, diCMN, 0x0000 }, // 54 Maj op = 54, stfd | |
114 | { 0x00, diCMN, 0x0000 }, // 55 Maj op = 55, stfdu | |
115 | { 0x00, diINV, 0x0000 }, // 56 Maj op = 56, invalid | |
116 | { 0x00, diINV, 0x0000 }, // 57 Maj op = 57, invalid | |
117 | { 0x40, 0, 365 }, // 58 Maj op = 58, jump to entry 365 | |
118 | { 0x40, 0, 368 }, // 59 Maj op = 59, jump to entry 368 | |
119 | { 0x00, diINV, 0x0000 }, // 60 Maj op = 60, invalid | |
120 | { 0x00, diINV, 0x0000 }, // 61 Maj op = 61, invalid | |
121 | { 0x40, 0, 378 }, // 62 Maj op = 62, jump to entry 378 | |
122 | { 0x40, 0, 380 }, // 63 Maj op = 63, jump to entry 380 | |
123 | { 0x09, diCMN, 0x0200 }, // 64 Maj op = 0, mask = 07FE, xop = 0x0200 ( 256) - attn | |
124 | { 0x85, diCMN, 0x0020 }, // 65 Maj op = 4, mask = 003F, xop = 0x0020 ( 32) - vmhaddshs | |
125 | { 0x85, diCMN, 0x0021 }, // 66 Maj op = 4, mask = 003F, xop = 0x0021 ( 33) - vmhraddshs | |
126 | { 0x85, diCMN, 0x0022 }, // 67 Maj op = 4, mask = 003F, xop = 0x0022 ( 34) - vmladduhm | |
127 | { 0x85, diCMN, 0x0024 }, // 68 Maj op = 4, mask = 003F, xop = 0x0024 ( 36) - vmsumubm | |
128 | { 0x85, diCMN, 0x0025 }, // 69 Maj op = 4, mask = 003F, xop = 0x0025 ( 37) - vmsummbm | |
129 | { 0x85, diCMN, 0x0026 }, // 70 Maj op = 4, mask = 003F, xop = 0x0026 ( 38) - vmsumuhm | |
130 | { 0x85, diCMN, 0x0027 }, // 71 Maj op = 4, mask = 003F, xop = 0x0027 ( 39) - vmsumuhs | |
131 | { 0x85, diCMN, 0x0028 }, // 72 Maj op = 4, mask = 003F, xop = 0x0028 ( 40) - vmsumshm | |
132 | { 0x85, diCMN, 0x0029 }, // 73 Maj op = 4, mask = 003F, xop = 0x0029 ( 41) - vmsumshs | |
133 | { 0x85, diCMN, 0x002A }, // 74 Maj op = 4, mask = 003F, xop = 0x002A ( 42) - vsel | |
134 | { 0x85, diCMN, 0x002B }, // 75 Maj op = 4, mask = 003F, xop = 0x002B ( 43) - vperm | |
135 | { 0x85, diCMN, 0x002C }, // 76 Maj op = 4, mask = 003F, xop = 0x002C ( 44) - vsldoi | |
136 | { 0x85, diCMN, 0x002E }, // 77 Maj op = 4, mask = 003F, xop = 0x002E ( 46) - vmaddfp | |
137 | { 0x85, diCMN, 0x002F }, // 78 Maj op = 4, mask = 003F, xop = 0x002F ( 47) - vnmsubfp | |
138 | { 0x87, diCMN, 0x0006 }, // 79 Maj op = 4, mask = 03FF, xop = 0x0006 ( 6) - vcmpequb | |
139 | { 0x87, diCMN, 0x0046 }, // 80 Maj op = 4, mask = 03FF, xop = 0x0046 ( 70) - vcmpequh | |
140 | { 0x87, diCMN, 0x0086 }, // 81 Maj op = 4, mask = 03FF, xop = 0x0086 ( 134) - vcmpequw | |
141 | { 0x87, diCMN, 0x00C6 }, // 82 Maj op = 4, mask = 03FF, xop = 0x00C6 ( 198) - vcmpeqfp | |
142 | { 0x87, diCMN, 0x01C6 }, // 83 Maj op = 4, mask = 03FF, xop = 0x01C6 ( 454) - vcmpgefp | |
143 | { 0x87, diCMN, 0x0206 }, // 84 Maj op = 4, mask = 03FF, xop = 0x0206 ( 518) - vcmpgtub | |
144 | { 0x87, diCMN, 0x0246 }, // 85 Maj op = 4, mask = 03FF, xop = 0x0246 ( 582) - vcmpgtuh | |
145 | { 0x87, diCMN, 0x0286 }, // 86 Maj op = 4, mask = 03FF, xop = 0x0286 ( 646) - vcmpgtuw | |
146 | { 0x87, diCMN, 0x02C6 }, // 87 Maj op = 4, mask = 03FF, xop = 0x02C6 ( 710) - vcmpgtfp | |
147 | { 0x87, diCMN, 0x0306 }, // 88 Maj op = 4, mask = 03FF, xop = 0x0306 ( 774) - vcmpgtsb | |
148 | { 0x87, diCMN, 0x0346 }, // 89 Maj op = 4, mask = 03FF, xop = 0x0346 ( 838) - vcmpgtsh | |
149 | { 0x87, diCMN, 0x0386 }, // 90 Maj op = 4, mask = 03FF, xop = 0x0386 ( 902) - vcmpgtsw | |
150 | { 0x87, diCMN, 0x03C6 }, // 91 Maj op = 4, mask = 03FF, xop = 0x03C6 ( 966) - vcmpbfp | |
151 | { 0x8A, diCMN, 0x0000 }, // 92 Maj op = 4, mask = 07FF, xop = 0x0000 ( 0) - vaddubm | |
152 | { 0x8A, diCMN, 0x0002 }, // 93 Maj op = 4, mask = 07FF, xop = 0x0002 ( 2) - vmaxub | |
153 | { 0x8A, diCMN, 0x0004 }, // 94 Maj op = 4, mask = 07FF, xop = 0x0004 ( 4) - vrlb | |
154 | { 0x8A, diCMN, 0x0008 }, // 95 Maj op = 4, mask = 07FF, xop = 0x0008 ( 8) - vmuloub | |
155 | { 0x8A, diCMN, 0x000A }, // 96 Maj op = 4, mask = 07FF, xop = 0x000A ( 10) - vaddfp | |
156 | { 0x8A, diCMN, 0x000C }, // 97 Maj op = 4, mask = 07FF, xop = 0x000C ( 12) - vmrghb | |
157 | { 0x8A, diCMN, 0x000E }, // 98 Maj op = 4, mask = 07FF, xop = 0x000E ( 14) - vpkuhum | |
158 | { 0x8A, diCMN, 0x0040 }, // 99 Maj op = 4, mask = 07FF, xop = 0x0040 ( 64) - vadduhm | |
159 | { 0x8A, diCMN, 0x0042 }, // 100 Maj op = 4, mask = 07FF, xop = 0x0042 ( 66) - vmaxuh | |
160 | { 0x8A, diCMN, 0x0044 }, // 101 Maj op = 4, mask = 07FF, xop = 0x0044 ( 68) - vrlh | |
161 | { 0x8A, diCMN, 0x0048 }, // 102 Maj op = 4, mask = 07FF, xop = 0x0048 ( 72) - vmulouh | |
162 | { 0x8A, diCMN, 0x004A }, // 103 Maj op = 4, mask = 07FF, xop = 0x004A ( 74) - vsubfp | |
163 | { 0x8A, diCMN, 0x004C }, // 104 Maj op = 4, mask = 07FF, xop = 0x004C ( 76) - vmrghh | |
164 | { 0x8A, diCMN, 0x004E }, // 105 Maj op = 4, mask = 07FF, xop = 0x004E ( 78) - vpkuwum | |
165 | { 0x8A, diCMN, 0x0080 }, // 106 Maj op = 4, mask = 07FF, xop = 0x0080 ( 128) - vadduwm | |
166 | { 0x8A, diCMN, 0x0082 }, // 107 Maj op = 4, mask = 07FF, xop = 0x0082 ( 130) - vmaxuw | |
167 | { 0x8A, diCMN, 0x0084 }, // 108 Maj op = 4, mask = 07FF, xop = 0x0084 ( 132) - vrlw | |
168 | { 0x8A, diCMN, 0x008C }, // 109 Maj op = 4, mask = 07FF, xop = 0x008C ( 140) - vmrghw | |
169 | { 0x8A, diCMN, 0x008E }, // 110 Maj op = 4, mask = 07FF, xop = 0x008E ( 142) - vpkuhus | |
170 | { 0x8A, diCMN, 0x00CE }, // 111 Maj op = 4, mask = 07FF, xop = 0x00CE ( 206) - vpkuwus | |
171 | { 0x8A, diCMN, 0x0102 }, // 112 Maj op = 4, mask = 07FF, xop = 0x0102 ( 258) - vmaxsb | |
172 | { 0x8A, diCMN, 0x0104 }, // 113 Maj op = 4, mask = 07FF, xop = 0x0104 ( 260) - vslb | |
173 | { 0x8A, diCMN, 0x0108 }, // 114 Maj op = 4, mask = 07FF, xop = 0x0108 ( 264) - vmulosb | |
174 | { 0x8A, diCMN, 0x010A }, // 115 Maj op = 4, mask = 07FF, xop = 0x010A ( 266) - vrefp | |
175 | { 0x8A, diCMN, 0x010C }, // 116 Maj op = 4, mask = 07FF, xop = 0x010C ( 268) - vmrglb | |
176 | { 0x8A, diCMN, 0x010E }, // 117 Maj op = 4, mask = 07FF, xop = 0x010E ( 270) - vpkshus | |
177 | { 0x8A, diCMN, 0x0142 }, // 118 Maj op = 4, mask = 07FF, xop = 0x0142 ( 322) - vmaxsh | |
178 | { 0x8A, diCMN, 0x0144 }, // 119 Maj op = 4, mask = 07FF, xop = 0x0144 ( 324) - vslh | |
179 | { 0x8A, diCMN, 0x0148 }, // 120 Maj op = 4, mask = 07FF, xop = 0x0148 ( 328) - vmulosh | |
180 | { 0x8A, diCMN, 0x014A }, // 121 Maj op = 4, mask = 07FF, xop = 0x014A ( 330) - vrsqrtefp | |
181 | { 0x8A, diCMN, 0x014C }, // 122 Maj op = 4, mask = 07FF, xop = 0x014C ( 332) - vmrglh | |
182 | { 0x8A, diCMN, 0x014E }, // 123 Maj op = 4, mask = 07FF, xop = 0x014E ( 334) - vpkswus | |
183 | { 0x8A, diCMN, 0x0180 }, // 124 Maj op = 4, mask = 07FF, xop = 0x0180 ( 384) - vaddcuw | |
184 | { 0x8A, diCMN, 0x0182 }, // 125 Maj op = 4, mask = 07FF, xop = 0x0182 ( 386) - vmaxsw | |
185 | { 0x8A, diCMN, 0x0184 }, // 126 Maj op = 4, mask = 07FF, xop = 0x0184 ( 388) - vslw | |
186 | { 0x8A, diCMN, 0x018A }, // 127 Maj op = 4, mask = 07FF, xop = 0x018A ( 394) - vexptefp | |
187 | { 0x8A, diCMN, 0x018C }, // 128 Maj op = 4, mask = 07FF, xop = 0x018C ( 396) - vmrglw | |
188 | { 0x8A, diCMN, 0x018E }, // 129 Maj op = 4, mask = 07FF, xop = 0x018E ( 398) - vpkshss | |
189 | { 0x8A, diCMN, 0x01C4 }, // 130 Maj op = 4, mask = 07FF, xop = 0x01C4 ( 452) - vsl | |
190 | { 0x8A, diCMN, 0x01CA }, // 131 Maj op = 4, mask = 07FF, xop = 0x01CA ( 458) - vlogefp | |
191 | { 0x8A, diCMN, 0x01CE }, // 132 Maj op = 4, mask = 07FF, xop = 0x01CE ( 462) - vpkswss | |
192 | { 0x8A, diCMN, 0x0200 }, // 133 Maj op = 4, mask = 07FF, xop = 0x0200 ( 512) - vaddubs | |
193 | { 0x8A, diCMN, 0x0202 }, // 134 Maj op = 4, mask = 07FF, xop = 0x0202 ( 514) - vminub | |
194 | { 0x8A, diCMN, 0x0204 }, // 135 Maj op = 4, mask = 07FF, xop = 0x0204 ( 516) - vsrb | |
195 | { 0x8A, diCMN, 0x0208 }, // 136 Maj op = 4, mask = 07FF, xop = 0x0208 ( 520) - vmuleub | |
196 | { 0x8A, diCMN, 0x020A }, // 137 Maj op = 4, mask = 07FF, xop = 0x020A ( 522) - vrfin | |
197 | { 0x8A, diCMN, 0x020C }, // 138 Maj op = 4, mask = 07FF, xop = 0x020C ( 524) - vspltb | |
198 | { 0x8A, diCMN, 0x020E }, // 139 Maj op = 4, mask = 07FF, xop = 0x020E ( 526) - vupkhsb | |
199 | { 0x8A, diCMN, 0x0240 }, // 140 Maj op = 4, mask = 07FF, xop = 0x0240 ( 576) - vadduhs | |
200 | { 0x8A, diCMN, 0x0242 }, // 141 Maj op = 4, mask = 07FF, xop = 0x0242 ( 578) - vminuh | |
201 | { 0x8A, diCMN, 0x0244 }, // 142 Maj op = 4, mask = 07FF, xop = 0x0244 ( 580) - vsrh | |
202 | { 0x8A, diCMN, 0x0248 }, // 143 Maj op = 4, mask = 07FF, xop = 0x0248 ( 584) - vmuleuh | |
203 | { 0x8A, diCMN, 0x024A }, // 144 Maj op = 4, mask = 07FF, xop = 0x024A ( 586) - vrfiz | |
204 | { 0x8A, diCMN, 0x024C }, // 145 Maj op = 4, mask = 07FF, xop = 0x024C ( 588) - vsplth | |
205 | { 0x8A, diCMN, 0x024E }, // 146 Maj op = 4, mask = 07FF, xop = 0x024E ( 590) - vupkhsh | |
206 | { 0x8A, diCMN, 0x0280 }, // 147 Maj op = 4, mask = 07FF, xop = 0x0280 ( 640) - vadduws | |
207 | { 0x8A, diCMN, 0x0282 }, // 148 Maj op = 4, mask = 07FF, xop = 0x0282 ( 642) - vminuw | |
208 | { 0x8A, diCMN, 0x0284 }, // 149 Maj op = 4, mask = 07FF, xop = 0x0284 ( 644) - vsrw | |
209 | { 0x8A, diCMN, 0x028A }, // 150 Maj op = 4, mask = 07FF, xop = 0x028A ( 650) - vrfip | |
210 | { 0x8A, diCMN, 0x028C }, // 151 Maj op = 4, mask = 07FF, xop = 0x028C ( 652) - vspltw | |
211 | { 0x8A, diCMN, 0x028E }, // 152 Maj op = 4, mask = 07FF, xop = 0x028E ( 654) - vupklsb | |
212 | { 0x8A, diCMN, 0x02C4 }, // 153 Maj op = 4, mask = 07FF, xop = 0x02C4 ( 708) - vsr | |
213 | { 0x8A, diCMN, 0x02CA }, // 154 Maj op = 4, mask = 07FF, xop = 0x02CA ( 714) - vrfim | |
214 | { 0x8A, diCMN, 0x02CE }, // 155 Maj op = 4, mask = 07FF, xop = 0x02CE ( 718) - vupklsh | |
215 | { 0x8A, diCMN, 0x0300 }, // 156 Maj op = 4, mask = 07FF, xop = 0x0300 ( 768) - vaddsbs | |
216 | { 0x8A, diCMN, 0x0302 }, // 157 Maj op = 4, mask = 07FF, xop = 0x0302 ( 770) - vminsb | |
217 | { 0x8A, diCMN, 0x0304 }, // 158 Maj op = 4, mask = 07FF, xop = 0x0304 ( 772) - vsrab | |
218 | { 0x8A, diCMN, 0x0308 }, // 159 Maj op = 4, mask = 07FF, xop = 0x0308 ( 776) - vmulesb | |
219 | { 0x8A, diCMN, 0x030A }, // 160 Maj op = 4, mask = 07FF, xop = 0x030A ( 778) - vcfux | |
220 | { 0x8A, diCMN, 0x030C }, // 161 Maj op = 4, mask = 07FF, xop = 0x030C ( 780) - vspltisb | |
221 | { 0x8A, diCMN, 0x030E }, // 162 Maj op = 4, mask = 07FF, xop = 0x030E ( 782) - vpkpx | |
222 | { 0x8A, diCMN, 0x0340 }, // 163 Maj op = 4, mask = 07FF, xop = 0x0340 ( 832) - vaddshs | |
223 | { 0x8A, diCMN, 0x0342 }, // 164 Maj op = 4, mask = 07FF, xop = 0x0342 ( 834) - vminsh | |
224 | { 0x8A, diCMN, 0x0344 }, // 165 Maj op = 4, mask = 07FF, xop = 0x0344 ( 836) - vsrah | |
225 | { 0x8A, diCMN, 0x0348 }, // 166 Maj op = 4, mask = 07FF, xop = 0x0348 ( 840) - vmulesh | |
226 | { 0x8A, diCMN, 0x034A }, // 167 Maj op = 4, mask = 07FF, xop = 0x034A ( 842) - vcfsx | |
227 | { 0x8A, diCMN, 0x034C }, // 168 Maj op = 4, mask = 07FF, xop = 0x034C ( 844) - vspltish | |
228 | { 0x8A, diCMN, 0x034E }, // 169 Maj op = 4, mask = 07FF, xop = 0x034E ( 846) - vupkhpx | |
229 | { 0x8A, diCMN, 0x0380 }, // 170 Maj op = 4, mask = 07FF, xop = 0x0380 ( 896) - vaddsws | |
230 | { 0x8A, diCMN, 0x0382 }, // 171 Maj op = 4, mask = 07FF, xop = 0x0382 ( 898) - vminsw | |
231 | { 0x8A, diCMN, 0x0384 }, // 172 Maj op = 4, mask = 07FF, xop = 0x0384 ( 900) - vsraw | |
232 | { 0x8A, diCMN, 0x038A }, // 173 Maj op = 4, mask = 07FF, xop = 0x038A ( 906) - vctuxs | |
233 | { 0x8A, diCMN, 0x038C }, // 174 Maj op = 4, mask = 07FF, xop = 0x038C ( 908) - vspltisw | |
234 | { 0x8A, diCMN, 0x03CA }, // 175 Maj op = 4, mask = 07FF, xop = 0x03CA ( 970) - vctsxs | |
235 | { 0x8A, diCMN, 0x03CE }, // 176 Maj op = 4, mask = 07FF, xop = 0x03CE ( 974) - vupklpx | |
236 | { 0x8A, diCMN, 0x0400 }, // 177 Maj op = 4, mask = 07FF, xop = 0x0400 (1024) - vsububm | |
237 | { 0x8A, diCMN, 0x0402 }, // 178 Maj op = 4, mask = 07FF, xop = 0x0402 (1026) - vavgub | |
238 | { 0x8A, diCMN, 0x0404 }, // 179 Maj op = 4, mask = 07FF, xop = 0x0404 (1028) - vand | |
239 | { 0x8A, diCMN, 0x040A }, // 180 Maj op = 4, mask = 07FF, xop = 0x040A (1034) - vmaxfp | |
240 | { 0x8A, diCMN, 0x040C }, // 181 Maj op = 4, mask = 07FF, xop = 0x040C (1036) - vslo | |
241 | { 0x8A, diCMN, 0x0440 }, // 182 Maj op = 4, mask = 07FF, xop = 0x0440 (1088) - vsubuhm | |
242 | { 0x8A, diCMN, 0x0442 }, // 183 Maj op = 4, mask = 07FF, xop = 0x0442 (1090) - vavguh | |
243 | { 0x8A, diCMN, 0x0444 }, // 184 Maj op = 4, mask = 07FF, xop = 0x0444 (1092) - vandc | |
244 | { 0x8A, diCMN, 0x044A }, // 185 Maj op = 4, mask = 07FF, xop = 0x044A (1098) - vminfp | |
245 | { 0x8A, diCMN, 0x044C }, // 186 Maj op = 4, mask = 07FF, xop = 0x044C (1100) - vsro | |
246 | { 0x8A, diCMN, 0x0480 }, // 187 Maj op = 4, mask = 07FF, xop = 0x0480 (1152) - vsubuwm | |
247 | { 0x8A, diCMN, 0x0482 }, // 188 Maj op = 4, mask = 07FF, xop = 0x0482 (1154) - vavguw | |
248 | { 0x8A, diCMN, 0x0484 }, // 189 Maj op = 4, mask = 07FF, xop = 0x0484 (1156) - vor | |
249 | { 0x8A, diCMN, 0x04C4 }, // 190 Maj op = 4, mask = 07FF, xop = 0x04C4 (1220) - vxor | |
250 | { 0x8A, diCMN, 0x0502 }, // 191 Maj op = 4, mask = 07FF, xop = 0x0502 (1282) - vavgsb | |
251 | { 0x8A, diCMN, 0x0504 }, // 192 Maj op = 4, mask = 07FF, xop = 0x0504 (1284) - vnor | |
252 | { 0x8A, diCMN, 0x0542 }, // 193 Maj op = 4, mask = 07FF, xop = 0x0542 (1346) - vavgsh | |
253 | { 0x8A, diCMN, 0x0580 }, // 194 Maj op = 4, mask = 07FF, xop = 0x0580 (1408) - vsubcuw | |
254 | { 0x8A, diCMN, 0x0582 }, // 195 Maj op = 4, mask = 07FF, xop = 0x0582 (1410) - vavgsw | |
255 | { 0x8A, diCMN, 0x0600 }, // 196 Maj op = 4, mask = 07FF, xop = 0x0600 (1536) - vsububs | |
256 | { 0x8A, diCMN, 0x0604 }, // 197 Maj op = 4, mask = 07FF, xop = 0x0604 (1540) - mfvscr | |
257 | { 0x8A, diCMN, 0x0608 }, // 198 Maj op = 4, mask = 07FF, xop = 0x0608 (1544) - vsum4ubs | |
258 | { 0x8A, diCMN, 0x0640 }, // 199 Maj op = 4, mask = 07FF, xop = 0x0640 (1600) - vsubuhs | |
259 | { 0x8A, diCMN, 0x0644 }, // 200 Maj op = 4, mask = 07FF, xop = 0x0644 (1604) - mtvscr | |
260 | { 0x8A, diCMN, 0x0648 }, // 201 Maj op = 4, mask = 07FF, xop = 0x0648 (1608) - vsum4shs | |
261 | { 0x8A, diCMN, 0x0680 }, // 202 Maj op = 4, mask = 07FF, xop = 0x0680 (1664) - vsubuws | |
262 | { 0x8A, diCMN, 0x0688 }, // 203 Maj op = 4, mask = 07FF, xop = 0x0688 (1672) - vsum2sws | |
263 | { 0x8A, diCMN, 0x0700 }, // 204 Maj op = 4, mask = 07FF, xop = 0x0700 (1792) - vsubsbs | |
264 | { 0x8A, diCMN, 0x0708 }, // 205 Maj op = 4, mask = 07FF, xop = 0x0708 (1800) - vsum4sbs | |
265 | { 0x8A, diCMN, 0x0740 }, // 206 Maj op = 4, mask = 07FF, xop = 0x0740 (1856) - vsubshs | |
266 | { 0x8A, diCMN, 0x0780 }, // 207 Maj op = 4, mask = 07FF, xop = 0x0780 (1920) - vsubsws | |
267 | { 0x0A, diCMN, 0x0788 }, // 208 Maj op = 4, mask = 07FF, xop = 0x0788 (1928) - vsumsws | |
268 | { 0x89, diCMN, 0x0000 }, // 209 Maj op = 19, mask = 07FE, xop = 0x0000 ( 0) - mcrf | |
269 | { 0x89, diBLR, 0x0020 }, // 210 Maj op = 19, mask = 07FE, xop = 0x0020 ( 16) - bclr | |
270 | { 0x89, diPRV, 0x0024 }, // 211 Maj op = 19, mask = 07FE, xop = 0x0024 ( 18) - rfid | |
271 | { 0x89, diCMN, 0x0042 }, // 212 Maj op = 19, mask = 07FE, xop = 0x0042 ( 33) - crnor | |
272 | { 0x89, diPRV, 0x0064 }, // 213 Maj op = 19, mask = 07FE, xop = 0x0064 ( 50) - rfi | |
273 | { 0x89, diCMN, 0x0102 }, // 214 Maj op = 19, mask = 07FE, xop = 0x0102 ( 129) - crandc | |
274 | { 0x89, diCMN, 0x012C }, // 215 Maj op = 19, mask = 07FE, xop = 0x012C ( 150) - isync | |
275 | { 0x89, diCMN, 0x0182 }, // 216 Maj op = 19, mask = 07FE, xop = 0x0182 ( 193) - crxor | |
276 | { 0x89, diCMN, 0x01C2 }, // 217 Maj op = 19, mask = 07FE, xop = 0x01C2 ( 225) - crnand | |
277 | { 0x89, diCMN, 0x0202 }, // 218 Maj op = 19, mask = 07FE, xop = 0x0202 ( 257) - crand | |
278 | { 0x89, diPRV, 0x0224 }, // 219 Maj op = 19, mask = 07FE, xop = 0x0224 ( 274) - hrfid | |
279 | { 0x89, diCMN, 0x0242 }, // 220 Maj op = 19, mask = 07FE, xop = 0x0242 ( 289) - creqv | |
280 | { 0x89, diCMN, 0x0342 }, // 221 Maj op = 19, mask = 07FE, xop = 0x0342 ( 417) - crorc | |
281 | { 0x89, diCMN, 0x0382 }, // 222 Maj op = 19, mask = 07FE, xop = 0x0382 ( 449) - cror | |
282 | { 0x09, diBCTR, 0x0420 }, // 223 Maj op = 19, mask = 07FE, xop = 0x0420 ( 528) - bctr | |
283 | { 0x82, diCMN, 0x0000 }, // 224 Maj op = 30, mask = 001C, xop = 0x0000 ( 0) - rldicl | |
284 | { 0x82, diCMN, 0x0004 }, // 225 Maj op = 30, mask = 001C, xop = 0x0004 ( 1) - rldicr | |
285 | { 0x82, diCMN, 0x0008 }, // 226 Maj op = 30, mask = 001C, xop = 0x0008 ( 2) - rldic | |
286 | { 0x82, diCMN, 0x000C }, // 227 Maj op = 30, mask = 001C, xop = 0x000C ( 3) - rldimi | |
287 | { 0x83, diCMN, 0x0010 }, // 228 Maj op = 30, mask = 001E, xop = 0x0010 ( 8) - rldcl | |
288 | { 0x03, diCMN, 0x0012 }, // 229 Maj op = 30, mask = 001E, xop = 0x0012 ( 9) - rldcr | |
289 | { 0x86, diCMN, 0x0010 }, // 230 Maj op = 31, mask = 03FE, xop = 0x0010 ( 8) - subfc | |
290 | { 0x86, diCMN, 0x0012 }, // 231 Maj op = 31, mask = 03FE, xop = 0x0012 ( 9) - mulhdu | |
291 | { 0x86, diCMN, 0x0014 }, // 232 Maj op = 31, mask = 03FE, xop = 0x0014 ( 10) - addc | |
292 | { 0x86, diCMN, 0x0016 }, // 233 Maj op = 31, mask = 03FE, xop = 0x0016 ( 11) - mulhwu | |
293 | { 0x86, diCMN, 0x0050 }, // 234 Maj op = 31, mask = 03FE, xop = 0x0050 ( 40) - subf | |
294 | { 0x86, diCMN, 0x0092 }, // 235 Maj op = 31, mask = 03FE, xop = 0x0092 ( 73) - mulhd | |
295 | { 0x86, diCMN, 0x0096 }, // 236 Maj op = 31, mask = 03FE, xop = 0x0096 ( 75) - mulhw | |
296 | { 0x86, diCMN, 0x00D0 }, // 237 Maj op = 31, mask = 03FE, xop = 0x00D0 ( 104) - neg | |
297 | { 0x86, diCMN, 0x0110 }, // 238 Maj op = 31, mask = 03FE, xop = 0x0110 ( 136) - subfe | |
298 | { 0x86, diCMN, 0x0114 }, // 239 Maj op = 31, mask = 03FE, xop = 0x0114 ( 138) - adde | |
299 | { 0x86, diCMN, 0x0190 }, // 240 Maj op = 31, mask = 03FE, xop = 0x0190 ( 200) - subfze | |
300 | { 0x86, diCMN, 0x0194 }, // 241 Maj op = 31, mask = 03FE, xop = 0x0194 ( 202) - addze | |
301 | { 0x86, diCMN, 0x01D0 }, // 242 Maj op = 31, mask = 03FE, xop = 0x01D0 ( 232) - subfme | |
302 | { 0x86, diCMN, 0x01D2 }, // 243 Maj op = 31, mask = 03FE, xop = 0x01D2 ( 233) - mulld | |
303 | { 0x86, diCMN, 0x01D4 }, // 244 Maj op = 31, mask = 03FE, xop = 0x01D4 ( 234) - addme | |
304 | { 0x86, diCMN, 0x01D6 }, // 245 Maj op = 31, mask = 03FE, xop = 0x01D6 ( 235) - mullw | |
305 | { 0x86, diCMN, 0x0214 }, // 246 Maj op = 31, mask = 03FE, xop = 0x0214 ( 266) - add | |
306 | { 0x86, diCMN, 0x0392 }, // 247 Maj op = 31, mask = 03FE, xop = 0x0392 ( 457) - divdu | |
307 | { 0x86, diCMN, 0x0396 }, // 248 Maj op = 31, mask = 03FE, xop = 0x0396 ( 459) - divwu | |
308 | { 0x86, diCMN, 0x03D2 }, // 249 Maj op = 31, mask = 03FE, xop = 0x03D2 ( 489) - divd | |
309 | { 0x86, diCMN, 0x03D6 }, // 250 Maj op = 31, mask = 03FE, xop = 0x03D6 ( 491) - divw | |
310 | { 0x88, diCMN, 0x0674 }, // 251 Maj op = 31, mask = 07FC, xop = 0x0674 ( 413) - sradi | |
311 | { 0x89, diCMN, 0x0000 }, // 252 Maj op = 31, mask = 07FE, xop = 0x0000 ( 0) - cmp | |
312 | { 0x89, diTRP, 0x0008 }, // 253 Maj op = 31, mask = 07FE, xop = 0x0008 ( 4) - tw | |
313 | { 0x89, diCMN, 0x000C }, // 254 Maj op = 31, mask = 07FE, xop = 0x000C ( 6) - lvsl | |
314 | { 0x89, diCMN, 0x000E }, // 255 Maj op = 31, mask = 07FE, xop = 0x000E ( 7) - lvebx | |
315 | { 0x89, diCMN, 0x0026 }, // 256 Maj op = 31, mask = 07FE, xop = 0x0026 ( 19) - mfcr | |
316 | { 0x89, diCMN, 0x0028 }, // 257 Maj op = 31, mask = 07FE, xop = 0x0028 ( 20) - lwarx | |
317 | { 0x89, diCMN, 0x002A }, // 258 Maj op = 31, mask = 07FE, xop = 0x002A ( 21) - ldx | |
318 | { 0x89, diCMN, 0x002E }, // 259 Maj op = 31, mask = 07FE, xop = 0x002E ( 23) - lwzx | |
319 | { 0x89, diCMN, 0x0030 }, // 260 Maj op = 31, mask = 07FE, xop = 0x0030 ( 24) - slw | |
320 | { 0x89, diCMN, 0x0034 }, // 261 Maj op = 31, mask = 07FE, xop = 0x0034 ( 26) - cntlzw | |
321 | { 0x89, diCMN, 0x0036 }, // 262 Maj op = 31, mask = 07FE, xop = 0x0036 ( 27) - sld | |
322 | { 0x89, diCMN, 0x0038 }, // 263 Maj op = 31, mask = 07FE, xop = 0x0038 ( 28) - and | |
323 | { 0x89, diCMN, 0x0040 }, // 264 Maj op = 31, mask = 07FE, xop = 0x0040 ( 32) - cmpl | |
324 | { 0x89, diCMN, 0x004C }, // 265 Maj op = 31, mask = 07FE, xop = 0x004C ( 38) - lvsr | |
325 | { 0x89, diCMN, 0x004E }, // 266 Maj op = 31, mask = 07FE, xop = 0x004E ( 39) - lvehx | |
326 | { 0x89, diCMN, 0x006A }, // 267 Maj op = 31, mask = 07FE, xop = 0x006A ( 53) - ldux | |
327 | { 0x89, diCMN, 0x006C }, // 268 Maj op = 31, mask = 07FE, xop = 0x006C ( 54) - dcbst | |
328 | { 0x89, diCMN, 0x006E }, // 269 Maj op = 31, mask = 07FE, xop = 0x006E ( 55) - lwzux | |
329 | { 0x89, diCMN, 0x0074 }, // 270 Maj op = 31, mask = 07FE, xop = 0x0074 ( 58) - cntlzd | |
330 | { 0x89, diCMN, 0x0078 }, // 271 Maj op = 31, mask = 07FE, xop = 0x0078 ( 60) - andc | |
331 | { 0x89, diTRP, 0x0088 }, // 272 Maj op = 31, mask = 07FE, xop = 0x0088 ( 68) - td | |
332 | { 0x89, diCMN, 0x008E }, // 273 Maj op = 31, mask = 07FE, xop = 0x008E ( 71) - lvewx | |
333 | { 0x89, diPRV, 0x00A6 }, // 274 Maj op = 31, mask = 07FE, xop = 0x00A6 ( 83) - mfmsr | |
334 | { 0x89, diCMN, 0x00A8 }, // 275 Maj op = 31, mask = 07FE, xop = 0x00A8 ( 84) - ldarx | |
335 | { 0x89, diCMN, 0x00AC }, // 276 Maj op = 31, mask = 07FE, xop = 0x00AC ( 86) - dcbf | |
336 | { 0x89, diCMN, 0x00AE }, // 277 Maj op = 31, mask = 07FE, xop = 0x00AE ( 87) - lbzx | |
337 | { 0x89, diCMN, 0x00CE }, // 278 Maj op = 31, mask = 07FE, xop = 0x00CE ( 103) - lvx | |
338 | { 0x89, diCMN, 0x00EE }, // 279 Maj op = 31, mask = 07FE, xop = 0x00EE ( 119) - lbzux | |
339 | { 0x89, diCMN, 0x00F8 }, // 280 Maj op = 31, mask = 07FE, xop = 0x00F8 ( 124) - nor | |
340 | { 0x89, diCMN, 0x010E }, // 281 Maj op = 31, mask = 07FE, xop = 0x010E ( 135) - stvebx | |
341 | { 0x89, diCMN, 0x0120 }, // 282 Maj op = 31, mask = 07FE, xop = 0x0120 ( 144) - mtcrf | |
342 | { 0x89, diPRV, 0x0124 }, // 283 Maj op = 31, mask = 07FE, xop = 0x0124 ( 146) - mtmsr | |
343 | { 0x89, diCMN, 0x012A }, // 284 Maj op = 31, mask = 07FE, xop = 0x012A ( 149) - stdx | |
344 | { 0x89, diCMN, 0x012C }, // 285 Maj op = 31, mask = 07FE, xop = 0x012C ( 150) - stwcx | |
345 | { 0x89, diCMN, 0x012E }, // 286 Maj op = 31, mask = 07FE, xop = 0x012E ( 151) - stwx | |
346 | { 0x89, diCMN, 0x014E }, // 287 Maj op = 31, mask = 07FE, xop = 0x014E ( 167) - stvehx | |
347 | { 0x89, diPRV, 0x0164 }, // 288 Maj op = 31, mask = 07FE, xop = 0x0164 ( 178) - mtmsrd | |
348 | { 0x89, diCMN, 0x016A }, // 289 Maj op = 31, mask = 07FE, xop = 0x016A ( 181) - stdux | |
349 | { 0x89, diCMN, 0x016E }, // 290 Maj op = 31, mask = 07FE, xop = 0x016E ( 183) - stwux | |
350 | { 0x89, diCMN, 0x018E }, // 291 Maj op = 31, mask = 07FE, xop = 0x018E ( 199) - stvewx | |
351 | { 0x89, diCMN, 0x01A4 }, // 292 Maj op = 31, mask = 07FE, xop = 0x01A4 ( 210) - mtsr | |
352 | { 0x89, diCMN, 0x01AC }, // 293 Maj op = 31, mask = 07FE, xop = 0x01AC ( 214) - stdcx. | |
353 | { 0x89, diCMN, 0x01AE }, // 294 Maj op = 31, mask = 07FE, xop = 0x01AE ( 215) - stbx | |
354 | { 0x89, diCMN, 0x01CE }, // 295 Maj op = 31, mask = 07FE, xop = 0x01CE ( 231) - stvx | |
355 | { 0x89, diPRV, 0x01E4 }, // 296 Maj op = 31, mask = 07FE, xop = 0x01E4 ( 242) - mtsrin | |
356 | { 0x89, diCMN, 0x01EC }, // 297 Maj op = 31, mask = 07FE, xop = 0x01EC ( 246) - dcbtst | |
357 | { 0x89, diCMN, 0x01EE }, // 298 Maj op = 31, mask = 07FE, xop = 0x01EE ( 247) - stbux | |
358 | { 0x89, diPRV, 0x0224 }, // 299 Maj op = 31, mask = 07FE, xop = 0x0224 ( 274) - tlbiel | |
359 | { 0x89, diCMN, 0x022C }, // 300 Maj op = 31, mask = 07FE, xop = 0x022C ( 278) - dcbt | |
360 | { 0x89, diCMN, 0x022E }, // 301 Maj op = 31, mask = 07FE, xop = 0x022E ( 279) - lhzx | |
361 | { 0x89, diCMN, 0x0238 }, // 302 Maj op = 31, mask = 07FE, xop = 0x0238 ( 284) - eqv | |
362 | { 0x89, diPRV, 0x0264 }, // 303 Maj op = 31, mask = 07FE, xop = 0x0264 ( 306) - tlbie | |
363 | { 0x89, diPRV, 0x026C }, // 304 Maj op = 31, mask = 07FE, xop = 0x026C ( 310) - eciwx | |
364 | { 0x89, diCMN, 0x026E }, // 305 Maj op = 31, mask = 07FE, xop = 0x026E ( 311) - lhzux | |
365 | { 0x89, diCMN, 0x0278 }, // 306 Maj op = 31, mask = 07FE, xop = 0x0278 ( 316) - xor | |
366 | { 0x89, diSPR, 0x02A6 }, // 307 Maj op = 31, mask = 07FE, xop = 0x02A6 ( 339) - mfspr | |
367 | { 0x89, diCMN, 0x02AA }, // 308 Maj op = 31, mask = 07FE, xop = 0x02AA ( 341) - lwax | |
368 | { 0x89, diCMN, 0x02AC }, // 309 Maj op = 31, mask = 07FE, xop = 0x02AC ( 342) - dst | |
369 | { 0x89, diCMN, 0x02AE }, // 310 Maj op = 31, mask = 07FE, xop = 0x02AE ( 343) - lhax | |
370 | { 0x89, diCMN, 0x02CE }, // 311 Maj op = 31, mask = 07FE, xop = 0x02CE ( 359) - lvxl | |
371 | { 0x89, diPRV, 0x02E4 }, // 312 Maj op = 31, mask = 07FE, xop = 0x02E4 ( 370) - tlbia | |
372 | { 0x89, diCMN, 0x02E6 }, // 313 Maj op = 31, mask = 07FE, xop = 0x02E6 ( 371) - mftb | |
373 | { 0x89, diCMN, 0x02EA }, // 314 Maj op = 31, mask = 07FE, xop = 0x02EA ( 373) - lwaux | |
374 | { 0x89, diCMN, 0x02EC }, // 315 Maj op = 31, mask = 07FE, xop = 0x02EC ( 374) - dstst | |
375 | { 0x89, diCMN, 0x02EE }, // 316 Maj op = 31, mask = 07FE, xop = 0x02EE ( 375) - lhaux | |
376 | { 0x89, diPRV, 0x0324 }, // 317 Maj op = 31, mask = 07FE, xop = 0x0324 ( 402) - slbmte | |
377 | { 0x89, diCMN, 0x032E }, // 318 Maj op = 31, mask = 07FE, xop = 0x032E ( 407) - sthx | |
378 | { 0x89, diCMN, 0x0338 }, // 319 Maj op = 31, mask = 07FE, xop = 0x0338 ( 412) - orc | |
379 | { 0x89, diPRV, 0x0364 }, // 320 Maj op = 31, mask = 07FE, xop = 0x0364 ( 434) - slbie | |
380 | { 0x89, diPRV, 0x036C }, // 321 Maj op = 31, mask = 07FE, xop = 0x036C ( 438) - ecowx | |
381 | { 0x89, diCMN, 0x036E }, // 322 Maj op = 31, mask = 07FE, xop = 0x036E ( 439) - sthux | |
382 | { 0x89, diOR, 0x0378 }, // 323 Maj op = 31, mask = 07FE, xop = 0x0378 ( 444) - or | |
383 | { 0x89, diSPR, 0x03A6 }, // 324 Maj op = 31, mask = 07FE, xop = 0x03A6 ( 467) - mtspr | |
384 | { 0x89, diCMN, 0x03B8 }, // 325 Maj op = 31, mask = 07FE, xop = 0x03B8 ( 476) - nand | |
385 | { 0x89, diCMN, 0x03CE }, // 326 Maj op = 31, mask = 07FE, xop = 0x03CE ( 487) - stvxl | |
386 | { 0x89, diPRV, 0x03E4 }, // 327 Maj op = 31, mask = 07FE, xop = 0x03E4 ( 498) - slbia | |
387 | { 0x89, diCMN, 0x0400 }, // 328 Maj op = 31, mask = 07FE, xop = 0x0400 ( 512) - mcrxr | |
388 | { 0x89, diCMN, 0x042A }, // 329 Maj op = 31, mask = 07FE, xop = 0x042A ( 533) - lswx | |
389 | { 0x89, diCMN, 0x042C }, // 330 Maj op = 31, mask = 07FE, xop = 0x042C ( 534) - lwbrx | |
390 | { 0x89, diCMN, 0x042E }, // 331 Maj op = 31, mask = 07FE, xop = 0x042E ( 535) - lfsx | |
391 | { 0x89, diCMN, 0x0430 }, // 332 Maj op = 31, mask = 07FE, xop = 0x0430 ( 536) - srw | |
392 | { 0x89, diCMN, 0x0436 }, // 333 Maj op = 31, mask = 07FE, xop = 0x0436 ( 539) - srd | |
393 | { 0x89, diPRV, 0x046C }, // 334 Maj op = 31, mask = 07FE, xop = 0x046C ( 566) - tlbsync | |
394 | { 0x89, diCMN, 0x046E }, // 335 Maj op = 31, mask = 07FE, xop = 0x046E ( 567) - lfsux | |
395 | { 0x89, diPRV, 0x04A6 }, // 336 Maj op = 31, mask = 07FE, xop = 0x04A6 ( 595) - mfsr | |
396 | { 0x89, diCMN, 0x04AA }, // 337 Maj op = 31, mask = 07FE, xop = 0x04AA ( 597) - lswi | |
397 | { 0x89, diCMN, 0x04AC }, // 338 Maj op = 31, mask = 07FE, xop = 0x04AC ( 598) - sync | |
398 | { 0x89, diCMN, 0x04AE }, // 339 Maj op = 31, mask = 07FE, xop = 0x04AE ( 599) - lfdx | |
399 | { 0x89, diCMN, 0x04EE }, // 340 Maj op = 31, mask = 07FE, xop = 0x04EE ( 631) - lfdux | |
400 | { 0x89, diPRV, 0x0526 }, // 341 Maj op = 31, mask = 07FE, xop = 0x0526 ( 659) - mfsrin | |
401 | { 0x89, diCMN, 0x052A }, // 342 Maj op = 31, mask = 07FE, xop = 0x052A ( 661) - stswx | |
402 | { 0x89, diCMN, 0x052C }, // 343 Maj op = 31, mask = 07FE, xop = 0x052C ( 662) - stwbrx | |
403 | { 0x89, diCMN, 0x052E }, // 344 Maj op = 31, mask = 07FE, xop = 0x052E ( 663) - stfsx | |
404 | { 0x89, diCMN, 0x056E }, // 345 Maj op = 31, mask = 07FE, xop = 0x056E ( 695) - stfsux | |
405 | { 0x89, diCMN, 0x05AA }, // 346 Maj op = 31, mask = 07FE, xop = 0x05AA ( 725) - stswi | |
406 | { 0x89, diCMN, 0x05AE }, // 347 Maj op = 31, mask = 07FE, xop = 0x05AE ( 727) - stfdx | |
407 | { 0x89, diCMN, 0x05EC }, // 348 Maj op = 31, mask = 07FE, xop = 0x05EC ( 758) - dcba | |
408 | { 0x89, diCMN, 0x05EE }, // 349 Maj op = 31, mask = 07FE, xop = 0x05EE ( 759) - stfdux | |
409 | { 0x89, diCMN, 0x062C }, // 350 Maj op = 31, mask = 07FE, xop = 0x062C ( 790) - lhbrx | |
410 | { 0x89, diCMN, 0x0630 }, // 351 Maj op = 31, mask = 07FE, xop = 0x0630 ( 792) - sraw | |
411 | { 0x89, diCMN, 0x0634 }, // 352 Maj op = 31, mask = 07FE, xop = 0x0634 ( 794) - srad | |
412 | { 0x89, diCMN, 0x066C }, // 353 Maj op = 31, mask = 07FE, xop = 0x066C ( 822) - dss | |
413 | { 0x89, diCMN, 0x0670 }, // 354 Maj op = 31, mask = 07FE, xop = 0x0670 ( 824) - srawi | |
414 | { 0x89, diPRV, 0x06A6 }, // 355 Maj op = 31, mask = 07FE, xop = 0x06A6 ( 851) - slbmfev | |
415 | { 0x89, diCMN, 0x06AC }, // 356 Maj op = 31, mask = 07FE, xop = 0x06AC ( 854) - eieio | |
416 | { 0x89, diPRV, 0x0726 }, // 357 Maj op = 31, mask = 07FE, xop = 0x0726 ( 915) - slbmfee | |
417 | { 0x89, diCMN, 0x072C }, // 358 Maj op = 31, mask = 07FE, xop = 0x072C ( 918) - sthbrx | |
418 | { 0x89, diCMN, 0x0734 }, // 359 Maj op = 31, mask = 07FE, xop = 0x0734 ( 922) - extsh | |
419 | { 0x89, diCMN, 0x0774 }, // 360 Maj op = 31, mask = 07FE, xop = 0x0774 ( 954) - extsb | |
420 | { 0x89, diCMN, 0x07AC }, // 361 Maj op = 31, mask = 07FE, xop = 0x07AC ( 982) - icbi | |
421 | { 0x89, diCMN, 0x07AE }, // 362 Maj op = 31, mask = 07FE, xop = 0x07AE ( 983) - stfiwx | |
422 | { 0x89, diCMN, 0x07B4 }, // 363 Maj op = 31, mask = 07FE, xop = 0x07B4 ( 986) - extsw | |
423 | { 0x09, diCMN, 0x07EC }, // 364 Maj op = 31, mask = 07FE, xop = 0x07EC (1014) - dcbz | |
424 | { 0x81, diCMN, 0x0000 }, // 365 Maj op = 58, mask = 0003, xop = 0x0000 ( 0) - ld | |
425 | { 0x81, diCMN, 0x0001 }, // 366 Maj op = 58, mask = 0003, xop = 0x0001 ( 1) - ldu | |
426 | { 0x01, diCMN, 0x0002 }, // 367 Maj op = 58, mask = 0003, xop = 0x0002 ( 2) - lwa | |
427 | { 0x84, diCMN, 0x0024 }, // 368 Maj op = 59, mask = 003E, xop = 0x0024 ( 18) - fdivs | |
428 | { 0x84, diCMN, 0x0028 }, // 369 Maj op = 59, mask = 003E, xop = 0x0028 ( 20) - fsubs | |
429 | { 0x84, diCMN, 0x002A }, // 370 Maj op = 59, mask = 003E, xop = 0x002A ( 21) - fadds | |
430 | { 0x84, diCMN, 0x002C }, // 371 Maj op = 59, mask = 003E, xop = 0x002C ( 22) - fsqrts | |
431 | { 0x84, diCMN, 0x0030 }, // 372 Maj op = 59, mask = 003E, xop = 0x0030 ( 24) - fres | |
432 | { 0x84, diCMN, 0x0032 }, // 373 Maj op = 59, mask = 003E, xop = 0x0032 ( 25) - fmuls | |
433 | { 0x84, diCMN, 0x0038 }, // 374 Maj op = 59, mask = 003E, xop = 0x0038 ( 28) - fmsubs | |
434 | { 0x84, diCMN, 0x003A }, // 375 Maj op = 59, mask = 003E, xop = 0x003A ( 29) - fmadds | |
435 | { 0x84, diCMN, 0x003C }, // 376 Maj op = 59, mask = 003E, xop = 0x003C ( 30) - fnmsubs | |
436 | { 0x04, diCMN, 0x003E }, // 377 Maj op = 59, mask = 003E, xop = 0x003E ( 31) - fnmadds | |
437 | { 0x81, diCMN, 0x0000 }, // 378 Maj op = 62, mask = 0003, xop = 0x0000 ( 0) - std | |
438 | { 0x01, diCMN, 0x0001 }, // 379 Maj op = 62, mask = 0003, xop = 0x0001 ( 1) - stdu | |
439 | { 0x84, diCMN, 0x0024 }, // 380 Maj op = 63, mask = 003E, xop = 0x0024 ( 18) - fdiv | |
440 | { 0x84, diCMN, 0x0028 }, // 381 Maj op = 63, mask = 003E, xop = 0x0028 ( 20) - fsub | |
441 | { 0x84, diCMN, 0x002A }, // 382 Maj op = 63, mask = 003E, xop = 0x002A ( 21) - fadd | |
442 | { 0x84, diCMN, 0x002C }, // 383 Maj op = 63, mask = 003E, xop = 0x002C ( 22) - fsqrt | |
443 | { 0x84, diCMN, 0x002E }, // 384 Maj op = 63, mask = 003E, xop = 0x002E ( 23) - fsel | |
444 | { 0x84, diCMN, 0x0032 }, // 385 Maj op = 63, mask = 003E, xop = 0x0032 ( 25) - fmul | |
445 | { 0x84, diCMN, 0x0034 }, // 386 Maj op = 63, mask = 003E, xop = 0x0034 ( 26) - frsqrte | |
446 | { 0x84, diCMN, 0x0038 }, // 387 Maj op = 63, mask = 003E, xop = 0x0038 ( 28) - fmsub | |
447 | { 0x84, diCMN, 0x003A }, // 388 Maj op = 63, mask = 003E, xop = 0x003A ( 29) - fmadd | |
448 | { 0x84, diCMN, 0x003C }, // 389 Maj op = 63, mask = 003E, xop = 0x003C ( 30) - fnmsub | |
449 | { 0x84, diCMN, 0x003E }, // 390 Maj op = 63, mask = 003E, xop = 0x003E ( 31) - fnmadd | |
450 | { 0x89, diCMN, 0x0000 }, // 391 Maj op = 63, mask = 07FE, xop = 0x0000 ( 0) - fcmpu | |
451 | { 0x89, diCMN, 0x0018 }, // 392 Maj op = 63, mask = 07FE, xop = 0x0018 ( 12) - frsp | |
452 | { 0x89, diCMN, 0x001C }, // 393 Maj op = 63, mask = 07FE, xop = 0x001C ( 14) - fctiw | |
453 | { 0x89, diCMN, 0x001E }, // 394 Maj op = 63, mask = 07FE, xop = 0x001E ( 15) - fctiwz | |
454 | { 0x89, diCMN, 0x0040 }, // 395 Maj op = 63, mask = 07FE, xop = 0x0040 ( 32) - fcmpo | |
455 | { 0x89, diCMN, 0x004C }, // 396 Maj op = 63, mask = 07FE, xop = 0x004C ( 38) - mtfsb1 | |
456 | { 0x89, diCMN, 0x0050 }, // 397 Maj op = 63, mask = 07FE, xop = 0x0050 ( 40) - fneg | |
457 | { 0x89, diCMN, 0x0080 }, // 398 Maj op = 63, mask = 07FE, xop = 0x0080 ( 64) - mcrfs | |
458 | { 0x89, diCMN, 0x008C }, // 399 Maj op = 63, mask = 07FE, xop = 0x008C ( 70) - mtfsb0 | |
459 | { 0x89, diCMN, 0x0090 }, // 400 Maj op = 63, mask = 07FE, xop = 0x0090 ( 72) - fmr | |
460 | { 0x89, diCMN, 0x010C }, // 401 Maj op = 63, mask = 07FE, xop = 0x010C ( 134) - mtfsfi | |
461 | { 0x89, diCMN, 0x0110 }, // 402 Maj op = 63, mask = 07FE, xop = 0x0110 ( 136) - fnabs | |
462 | { 0x89, diCMN, 0x0210 }, // 403 Maj op = 63, mask = 07FE, xop = 0x0210 ( 264) - fabs | |
463 | { 0x89, diCMN, 0x048E }, // 404 Maj op = 63, mask = 07FE, xop = 0x048E ( 583) - mffs | |
464 | { 0x89, diCMN, 0x058E }, // 405 Maj op = 63, mask = 07FE, xop = 0x058E ( 711) - mtfsf | |
465 | { 0x89, diCMN, 0x065C }, // 406 Maj op = 63, mask = 07FE, xop = 0x065C ( 814) - fctid | |
466 | { 0x89, diCMN, 0x065E }, // 407 Maj op = 63, mask = 07FE, xop = 0x065E ( 815) - fctidz | |
467 | { 0x09, diCMN, 0x069C }, // 408 Maj op = 63, mask = 07FE, xop = 0x069C ( 846) - fcfid | |
468 | }; | |
469 | ||
470 | #ifdef __decodePPC_debug__ | |
471 | char *instname[] = { | |
472 | "Jump entry...", | |
473 | "Invalid", | |
474 | "tdi", | |
475 | "twi", | |
476 | "Jump entry...", | |
477 | "Invalid", | |
478 | "Invalid", | |
479 | "mulli", | |
480 | "subfic", | |
481 | "Invalid", | |
482 | "cmpli", | |
483 | "cmpi", | |
484 | "addic", | |
485 | "addic.", | |
486 | "addi", | |
487 | "addis", | |
488 | "bc", | |
489 | "sc", | |
490 | "b", | |
491 | "Jump entry...", | |
492 | "rlwimi", | |
493 | "rlwinm", | |
494 | "Invalid", | |
495 | "rlwnm", | |
496 | "ori", | |
497 | "oris", | |
498 | "xori", | |
499 | "xoris", | |
500 | "andi.", | |
501 | "andis.", | |
502 | "Jump entry...", | |
503 | "Jump entry...", | |
504 | "lwz", | |
505 | "lwzu", | |
506 | "lbz", | |
507 | "lbzu", | |
508 | "stw", | |
509 | "stwu", | |
510 | "stb", | |
511 | "stbu", | |
512 | "lhz", | |
513 | "lhzu", | |
514 | "lha", | |
515 | "lhau", | |
516 | "sth", | |
517 | "sthu", | |
518 | "lmw", | |
519 | "stmw", | |
520 | "lfs", | |
521 | "lfsu", | |
522 | "lfd", | |
523 | "lfdu", | |
524 | "stfs", | |
525 | "stfsu", | |
526 | "stfd", | |
527 | "stfdu", | |
528 | "Invalid", | |
529 | "Invalid", | |
530 | "Jump entry...", | |
531 | "Jump entry...", | |
532 | "Invalid", | |
533 | "Invalid", | |
534 | "Jump entry...", | |
535 | "Jump entry...", | |
536 | "attn", | |
537 | "vmhaddshs", | |
538 | "vmhraddshs", | |
539 | "vmladduhm", | |
540 | "vmsumubm", | |
541 | "vmsummbm", | |
542 | "vmsumuhm", | |
543 | "vmsumuhs", | |
544 | "vmsumshm", | |
545 | "vmsumshs", | |
546 | "vsel", | |
547 | "vperm", | |
548 | "vsldoi", | |
549 | "vmaddfp", | |
550 | "vnmsubfp", | |
551 | "vcmpequb", | |
552 | "vcmpequh", | |
553 | "vcmpequw", | |
554 | "vcmpeqfp", | |
555 | "vcmpgefp", | |
556 | "vcmpgtub", | |
557 | "vcmpgtuh", | |
558 | "vcmpgtuw", | |
559 | "vcmpgtfp", | |
560 | "vcmpgtsb", | |
561 | "vcmpgtsh", | |
562 | "vcmpgtsw", | |
563 | "vcmpbfp", | |
564 | "vaddubm", | |
565 | "vmaxub", | |
566 | "vrlb", | |
567 | "vmuloub", | |
568 | "vaddfp", | |
569 | "vmrghb", | |
570 | "vpkuhum", | |
571 | "vadduhm", | |
572 | "vmaxuh", | |
573 | "vrlh", | |
574 | "vmulouh", | |
575 | "vsubfp", | |
576 | "vmrghh", | |
577 | "vpkuwum", | |
578 | "vadduwm", | |
579 | "vmaxuw", | |
580 | "vrlw", | |
581 | "vmrghw", | |
582 | "vpkuhus", | |
583 | "vpkuwus", | |
584 | "vmaxsb", | |
585 | "vslb", | |
586 | "vmulosb", | |
587 | "vrefp", | |
588 | "vmrglb", | |
589 | "vpkshus", | |
590 | "vmaxsh", | |
591 | "vslh", | |
592 | "vmulosh", | |
593 | "vrsqrtefp", | |
594 | "vmrglh", | |
595 | "vpkswus", | |
596 | "vaddcuw", | |
597 | "vmaxsw", | |
598 | "vslw", | |
599 | "vexptefp", | |
600 | "vmrglw", | |
601 | "vpkshss", | |
602 | "vsl", | |
603 | "vlogefp", | |
604 | "vpkswss", | |
605 | "vaddubs", | |
606 | "vminub", | |
607 | "vsrb", | |
608 | "vmuleub", | |
609 | "vrfin", | |
610 | "vspltb", | |
611 | "vupkhsb", | |
612 | "vadduhs", | |
613 | "vminuh", | |
614 | "vsrh", | |
615 | "vmuleuh", | |
616 | "vrfiz", | |
617 | "vsplth", | |
618 | "vupkhsh", | |
619 | "vadduws", | |
620 | "vminuw", | |
621 | "vsrw", | |
622 | "vrfip", | |
623 | "vspltw", | |
624 | "vupklsb", | |
625 | "vsr", | |
626 | "vrfim", | |
627 | "vupklsh", | |
628 | "vaddsbs", | |
629 | "vminsb", | |
630 | "vsrab", | |
631 | "vmulesb", | |
632 | "vcfux", | |
633 | "vspltisb", | |
634 | "vpkpx", | |
635 | "vaddshs", | |
636 | "vminsh", | |
637 | "vsrah", | |
638 | "vmulesh", | |
639 | "vcfsx", | |
640 | "vspltish", | |
641 | "vupkhpx", | |
642 | "vaddsws", | |
643 | "vminsw", | |
644 | "vsraw", | |
645 | "vctuxs", | |
646 | "vspltisw", | |
647 | "vctsxs", | |
648 | "vupklpx", | |
649 | "vsububm", | |
650 | "vavgub", | |
651 | "vand", | |
652 | "vmaxfp", | |
653 | "vslo", | |
654 | "vsubuhm", | |
655 | "vavguh", | |
656 | "vandc", | |
657 | "vminfp", | |
658 | "vsro", | |
659 | "vsubuwm", | |
660 | "vavguw", | |
661 | "vor", | |
662 | "vxor", | |
663 | "vavgsb", | |
664 | "vnor", | |
665 | "vavgsh", | |
666 | "vsubcuw", | |
667 | "vavgsw", | |
668 | "vsububs", | |
669 | "mfvscr", | |
670 | "vsum4ubs", | |
671 | "vsubuhs", | |
672 | "mtvscr", | |
673 | "vsum4shs", | |
674 | "vsubuws", | |
675 | "vsum2sws", | |
676 | "vsubsbs", | |
677 | "vsum4sbs", | |
678 | "vsubshs", | |
679 | "vsubsws", | |
680 | "vsumsws", | |
681 | "mcrf", | |
682 | "bclr", | |
683 | "rfid", | |
684 | "crnor", | |
685 | "rfi", | |
686 | "crandc", | |
687 | "isync", | |
688 | "crxor", | |
689 | "crnand", | |
690 | "crand", | |
691 | "hrfid", | |
692 | "creqv", | |
693 | "crorc", | |
694 | "cror", | |
695 | "bctr", | |
696 | "rldicl", | |
697 | "rldicr", | |
698 | "rldic", | |
699 | "rldimi", | |
700 | "rldcl", | |
701 | "rldcr", | |
702 | "subfc", | |
703 | "mulhdu", | |
704 | "addc", | |
705 | "mulhwu", | |
706 | "subf", | |
707 | "mulhd", | |
708 | "mulhw", | |
709 | "neg", | |
710 | "subfe", | |
711 | "adde", | |
712 | "subfze", | |
713 | "addze", | |
714 | "subfme", | |
715 | "mulld", | |
716 | "addme", | |
717 | "mullw", | |
718 | "add", | |
719 | "divdu", | |
720 | "divwu", | |
721 | "divd", | |
722 | "divw", | |
723 | "sradi", | |
724 | "cmp", | |
725 | "tw", | |
726 | "lvsl", | |
727 | "lvebx", | |
728 | "mfcr", | |
729 | "lwarx", | |
730 | "ldx", | |
731 | "lwzx", | |
732 | "slw", | |
733 | "cntlzw", | |
734 | "sld", | |
735 | "and", | |
736 | "cmpl", | |
737 | "lvsr", | |
738 | "lvehx", | |
739 | "ldux", | |
740 | "dcbst", | |
741 | "lwzux", | |
742 | "cntlzd", | |
743 | "andc", | |
744 | "td", | |
745 | "lvewx", | |
746 | "mfmsr", | |
747 | "ldarx", | |
748 | "dcbf", | |
749 | "lbzx", | |
750 | "lvx", | |
751 | "lbzux", | |
752 | "nor", | |
753 | "stvebx", | |
754 | "mtcrf", | |
755 | "mtmsr", | |
756 | "stdx", | |
757 | "stwcx", | |
758 | "stwx", | |
759 | "stvehx", | |
760 | "mtmsrd", | |
761 | "stdux", | |
762 | "stwux", | |
763 | "stvewx", | |
764 | "mtsr", | |
765 | "stdcx.", | |
766 | "stbx", | |
767 | "stvx", | |
768 | "mtsrin", | |
769 | "dcbtst", | |
770 | "stbux", | |
771 | "tlbiel", | |
772 | "dcbt", | |
773 | "lhzx", | |
774 | "eqv", | |
775 | "tlbie", | |
776 | "eciwx", | |
777 | "lhzux", | |
778 | "xor", | |
779 | "mfspr", | |
780 | "lwax", | |
781 | "dst", | |
782 | "lhax", | |
783 | "lvxl", | |
784 | "tlbia", | |
785 | "mftb", | |
786 | "lwaux", | |
787 | "dstst", | |
788 | "lhaux", | |
789 | "slbmte", | |
790 | "sthx", | |
791 | "orc", | |
792 | "slbie", | |
793 | "ecowx", | |
794 | "sthux", | |
795 | "or", | |
796 | "mtspr", | |
797 | "nand", | |
798 | "stvxl", | |
799 | "slbia", | |
800 | "mcrxr", | |
801 | "lswx", | |
802 | "lwbrx", | |
803 | "lfsx", | |
804 | "srw", | |
805 | "srd", | |
806 | "tlbsync", | |
807 | "lfsux", | |
808 | "mfsr", | |
809 | "lswi", | |
810 | "sync", | |
811 | "lfdx", | |
812 | "lfdux", | |
813 | "mfsrin", | |
814 | "stswx", | |
815 | "stwbrx", | |
816 | "stfsx", | |
817 | "stfsux", | |
818 | "stswi", | |
819 | "stfdx", | |
820 | "dcba", | |
821 | "stfdux", | |
822 | "lhbrx", | |
823 | "sraw", | |
824 | "srad", | |
825 | "dss", | |
826 | "srawi", | |
827 | "slbmfev", | |
828 | "eieio", | |
829 | "slbmfee", | |
830 | "sthbrx", | |
831 | "extsh", | |
832 | "extsb", | |
833 | "icbi", | |
834 | "stfiwx", | |
835 | "extsw", | |
836 | "dcbz", | |
837 | "ld", | |
838 | "ldu", | |
839 | "lwa", | |
840 | "fdivs", | |
841 | "fsubs", | |
842 | "fadds", | |
843 | "fsqrts", | |
844 | "fres", | |
845 | "fmuls", | |
846 | "fmsubs", | |
847 | "fmadds", | |
848 | "fnmsubs", | |
849 | "fnmadds", | |
850 | "std", | |
851 | "stdu", | |
852 | "fdiv", | |
853 | "fsub", | |
854 | "fadd", | |
855 | "fsqrt", | |
856 | "fsel", | |
857 | "fmul", | |
858 | "frsqrte", | |
859 | "fmsub", | |
860 | "fmadd", | |
861 | "fnmsub", | |
862 | "fnmadd", | |
863 | "fcmpu", | |
864 | "frsp", | |
865 | "fctiw", | |
866 | "fctiwz", | |
867 | "fcmpo", | |
868 | "mtfsb1", | |
869 | "fneg", | |
870 | "mcrfs", | |
871 | "mtfsb0", | |
872 | "fmr", | |
873 | "mtfsfi", | |
874 | "fnabs", | |
875 | "fabs", | |
876 | "mffs", | |
877 | "mtfsf", | |
878 | "fctid", | |
879 | "fctidz", | |
880 | "fcfid", | |
881 | }; | |
882 | #endif | |
883 | ||
884 | static dcdtab dcdfail = { 0x00, diINV, 0x0000 }; // Decode failed | |
885 | ||
886 | static uint32_t sprtbl[] = { | |
887 | 0xCCC03274, // spr 0 to 31 | |
888 | 0x00000000, // spr 32 to 63 | |
889 | 0x00000000, // spr 64 to 95 | |
890 | 0x00000000, // spr 96 to 127 | |
891 | 0x00000080, // spr 128 to 159 | |
892 | 0x00000000, // spr 160 to 191 | |
893 | 0x00000000, // spr 192 to 223 | |
894 | 0x00000000, // spr 224 to 255 | |
895 | 0x9000FCAD, // spr 256 to 287 | |
896 | 0x0000C3F3, // spr 288 to 319 | |
897 | 0x00000000, // spr 320 to 351 | |
898 | 0x00000000, // spr 352 to 383 | |
899 | 0x00000000, // spr 384 to 415 | |
900 | 0x00000000, // spr 416 to 447 | |
901 | 0x00000000, // spr 448 to 479 | |
902 | 0x00000000, // spr 480 to 511 | |
903 | 0x0000FFFF, // spr 512 to 543 | |
904 | 0x00000000, // spr 544 to 575 | |
905 | 0x00000000, // spr 576 to 607 | |
906 | 0x00000000, // spr 608 to 639 | |
907 | 0x00000000, // spr 640 to 671 | |
908 | 0x00000000, // spr 672 to 703 | |
909 | 0x00000000, // spr 704 to 735 | |
910 | 0x00000000, // spr 736 to 767 | |
911 | 0x3FFF3FFF, // spr 768 to 799 | |
912 | 0x00000000, // spr 800 to 831 | |
913 | 0x00000000, // spr 832 to 863 | |
914 | 0x00000000, // spr 864 to 895 | |
915 | 0x00000000, // spr 896 to 927 | |
916 | 0xE1FFE1FF, // spr 928 to 959 | |
917 | 0x0000FE80, // spr 960 to 991 | |
918 | 0x0000FFFF, // spr 992 to 1023 | |
919 | }; |