1 /* native_client/src/trusted/validator/x86/ncval_seg_sfi/gen/ncdecodetab_64.h
2 * THIS FILE IS AUTO-GENERATED. DO NOT EDIT.
3 * Compiled for x86-64 bit mode.
5 * You must include ncdecode.h before this file.
8 static const struct OpInfo kNopInst = { NACLi_NOP, 0, 1, 0 };
10 static const NCNopTrieNode kNcNopTrieNode[] = {
11 /* 0 */ { 0x66, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 1), NULL},
12 /* 1 */ { 0x0f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 2), (NCNopTrieNode*) (kNcNopTrieNode + 12)},
13 /* 2 */ { 0x1f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 3), NULL},
14 /* 3 */ { 0x44, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 4), (NCNopTrieNode*) (kNcNopTrieNode + 6)},
15 /* 4 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 5), NULL},
16 /* 5 */ { 0x00, (struct OpInfo*)(&kNopInst), NULL, NULL},
17 /* 6 */ { 0x84, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 7), NULL},
18 /* 7 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 8), NULL},
19 /* 8 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 9), NULL},
20 /* 9 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 10), NULL},
21 /* 10 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 11), NULL},
22 /* 11 */ { 0x00, (struct OpInfo*)(&kNopInst), NULL, NULL},
23 /* 12 */ { 0x2e, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 13), (NCNopTrieNode*) (kNcNopTrieNode + 21)},
24 /* 13 */ { 0x0f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 14), NULL},
25 /* 14 */ { 0x1f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 15), NULL},
26 /* 15 */ { 0x84, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 16), NULL},
27 /* 16 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 17), NULL},
28 /* 17 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 18), NULL},
29 /* 18 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 19), NULL},
30 /* 19 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 20), NULL},
31 /* 20 */ { 0x00, (struct OpInfo*)(&kNopInst), NULL, NULL},
32 /* 21 */ { 0x66, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 22), NULL},
33 /* 22 */ { 0x2e, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 23), (NCNopTrieNode*) (kNcNopTrieNode + 31)},
34 /* 23 */ { 0x0f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 24), NULL},
35 /* 24 */ { 0x1f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 25), NULL},
36 /* 25 */ { 0x84, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 26), NULL},
37 /* 26 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 27), NULL},
38 /* 27 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 28), NULL},
39 /* 28 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 29), NULL},
40 /* 29 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 30), NULL},
41 /* 30 */ { 0x00, (struct OpInfo*)(&kNopInst), NULL, NULL},
42 /* 31 */ { 0x66, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 32), NULL},
43 /* 32 */ { 0x2e, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 33), (NCNopTrieNode*) (kNcNopTrieNode + 41)},
44 /* 33 */ { 0x0f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 34), NULL},
45 /* 34 */ { 0x1f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 35), NULL},
46 /* 35 */ { 0x84, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 36), NULL},
47 /* 36 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 37), NULL},
48 /* 37 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 38), NULL},
49 /* 38 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 39), NULL},
50 /* 39 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 40), NULL},
51 /* 40 */ { 0x00, (struct OpInfo*)(&kNopInst), NULL, NULL},
52 /* 41 */ { 0x66, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 42), NULL},
53 /* 42 */ { 0x2e, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 43), (NCNopTrieNode*) (kNcNopTrieNode + 51)},
54 /* 43 */ { 0x0f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 44), NULL},
55 /* 44 */ { 0x1f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 45), NULL},
56 /* 45 */ { 0x84, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 46), NULL},
57 /* 46 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 47), NULL},
58 /* 47 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 48), NULL},
59 /* 48 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 49), NULL},
60 /* 49 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 50), NULL},
61 /* 50 */ { 0x00, (struct OpInfo*)(&kNopInst), NULL, NULL},
62 /* 51 */ { 0x66, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 52), NULL},
63 /* 52 */ { 0x2e, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 53), (NCNopTrieNode*) (kNcNopTrieNode + 61)},
64 /* 53 */ { 0x0f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 54), NULL},
65 /* 54 */ { 0x1f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 55), NULL},
66 /* 55 */ { 0x84, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 56), NULL},
67 /* 56 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 57), NULL},
68 /* 57 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 58), NULL},
69 /* 58 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 59), NULL},
70 /* 59 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 60), NULL},
71 /* 60 */ { 0x00, (struct OpInfo*)(&kNopInst), NULL, NULL},
72 /* 61 */ { 0x66, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 62), NULL},
73 /* 62 */ { 0x2e, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 63), NULL},
74 /* 63 */ { 0x0f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 64), NULL},
75 /* 64 */ { 0x1f, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 65), NULL},
76 /* 65 */ { 0x84, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 66), NULL},
77 /* 66 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 67), NULL},
78 /* 67 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 68), NULL},
79 /* 68 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 69), NULL},
80 /* 69 */ { 0x00, NULL, (NCNopTrieNode*) (kNcNopTrieNode + 70), NULL},
81 /* 70 */ { 0x00, (struct OpInfo*)(&kNopInst), NULL, NULL},
84 static const struct OpInfo kDecodeModRMOp[kNaClMRMGroupsRange][kModRMOpcodeGroupSize] = {
87 /* 0, 0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
88 /* 0, 1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
89 /* 0, 2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
90 /* 0, 3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
91 /* 0, 4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
92 /* 0, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
93 /* 0, 6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
94 /* 0, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
98 /* 1, 0 */ { NACLi_386L, 1, 1, 0 }, /* add */
99 /* 1, 1 */ { NACLi_386L, 1, 1, 0 }, /* or */
100 /* 1, 2 */ { NACLi_386L, 1, 1, 0 }, /* adc */
101 /* 1, 3 */ { NACLi_386L, 1, 1, 0 }, /* sbb */
102 /* 1, 4 */ { NACLi_386L, 1, 1, 0 }, /* and */
103 /* 1, 5 */ { NACLi_386L, 1, 1, 0 }, /* sub */
104 /* 1, 6 */ { NACLi_386L, 1, 1, 0 }, /* xor */
105 /* 1, 7 */ { NACLi_386, 1, 1, 0 }, /* cmp */
109 /* 2, 0 */ { NACLi_386, 1, 1, 0 }, /* rol */
110 /* 2, 1 */ { NACLi_386, 1, 1, 0 }, /* ror */
111 /* 2, 2 */ { NACLi_386, 1, 1, 0 }, /* rcl */
112 /* 2, 3 */ { NACLi_386, 1, 1, 0 }, /* rcr */
113 /* 2, 4 */ { NACLi_386, 1, 1, 0 }, /* shl */
114 /* 2, 5 */ { NACLi_386, 1, 1, 0 }, /* shr */
115 /* 2, 6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
116 /* 2, 7 */ { NACLi_386, 1, 1, 0 }, /* sar */
120 /* 3, 0 */ { NACLi_386, 1, 1, 0 }, /* test $I */
121 /* 3, 1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
122 /* 3, 2 */ { NACLi_386L, 1, 1, 0 }, /* not */
123 /* 3, 3 */ { NACLi_386L, 1, 1, 0 }, /* neg */
124 /* 3, 4 */ { NACLi_386, 1, 1, 0 }, /* mul %rax */
125 /* 3, 5 */ { NACLi_386, 1, 1, 0 }, /* imul %rax */
126 /* 3, 6 */ { NACLi_386, 1, 1, 0 }, /* div %rax */
127 /* 3, 7 */ { NACLi_386, 1, 1, 0 }, /* idiv %rax */
131 /* 4, 0 */ { NACLi_386L, 1, 1, 0 }, /* inc */
132 /* 4, 1 */ { NACLi_386L, 1, 1, 0 }, /* dec */
133 /* 4, 2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
134 /* 4, 3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
135 /* 4, 4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
136 /* 4, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
137 /* 4, 6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
138 /* 4, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
142 /* 5, 0 */ { NACLi_386L, 1, 1, 0 }, /* inc */
143 /* 5, 1 */ { NACLi_386L, 1, 1, 0 }, /* dec */
144 /* 5, 2 */ { NACLi_INDIRECT, 1, 1, 0 }, /* call * */
145 /* 5, 3 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* lcall * */
146 /* 5, 4 */ { NACLi_INDIRECT, 1, 1, 0 }, /* jmp * */
147 /* 5, 5 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* ljmp * */
148 /* 5, 6 */ { NACLi_386, 1, 1, 0 }, /* push */
149 /* 5, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
153 /* 6, 0 */ { NACLi_SYSTEM, 1, 1, 0 }, /* sldt */
154 /* 6, 1 */ { NACLi_SYSTEM, 1, 1, 0 }, /* str */
155 /* 6, 2 */ { NACLi_SYSTEM, 1, 1, 0 }, /* lldt */
156 /* 6, 3 */ { NACLi_SYSTEM, 1, 1, 0 }, /* ltr */
157 /* 6, 4 */ { NACLi_SYSTEM, 1, 1, 0 }, /* verr */
158 /* 6, 5 */ { NACLi_SYSTEM, 1, 1, 0 }, /* verw */
159 /* 6, 6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
160 /* 6, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
164 /* 7, 0 */ { NACLi_SYSTEM, 1, 1, 0 }, /* sgdt */
165 /* 7, 1 */ { NACLi_SYSTEM, 1, 1, 0 }, /* sidt */
166 /* 7, 2 */ { NACLi_SYSTEM, 1, 1, 0 }, /* lgdt */
167 /* 7, 3 */ { NACLi_SYSTEM, 1, 1, 0 }, /* lidt */
168 /* 7, 4 */ { NACLi_SYSTEM, 1, 1, 0 }, /* smsw */
169 /* 7, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
170 /* 7, 6 */ { NACLi_SYSTEM, 1, 1, 0 }, /* lmsw */
171 /* 7, 7 */ { NACLi_SYSTEM, 1, 1, 0 }, /* invlpg */
175 /* 8, 0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
176 /* 8, 1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
177 /* 8, 2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
178 /* 8, 3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
179 /* 8, 4 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* bt */
180 /* 8, 5 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* bts */
181 /* 8, 6 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* btr */
182 /* 8, 7 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* btc */
186 /* 9, 0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
187 /* 9, 1 */ { NACLi_CMPXCHG8B, 1, 1, 0 }, /* cmpxchg8b */
188 /* 9, 2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
189 /* 9, 3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
190 /* 9, 4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
191 /* 9, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
192 /* 9, 6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
193 /* 9, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
197 /* 10, 0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
198 /* 10, 1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
199 /* 10, 2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
200 /* 10, 3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
201 /* 10, 4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
202 /* 10, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
203 /* 10, 6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
204 /* 10, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
208 /* 11, 0 */ { NACLi_386, 1, 1, 0 }, /* mov */
209 /* 11, 1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
210 /* 11, 2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
211 /* 11, 3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
212 /* 11, 4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
213 /* 11, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
214 /* 11, 6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
215 /* 11, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
219 /* 12, 0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
220 /* 12, 1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
221 /* 12, 2 */ { NACLi_MMXSSE2, 1, 1, 0 }, /* psrlw */
222 /* 12, 3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
223 /* 12, 4 */ { NACLi_MMXSSE2, 1, 1, 0 }, /* psraw */
224 /* 12, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
225 /* 12, 6 */ { NACLi_MMXSSE2, 1, 1, 0 }, /* psllw */
226 /* 12, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
230 /* 13, 0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
231 /* 13, 1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
232 /* 13, 2 */ { NACLi_MMXSSE2, 1, 1, 0 }, /* psrld */
233 /* 13, 3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
234 /* 13, 4 */ { NACLi_MMXSSE2, 1, 1, 0 }, /* psrad */
235 /* 13, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
236 /* 13, 6 */ { NACLi_MMXSSE2, 1, 1, 0 }, /* pslld */
237 /* 13, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
241 /* 14, 0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
242 /* 14, 1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
243 /* 14, 2 */ { NACLi_MMXSSE2, 1, 1, 0 }, /* psrlq */
244 /* 14, 3 */ { NACLi_SSE2x, 1, 1, 0 }, /* psrldq */
245 /* 14, 4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
246 /* 14, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
247 /* 14, 6 */ { NACLi_MMXSSE2, 1, 1, 0 }, /* psllq */
248 /* 14, 7 */ { NACLi_SSE2x, 1, 1, 0 }, /* pslldq */
252 /* 15, 0 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* fxsave */
253 /* 15, 1 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* fxrstor */
254 /* 15, 2 */ { NACLi_SSE, 1, 1, 0 }, /* ldmxcsr */
255 /* 15, 3 */ { NACLi_SSE, 1, 1, 0 }, /* stmxcsr */
256 /* 15, 4 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* invalid */
257 /* 15, 5 */ { NACLi_SSE2, 1, 1, 0 }, /* lfence */
258 /* 15, 6 */ { NACLi_SSE2, 1, 1, 0 }, /* mfence */
259 /* 15, 7 */ { NACLi_SFENCE_CLFLUSH, 1, 1, 0 }, /* sfence/clflush */
263 /* 16, 0 */ { NACLi_SSE, 1, 1, 0 }, /* prefetch NTA */
264 /* 16, 1 */ { NACLi_SSE, 1, 1, 0 }, /* prefetch T0 */
265 /* 16, 2 */ { NACLi_SSE, 1, 1, 0 }, /* prefetch T1 */
266 /* 16, 3 */ { NACLi_SSE, 1, 1, 0 }, /* prefetch T1 */
267 /* 16, 4 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* NOP (prefetch) */
268 /* 16, 5 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* NOP (prefetch) */
269 /* 16, 6 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* NOP (prefetch) */
270 /* 16, 7 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* NOP (prefetch) */
274 /* 17, 0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
275 /* 17, 1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
276 /* 17, 2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
277 /* 17, 3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
278 /* 17, 4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
279 /* 17, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
280 /* 17, 6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
281 /* 17, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
285 /* 18, 0 */ { NACLi_386, 1, 1, 0 }, /* pop $Ev */
286 /* 18, 1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
287 /* 18, 2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
288 /* 18, 3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
289 /* 18, 4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
290 /* 18, 5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
291 /* 18, 6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
292 /* 18, 7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
296 /* 19, 0 */ { NACLi_3DNOW, 1, 1, 0 }, /* prefetch exclusive */
297 /* 19, 1 */ { NACLi_3DNOW, 1, 1, 0 }, /* prefetch modified */
298 /* 19, 2 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* [prefetch reserved] */
299 /* 19, 3 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* prefetch modified */
300 /* 19, 4 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* [prefetch reserved] */
301 /* 19, 5 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* [prefetch reserved] */
302 /* 19, 6 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* [prefetch reserved] */
303 /* 19, 7 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* [prefetch reserved] */
308 /* one byte opcode tables */
309 static const struct OpInfo kDecode1ByteOp[NCDTABLESIZE] = {
310 /* 00 */ { NACLi_386L, 1, 1, 0 }, /* add $Eb, $Gb */
311 /* 01 */ { NACLi_386L, 1, 1, 0 }, /* add $Ev, $Gv */
312 /* 02 */ { NACLi_386L, 1, 1, 0 }, /* add $Gb, $Eb */
313 /* 03 */ { NACLi_386L, 1, 1, 0 }, /* add $Gv, $Ev */
314 /* 04 */ { NACLi_386L, 0, 2, 0 }, /* add %al, $Ib */
315 /* 05 */ { NACLi_386L, 0, 6, 0 }, /* add %rax, $Iz */
316 /* 06 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
317 /* 07 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
318 /* 08 */ { NACLi_386L, 1, 1, 0 }, /* or $Eb, $Gb */
319 /* 09 */ { NACLi_386L, 1, 1, 0 }, /* or $Ev, $Gv */
320 /* 0a */ { NACLi_386L, 1, 1, 0 }, /* or $Gb, $Eb */
321 /* 0b */ { NACLi_386L, 1, 1, 0 }, /* or $Gv, $Ev */
322 /* 0c */ { NACLi_386L, 0, 2, 0 }, /* or %al, $Ib */
323 /* 0d */ { NACLi_386L, 0, 6, 0 }, /* or %rax, $Iz */
324 /* 0e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
325 /* 0f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* [two-byte opcode] */
326 /* 10 */ { NACLi_386L, 1, 1, 0 }, /* adc $Eb, $Gb */
327 /* 11 */ { NACLi_386L, 1, 1, 0 }, /* adc $Ev, $Gv */
328 /* 12 */ { NACLi_386L, 1, 1, 0 }, /* adc $Gb, $Eb */
329 /* 13 */ { NACLi_386L, 1, 1, 0 }, /* adc $Gv, $Ev */
330 /* 14 */ { NACLi_386L, 0, 2, 0 }, /* adc %al, $Ib */
331 /* 15 */ { NACLi_386L, 0, 6, 0 }, /* adc %rax, $Iz */
332 /* 16 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
333 /* 17 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
334 /* 18 */ { NACLi_386L, 1, 1, 0 }, /* sbb $Eb, $Gb */
335 /* 19 */ { NACLi_386L, 1, 1, 0 }, /* sbb $Ev, $Gv */
336 /* 1a */ { NACLi_386L, 1, 1, 0 }, /* sbb $Gb, $Eb */
337 /* 1b */ { NACLi_386L, 1, 1, 0 }, /* sbb $Gv, $Ev */
338 /* 1c */ { NACLi_386L, 0, 2, 0 }, /* sbb %al, $Ib */
339 /* 1d */ { NACLi_386L, 0, 6, 0 }, /* sbb %rax, $Iz */
340 /* 1e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
341 /* 1f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
342 /* 20 */ { NACLi_386L, 1, 1, 0 }, /* and $Eb, $Gb */
343 /* 21 */ { NACLi_386L, 1, 1, 0 }, /* and $Ev, $Gv */
344 /* 22 */ { NACLi_386L, 1, 1, 0 }, /* and $Gb, $Eb */
345 /* 23 */ { NACLi_386L, 1, 1, 0 }, /* and $Gv, $Ev */
346 /* 24 */ { NACLi_386L, 0, 2, 0 }, /* and %al, $Ib */
347 /* 25 */ { NACLi_386L, 0, 6, 0 }, /* and %rax, $Iz */
348 /* 26 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [seg %es] */
349 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
350 /* 28 */ { NACLi_386L, 1, 1, 0 }, /* sub $Eb, $Gb */
351 /* 29 */ { NACLi_386L, 1, 1, 0 }, /* sub $Ev, $Gv */
352 /* 2a */ { NACLi_386L, 1, 1, 0 }, /* sub $Gb, $Eb */
353 /* 2b */ { NACLi_386L, 1, 1, 0 }, /* sub $Gv, $Ev */
354 /* 2c */ { NACLi_386L, 0, 2, 0 }, /* sub %al, $Ib */
355 /* 2d */ { NACLi_386L, 0, 6, 0 }, /* sub %rax, $Iz */
356 /* 2e */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [seg %cs] */
357 /* 2f */ { NACLi_ILLEGAL, 0, 1, 0 }, /* das */
358 /* 30 */ { NACLi_386L, 1, 1, 0 }, /* xor $Eb, $Gb */
359 /* 31 */ { NACLi_386L, 1, 1, 0 }, /* xor $Ev, $Gv */
360 /* 32 */ { NACLi_386L, 1, 1, 0 }, /* xor $Gb, $Eb */
361 /* 33 */ { NACLi_386L, 1, 1, 0 }, /* xor $Gv, $Ev */
362 /* 34 */ { NACLi_386L, 0, 2, 0 }, /* xor %al, $Ib */
363 /* 35 */ { NACLi_386L, 0, 6, 0 }, /* xor %rax, $Iz */
364 /* 36 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [seg %ss] */
365 /* 37 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
366 /* 38 */ { NACLi_386, 1, 1, 0 }, /* cmp $Eb, $Gb */
367 /* 39 */ { NACLi_386, 1, 1, 0 }, /* cmp $Ev, $Gv */
368 /* 3a */ { NACLi_386, 1, 1, 0 }, /* cmp $Gb, $Eb */
369 /* 3b */ { NACLi_386, 1, 1, 0 }, /* cmp $Gv, $Ev */
370 /* 3c */ { NACLi_386, 0, 2, 0 }, /* cmp %al, $Ib */
371 /* 3d */ { NACLi_386, 0, 6, 0 }, /* cmp %rax, $Iz */
372 /* 3e */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [seg %ds] */
373 /* 3f */ { NACLi_ILLEGAL, 0, 1, 0 }, /* aas */
374 /* 40 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
375 /* 41 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
376 /* 42 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
377 /* 43 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
378 /* 44 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
379 /* 45 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
380 /* 46 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
381 /* 47 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
382 /* 48 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
383 /* 49 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
384 /* 4a */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
385 /* 4b */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
386 /* 4c */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
387 /* 4d */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
388 /* 4e */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
389 /* 4f */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rex] */
390 /* 50 */ { NACLi_386, 0, 1, 0 }, /* push %rax */
391 /* 51 */ { NACLi_386, 0, 1, 0 }, /* push %rcx */
392 /* 52 */ { NACLi_386, 0, 1, 0 }, /* push %rdx */
393 /* 53 */ { NACLi_386, 0, 1, 0 }, /* push %rbx */
394 /* 54 */ { NACLi_386, 0, 1, 0 }, /* push %rsp */
395 /* 55 */ { NACLi_386, 0, 1, 0 }, /* push %rbp */
396 /* 56 */ { NACLi_386, 0, 1, 0 }, /* push %rsi */
397 /* 57 */ { NACLi_386, 0, 1, 0 }, /* push %rdi */
398 /* 58 */ { NACLi_386, 0, 1, 0 }, /* pop %rax */
399 /* 59 */ { NACLi_386, 0, 1, 0 }, /* pop %rcx */
400 /* 5a */ { NACLi_386, 0, 1, 0 }, /* pop %rdx */
401 /* 5b */ { NACLi_386, 0, 1, 0 }, /* pop %rbx */
402 /* 5c */ { NACLi_386, 0, 1, 0 }, /* pop %rsp */
403 /* 5d */ { NACLi_386, 0, 1, 0 }, /* pop %rbp */
404 /* 5e */ { NACLi_386, 0, 1, 0 }, /* pop %rsi */
405 /* 5f */ { NACLi_386, 0, 1, 0 }, /* pop %rdi */
406 /* 60 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
407 /* 61 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
408 /* 62 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
409 /* 63 */ { NACLi_SYSTEM, 1, 1, 0 }, /* movsxd $Gv, $Ev */
410 /* 64 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [seg fs] */
411 /* 65 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [seg gs] */
412 /* 66 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [data16] */
413 /* 67 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [addr size] */
414 /* 68 */ { NACLi_386, 0, 6, 0 }, /* push $Iz */
415 /* 69 */ { NACLi_386, 1, 6, 0 }, /* imul $Gv, $Ev, $Iz */
416 /* 6a */ { NACLi_386, 0, 2, 0 }, /* push $Ib */
417 /* 6b */ { NACLi_386, 1, 2, 0 }, /* imul $Gv, $Ev, $Ib */
418 /* 6c */ { NACLi_ILLEGAL, 0, 1, 0 }, /* insb $Y, $D */
419 /* 6d */ { NACLi_ILLEGAL, 0, 1, 0 }, /* insw/d $Y, $D */
420 /* 6e */ { NACLi_ILLEGAL, 0, 1, 0 }, /* outsb $D, $X */
421 /* 6f */ { NACLi_ILLEGAL, 0, 1, 0 }, /* outsw/d $D, $X */
422 /* 70 */ { NACLi_JMP8, 0, 2, 0 }, /* jo $Jb */
423 /* 71 */ { NACLi_JMP8, 0, 2, 0 }, /* jno $Jb */
424 /* 72 */ { NACLi_JMP8, 0, 2, 0 }, /* jb $Jb */
425 /* 73 */ { NACLi_JMP8, 0, 2, 0 }, /* jnb $Jb */
426 /* 74 */ { NACLi_JMP8, 0, 2, 0 }, /* jz $Jb */
427 /* 75 */ { NACLi_JMP8, 0, 2, 0 }, /* jnz $Jb */
428 /* 76 */ { NACLi_JMP8, 0, 2, 0 }, /* jbe $Jb */
429 /* 77 */ { NACLi_JMP8, 0, 2, 0 }, /* jnbe $Jb */
430 /* 78 */ { NACLi_JMP8, 0, 2, 0 }, /* js $Jb */
431 /* 79 */ { NACLi_JMP8, 0, 2, 0 }, /* jns $Jb */
432 /* 7a */ { NACLi_JMP8, 0, 2, 0 }, /* jp $Jb */
433 /* 7b */ { NACLi_JMP8, 0, 2, 0 }, /* jnp $Jb */
434 /* 7c */ { NACLi_JMP8, 0, 2, 0 }, /* jl $Jb */
435 /* 7d */ { NACLi_JMP8, 0, 2, 0 }, /* jge $Jb */
436 /* 7e */ { NACLi_JMP8, 0, 2, 0 }, /* jle $Jb */
437 /* 7f */ { NACLi_JMP8, 0, 2, 0 }, /* jg $Jb */
438 /* 80 */ { NACLi_OPINMRM, 1, 2, 1 }, /* $group1 $Eb, $Ib */
439 /* 81 */ { NACLi_OPINMRM, 1, 6, 1 }, /* $group1 $Ev, $Iz */
440 /* 82 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
441 /* 83 */ { NACLi_OPINMRM, 1, 2, 1 }, /* $group1 $Ev, $Ib */
442 /* 84 */ { NACLi_386, 1, 1, 0 }, /* test $E, $G */
443 /* 85 */ { NACLi_386, 1, 1, 0 }, /* test $E, $G */
444 /* 86 */ { NACLi_386L, 1, 1, 0 }, /* xchg $E, $G */
445 /* 87 */ { NACLi_386L, 1, 1, 0 }, /* xchg $E, $G */
446 /* 88 */ { NACLi_386, 1, 1, 0 }, /* mov $Eb, $Gb */
447 /* 89 */ { NACLi_386, 1, 1, 0 }, /* mov $Ev, $Gv */
448 /* 8a */ { NACLi_386, 1, 1, 0 }, /* mov $Gb, $Eb */
449 /* 8b */ { NACLi_386, 1, 1, 0 }, /* mov $Gv, $Ev */
450 /* 8c */ { NACLi_ILLEGAL, 1, 1, 0 }, /* mov $E, $S */
451 /* 8d */ { NACLi_386, 1, 1, 0 }, /* lea $G, $M */
452 /* 8e */ { NACLi_ILLEGAL, 1, 1, 0 }, /* mov $S, $E */
453 /* 8f */ { NACLi_OPINMRM, 1, 1, 18 }, /* $group1a $Ev */
454 /* 90 */ { NACLi_386R, 0, 1, 0 }, /* nop */
455 /* 91 */ { NACLi_386L, 0, 1, 0 }, /* xchg %rax, %rcx */
456 /* 92 */ { NACLi_386L, 0, 1, 0 }, /* xchg %rax, %rdx */
457 /* 93 */ { NACLi_386L, 0, 1, 0 }, /* xchg %rax, %rbx */
458 /* 94 */ { NACLi_386L, 0, 1, 0 }, /* xchg %rax, %rsp */
459 /* 95 */ { NACLi_386L, 0, 1, 0 }, /* xchg %rax, %rbp */
460 /* 96 */ { NACLi_386L, 0, 1, 0 }, /* xchg %rax, %rsi */
461 /* 97 */ { NACLi_386L, 0, 1, 0 }, /* xchg %rax, %rdi */
462 /* 98 */ { NACLi_386, 0, 1, 0 }, /* cbw */
463 /* 99 */ { NACLi_386, 0, 1, 0 }, /* cwd */
464 /* 9a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
465 /* 9b */ { NACLi_X87, 0, 1, 0 }, /* wait */
466 /* 9c */ { NACLi_ILLEGAL, 0, 1, 0 }, /* pushf $F */
467 /* 9d */ { NACLi_ILLEGAL, 0, 1, 0 }, /* popf $F */
468 /* 9e */ { NACLi_386, 0, 1, 0 }, /* sahf */
469 /* 9f */ { NACLi_386, 0, 1, 0 }, /* lahf */
470 /* a0 */ { NACLi_386, 0, 7, 0 }, /* mov %al, $O */
471 /* a1 */ { NACLi_386, 0, 7, 0 }, /* mov %rax, $O */
472 /* a2 */ { NACLi_386, 0, 7, 0 }, /* mov $O, %al */
473 /* a3 */ { NACLi_386, 0, 7, 0 }, /* mov $O, %rax */
474 /* a4 */ { NACLi_386R, 0, 1, 0 }, /* movsb $X, $Y */
475 /* a5 */ { NACLi_386R, 0, 1, 0 }, /* movsw $X, $Y */
476 /* a6 */ { NACLi_386RE, 0, 1, 0 }, /* cmpsb $X, $Y */
477 /* a7 */ { NACLi_386RE, 0, 1, 0 }, /* cmpsw $X, $Y */
478 /* a8 */ { NACLi_386, 0, 2, 0 }, /* test %al, $I */
479 /* a9 */ { NACLi_386, 0, 6, 0 }, /* test %rax, $I */
480 /* aa */ { NACLi_386R, 0, 1, 0 }, /* stosb $Y, %al */
481 /* ab */ { NACLi_386R, 0, 1, 0 }, /* stosw $Y, $eax */
482 /* ac */ { NACLi_ILLEGAL, 0, 1, 0 }, /* lodsb %al, $X */
483 /* ad */ { NACLi_ILLEGAL, 0, 1, 0 }, /* lodsw %rax, $X */
484 /* ae */ { NACLi_386RE, 0, 1, 0 }, /* scasb %al, $X */
485 /* af */ { NACLi_386RE, 0, 1, 0 }, /* scasw %rax, $X */
486 /* b0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
487 /* b1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
488 /* b2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
489 /* b3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
490 /* b4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
491 /* b5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
492 /* b6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
493 /* b7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
494 /* b8 */ { NACLi_386, 0, 11, 0 }, /* mov %eax, $Iv */
495 /* b9 */ { NACLi_386, 0, 11, 0 }, /* mov %ecx, $Iv */
496 /* ba */ { NACLi_386, 0, 11, 0 }, /* mov %edx, $Iv */
497 /* bb */ { NACLi_386, 0, 11, 0 }, /* mov %ebx, $Iv */
498 /* bc */ { NACLi_386, 0, 11, 0 }, /* mov %esp, $Iv */
499 /* bd */ { NACLi_386, 0, 11, 0 }, /* mov %ebp, $Iv */
500 /* be */ { NACLi_386, 0, 11, 0 }, /* mov %esi, $Iv */
501 /* bf */ { NACLi_386, 0, 11, 0 }, /* mov %edi, $Iv */
502 /* c0 */ { NACLi_OPINMRM, 1, 2, 2 }, /* $group2 $Eb, $Ib */
503 /* c1 */ { NACLi_OPINMRM, 1, 2, 2 }, /* $group2 $Ev, $Ib */
504 /* c2 */ { NACLi_RETURN, 0, 3, 0 }, /* ret $Iw */
505 /* c3 */ { NACLi_RETURN, 0, 1, 0 }, /* ret */
506 /* c4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
507 /* c5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
508 /* c6 */ { NACLi_OPINMRM, 1, 2, 11 }, /* $group11 $Eb, $Ib */
509 /* c7 */ { NACLi_OPINMRM, 1, 6, 11 }, /* $group11 $Ev, $Iz */
510 /* c8 */ { NACLi_ILLEGAL, 0, 4, 0 }, /* enter $I, $I */
511 /* c9 */ { NACLi_386, 0, 1, 0 }, /* leave */
512 /* ca */ { NACLi_RETURN, 0, 3, 0 }, /* ret (far) */
513 /* cb */ { NACLi_RETURN, 0, 1, 0 }, /* ret (far) */
514 /* cc */ { NACLi_ILLEGAL, 0, 1, 0 }, /* int3 */
515 /* cd */ { NACLi_ILLEGAL, 0, 2, 0 }, /* int $Iv */
516 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
517 /* cf */ { NACLi_SYSTEM, 0, 1, 0 }, /* iret */
518 /* d0 */ { NACLi_OPINMRM, 1, 1, 2 }, /* $group2 $Eb, 1 */
519 /* d1 */ { NACLi_OPINMRM, 1, 1, 2 }, /* $group2 $Ev, 1 */
520 /* d2 */ { NACLi_OPINMRM, 1, 1, 2 }, /* $group2 $Eb, %cl */
521 /* d3 */ { NACLi_OPINMRM, 1, 1, 2 }, /* $group2 $Ev, %cl */
522 /* d4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
523 /* d5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
524 /* d6 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* salc */
525 /* d7 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* xlat */
526 /* d8 */ { NACLi_X87, 1, 1, 0 }, /* x87 */
527 /* d9 */ { NACLi_X87, 1, 1, 0 }, /* x87 */
528 /* da */ { NACLi_X87, 1, 1, 0 }, /* x87 */
529 /* db */ { NACLi_X87, 1, 1, 0 }, /* x87 */
530 /* dc */ { NACLi_X87, 1, 1, 0 }, /* x87 */
531 /* dd */ { NACLi_X87, 1, 1, 0 }, /* x87 */
532 /* de */ { NACLi_X87, 1, 1, 0 }, /* x87 */
533 /* df */ { NACLi_X87, 1, 1, 0 }, /* x87 */
534 /* e0 */ { NACLi_ILLEGAL, 0, 2, 0 }, /* loopne $Jb */
535 /* e1 */ { NACLi_ILLEGAL, 0, 2, 0 }, /* loope $Jb */
536 /* e2 */ { NACLi_ILLEGAL, 0, 2, 0 }, /* loop $Jb */
537 /* e3 */ { NACLi_ILLEGAL, 0, 2, 0 }, /* jcxz $Jb */
538 /* e4 */ { NACLi_ILLEGAL, 0, 2, 0 }, /* in %al, $I */
539 /* e5 */ { NACLi_ILLEGAL, 0, 2, 0 }, /* in %eax, $I */
540 /* e6 */ { NACLi_ILLEGAL, 0, 2, 0 }, /* out %al, $I */
541 /* e7 */ { NACLi_ILLEGAL, 0, 2, 0 }, /* out %eax, $I */
542 /* e8 */ { NACLi_JMPZ, 0, 6, 0 }, /* call $Jz */
543 /* e9 */ { NACLi_JMPZ, 0, 6, 0 }, /* jmp $Jz */
544 /* ea */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
545 /* eb */ { NACLi_JMP8, 0, 2, 0 }, /* jmp $Jb */
546 /* ec */ { NACLi_ILLEGAL, 0, 1, 0 }, /* in %al, %dx */
547 /* ed */ { NACLi_ILLEGAL, 0, 1, 0 }, /* in %eax, %dx */
548 /* ee */ { NACLi_ILLEGAL, 0, 1, 0 }, /* out %dx, %al */
549 /* ef */ { NACLi_ILLEGAL, 0, 1, 0 }, /* out %dx, %eax */
550 /* f0 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [lock] */
551 /* f1 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* int1 */
552 /* f2 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [repne] */
553 /* f3 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* [rep] */
554 /* f4 */ { NACLi_386, 0, 1, 0 }, /* hlt */
555 /* f5 */ { NACLi_386, 0, 1, 0 }, /* cmc */
556 /* f6 */ { NACLi_OPINMRM, 1, 8, 3 }, /* $group3 $Eb */
557 /* f7 */ { NACLi_OPINMRM, 1, 9, 3 }, /* $group3 $Ev */
558 /* f8 */ { NACLi_386, 0, 1, 0 }, /* clc */
559 /* f9 */ { NACLi_386, 0, 1, 0 }, /* stc */
560 /* fa */ { NACLi_SYSTEM, 0, 1, 0 }, /* cli */
561 /* fb */ { NACLi_SYSTEM, 0, 1, 0 }, /* sti */
562 /* fc */ { NACLi_386, 0, 1, 0 }, /* cld */
563 /* fd */ { NACLi_386, 0, 1, 0 }, /* std */
564 /* fe */ { NACLi_OPINMRM, 1, 1, 4 }, /* $group4 $Eb */
565 /* ff */ { NACLi_OPINMRM, 1, 1, 5 }, /* $group5 $Ev */
569 /* two byte opcode tables */
570 static const struct OpInfo kDecode0FXXOp[NCDTABLESIZE] = {
571 /* 00 */ { NACLi_OPINMRM, 1, 1, 6 }, /* $group6 $Ew */
572 /* 01 */ { NACLi_OPINMRM, 1, 1, 7 }, /* $group7 */
573 /* 02 */ { NACLi_SYSTEM, 1, 1, 0 }, /* lar $G, $E */
574 /* 03 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* lsl $Gv, $Ew */
575 /* 04 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
576 /* 05 */ { NACLi_SYSCALL, 0, 1, 0 }, /* syscall */
577 /* 06 */ { NACLi_SYSTEM, 0, 1, 0 }, /* clts */
578 /* 07 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* sysret */
579 /* 08 */ { NACLi_SYSTEM, 0, 1, 0 }, /* invd */
580 /* 09 */ { NACLi_SYSTEM, 0, 1, 0 }, /* wbinvd */
581 /* 0a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
582 /* 0b */ { NACLi_386, 0, 1, 0 }, /* ud2 */
583 /* 0c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
584 /* 0d */ { NACLi_OPINMRM, 1, 1, 19 }, /* $groupP (prefetch) */
585 /* 0e */ { NACLi_3DNOW, 0, 1, 0 }, /* femms */
586 /* 0f */ { NACLi_3DNOW, 1, 2, 0 }, /* 3DNow */
587 /* 10 */ { NACLi_SSE, 1, 1, 0 }, /* movups $Vps, $Wps */
588 /* 11 */ { NACLi_SSE, 1, 1, 0 }, /* movups $Wps, $Vps */
589 /* 12 */ { NACLi_SSE, 1, 1, 0 }, /* movlps $Vps, $Mq */
590 /* 13 */ { NACLi_SSE, 1, 1, 0 }, /* movlps $Mq, $Vps */
591 /* 14 */ { NACLi_SSE, 1, 1, 0 }, /* unpcklps $Vps, $Wq */
592 /* 15 */ { NACLi_SSE, 1, 1, 0 }, /* unpckhps $Vps, $Wq */
593 /* 16 */ { NACLi_SSE, 1, 1, 0 }, /* movhps $Vps, $Mq */
594 /* 17 */ { NACLi_SSE, 1, 1, 0 }, /* movhps $Mq, $Vps */
595 /* 18 */ { NACLi_OPINMRM, 1, 1, 16 }, /* $group16 */
596 /* 19 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
597 /* 1a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
598 /* 1b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
599 /* 1c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
600 /* 1d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
601 /* 1e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
602 /* 1f */ { NACLi_386, 1, 1, 0 }, /* nop */
603 /* 20 */ { NACLi_SYSTEM, 1, 1, 0 }, /* mov $C, $R */
604 /* 21 */ { NACLi_SYSTEM, 1, 1, 0 }, /* mov $D, $R */
605 /* 22 */ { NACLi_SYSTEM, 1, 1, 0 }, /* mov $R, $C */
606 /* 23 */ { NACLi_SYSTEM, 1, 1, 0 }, /* mov $R, $D */
607 /* 24 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
608 /* 25 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
609 /* 26 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
610 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
611 /* 28 */ { NACLi_SSE, 1, 1, 0 }, /* movaps $Vps, $Wps */
612 /* 29 */ { NACLi_SSE, 1, 1, 0 }, /* movaps $Wps, $Vps */
613 /* 2a */ { NACLi_SSE, 1, 1, 0 }, /* cvtpi2ps $Vps, $Qq */
614 /* 2b */ { NACLi_SSE, 1, 1, 0 }, /* movntps $Mdq, $Vps */
615 /* 2c */ { NACLi_SSE, 1, 1, 0 }, /* cvttps2pi $Pq, $Wps */
616 /* 2d */ { NACLi_SSE, 1, 1, 0 }, /* cvtps2pi $Pq, $Wps */
617 /* 2e */ { NACLi_SSE, 1, 1, 0 }, /* ucomiss $Vss, $Wss */
618 /* 2f */ { NACLi_SSE, 1, 1, 0 }, /* comiss $Vps, $Wps */
619 /* 30 */ { NACLi_RDMSR, 0, 1, 0 }, /* wrmsr */
620 /* 31 */ { NACLi_RDTSC, 0, 1, 0 }, /* rdtsc */
621 /* 32 */ { NACLi_RDMSR, 0, 1, 0 }, /* rdmsr */
622 /* 33 */ { NACLi_SYSTEM, 0, 1, 0 }, /* rdpmc */
623 /* 34 */ { NACLi_SYSENTER, 0, 1, 0 }, /* sysenter */
624 /* 35 */ { NACLi_SYSENTER, 0, 1, 0 }, /* sysexit */
625 /* 36 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
626 /* 37 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* getsec */
627 /* 38 */ { NACLi_3BYTE, 1, 1, 0 }, /* SSSE3, SSE4 */
628 /* 39 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
629 /* 3a */ { NACLi_3BYTE, 1, 2, 0 }, /* SSSE3, SSE4 */
630 /* 3b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
631 /* 3c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
632 /* 3d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
633 /* 3e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
634 /* 3f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
635 /* 40 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovo $Gv, $Ev */
636 /* 41 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovno $Gv, $Ev */
637 /* 42 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovb $Gv, $Ev */
638 /* 43 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnb $Gv, $Ev */
639 /* 44 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovz $Gv, $Ev */
640 /* 45 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnz $Gv, $Ev */
641 /* 46 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovbe $Gv, $Ev */
642 /* 47 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnbe $Gv, $Ev */
643 /* 48 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovs $Gv, $Ev */
644 /* 49 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovns $Gv, $Ev */
645 /* 4a */ { NACLi_CMOV, 1, 1, 0 }, /* cmovp $Gv, $Ev */
646 /* 4b */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnp $Gv, $Ev */
647 /* 4c */ { NACLi_CMOV, 1, 1, 0 }, /* cmovl $Gv, $Ev */
648 /* 4d */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnl $Gv, $Ev */
649 /* 4e */ { NACLi_CMOV, 1, 1, 0 }, /* cmovle $Gv, $Ev */
650 /* 4f */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnle $Gv, $Ev */
651 /* 50 */ { NACLi_SSE, 1, 1, 0 }, /* movmskps $Gd, $VRps */
652 /* 51 */ { NACLi_SSE, 1, 1, 0 }, /* sqrtps $Vps, $Wps */
653 /* 52 */ { NACLi_SSE, 1, 1, 0 }, /* rsqrtps $Vps, $Wps */
654 /* 53 */ { NACLi_SSE, 1, 1, 0 }, /* rcpps $Vps, $Wps */
655 /* 54 */ { NACLi_SSE, 1, 1, 0 }, /* andps $Vps, $Wps */
656 /* 55 */ { NACLi_SSE, 1, 1, 0 }, /* andnps $Vps, $Wps */
657 /* 56 */ { NACLi_SSE, 1, 1, 0 }, /* orps $Vps, $Wps */
658 /* 57 */ { NACLi_SSE, 1, 1, 0 }, /* xorps $Vps, $Wps */
659 /* 58 */ { NACLi_SSE, 1, 1, 0 }, /* addps $Vps, $Wps */
660 /* 59 */ { NACLi_SSE, 1, 1, 0 }, /* mulps $Vps, $Wps */
661 /* 5a */ { NACLi_SSE2, 1, 1, 0 }, /* cvtps2pd $Vpd, $Wps */
662 /* 5b */ { NACLi_SSE2, 1, 1, 0 }, /* cvtdq2ps $Vps, $Wdq */
663 /* 5c */ { NACLi_SSE, 1, 1, 0 }, /* subps $Vps, $Wps */
664 /* 5d */ { NACLi_SSE, 1, 1, 0 }, /* minps $Vps, $Wps */
665 /* 5e */ { NACLi_SSE, 1, 1, 0 }, /* divps $Vps, $Wps */
666 /* 5f */ { NACLi_SSE, 1, 1, 0 }, /* maxps $Vps, $Wps */
667 /* 60 */ { NACLi_MMX, 1, 1, 0 }, /* punpcklbw $Pq, $Qd */
668 /* 61 */ { NACLi_MMX, 1, 1, 0 }, /* punpcklwd $Pq, $Qd */
669 /* 62 */ { NACLi_MMX, 1, 1, 0 }, /* punpckldq $Pq, $Qd */
670 /* 63 */ { NACLi_MMX, 1, 1, 0 }, /* packsswb $Pq, $Qq */
671 /* 64 */ { NACLi_MMX, 1, 1, 0 }, /* pcmpgtb $Pq, $Qq */
672 /* 65 */ { NACLi_MMX, 1, 1, 0 }, /* pcmpgtw $Pq, $Qq */
673 /* 66 */ { NACLi_MMX, 1, 1, 0 }, /* pcmpgtd $Pq, $Qq */
674 /* 67 */ { NACLi_MMX, 1, 1, 0 }, /* packuswb $Pq, $Qq */
675 /* 68 */ { NACLi_MMX, 1, 1, 0 }, /* punpckhbw $Pq, $Qd */
676 /* 69 */ { NACLi_MMX, 1, 1, 0 }, /* punpckhwd $Pq, $Qd */
677 /* 6a */ { NACLi_MMX, 1, 1, 0 }, /* punpckhdq $Pq, $Qd */
678 /* 6b */ { NACLi_MMX, 1, 1, 0 }, /* packssdw $Pq, $Qq */
679 /* 6c */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
680 /* 6d */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
681 /* 6e */ { NACLi_MMX, 1, 1, 0 }, /* movd $Pq, $Ed */
682 /* 6f */ { NACLi_MMX, 1, 1, 0 }, /* movq $Pq, $Qq */
683 /* 70 */ { NACLi_SSE, 1, 2, 0 }, /* pshufw $Pq, $Qq, $Ib */
684 /* 71 */ { NACLi_OPINMRM, 1, 2, 12 }, /* $group12 $PRq, $Ib */
685 /* 72 */ { NACLi_OPINMRM, 1, 2, 13 }, /* $group13 $PRq, $Ib */
686 /* 73 */ { NACLi_OPINMRM, 1, 2, 14 }, /* $group14 $PRq, $Ib */
687 /* 74 */ { NACLi_MMX, 1, 1, 0 }, /* pcmpeqb $Pq, $Qq */
688 /* 75 */ { NACLi_MMX, 1, 1, 0 }, /* pcmpeqw $Pq, $Qq */
689 /* 76 */ { NACLi_MMX, 1, 1, 0 }, /* pcmpeqd $Pq, $Qq */
690 /* 77 */ { NACLi_MMX, 0, 1, 0 }, /* emms */
691 /* 78 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
692 /* 79 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
693 /* 7a */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
694 /* 7b */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
695 /* 7c */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
696 /* 7d */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
697 /* 7e */ { NACLi_MMX, 1, 1, 0 }, /* movd $Ed, $Pd */
698 /* 7f */ { NACLi_MMX, 1, 1, 0 }, /* movq $Qq, $Pq */
699 /* 80 */ { NACLi_JMPZ, 0, 6, 0 }, /* jo $Jz */
700 /* 81 */ { NACLi_JMPZ, 0, 6, 0 }, /* jno $Jz */
701 /* 82 */ { NACLi_JMPZ, 0, 6, 0 }, /* jb $Jz */
702 /* 83 */ { NACLi_JMPZ, 0, 6, 0 }, /* jnb $Jz */
703 /* 84 */ { NACLi_JMPZ, 0, 6, 0 }, /* jz $Jz */
704 /* 85 */ { NACLi_JMPZ, 0, 6, 0 }, /* jnz $Jz */
705 /* 86 */ { NACLi_JMPZ, 0, 6, 0 }, /* jbe $Jz */
706 /* 87 */ { NACLi_JMPZ, 0, 6, 0 }, /* jnbe $Jz */
707 /* 88 */ { NACLi_JMPZ, 0, 6, 0 }, /* js $Jz */
708 /* 89 */ { NACLi_JMPZ, 0, 6, 0 }, /* jns $Jz */
709 /* 8a */ { NACLi_JMPZ, 0, 6, 0 }, /* jp $Jz */
710 /* 8b */ { NACLi_JMPZ, 0, 6, 0 }, /* jnp $Jz */
711 /* 8c */ { NACLi_JMPZ, 0, 6, 0 }, /* jl $Jz */
712 /* 8d */ { NACLi_JMPZ, 0, 6, 0 }, /* jge $Jz */
713 /* 8e */ { NACLi_JMPZ, 0, 6, 0 }, /* jle $Jz */
714 /* 8f */ { NACLi_JMPZ, 0, 6, 0 }, /* jg $Jz */
715 /* 90 */ { NACLi_386, 1, 1, 0 }, /* seto $Eb */
716 /* 91 */ { NACLi_386, 1, 1, 0 }, /* setno $Eb */
717 /* 92 */ { NACLi_386, 1, 1, 0 }, /* setb $Eb */
718 /* 93 */ { NACLi_386, 1, 1, 0 }, /* setnb $Eb */
719 /* 94 */ { NACLi_386, 1, 1, 0 }, /* setz $Eb */
720 /* 95 */ { NACLi_386, 1, 1, 0 }, /* setnz $Eb */
721 /* 96 */ { NACLi_386, 1, 1, 0 }, /* setbe $Eb */
722 /* 97 */ { NACLi_386, 1, 1, 0 }, /* setnbe $Eb */
723 /* 98 */ { NACLi_386, 1, 1, 0 }, /* sets $Eb */
724 /* 99 */ { NACLi_386, 1, 1, 0 }, /* setns $Eb */
725 /* 9a */ { NACLi_386, 1, 1, 0 }, /* setp $Eb */
726 /* 9b */ { NACLi_386, 1, 1, 0 }, /* setnp $Eb */
727 /* 9c */ { NACLi_386, 1, 1, 0 }, /* setl $Eb */
728 /* 9d */ { NACLi_386, 1, 1, 0 }, /* setge $Eb */
729 /* 9e */ { NACLi_386, 1, 1, 0 }, /* setle $Eb */
730 /* 9f */ { NACLi_386, 1, 1, 0 }, /* setg $Eb */
731 /* a0 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* push %fs */
732 /* a1 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* pop %fs */
733 /* a2 */ { NACLi_386, 0, 1, 0 }, /* cpuid */
734 /* a3 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* bt $Ev, $Gv */
735 /* a4 */ { NACLi_386, 1, 2, 0 }, /* shld $Ev, $Gv, $Ib */
736 /* a5 */ { NACLi_386, 1, 1, 0 }, /* shld $Ev, $Gv, %cl */
737 /* a6 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
738 /* a7 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
739 /* a8 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* push %gs */
740 /* a9 */ { NACLi_ILLEGAL, 0, 1, 0 }, /* pop %gs */
741 /* aa */ { NACLi_SYSTEM, 0, 1, 0 }, /* rsm */
742 /* ab */ { NACLi_ILLEGAL, 1, 1, 0 }, /* bts $Ev, $Gv */
743 /* ac */ { NACLi_386, 1, 2, 0 }, /* shrd $Ev, $Gv, $Ib */
744 /* ad */ { NACLi_386, 1, 1, 0 }, /* shrd $Ev, $Gv, %cl */
745 /* ae */ { NACLi_OPINMRM, 1, 1, 15 }, /* $group15 $M */
746 /* af */ { NACLi_386, 1, 1, 0 }, /* imul $Gv, $Ev */
747 /* b0 */ { NACLi_386L, 1, 1, 0 }, /* cmpxchg $E, $G */
748 /* b1 */ { NACLi_386L, 1, 1, 0 }, /* cmpxchg $E, $G */
749 /* b2 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* lss $Mp */
750 /* b3 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* btr $Ev, $Gv */
751 /* b4 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* lfs $Mp */
752 /* b5 */ { NACLi_ILLEGAL, 1, 1, 0 }, /* lgs $Mp */
753 /* b6 */ { NACLi_386, 1, 1, 0 }, /* movzx $Gv, $Eb */
754 /* b7 */ { NACLi_386, 1, 1, 0 }, /* movzx $Gv, $Ew */
755 /* b8 */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
756 /* b9 */ { NACLi_OPINMRM, 1, 1, 0 }, /* $group10 */
757 /* ba */ { NACLi_OPINMRM, 1, 2, 8 }, /* $group8 $Ev, $Ib */
758 /* bb */ { NACLi_ILLEGAL, 1, 1, 0 }, /* btc $Ev, $Gv */
759 /* bc */ { NACLi_386, 1, 1, 0 }, /* bsf $Gv, $Ev */
760 /* bd */ { NACLi_386, 1, 1, 0 }, /* bsr $Gv, $Ev */
761 /* be */ { NACLi_386, 1, 1, 0 }, /* movsx $Gv, $Eb */
762 /* bf */ { NACLi_386, 1, 1, 0 }, /* movsx $Gv, $Ew */
763 /* c0 */ { NACLi_386L, 1, 1, 0 }, /* xadd $E, $G */
764 /* c1 */ { NACLi_386L, 1, 1, 0 }, /* xadd $E, $G */
765 /* c2 */ { NACLi_SSE, 1, 2, 0 }, /* cmpps $V, $W, $I */
766 /* c3 */ { NACLi_SSE2, 1, 1, 0 }, /* movnti $Md, $Gd */
767 /* c4 */ { NACLi_SSE, 1, 2, 0 }, /* pinsrw $Pq, $Ew, $Ib */
768 /* c5 */ { NACLi_SSE, 1, 2, 0 }, /* pextrw $Gd, $PRq, $Ib */
769 /* c6 */ { NACLi_SSE, 1, 2, 0 }, /* shufps $Vps, $Wps, $Ib */
770 /* c7 */ { NACLi_OPINMRM, 1, 1, 9 }, /* $group9 $Mq */
771 /* c8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
772 /* c9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
773 /* ca */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
774 /* cb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
775 /* cc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
776 /* cd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
777 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
778 /* cf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
779 /* d0 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
780 /* d1 */ { NACLi_MMX, 1, 1, 0 }, /* psrlw $Pq, $Qq */
781 /* d2 */ { NACLi_MMX, 1, 1, 0 }, /* psrld $Pq, $Qq */
782 /* d3 */ { NACLi_MMX, 1, 1, 0 }, /* psrlq $Pq, $Qq */
783 /* d4 */ { NACLi_SSE2, 1, 1, 0 }, /* paddq $Pq, $Qq */
784 /* d5 */ { NACLi_MMX, 1, 1, 0 }, /* pmullw $Pq, $Qq */
785 /* d6 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
786 /* d7 */ { NACLi_SSE, 1, 1, 0 }, /* pmovmskb $Gd, $PRq */
787 /* d8 */ { NACLi_MMX, 1, 1, 0 }, /* psubusb $Pq, $Qq */
788 /* d9 */ { NACLi_MMX, 1, 1, 0 }, /* psubusw $Pq, $Qq */
789 /* da */ { NACLi_SSE, 1, 1, 0 }, /* pminub $Pq, $Qq */
790 /* db */ { NACLi_MMX, 1, 1, 0 }, /* pand $Pq, $Qq */
791 /* dc */ { NACLi_MMX, 1, 1, 0 }, /* paddusb $Pq, $Qq */
792 /* dd */ { NACLi_MMX, 1, 1, 0 }, /* paddusw $Pq, $Qq */
793 /* de */ { NACLi_SSE, 1, 1, 0 }, /* pmaxub $Pq, $Qq */
794 /* df */ { NACLi_MMX, 1, 1, 0 }, /* pandn $Pq, $Qq */
795 /* e0 */ { NACLi_SSE, 1, 1, 0 }, /* pavgb $Pq, $Qq */
796 /* e1 */ { NACLi_MMX, 1, 1, 0 }, /* psraw $Pq, $Qq */
797 /* e2 */ { NACLi_MMX, 1, 1, 0 }, /* psrad $Pq, $Qq */
798 /* e3 */ { NACLi_SSE, 1, 1, 0 }, /* pavgw $Pq, $Qq */
799 /* e4 */ { NACLi_SSE, 1, 1, 0 }, /* pmulhuw $Pq, $Qq */
800 /* e5 */ { NACLi_MMX, 1, 1, 0 }, /* pmulhw $Pq, $Qq */
801 /* e6 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
802 /* e7 */ { NACLi_SSE, 1, 1, 0 }, /* movntq $Mq, $Pq */
803 /* e8 */ { NACLi_MMX, 1, 1, 0 }, /* psubsb $Pq, $Qq */
804 /* e9 */ { NACLi_MMX, 1, 1, 0 }, /* psubsw $Pq, $Qq */
805 /* ea */ { NACLi_SSE, 1, 1, 0 }, /* pminsw $Pq, $Qq */
806 /* eb */ { NACLi_MMX, 1, 1, 0 }, /* por $Pq, $Qq */
807 /* ec */ { NACLi_MMX, 1, 1, 0 }, /* paddsb $Pq, $Qq */
808 /* ed */ { NACLi_MMX, 1, 1, 0 }, /* paddsw $Pq, $Qq */
809 /* ee */ { NACLi_SSE, 1, 1, 0 }, /* pmaxsw $Pq, $Qq */
810 /* ef */ { NACLi_MMX, 1, 1, 0 }, /* pxor $Pq, $Qq */
811 /* f0 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
812 /* f1 */ { NACLi_MMX, 1, 1, 0 }, /* psllw $Pq, $Qq */
813 /* f2 */ { NACLi_MMX, 1, 1, 0 }, /* pslld $Pq, $Qq */
814 /* f3 */ { NACLi_MMX, 1, 1, 0 }, /* psllq $Pq, $Qq */
815 /* f4 */ { NACLi_SSE2, 1, 1, 0 }, /* pmuludq $Pq, $Qq */
816 /* f5 */ { NACLi_MMX, 1, 1, 0 }, /* pmaddwd $Pq, $Qq */
817 /* f6 */ { NACLi_SSE, 1, 1, 0 }, /* psadbw $Pq, $Qq */
818 /* f7 */ { NACLi_SSE, 1, 1, 0 }, /* maskmovq $Pq, $PRq */
819 /* f8 */ { NACLi_MMX, 1, 1, 0 }, /* psubb $Pq, $Qq */
820 /* f9 */ { NACLi_MMX, 1, 1, 0 }, /* psubw $Pq, $Qq */
821 /* fa */ { NACLi_MMX, 1, 1, 0 }, /* psubd $Pq, $Qq */
822 /* fb */ { NACLi_SSE2, 1, 1, 0 }, /* psubq $Pq, $Qq */
823 /* fc */ { NACLi_MMX, 1, 1, 0 }, /* paddb $Pq, $Qq */
824 /* fd */ { NACLi_MMX, 1, 1, 0 }, /* paddw $Pq, $Qq */
825 /* fe */ { NACLi_MMX, 1, 1, 0 }, /* paddd $Pq, $Qq */
826 /* ff */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
829 static const struct OpInfo kDecode660FXXOp[NCDTABLESIZE] = {
830 /* 00 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
831 /* 01 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
832 /* 02 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
833 /* 03 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
834 /* 04 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
835 /* 05 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
836 /* 06 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
837 /* 07 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
838 /* 08 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
839 /* 09 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
840 /* 0a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
841 /* 0b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
842 /* 0c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
843 /* 0d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
844 /* 0e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
845 /* 0f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
846 /* 10 */ { NACLi_SSE2, 1, 1, 0 }, /* movupd $Vpd, $Wpd */
847 /* 11 */ { NACLi_SSE2, 1, 1, 0 }, /* movupd $Wpd, $Vpd */
848 /* 12 */ { NACLi_SSE2, 1, 1, 0 }, /* movlpd $Vps, $Mq */
849 /* 13 */ { NACLi_SSE2, 1, 1, 0 }, /* movlpd $Mq, $Vsd */
850 /* 14 */ { NACLi_SSE2, 1, 1, 0 }, /* unpcklpd $Vpd, $Wq */
851 /* 15 */ { NACLi_SSE2, 1, 1, 0 }, /* unpckhpd $Vpd, $Wq */
852 /* 16 */ { NACLi_SSE2, 1, 1, 0 }, /* movhpd $Vsd, $Mq */
853 /* 17 */ { NACLi_SSE2, 1, 1, 0 }, /* movhpd $Mq, $Vpd */
854 /* 18 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
855 /* 19 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
856 /* 1a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
857 /* 1b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
858 /* 1c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
859 /* 1d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
860 /* 1e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
861 /* 1f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
862 /* 20 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
863 /* 21 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
864 /* 22 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
865 /* 23 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
866 /* 24 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
867 /* 25 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
868 /* 26 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
869 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
870 /* 28 */ { NACLi_SSE2, 1, 1, 0 }, /* movapd $Vpd, $Wpd */
871 /* 29 */ { NACLi_SSE2, 1, 1, 0 }, /* movapd $Wpd, $Vpd */
872 /* 2a */ { NACLi_SSE2, 1, 1, 0 }, /* cvtpi2pd $Vpd $Qq */
873 /* 2b */ { NACLi_SSE2, 1, 1, 0 }, /* movntpd $Mdq, $Vpd */
874 /* 2c */ { NACLi_SSE2, 1, 1, 0 }, /* cvttpd2pi $Pq, $Wpd */
875 /* 2d */ { NACLi_SSE2, 1, 1, 0 }, /* cvtpd2pi $Pq, $Wpd */
876 /* 2e */ { NACLi_SSE2, 1, 1, 0 }, /* ucomisd $Vps, $Wps */
877 /* 2f */ { NACLi_SSE2, 1, 1, 0 }, /* comisd $Vpd, $Wsd */
878 /* 30 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
879 /* 31 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
880 /* 32 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
881 /* 33 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
882 /* 34 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
883 /* 35 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
884 /* 36 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
885 /* 37 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
886 /* 38 */ { NACLi_3BYTE, 1, 1, 0 }, /* SSE4 */
887 /* 39 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
888 /* 3a */ { NACLi_3BYTE, 1, 2, 0 }, /* SSE4 */
889 /* 3b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
890 /* 3c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
891 /* 3d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
892 /* 3e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
893 /* 3f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
894 /* 40 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovo $Gv, $Ev */
895 /* 41 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovno $Gv, $Ev */
896 /* 42 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovb $Gv, $Ev */
897 /* 43 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnb $Gv, $Ev */
898 /* 44 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovz $Gv, $Ev */
899 /* 45 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnz $Gv, $Ev */
900 /* 46 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovbe $Gv, $Ev */
901 /* 47 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnbe $Gv, $Ev */
902 /* 48 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovs $Gv, $Ev */
903 /* 49 */ { NACLi_CMOV, 1, 1, 0 }, /* cmovns $Gv, $Ev */
904 /* 4a */ { NACLi_CMOV, 1, 1, 0 }, /* cmovp $Gv, $Ev */
905 /* 4b */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnp $Gv, $Ev */
906 /* 4c */ { NACLi_CMOV, 1, 1, 0 }, /* cmovl $Gv, $Ev */
907 /* 4d */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnl $Gv, $Ev */
908 /* 4e */ { NACLi_CMOV, 1, 1, 0 }, /* cmovle $Gv, $Ev */
909 /* 4f */ { NACLi_CMOV, 1, 1, 0 }, /* cmovnle $Gv, $Ev */
910 /* 50 */ { NACLi_SSE2, 1, 1, 0 }, /* movmskpd $Gd, $VRpd */
911 /* 51 */ { NACLi_SSE2, 1, 1, 0 }, /* sqrtpd $Vpd, $Wpd */
912 /* 52 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
913 /* 53 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
914 /* 54 */ { NACLi_SSE2, 1, 1, 0 }, /* andpd $Vpd, $Wpd */
915 /* 55 */ { NACLi_SSE2, 1, 1, 0 }, /* andnpd $Vpd, $Wpd */
916 /* 56 */ { NACLi_SSE2, 1, 1, 0 }, /* orpd $Vpd, $Wpd */
917 /* 57 */ { NACLi_SSE2, 1, 1, 0 }, /* xorpd $Vpd, $Wpd */
918 /* 58 */ { NACLi_SSE2, 1, 1, 0 }, /* addpd $Vpd, $Wpd */
919 /* 59 */ { NACLi_SSE2, 1, 1, 0 }, /* mulpd $Vpd, $Wpd */
920 /* 5a */ { NACLi_SSE2, 1, 1, 0 }, /* cvtpd2ps $Vps, $Wpd */
921 /* 5b */ { NACLi_SSE2, 1, 1, 0 }, /* cvtps2dq $Vdq, $Wps */
922 /* 5c */ { NACLi_SSE2, 1, 1, 0 }, /* subpd $Vpd, $Wpd */
923 /* 5d */ { NACLi_SSE2, 1, 1, 0 }, /* minpd $Vpd, $Wpd */
924 /* 5e */ { NACLi_SSE2, 1, 1, 0 }, /* divpd $Vpd, $Wpd */
925 /* 5f */ { NACLi_SSE2, 1, 1, 0 }, /* maxpd $Vpd, $Wpd */
926 /* 60 */ { NACLi_SSE2, 1, 1, 0 }, /* punpcklbw $Vdq, $Wq */
927 /* 61 */ { NACLi_SSE2, 1, 1, 0 }, /* punpcklwd $Vdq, $Wq */
928 /* 62 */ { NACLi_SSE2, 1, 1, 0 }, /* punpckldq $Vdq, $Wq */
929 /* 63 */ { NACLi_SSE2, 1, 1, 0 }, /* packsswb $Vdq, $Wdq */
930 /* 64 */ { NACLi_SSE2, 1, 1, 0 }, /* pcmpgtb $Vdq, $Wdq */
931 /* 65 */ { NACLi_SSE2, 1, 1, 0 }, /* pcmpgtw $Vdq, $Wdq */
932 /* 66 */ { NACLi_SSE2, 1, 1, 0 }, /* pcmpgtd $Vdq, $Wdq */
933 /* 67 */ { NACLi_SSE2, 1, 1, 0 }, /* packuswb $Vdq, $Wdq */
934 /* 68 */ { NACLi_SSE2, 1, 1, 0 }, /* punpckhbw $Vdq, $Wq */
935 /* 69 */ { NACLi_SSE2, 1, 1, 0 }, /* punpckhwd $Vdq, $Wq */
936 /* 6a */ { NACLi_SSE2, 1, 1, 0 }, /* punpckhdq $Vdq, $Wq */
937 /* 6b */ { NACLi_SSE2, 1, 1, 0 }, /* packssdw $Vdq, $Wdq */
938 /* 6c */ { NACLi_SSE2, 1, 1, 0 }, /* punpcklqdq $Vdq, $Wq */
939 /* 6d */ { NACLi_SSE2, 1, 1, 0 }, /* punpckhqdq $Vdq, $Wq */
940 /* 6e */ { NACLi_SSE2, 1, 1, 0 }, /* movd $Vdq, $Edq */
941 /* 6f */ { NACLi_SSE2, 1, 1, 0 }, /* movdqa $Vdq, $Wdq */
942 /* 70 */ { NACLi_SSE2, 1, 2, 0 }, /* pshufd $Vdq, $Wdq, $Ib */
943 /* 71 */ { NACLi_OPINMRM, 1, 2, 12 }, /* $group12 $VRdq, $Ib */
944 /* 72 */ { NACLi_OPINMRM, 1, 2, 13 }, /* $group13 $VRdq, $Ib */
945 /* 73 */ { NACLi_OPINMRM, 1, 2, 14 }, /* $group14 $VRdq, $Ib */
946 /* 74 */ { NACLi_SSE2, 1, 1, 0 }, /* pcmpeqb $Vdq, $Wdq */
947 /* 75 */ { NACLi_SSE2, 1, 1, 0 }, /* pcmpeqw $Vdq, $Wdq */
948 /* 76 */ { NACLi_SSE2, 1, 1, 0 }, /* pcmpeqd $Vdq, $Wdq */
949 /* 77 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
950 /* 78 */ { NACLi_OPINMRM, 1, 2, 17 }, /* $group17 $Vdq, $Ib, $Ib */
951 /* 79 */ { NACLi_SSE4A, 1, 1, 0 }, /* extrq $Vdq, $VRq */
952 /* 7a */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
953 /* 7b */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
954 /* 7c */ { NACLi_SSE3, 1, 1, 0 }, /* haddpd $Vpd, $Wpd */
955 /* 7d */ { NACLi_SSE3, 1, 1, 0 }, /* hsubpd $Vpd, $Wpd */
956 /* 7e */ { NACLi_SSE2, 1, 1, 0 }, /* movd $Ed, $Vd */
957 /* 7f */ { NACLi_SSE2, 1, 1, 0 }, /* movdqa $Wdq, $Vdq */
958 /* 80 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
959 /* 81 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
960 /* 82 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
961 /* 83 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
962 /* 84 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
963 /* 85 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
964 /* 86 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
965 /* 87 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
966 /* 88 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
967 /* 89 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
968 /* 8a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
969 /* 8b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
970 /* 8c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
971 /* 8d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
972 /* 8e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
973 /* 8f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
974 /* 90 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
975 /* 91 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
976 /* 92 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
977 /* 93 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
978 /* 94 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
979 /* 95 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
980 /* 96 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
981 /* 97 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
982 /* 98 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
983 /* 99 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
984 /* 9a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
985 /* 9b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
986 /* 9c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
987 /* 9d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
988 /* 9e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
989 /* 9f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
990 /* a0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
991 /* a1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
992 /* a2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
993 /* a3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
994 /* a4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
995 /* a5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
996 /* a6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
997 /* a7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
998 /* a8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
999 /* a9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1000 /* aa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1001 /* ab */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1002 /* ac */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1003 /* ad */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1004 /* ae */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1005 /* af */ { NACLi_386, 1, 1, 0 }, /* imul $Gv, $Ev */
1006 /* b0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1007 /* b1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1008 /* b2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1009 /* b3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1010 /* b4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1011 /* b5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1012 /* b6 */ { NACLi_386, 1, 1, 0 }, /* movzx $Gv, $Eb */
1013 /* b7 */ { NACLi_386, 1, 1, 0 }, /* movzx $Gv, $Ew */
1014 /* b8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1015 /* b9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1016 /* ba */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1017 /* bb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1018 /* bc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1019 /* bd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1020 /* be */ { NACLi_386, 1, 1, 0 }, /* movsx $Gv, $Eb */
1021 /* bf */ { NACLi_386, 1, 1, 0 }, /* movsx $Gv, $Ew */
1022 /* c0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1023 /* c1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1024 /* c2 */ { NACLi_SSE2, 1, 2, 0 }, /* cmppd $V, $W, $I */
1025 /* c3 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1026 /* c4 */ { NACLi_SSE2, 1, 2, 0 }, /* pinsrw $Vdq, $Ew, $Ib */
1027 /* c5 */ { NACLi_SSE2, 1, 2, 0 }, /* pextrw $Gd, $VRdq, $Ib */
1028 /* c6 */ { NACLi_SSE2, 1, 2, 0 }, /* shufpd $Vpd, $Wpd, $Ib */
1029 /* c7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1030 /* c8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1031 /* c9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1032 /* ca */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1033 /* cb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1034 /* cc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1035 /* cd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1036 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1037 /* cf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1038 /* d0 */ { NACLi_SSE3, 1, 1, 0 }, /* addsubpd $Vpd, $Wpd */
1039 /* d1 */ { NACLi_SSE2, 1, 1, 0 }, /* psrlw $Vdq, $Wdq */
1040 /* d2 */ { NACLi_SSE2, 1, 1, 0 }, /* psrld $Vdq, $Wdq */
1041 /* d3 */ { NACLi_SSE2, 1, 1, 0 }, /* psrlq $Vdq, $Wdq */
1042 /* d4 */ { NACLi_SSE2, 1, 1, 0 }, /* paddq $Vdq, $Wdq */
1043 /* d5 */ { NACLi_SSE2, 1, 1, 0 }, /* pmullw $Vdq, $Wdq */
1044 /* d6 */ { NACLi_SSE2, 1, 1, 0 }, /* movq $Wq, $Vq */
1045 /* d7 */ { NACLi_SSE2, 1, 1, 0 }, /* pmovmskb $Gd, $VRdq */
1046 /* d8 */ { NACLi_SSE2, 1, 1, 0 }, /* psubusb $Vdq, $Wdq */
1047 /* d9 */ { NACLi_SSE2, 1, 1, 0 }, /* psubusw $Vdq, $Wdq */
1048 /* da */ { NACLi_SSE2, 1, 1, 0 }, /* pminub $Vdq, $Wdq */
1049 /* db */ { NACLi_SSE2, 1, 1, 0 }, /* pand $Vdq, $Wdq */
1050 /* dc */ { NACLi_SSE2, 1, 1, 0 }, /* paddusb $Vdq, $Wdq */
1051 /* dd */ { NACLi_SSE2, 1, 1, 0 }, /* paddusw $Vdq, $Wdq */
1052 /* de */ { NACLi_SSE2, 1, 1, 0 }, /* pmaxub $Vdq, $Wdq */
1053 /* df */ { NACLi_SSE2, 1, 1, 0 }, /* pandn $Vdq, $Wdq */
1054 /* e0 */ { NACLi_SSE2, 1, 1, 0 }, /* pavgb $Vdq, $Wdq */
1055 /* e1 */ { NACLi_SSE2, 1, 1, 0 }, /* psraw $Vdq, $Wdq */
1056 /* e2 */ { NACLi_SSE2, 1, 1, 0 }, /* psrad $Vdq, $Wdq */
1057 /* e3 */ { NACLi_SSE2, 1, 1, 0 }, /* pavgw $Vdq, $Wdq */
1058 /* e4 */ { NACLi_SSE2, 1, 1, 0 }, /* pmulhuw $Vdq, $Wdq */
1059 /* e5 */ { NACLi_SSE2, 1, 1, 0 }, /* pmulhw $Vdq, $Wdq */
1060 /* e6 */ { NACLi_SSE2, 1, 1, 0 }, /* cvttpd2dq $Vq, $Wpd */
1061 /* e7 */ { NACLi_SSE2, 1, 1, 0 }, /* movntdq $Mdq, $Vdq */
1062 /* e8 */ { NACLi_SSE2, 1, 1, 0 }, /* psubsb $Vdq, $Wdq */
1063 /* e9 */ { NACLi_SSE2, 1, 1, 0 }, /* psubsw $Vdq, $Wdq */
1064 /* ea */ { NACLi_SSE2, 1, 1, 0 }, /* pminsw $Vdq, $Wdq */
1065 /* eb */ { NACLi_SSE2, 1, 1, 0 }, /* por $Vdq, $Wdq */
1066 /* ec */ { NACLi_SSE2, 1, 1, 0 }, /* paddsb $Vdq, $Wdq */
1067 /* ed */ { NACLi_SSE2, 1, 1, 0 }, /* paddsw $Vdq, $Wdq */
1068 /* ee */ { NACLi_SSE2, 1, 1, 0 }, /* pmaxsw $Vdq, $Wdq */
1069 /* ef */ { NACLi_SSE2, 1, 1, 0 }, /* pxor $Vdq, $Wdq */
1070 /* f0 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1071 /* f1 */ { NACLi_SSE2, 1, 1, 0 }, /* psllw $Vdq, $Wdq */
1072 /* f2 */ { NACLi_SSE2, 1, 1, 0 }, /* pslld $Vdq, $Wdq */
1073 /* f3 */ { NACLi_SSE2, 1, 1, 0 }, /* psllq $Vdq, $Wdq */
1074 /* f4 */ { NACLi_SSE2, 1, 1, 0 }, /* pmuludq $Vdq, $Wdq */
1075 /* f5 */ { NACLi_SSE2, 1, 1, 0 }, /* pmaddwd $Vdq, $Wdq */
1076 /* f6 */ { NACLi_SSE2, 1, 1, 0 }, /* psadbw $Vdq, $Wdq */
1077 /* f7 */ { NACLi_SSE2, 1, 1, 0 }, /* maskmovdqu $Vdq, $VRdq */
1078 /* f8 */ { NACLi_SSE2, 1, 1, 0 }, /* psubb $Vdq, $Wdq */
1079 /* f9 */ { NACLi_SSE2, 1, 1, 0 }, /* psubw $Vdq, $Wdq */
1080 /* fa */ { NACLi_SSE2, 1, 1, 0 }, /* psubd $Vdq, $Wdq */
1081 /* fb */ { NACLi_SSE2, 1, 1, 0 }, /* psubq $Vdq, $Wdq */
1082 /* fc */ { NACLi_SSE2, 1, 1, 0 }, /* paddb $Vdq, $Wdq */
1083 /* fd */ { NACLi_SSE2, 1, 1, 0 }, /* paddw $Vdq, $Wdq */
1084 /* fe */ { NACLi_SSE2, 1, 1, 0 }, /* paddd $Vdq, $Wdq */
1085 /* ff */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1088 static const struct OpInfo kDecodeF20FXXOp[NCDTABLESIZE] = {
1089 /* 00 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1090 /* 01 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1091 /* 02 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1092 /* 03 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1093 /* 04 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1094 /* 05 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1095 /* 06 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1096 /* 07 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1097 /* 08 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1098 /* 09 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1099 /* 0a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1100 /* 0b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1101 /* 0c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1102 /* 0d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1103 /* 0e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1104 /* 0f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1105 /* 10 */ { NACLi_SSE2, 1, 1, 0 }, /* movsd $Vsd, $Wsd */
1106 /* 11 */ { NACLi_SSE2, 1, 1, 0 }, /* movsd $Wsd, $Vsd */
1107 /* 12 */ { NACLi_SSE3, 1, 1, 0 }, /* movddup $Vpd, $Wsd */
1108 /* 13 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1109 /* 14 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1110 /* 15 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1111 /* 16 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1112 /* 17 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1113 /* 18 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1114 /* 19 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1115 /* 1a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1116 /* 1b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1117 /* 1c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1118 /* 1d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1119 /* 1e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1120 /* 1f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1121 /* 20 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1122 /* 21 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1123 /* 22 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1124 /* 23 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1125 /* 24 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1126 /* 25 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1127 /* 26 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1128 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1129 /* 28 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1130 /* 29 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1131 /* 2a */ { NACLi_SSE2, 1, 1, 0 }, /* cvtsi2sd $Vsd, $Ed */
1132 /* 2b */ { NACLi_SSE4A, 1, 1, 0 }, /* movntsd $Mq, $Vsd */
1133 /* 2c */ { NACLi_SSE2, 1, 1, 0 }, /* cvttsd2si $Gd, $Wsd */
1134 /* 2d */ { NACLi_SSE2, 1, 1, 0 }, /* cvtsd2si $Gd, $Wsd */
1135 /* 2e */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1136 /* 2f */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1137 /* 30 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1138 /* 31 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1139 /* 32 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1140 /* 33 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1141 /* 34 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1142 /* 35 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1143 /* 36 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1144 /* 37 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1145 /* 38 */ { NACLi_3BYTE, 0, 1, 0 }, /* SSE4 */
1146 /* 39 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1147 /* 3a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1148 /* 3b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1149 /* 3c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1150 /* 3d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1151 /* 3e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1152 /* 3f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1153 /* 40 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1154 /* 41 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1155 /* 42 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1156 /* 43 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1157 /* 44 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1158 /* 45 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1159 /* 46 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1160 /* 47 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1161 /* 48 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1162 /* 49 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1163 /* 4a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1164 /* 4b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1165 /* 4c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1166 /* 4d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1167 /* 4e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1168 /* 4f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1169 /* 50 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1170 /* 51 */ { NACLi_SSE2, 1, 1, 0 }, /* sqrtsd $Vsd, $Wsd */
1171 /* 52 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1172 /* 53 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1173 /* 54 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1174 /* 55 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1175 /* 56 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1176 /* 57 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1177 /* 58 */ { NACLi_SSE2, 1, 1, 0 }, /* addsd $Vsd, $Wsd */
1178 /* 59 */ { NACLi_SSE2, 1, 1, 0 }, /* mulsd $Vsd, $Wsd */
1179 /* 5a */ { NACLi_SSE2, 1, 1, 0 }, /* cvtsd2ss $Vss, $Wsd */
1180 /* 5b */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1181 /* 5c */ { NACLi_SSE2, 1, 1, 0 }, /* subsd $Vsd, $Wsd */
1182 /* 5d */ { NACLi_SSE2, 1, 1, 0 }, /* minsd $Vsd, $Wsd */
1183 /* 5e */ { NACLi_SSE2, 1, 1, 0 }, /* divsd $Vsd, $Wsd */
1184 /* 5f */ { NACLi_SSE2, 1, 1, 0 }, /* maxsd $Vsd, $Wsd */
1185 /* 60 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1186 /* 61 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1187 /* 62 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1188 /* 63 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1189 /* 64 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1190 /* 65 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1191 /* 66 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1192 /* 67 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1193 /* 68 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1194 /* 69 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1195 /* 6a */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1196 /* 6b */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1197 /* 6c */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1198 /* 6d */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1199 /* 6e */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1200 /* 6f */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1201 /* 70 */ { NACLi_SSE2, 1, 2, 0 }, /* pshuflw $Vq, $Wq, $Ib */
1202 /* 71 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1203 /* 72 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1204 /* 73 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1205 /* 74 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1206 /* 75 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1207 /* 76 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1208 /* 77 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1209 /* 78 */ { NACLi_SSE4A, 1, 3, 0 }, /* insertq $Vdq, $VRq, $Ib, $Ib */
1210 /* 79 */ { NACLi_SSE4A, 1, 1, 0 }, /* insertq $Vdq, $VRdq */
1211 /* 7a */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1212 /* 7b */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1213 /* 7c */ { NACLi_SSE3, 1, 1, 0 }, /* haddps $Vps, $Wps */
1214 /* 7d */ { NACLi_SSE3, 1, 1, 0 }, /* hsubps $Vps, $Wps */
1215 /* 7e */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1216 /* 7f */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1217 /* 80 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1218 /* 81 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1219 /* 82 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1220 /* 83 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1221 /* 84 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1222 /* 85 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1223 /* 86 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1224 /* 87 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1225 /* 88 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1226 /* 89 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1227 /* 8a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1228 /* 8b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1229 /* 8c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1230 /* 8d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1231 /* 8e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1232 /* 8f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1233 /* 90 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1234 /* 91 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1235 /* 92 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1236 /* 93 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1237 /* 94 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1238 /* 95 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1239 /* 96 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1240 /* 97 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1241 /* 98 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1242 /* 99 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1243 /* 9a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1244 /* 9b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1245 /* 9c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1246 /* 9d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1247 /* 9e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1248 /* 9f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1249 /* a0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1250 /* a1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1251 /* a2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1252 /* a3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1253 /* a4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1254 /* a5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1255 /* a6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1256 /* a7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1257 /* a8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1258 /* a9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1259 /* aa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1260 /* ab */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1261 /* ac */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1262 /* ad */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1263 /* ae */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1264 /* af */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1265 /* b0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1266 /* b1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1267 /* b2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1268 /* b3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1269 /* b4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1270 /* b5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1271 /* b6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1272 /* b7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1273 /* b8 */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
1274 /* b9 */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
1275 /* ba */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
1276 /* bb */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
1277 /* bc */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
1278 /* bd */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
1279 /* be */ { NACLi_INVALID, 1, 1, 0 }, /* reserved */
1280 /* bf */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
1281 /* c0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1282 /* c1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1283 /* c2 */ { NACLi_SSE2, 1, 2, 0 }, /* cmpsd $V, $W, $I */
1284 /* c3 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1285 /* c4 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1286 /* c5 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1287 /* c6 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1288 /* c7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1289 /* c8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1290 /* c9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1291 /* ca */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1292 /* cb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1293 /* cc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1294 /* cd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1295 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1296 /* cf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1297 /* d0 */ { NACLi_SSE3, 1, 1, 0 }, /* addsubps $Vps, $Wps */
1298 /* d1 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1299 /* d2 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1300 /* d3 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1301 /* d4 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1302 /* d5 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1303 /* d6 */ { NACLi_SSE2, 1, 1, 0 }, /* movdq2q $Pq, $VRq */
1304 /* d7 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1305 /* d8 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1306 /* d9 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1307 /* da */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1308 /* db */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1309 /* dc */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1310 /* dd */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1311 /* de */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1312 /* df */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1313 /* e0 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1314 /* e1 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1315 /* e2 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1316 /* e3 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1317 /* e4 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1318 /* e5 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1319 /* e6 */ { NACLi_SSE2, 1, 1, 0 }, /* cvtpd2dq $Vq, $Wpd */
1320 /* e7 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1321 /* e8 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1322 /* e9 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1323 /* ea */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1324 /* eb */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1325 /* ec */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1326 /* ed */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1327 /* ee */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1328 /* ef */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1329 /* f0 */ { NACLi_SSE3, 1, 1, 0 }, /* lddqu $Vpd, $Mdq */
1330 /* f1 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1331 /* f2 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1332 /* f3 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1333 /* f4 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1334 /* f5 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1335 /* f6 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1336 /* f7 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1337 /* f8 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1338 /* f9 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1339 /* fa */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1340 /* fb */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1341 /* fc */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1342 /* fd */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1343 /* fe */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1344 /* ff */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1347 static const struct OpInfo kDecodeF30FXXOp[NCDTABLESIZE] = {
1348 /* 00 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1349 /* 01 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1350 /* 02 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1351 /* 03 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1352 /* 04 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1353 /* 05 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1354 /* 06 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1355 /* 07 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1356 /* 08 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1357 /* 09 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1358 /* 0a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1359 /* 0b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1360 /* 0c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1361 /* 0d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1362 /* 0e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1363 /* 0f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1364 /* 10 */ { NACLi_SSE, 1, 1, 0 }, /* movss $Vss, $Wss */
1365 /* 11 */ { NACLi_SSE, 1, 1, 0 }, /* movss $Wss, $Vss */
1366 /* 12 */ { NACLi_SSE3, 1, 1, 0 }, /* movsldup $Vps, $Wps */
1367 /* 13 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1368 /* 14 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1369 /* 15 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1370 /* 16 */ { NACLi_SSE3, 1, 1, 0 }, /* movshdup $Vps, $Wps */
1371 /* 17 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1372 /* 18 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1373 /* 19 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1374 /* 1a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1375 /* 1b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1376 /* 1c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1377 /* 1d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1378 /* 1e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1379 /* 1f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1380 /* 20 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1381 /* 21 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1382 /* 22 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1383 /* 23 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1384 /* 24 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1385 /* 25 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1386 /* 26 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1387 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1388 /* 28 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1389 /* 29 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1390 /* 2a */ { NACLi_SSE, 1, 1, 0 }, /* cvtsi2ss $Vss, $Ed */
1391 /* 2b */ { NACLi_SSE4A, 1, 1, 0 }, /* movntss $Md, $Vss */
1392 /* 2c */ { NACLi_SSE, 1, 1, 0 }, /* cvttss2si $Gd, $Wss */
1393 /* 2d */ { NACLi_SSE, 1, 1, 0 }, /* cvtss2si $Gd, $Wss */
1394 /* 2e */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1395 /* 2f */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1396 /* 30 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1397 /* 31 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1398 /* 32 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1399 /* 33 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1400 /* 34 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1401 /* 35 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1402 /* 36 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1403 /* 37 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1404 /* 38 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1405 /* 39 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1406 /* 3a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1407 /* 3b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1408 /* 3c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1409 /* 3d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1410 /* 3e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1411 /* 3f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1412 /* 40 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1413 /* 41 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1414 /* 42 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1415 /* 43 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1416 /* 44 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1417 /* 45 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1418 /* 46 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1419 /* 47 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1420 /* 48 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1421 /* 49 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1422 /* 4a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1423 /* 4b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1424 /* 4c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1425 /* 4d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1426 /* 4e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1427 /* 4f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1428 /* 50 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1429 /* 51 */ { NACLi_SSE, 1, 1, 0 }, /* sqrtss $Vss, $Wss */
1430 /* 52 */ { NACLi_SSE, 1, 1, 0 }, /* rsqrtss $Vss, $Wss */
1431 /* 53 */ { NACLi_SSE, 1, 1, 0 }, /* rcpss $Vss, $Wss */
1432 /* 54 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1433 /* 55 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1434 /* 56 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
1435 /* 57 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1436 /* 58 */ { NACLi_SSE, 1, 1, 0 }, /* addss $Vss, $Wss */
1437 /* 59 */ { NACLi_SSE, 1, 1, 0 }, /* mulss $Vss, $Wss */
1438 /* 5a */ { NACLi_SSE2, 1, 1, 0 }, /* cvtss2sd $Vsd, $Wss */
1439 /* 5b */ { NACLi_SSE2, 1, 1, 0 }, /* cvttps2dq $Vdq, $Wps */
1440 /* 5c */ { NACLi_SSE, 1, 1, 0 }, /* subss $Vss, $Wss */
1441 /* 5d */ { NACLi_SSE, 1, 1, 0 }, /* minss $Vss, $Wss */
1442 /* 5e */ { NACLi_SSE, 1, 1, 0 }, /* divss $Vss, $Wss */
1443 /* 5f */ { NACLi_SSE, 1, 1, 0 }, /* maxss $Vss, $Wss */
1444 /* 60 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1445 /* 61 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1446 /* 62 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1447 /* 63 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1448 /* 64 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1449 /* 65 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1450 /* 66 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1451 /* 67 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1452 /* 68 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1453 /* 69 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1454 /* 6a */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1455 /* 6b */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1456 /* 6c */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1457 /* 6d */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1458 /* 6e */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1459 /* 6f */ { NACLi_SSE2, 1, 1, 0 }, /* movdqu $Vdq, $Wdq */
1460 /* 70 */ { NACLi_SSE2, 1, 2, 0 }, /* pshufhw $Vq, $Wq, $Ib */
1461 /* 71 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1462 /* 72 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1463 /* 73 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1464 /* 74 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1465 /* 75 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1466 /* 76 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
1467 /* 77 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1468 /* 78 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1469 /* 79 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1470 /* 7a */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1471 /* 7b */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1472 /* 7c */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1473 /* 7d */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1474 /* 7e */ { NACLi_SSE2, 1, 1, 0 }, /* movq $Vq, $Wq */
1475 /* 7f */ { NACLi_SSE2, 1, 1, 0 }, /* movdqu $Wdq, $Vdq */
1476 /* 80 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1477 /* 81 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1478 /* 82 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1479 /* 83 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1480 /* 84 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1481 /* 85 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1482 /* 86 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1483 /* 87 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1484 /* 88 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1485 /* 89 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1486 /* 8a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1487 /* 8b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1488 /* 8c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1489 /* 8d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1490 /* 8e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1491 /* 8f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1492 /* 90 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1493 /* 91 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1494 /* 92 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1495 /* 93 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1496 /* 94 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1497 /* 95 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1498 /* 96 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1499 /* 97 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1500 /* 98 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1501 /* 99 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1502 /* 9a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1503 /* 9b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1504 /* 9c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1505 /* 9d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1506 /* 9e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1507 /* 9f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1508 /* a0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1509 /* a1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1510 /* a2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1511 /* a3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1512 /* a4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1513 /* a5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1514 /* a6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1515 /* a7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1516 /* a8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1517 /* a9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1518 /* aa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1519 /* ab */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1520 /* ac */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1521 /* ad */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1522 /* ae */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1523 /* af */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1524 /* b0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1525 /* b1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1526 /* b2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1527 /* b3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1528 /* b4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1529 /* b5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1530 /* b6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1531 /* b7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1532 /* b8 */ { NACLi_POPCNT, 1, 1, 0 }, /* popcnt */
1533 /* b9 */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
1534 /* ba */ { NACLi_INVALID, 0, 2, 0 }, /* reserved */
1535 /* bb */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
1536 /* bc */ { NACLi_386, 1, 1, 0 }, /* tzcnt $Gv, $Ev */
1537 /* bd */ { NACLi_386, 1, 1, 0 }, /* lzcnt $Gv, $Ev */
1538 /* be */ { NACLi_INVALID, 1, 1, 0 }, /* reserved */
1539 /* bf */ { NACLi_INVALID, 0, 1, 0 }, /* reserved */
1540 /* c0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1541 /* c1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1542 /* c2 */ { NACLi_SSE, 1, 2, 0 }, /* cmpss $V, $W, $I */
1543 /* c3 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1544 /* c4 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1545 /* c5 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1546 /* c6 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1547 /* c7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1548 /* c8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1549 /* c9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1550 /* ca */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1551 /* cb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1552 /* cc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1553 /* cd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1554 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1555 /* cf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1556 /* d0 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1557 /* d1 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1558 /* d2 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1559 /* d3 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1560 /* d4 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1561 /* d5 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1562 /* d6 */ { NACLi_SSE2, 1, 1, 0 }, /* movq2dq $Vdq, $PRq */
1563 /* d7 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1564 /* d8 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1565 /* d9 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1566 /* da */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1567 /* db */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1568 /* dc */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1569 /* dd */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1570 /* de */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1571 /* df */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1572 /* e0 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1573 /* e1 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1574 /* e2 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1575 /* e3 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1576 /* e4 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1577 /* e5 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1578 /* e6 */ { NACLi_SSE2, 1, 1, 0 }, /* cvtdq2pd $Vpd, $Wq */
1579 /* e7 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1580 /* e8 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1581 /* e9 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1582 /* ea */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1583 /* eb */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1584 /* ec */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1585 /* ed */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1586 /* ee */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1587 /* ef */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1588 /* f0 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1589 /* f1 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1590 /* f2 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1591 /* f3 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1592 /* f4 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1593 /* f5 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1594 /* f6 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1595 /* f7 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1596 /* f8 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1597 /* f9 */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1598 /* fa */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1599 /* fb */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1600 /* fc */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1601 /* fd */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1602 /* fe */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1603 /* ff */ { NACLi_INVALID, 0, 1, 0 }, /* invalid */
1607 /* three byte opcode tables */
1608 static const struct OpInfo kDecode0F0FOp[NCDTABLESIZE] = {
1609 /* 00 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1610 /* 01 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1611 /* 02 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1612 /* 03 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1613 /* 04 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1614 /* 05 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1615 /* 06 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1616 /* 07 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1617 /* 08 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1618 /* 09 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1619 /* 0a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1620 /* 0b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1621 /* 0c */ { NACLi_E3DNOW, 1, 1, 0 }, /* pi2fw $P, $Q */
1622 /* 0d */ { NACLi_3DNOW, 1, 1, 0 }, /* pi2fd $P, $Q */
1623 /* 0e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1624 /* 0f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1625 /* 10 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1626 /* 11 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1627 /* 12 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1628 /* 13 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1629 /* 14 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1630 /* 15 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1631 /* 16 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1632 /* 17 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1633 /* 18 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1634 /* 19 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1635 /* 1a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1636 /* 1b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1637 /* 1c */ { NACLi_E3DNOW, 1, 1, 0 }, /* pf2iw $P, $Q */
1638 /* 1d */ { NACLi_3DNOW, 1, 1, 0 }, /* pf2id $P, $Q */
1639 /* 1e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1640 /* 1f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1641 /* 20 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1642 /* 21 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1643 /* 22 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1644 /* 23 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1645 /* 24 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1646 /* 25 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1647 /* 26 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1648 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1649 /* 28 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1650 /* 29 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1651 /* 2a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1652 /* 2b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1653 /* 2c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1654 /* 2d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1655 /* 2e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1656 /* 2f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1657 /* 30 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1658 /* 31 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1659 /* 32 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1660 /* 33 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1661 /* 34 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1662 /* 35 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1663 /* 36 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1664 /* 37 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1665 /* 38 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1666 /* 39 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1667 /* 3a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1668 /* 3b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1669 /* 3c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1670 /* 3d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1671 /* 3e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1672 /* 3f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1673 /* 40 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1674 /* 41 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1675 /* 42 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1676 /* 43 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1677 /* 44 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1678 /* 45 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1679 /* 46 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1680 /* 47 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1681 /* 48 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1682 /* 49 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1683 /* 4a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1684 /* 4b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1685 /* 4c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1686 /* 4d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1687 /* 4e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1688 /* 4f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1689 /* 50 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1690 /* 51 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1691 /* 52 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1692 /* 53 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1693 /* 54 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1694 /* 55 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1695 /* 56 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1696 /* 57 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1697 /* 58 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1698 /* 59 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1699 /* 5a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1700 /* 5b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1701 /* 5c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1702 /* 5d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1703 /* 5e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1704 /* 5f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1705 /* 60 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1706 /* 61 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1707 /* 62 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1708 /* 63 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1709 /* 64 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1710 /* 65 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1711 /* 66 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1712 /* 67 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1713 /* 68 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1714 /* 69 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1715 /* 6a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1716 /* 6b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1717 /* 6c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1718 /* 6d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1719 /* 6e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1720 /* 6f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1721 /* 70 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1722 /* 71 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1723 /* 72 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1724 /* 73 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1725 /* 74 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1726 /* 75 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1727 /* 76 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1728 /* 77 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1729 /* 78 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1730 /* 79 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1731 /* 7a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1732 /* 7b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1733 /* 7c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1734 /* 7d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1735 /* 7e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1736 /* 7f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1737 /* 80 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1738 /* 81 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1739 /* 82 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1740 /* 83 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1741 /* 84 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1742 /* 85 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1743 /* 86 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1744 /* 87 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1745 /* 88 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1746 /* 89 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1747 /* 8a */ { NACLi_E3DNOW, 1, 1, 0 }, /* pfnacc $P, $Q */
1748 /* 8b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1749 /* 8c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1750 /* 8d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1751 /* 8e */ { NACLi_E3DNOW, 1, 1, 0 }, /* pfpnacc $P, $Q */
1752 /* 8f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1753 /* 90 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfcmpge $P, $Q */
1754 /* 91 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1755 /* 92 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1756 /* 93 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1757 /* 94 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfmin $P, $Q */
1758 /* 95 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1759 /* 96 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfrcp $P, $Q */
1760 /* 97 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfrsqrt $P, $Q */
1761 /* 98 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1762 /* 99 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1763 /* 9a */ { NACLi_3DNOW, 1, 1, 0 }, /* pfsub $P, $Q */
1764 /* 9b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1765 /* 9c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1766 /* 9d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1767 /* 9e */ { NACLi_3DNOW, 1, 1, 0 }, /* pfadd $P, $Q */
1768 /* 9f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1769 /* a0 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfcmpgt $P, $Q */
1770 /* a1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1771 /* a2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1772 /* a3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1773 /* a4 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfmax $P, $Q */
1774 /* a5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1775 /* a6 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfrcpit1 $P, $Q */
1776 /* a7 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfrsqit1 $P, $Q */
1777 /* a8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1778 /* a9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1779 /* aa */ { NACLi_3DNOW, 1, 1, 0 }, /* pfsubr $P, $Q */
1780 /* ab */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1781 /* ac */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1782 /* ad */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1783 /* ae */ { NACLi_3DNOW, 1, 1, 0 }, /* pfacc $P, $Q */
1784 /* af */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1785 /* b0 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfcmpeq $P, $Q */
1786 /* b1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1787 /* b2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1788 /* b3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1789 /* b4 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfmul $P, $Q */
1790 /* b5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1791 /* b6 */ { NACLi_3DNOW, 1, 1, 0 }, /* pfrcpit2 $P, $Q */
1792 /* b7 */ { NACLi_3DNOW, 1, 1, 0 }, /* pmulhrw $P, $Q */
1793 /* b8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1794 /* b9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1795 /* ba */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1796 /* bb */ { NACLi_E3DNOW, 1, 1, 0 }, /* pswapd $P, $Q */
1797 /* bc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1798 /* bd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1799 /* be */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1800 /* bf */ { NACLi_3DNOW, 1, 1, 0 }, /* pavgusb $P, $Q */
1801 /* c0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1802 /* c1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1803 /* c2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1804 /* c3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1805 /* c4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1806 /* c5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1807 /* c6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1808 /* c7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1809 /* c8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1810 /* c9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1811 /* ca */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1812 /* cb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1813 /* cc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1814 /* cd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1815 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1816 /* cf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1817 /* d0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1818 /* d1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1819 /* d2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1820 /* d3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1821 /* d4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1822 /* d5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1823 /* d6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1824 /* d7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1825 /* d8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1826 /* d9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1827 /* da */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1828 /* db */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1829 /* dc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1830 /* dd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1831 /* de */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1832 /* df */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1833 /* e0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1834 /* e1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1835 /* e2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1836 /* e3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1837 /* e4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1838 /* e5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1839 /* e6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1840 /* e7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1841 /* e8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1842 /* e9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1843 /* ea */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1844 /* eb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1845 /* ec */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1846 /* ed */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1847 /* ee */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1848 /* ef */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1849 /* f0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1850 /* f1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1851 /* f2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1852 /* f3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1853 /* f4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1854 /* f5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1855 /* f6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1856 /* f7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1857 /* f8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1858 /* f9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1859 /* fa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1860 /* fb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1861 /* fc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1862 /* fd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1863 /* fe */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1864 /* ff */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1867 static const struct OpInfo kDecode0F38Op[NCDTABLESIZE] = {
1868 /* 00 */ { NACLi_SSSE3, 1, 1, 0 }, /* pshufb $P, $Q */
1869 /* 01 */ { NACLi_SSSE3, 1, 1, 0 }, /* phaddw $P, $Q */
1870 /* 02 */ { NACLi_SSSE3, 1, 1, 0 }, /* phaddd $P, $Q */
1871 /* 03 */ { NACLi_SSSE3, 1, 1, 0 }, /* phaddsw $P, $Q */
1872 /* 04 */ { NACLi_SSSE3, 1, 1, 0 }, /* pmaddubsw $P, $Q */
1873 /* 05 */ { NACLi_SSSE3, 1, 1, 0 }, /* phsubw $P, $Q */
1874 /* 06 */ { NACLi_SSSE3, 1, 1, 0 }, /* phsubd $P, $Q */
1875 /* 07 */ { NACLi_SSSE3, 1, 1, 0 }, /* phsubsw $P, $Q */
1876 /* 08 */ { NACLi_SSSE3, 1, 1, 0 }, /* psignb $P, $Q */
1877 /* 09 */ { NACLi_SSSE3, 1, 1, 0 }, /* psignw $P, $Q */
1878 /* 0a */ { NACLi_SSSE3, 1, 1, 0 }, /* psignd $P, $Q */
1879 /* 0b */ { NACLi_SSSE3, 1, 1, 0 }, /* pmulhrsw $P, $Q */
1880 /* 0c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1881 /* 0d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1882 /* 0e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1883 /* 0f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1884 /* 10 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1885 /* 11 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1886 /* 12 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1887 /* 13 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1888 /* 14 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1889 /* 15 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1890 /* 16 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1891 /* 17 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1892 /* 18 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1893 /* 19 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1894 /* 1a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1895 /* 1b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1896 /* 1c */ { NACLi_SSSE3, 1, 1, 0 }, /* pabsb $P, $Q */
1897 /* 1d */ { NACLi_SSSE3, 1, 1, 0 }, /* pabsw $P, $Q */
1898 /* 1e */ { NACLi_SSSE3, 1, 1, 0 }, /* pabsd $P, $Q */
1899 /* 1f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1900 /* 20 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1901 /* 21 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1902 /* 22 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1903 /* 23 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1904 /* 24 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1905 /* 25 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1906 /* 26 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1907 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1908 /* 28 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1909 /* 29 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1910 /* 2a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1911 /* 2b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1912 /* 2c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1913 /* 2d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1914 /* 2e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1915 /* 2f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1916 /* 30 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1917 /* 31 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1918 /* 32 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1919 /* 33 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1920 /* 34 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1921 /* 35 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1922 /* 36 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1923 /* 37 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1924 /* 38 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1925 /* 39 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1926 /* 3a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1927 /* 3b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1928 /* 3c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1929 /* 3d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1930 /* 3e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1931 /* 3f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1932 /* 40 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1933 /* 41 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1934 /* 42 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1935 /* 43 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1936 /* 44 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1937 /* 45 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1938 /* 46 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1939 /* 47 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1940 /* 48 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1941 /* 49 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1942 /* 4a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1943 /* 4b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1944 /* 4c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1945 /* 4d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1946 /* 4e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1947 /* 4f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1948 /* 50 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1949 /* 51 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1950 /* 52 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1951 /* 53 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1952 /* 54 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1953 /* 55 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1954 /* 56 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1955 /* 57 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1956 /* 58 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1957 /* 59 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1958 /* 5a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1959 /* 5b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1960 /* 5c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1961 /* 5d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1962 /* 5e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1963 /* 5f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1964 /* 60 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1965 /* 61 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1966 /* 62 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1967 /* 63 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1968 /* 64 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1969 /* 65 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1970 /* 66 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1971 /* 67 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1972 /* 68 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1973 /* 69 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1974 /* 6a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1975 /* 6b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1976 /* 6c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1977 /* 6d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1978 /* 6e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1979 /* 6f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1980 /* 70 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1981 /* 71 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1982 /* 72 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1983 /* 73 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1984 /* 74 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1985 /* 75 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1986 /* 76 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1987 /* 77 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1988 /* 78 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1989 /* 79 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1990 /* 7a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1991 /* 7b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1992 /* 7c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1993 /* 7d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1994 /* 7e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1995 /* 7f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1996 /* 80 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1997 /* 81 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1998 /* 82 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
1999 /* 83 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2000 /* 84 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2001 /* 85 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2002 /* 86 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2003 /* 87 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2004 /* 88 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2005 /* 89 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2006 /* 8a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2007 /* 8b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2008 /* 8c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2009 /* 8d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2010 /* 8e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2011 /* 8f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2012 /* 90 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2013 /* 91 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2014 /* 92 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2015 /* 93 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2016 /* 94 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2017 /* 95 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2018 /* 96 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2019 /* 97 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2020 /* 98 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2021 /* 99 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2022 /* 9a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2023 /* 9b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2024 /* 9c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2025 /* 9d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2026 /* 9e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2027 /* 9f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2028 /* a0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2029 /* a1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2030 /* a2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2031 /* a3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2032 /* a4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2033 /* a5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2034 /* a6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2035 /* a7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2036 /* a8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2037 /* a9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2038 /* aa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2039 /* ab */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2040 /* ac */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2041 /* ad */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2042 /* ae */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2043 /* af */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2044 /* b0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2045 /* b1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2046 /* b2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2047 /* b3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2048 /* b4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2049 /* b5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2050 /* b6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2051 /* b7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2052 /* b8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2053 /* b9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2054 /* ba */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2055 /* bb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2056 /* bc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2057 /* bd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2058 /* be */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2059 /* bf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2060 /* c0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2061 /* c1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2062 /* c2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2063 /* c3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2064 /* c4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2065 /* c5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2066 /* c6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2067 /* c7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2068 /* c8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2069 /* c9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2070 /* ca */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2071 /* cb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2072 /* cc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2073 /* cd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2074 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2075 /* cf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2076 /* d0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2077 /* d1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2078 /* d2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2079 /* d3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2080 /* d4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2081 /* d5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2082 /* d6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2083 /* d7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2084 /* d8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2085 /* d9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2086 /* da */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2087 /* db */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2088 /* dc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2089 /* dd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2090 /* de */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2091 /* df */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2092 /* e0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2093 /* e1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2094 /* e2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2095 /* e3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2096 /* e4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2097 /* e5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2098 /* e6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2099 /* e7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2100 /* e8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2101 /* e9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2102 /* ea */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2103 /* eb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2104 /* ec */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2105 /* ed */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2106 /* ee */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2107 /* ef */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2108 /* f0 */ { NACLi_MOVBE, 1, 1, 0 }, /* MOVBE $G, $M */
2109 /* f1 */ { NACLi_MOVBE, 1, 1, 0 }, /* MOVBE $M, $G */
2110 /* f2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2111 /* f3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2112 /* f4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2113 /* f5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2114 /* f6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2115 /* f7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2116 /* f8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2117 /* f9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2118 /* fa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2119 /* fb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2120 /* fc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2121 /* fd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2122 /* fe */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2123 /* ff */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2126 static const struct OpInfo kDecode0F3AOp[NCDTABLESIZE] = {
2127 /* 00 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2128 /* 01 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2129 /* 02 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2130 /* 03 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2131 /* 04 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2132 /* 05 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2133 /* 06 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2134 /* 07 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2135 /* 08 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2136 /* 09 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2137 /* 0a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2138 /* 0b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2139 /* 0c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2140 /* 0d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2141 /* 0e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2142 /* 0f */ { NACLi_SSSE3, 1, 2, 0 }, /* palignr $P, $Q, $Ib */
2143 /* 10 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2144 /* 11 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2145 /* 12 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2146 /* 13 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2147 /* 14 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2148 /* 15 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2149 /* 16 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2150 /* 17 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2151 /* 18 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2152 /* 19 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2153 /* 1a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2154 /* 1b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2155 /* 1c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2156 /* 1d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2157 /* 1e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2158 /* 1f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2159 /* 20 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2160 /* 21 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2161 /* 22 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2162 /* 23 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2163 /* 24 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2164 /* 25 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2165 /* 26 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2166 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2167 /* 28 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2168 /* 29 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2169 /* 2a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2170 /* 2b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2171 /* 2c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2172 /* 2d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2173 /* 2e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2174 /* 2f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2175 /* 30 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2176 /* 31 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2177 /* 32 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2178 /* 33 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2179 /* 34 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2180 /* 35 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2181 /* 36 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2182 /* 37 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2183 /* 38 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2184 /* 39 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2185 /* 3a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2186 /* 3b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2187 /* 3c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2188 /* 3d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2189 /* 3e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2190 /* 3f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2191 /* 40 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2192 /* 41 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2193 /* 42 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2194 /* 43 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2195 /* 44 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2196 /* 45 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2197 /* 46 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2198 /* 47 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2199 /* 48 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2200 /* 49 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2201 /* 4a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2202 /* 4b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2203 /* 4c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2204 /* 4d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2205 /* 4e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2206 /* 4f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2207 /* 50 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2208 /* 51 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2209 /* 52 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2210 /* 53 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2211 /* 54 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2212 /* 55 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2213 /* 56 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2214 /* 57 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2215 /* 58 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2216 /* 59 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2217 /* 5a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2218 /* 5b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2219 /* 5c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2220 /* 5d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2221 /* 5e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2222 /* 5f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2223 /* 60 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2224 /* 61 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2225 /* 62 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2226 /* 63 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2227 /* 64 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2228 /* 65 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2229 /* 66 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2230 /* 67 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2231 /* 68 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2232 /* 69 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2233 /* 6a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2234 /* 6b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2235 /* 6c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2236 /* 6d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2237 /* 6e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2238 /* 6f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2239 /* 70 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2240 /* 71 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2241 /* 72 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2242 /* 73 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2243 /* 74 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2244 /* 75 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2245 /* 76 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2246 /* 77 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2247 /* 78 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2248 /* 79 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2249 /* 7a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2250 /* 7b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2251 /* 7c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2252 /* 7d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2253 /* 7e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2254 /* 7f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2255 /* 80 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2256 /* 81 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2257 /* 82 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2258 /* 83 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2259 /* 84 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2260 /* 85 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2261 /* 86 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2262 /* 87 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2263 /* 88 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2264 /* 89 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2265 /* 8a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2266 /* 8b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2267 /* 8c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2268 /* 8d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2269 /* 8e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2270 /* 8f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2271 /* 90 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2272 /* 91 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2273 /* 92 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2274 /* 93 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2275 /* 94 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2276 /* 95 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2277 /* 96 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2278 /* 97 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2279 /* 98 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2280 /* 99 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2281 /* 9a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2282 /* 9b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2283 /* 9c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2284 /* 9d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2285 /* 9e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2286 /* 9f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2287 /* a0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2288 /* a1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2289 /* a2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2290 /* a3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2291 /* a4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2292 /* a5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2293 /* a6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2294 /* a7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2295 /* a8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2296 /* a9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2297 /* aa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2298 /* ab */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2299 /* ac */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2300 /* ad */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2301 /* ae */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2302 /* af */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2303 /* b0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2304 /* b1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2305 /* b2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2306 /* b3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2307 /* b4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2308 /* b5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2309 /* b6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2310 /* b7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2311 /* b8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2312 /* b9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2313 /* ba */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2314 /* bb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2315 /* bc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2316 /* bd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2317 /* be */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2318 /* bf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2319 /* c0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2320 /* c1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2321 /* c2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2322 /* c3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2323 /* c4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2324 /* c5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2325 /* c6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2326 /* c7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2327 /* c8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2328 /* c9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2329 /* ca */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2330 /* cb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2331 /* cc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2332 /* cd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2333 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2334 /* cf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2335 /* d0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2336 /* d1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2337 /* d2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2338 /* d3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2339 /* d4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2340 /* d5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2341 /* d6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2342 /* d7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2343 /* d8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2344 /* d9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2345 /* da */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2346 /* db */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2347 /* dc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2348 /* dd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2349 /* de */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2350 /* df */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2351 /* e0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2352 /* e1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2353 /* e2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2354 /* e3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2355 /* e4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2356 /* e5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2357 /* e6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2358 /* e7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2359 /* e8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2360 /* e9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2361 /* ea */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2362 /* eb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2363 /* ec */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2364 /* ed */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2365 /* ee */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2366 /* ef */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2367 /* f0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2368 /* f1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2369 /* f2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2370 /* f3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2371 /* f4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2372 /* f5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2373 /* f6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2374 /* f7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2375 /* f8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2376 /* f9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2377 /* fa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2378 /* fb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2379 /* fc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2380 /* fd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2381 /* fe */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2382 /* ff */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2385 static const struct OpInfo kDecode660F38Op[NCDTABLESIZE] = {
2386 /* 00 */ { NACLi_SSSE3, 1, 1, 0 }, /* pshufb $V, $W */
2387 /* 01 */ { NACLi_SSSE3, 1, 1, 0 }, /* phaddw $V, $W */
2388 /* 02 */ { NACLi_SSSE3, 1, 1, 0 }, /* phaddd $V, $W */
2389 /* 03 */ { NACLi_SSSE3, 1, 1, 0 }, /* phaddsw $V, $W */
2390 /* 04 */ { NACLi_SSSE3, 1, 1, 0 }, /* pmaddubsw $V, $W */
2391 /* 05 */ { NACLi_SSSE3, 1, 1, 0 }, /* phsubw $V, $W */
2392 /* 06 */ { NACLi_SSSE3, 1, 1, 0 }, /* phsubd $V, $W */
2393 /* 07 */ { NACLi_SSSE3, 1, 1, 0 }, /* phsubsw $V, $W */
2394 /* 08 */ { NACLi_SSSE3, 1, 1, 0 }, /* psignb $V, $W */
2395 /* 09 */ { NACLi_SSSE3, 1, 1, 0 }, /* psignw $V, $W */
2396 /* 0a */ { NACLi_SSSE3, 1, 1, 0 }, /* psignd $V, $W */
2397 /* 0b */ { NACLi_SSSE3, 1, 1, 0 }, /* pmulhrsw $V, $W */
2398 /* 0c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2399 /* 0d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2400 /* 0e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2401 /* 0f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2402 /* 10 */ { NACLi_SSE41, 1, 1, 0 }, /* pblendvb $V, $W */
2403 /* 11 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2404 /* 12 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2405 /* 13 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2406 /* 14 */ { NACLi_SSE41, 1, 1, 0 }, /* blendvps $V, $W */
2407 /* 15 */ { NACLi_SSE41, 1, 1, 0 }, /* blendvpd $V, $W */
2408 /* 16 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2409 /* 17 */ { NACLi_SSE41, 1, 1, 0 }, /* ptest $V, $W */
2410 /* 18 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2411 /* 19 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2412 /* 1a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2413 /* 1b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2414 /* 1c */ { NACLi_SSSE3, 1, 1, 0 }, /* pabsb $V, $W */
2415 /* 1d */ { NACLi_SSSE3, 1, 1, 0 }, /* pabsw $V, $W */
2416 /* 1e */ { NACLi_SSSE3, 1, 1, 0 }, /* pabsd $V, $W */
2417 /* 1f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2418 /* 20 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovsxbw $V, $U/M */
2419 /* 21 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovsxbd $V, $U/M */
2420 /* 22 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovsxbq $V, $U/M */
2421 /* 23 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovsxwd $V, $U/M */
2422 /* 24 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovsxwq $V, $U/M */
2423 /* 25 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovsxdq $V, $U/M */
2424 /* 26 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2425 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2426 /* 28 */ { NACLi_SSE41, 1, 1, 0 }, /* pmuldq $V, $W */
2427 /* 29 */ { NACLi_SSE41, 1, 1, 0 }, /* pcmpeqq $V, $W */
2428 /* 2a */ { NACLi_SSE41, 1, 1, 0 }, /* movntdqa $V, $W */
2429 /* 2b */ { NACLi_SSE41, 1, 1, 0 }, /* packusdw $V, $W */
2430 /* 2c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2431 /* 2d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2432 /* 2e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2433 /* 2f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2434 /* 30 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovzxbw $V, $U/M */
2435 /* 31 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovzxbd $V, $U/M */
2436 /* 32 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovzxbq $V, $U/M */
2437 /* 33 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovzxwd $V, $U/M */
2438 /* 34 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovzxwq $V, $U/M */
2439 /* 35 */ { NACLi_SSE41, 1, 1, 0 }, /* pmovzxdq $V, $U/M */
2440 /* 36 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2441 /* 37 */ { NACLi_SSE42, 1, 1, 0 }, /* pcmpgtq $V, $U/M */
2442 /* 38 */ { NACLi_SSE41, 1, 1, 0 }, /* pminsb $V, $W */
2443 /* 39 */ { NACLi_SSE41, 1, 1, 0 }, /* pminsd $V, $W */
2444 /* 3a */ { NACLi_SSE41, 1, 1, 0 }, /* pminuw $V, $W */
2445 /* 3b */ { NACLi_SSE41, 1, 1, 0 }, /* pminud $V, $W */
2446 /* 3c */ { NACLi_SSE41, 1, 1, 0 }, /* pmaxsb $V, $W */
2447 /* 3d */ { NACLi_SSE41, 1, 1, 0 }, /* pmaxsd $V, $W */
2448 /* 3e */ { NACLi_SSE41, 1, 1, 0 }, /* pmaxuw $V, $W */
2449 /* 3f */ { NACLi_SSE41, 1, 1, 0 }, /* pmaxud $V, $W */
2450 /* 40 */ { NACLi_SSE41, 1, 1, 0 }, /* pmulld $V, $W */
2451 /* 41 */ { NACLi_SSE41, 1, 1, 0 }, /* phminposuw $V, $W */
2452 /* 42 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2453 /* 43 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2454 /* 44 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2455 /* 45 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2456 /* 46 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2457 /* 47 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2458 /* 48 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2459 /* 49 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2460 /* 4a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2461 /* 4b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2462 /* 4c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2463 /* 4d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2464 /* 4e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2465 /* 4f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2466 /* 50 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2467 /* 51 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2468 /* 52 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2469 /* 53 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2470 /* 54 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2471 /* 55 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2472 /* 56 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2473 /* 57 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2474 /* 58 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2475 /* 59 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2476 /* 5a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2477 /* 5b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2478 /* 5c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2479 /* 5d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2480 /* 5e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2481 /* 5f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2482 /* 60 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2483 /* 61 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2484 /* 62 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2485 /* 63 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2486 /* 64 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2487 /* 65 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2488 /* 66 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2489 /* 67 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2490 /* 68 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2491 /* 69 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2492 /* 6a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2493 /* 6b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2494 /* 6c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2495 /* 6d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2496 /* 6e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2497 /* 6f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2498 /* 70 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2499 /* 71 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2500 /* 72 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2501 /* 73 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2502 /* 74 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2503 /* 75 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2504 /* 76 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2505 /* 77 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2506 /* 78 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2507 /* 79 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2508 /* 7a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2509 /* 7b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2510 /* 7c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2511 /* 7d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2512 /* 7e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2513 /* 7f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2514 /* 80 */ { NACLi_INVALID, 1, 1, 0 }, /* NVEPT $G, $M */
2515 /* 81 */ { NACLi_INVALID, 1, 1, 0 }, /* NVVPID $G, $M */
2516 /* 82 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2517 /* 83 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2518 /* 84 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2519 /* 85 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2520 /* 86 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2521 /* 87 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2522 /* 88 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2523 /* 89 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2524 /* 8a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2525 /* 8b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2526 /* 8c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2527 /* 8d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2528 /* 8e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2529 /* 8f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2530 /* 90 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2531 /* 91 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2532 /* 92 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2533 /* 93 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2534 /* 94 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2535 /* 95 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2536 /* 96 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2537 /* 97 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2538 /* 98 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2539 /* 99 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2540 /* 9a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2541 /* 9b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2542 /* 9c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2543 /* 9d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2544 /* 9e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2545 /* 9f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2546 /* a0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2547 /* a1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2548 /* a2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2549 /* a3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2550 /* a4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2551 /* a5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2552 /* a6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2553 /* a7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2554 /* a8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2555 /* a9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2556 /* aa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2557 /* ab */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2558 /* ac */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2559 /* ad */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2560 /* ae */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2561 /* af */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2562 /* b0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2563 /* b1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2564 /* b2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2565 /* b3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2566 /* b4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2567 /* b5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2568 /* b6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2569 /* b7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2570 /* b8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2571 /* b9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2572 /* ba */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2573 /* bb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2574 /* bc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2575 /* bd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2576 /* be */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2577 /* bf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2578 /* c0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2579 /* c1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2580 /* c2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2581 /* c3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2582 /* c4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2583 /* c5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2584 /* c6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2585 /* c7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2586 /* c8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2587 /* c9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2588 /* ca */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2589 /* cb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2590 /* cc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2591 /* cd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2592 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2593 /* cf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2594 /* d0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2595 /* d1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2596 /* d2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2597 /* d3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2598 /* d4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2599 /* d5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2600 /* d6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2601 /* d7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2602 /* d8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2603 /* d9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2604 /* da */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2605 /* db */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2606 /* dc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2607 /* dd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2608 /* de */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2609 /* df */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2610 /* e0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2611 /* e1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2612 /* e2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2613 /* e3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2614 /* e4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2615 /* e5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2616 /* e6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2617 /* e7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2618 /* e8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2619 /* e9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2620 /* ea */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2621 /* eb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2622 /* ec */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2623 /* ed */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2624 /* ee */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2625 /* ef */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2626 /* f0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2627 /* f1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2628 /* f2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2629 /* f3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2630 /* f4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2631 /* f5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2632 /* f6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2633 /* f7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2634 /* f8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2635 /* f9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2636 /* fa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2637 /* fb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2638 /* fc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2639 /* fd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2640 /* fe */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2641 /* ff */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2644 static const struct OpInfo kDecodeF20F38Op[NCDTABLESIZE] = {
2645 /* 00 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2646 /* 01 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2647 /* 02 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2648 /* 03 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2649 /* 04 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2650 /* 05 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2651 /* 06 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2652 /* 07 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2653 /* 08 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2654 /* 09 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2655 /* 0a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2656 /* 0b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2657 /* 0c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2658 /* 0d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2659 /* 0e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2660 /* 0f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2661 /* 10 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2662 /* 11 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2663 /* 12 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2664 /* 13 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2665 /* 14 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2666 /* 15 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2667 /* 16 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2668 /* 17 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2669 /* 18 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2670 /* 19 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2671 /* 1a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2672 /* 1b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2673 /* 1c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2674 /* 1d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2675 /* 1e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2676 /* 1f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2677 /* 20 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2678 /* 21 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2679 /* 22 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2680 /* 23 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2681 /* 24 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2682 /* 25 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2683 /* 26 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2684 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2685 /* 28 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2686 /* 29 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2687 /* 2a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2688 /* 2b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2689 /* 2c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2690 /* 2d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2691 /* 2e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2692 /* 2f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2693 /* 30 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2694 /* 31 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2695 /* 32 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2696 /* 33 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2697 /* 34 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2698 /* 35 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2699 /* 36 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2700 /* 37 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2701 /* 38 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2702 /* 39 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2703 /* 3a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2704 /* 3b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2705 /* 3c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2706 /* 3d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2707 /* 3e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2708 /* 3f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2709 /* 40 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2710 /* 41 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2711 /* 42 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2712 /* 43 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2713 /* 44 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2714 /* 45 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2715 /* 46 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2716 /* 47 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2717 /* 48 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2718 /* 49 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2719 /* 4a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2720 /* 4b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2721 /* 4c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2722 /* 4d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2723 /* 4e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2724 /* 4f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2725 /* 50 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2726 /* 51 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2727 /* 52 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2728 /* 53 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2729 /* 54 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2730 /* 55 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2731 /* 56 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2732 /* 57 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2733 /* 58 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2734 /* 59 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2735 /* 5a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2736 /* 5b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2737 /* 5c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2738 /* 5d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2739 /* 5e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2740 /* 5f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2741 /* 60 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2742 /* 61 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2743 /* 62 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2744 /* 63 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2745 /* 64 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2746 /* 65 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2747 /* 66 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2748 /* 67 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2749 /* 68 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2750 /* 69 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2751 /* 6a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2752 /* 6b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2753 /* 6c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2754 /* 6d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2755 /* 6e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2756 /* 6f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2757 /* 70 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2758 /* 71 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2759 /* 72 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2760 /* 73 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2761 /* 74 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2762 /* 75 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2763 /* 76 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2764 /* 77 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2765 /* 78 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2766 /* 79 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2767 /* 7a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2768 /* 7b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2769 /* 7c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2770 /* 7d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2771 /* 7e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2772 /* 7f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2773 /* 80 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2774 /* 81 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2775 /* 82 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2776 /* 83 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2777 /* 84 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2778 /* 85 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2779 /* 86 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2780 /* 87 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2781 /* 88 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2782 /* 89 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2783 /* 8a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2784 /* 8b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2785 /* 8c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2786 /* 8d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2787 /* 8e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2788 /* 8f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2789 /* 90 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2790 /* 91 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2791 /* 92 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2792 /* 93 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2793 /* 94 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2794 /* 95 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2795 /* 96 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2796 /* 97 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2797 /* 98 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2798 /* 99 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2799 /* 9a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2800 /* 9b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2801 /* 9c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2802 /* 9d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2803 /* 9e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2804 /* 9f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2805 /* a0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2806 /* a1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2807 /* a2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2808 /* a3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2809 /* a4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2810 /* a5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2811 /* a6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2812 /* a7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2813 /* a8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2814 /* a9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2815 /* aa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2816 /* ab */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2817 /* ac */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2818 /* ad */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2819 /* ae */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2820 /* af */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2821 /* b0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2822 /* b1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2823 /* b2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2824 /* b3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2825 /* b4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2826 /* b5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2827 /* b6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2828 /* b7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2829 /* b8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2830 /* b9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2831 /* ba */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2832 /* bb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2833 /* bc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2834 /* bd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2835 /* be */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2836 /* bf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2837 /* c0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2838 /* c1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2839 /* c2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2840 /* c3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2841 /* c4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2842 /* c5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2843 /* c6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2844 /* c7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2845 /* c8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2846 /* c9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2847 /* ca */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2848 /* cb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2849 /* cc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2850 /* cd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2851 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2852 /* cf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2853 /* d0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2854 /* d1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2855 /* d2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2856 /* d3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2857 /* d4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2858 /* d5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2859 /* d6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2860 /* d7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2861 /* d8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2862 /* d9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2863 /* da */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2864 /* db */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2865 /* dc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2866 /* dd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2867 /* de */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2868 /* df */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2869 /* e0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2870 /* e1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2871 /* e2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2872 /* e3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2873 /* e4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2874 /* e5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2875 /* e6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2876 /* e7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2877 /* e8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2878 /* e9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2879 /* ea */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2880 /* eb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2881 /* ec */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2882 /* ed */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2883 /* ee */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2884 /* ef */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2885 /* f0 */ { NACLi_SSE42, 1, 1, 0 }, /* CRC32 $Gd, $Eb */
2886 /* f1 */ { NACLi_SSE42, 1, 1, 0 }, /* CRC32 $Gd, $Ev */
2887 /* f2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2888 /* f3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2889 /* f4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2890 /* f5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2891 /* f6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2892 /* f7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2893 /* f8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2894 /* f9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2895 /* fa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2896 /* fb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2897 /* fc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2898 /* fd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2899 /* fe */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2900 /* ff */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2903 static const struct OpInfo kDecode660F3AOp[NCDTABLESIZE] = {
2904 /* 00 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2905 /* 01 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2906 /* 02 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2907 /* 03 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2908 /* 04 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2909 /* 05 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2910 /* 06 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2911 /* 07 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2912 /* 08 */ { NACLi_SSE41, 1, 2, 0 }, /* roundps $V, $W, $Ib */
2913 /* 09 */ { NACLi_SSE41, 1, 2, 0 }, /* roundpd $V, $W, $Ib */
2914 /* 0a */ { NACLi_SSE41, 1, 2, 0 }, /* roundss $V, $W, $Ib */
2915 /* 0b */ { NACLi_SSE41, 1, 2, 0 }, /* roundsd $V, $W, $Ib */
2916 /* 0c */ { NACLi_SSE41, 1, 2, 0 }, /* blendps $V, $W, $Ib */
2917 /* 0d */ { NACLi_SSE41, 1, 2, 0 }, /* blendpd $V, $W, $Ib */
2918 /* 0e */ { NACLi_SSE41, 1, 2, 0 }, /* pblendw $V, $W, $Ib */
2919 /* 0f */ { NACLi_SSSE3, 1, 2, 0 }, /* palignr $V, $W, $Ib */
2920 /* 10 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2921 /* 11 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2922 /* 12 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2923 /* 13 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2924 /* 14 */ { NACLi_SSE41, 1, 2, 0 }, /* pextrb $R/M, $V, $Ib */
2925 /* 15 */ { NACLi_SSE41, 1, 2, 0 }, /* pextrw $R/M, $V, $Ib */
2926 /* 16 */ { NACLi_SSE41, 1, 2, 0 }, /* pextrd/q $E, $V, $Ib */
2927 /* 17 */ { NACLi_SSE41, 1, 2, 0 }, /* extractps $E, $V, $Ib */
2928 /* 18 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2929 /* 19 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2930 /* 1a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2931 /* 1b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2932 /* 1c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2933 /* 1d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2934 /* 1e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2935 /* 1f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2936 /* 20 */ { NACLi_SSE41, 1, 2, 0 }, /* pinsrb $V, $R/M, $Ib */
2937 /* 21 */ { NACLi_SSE41, 1, 2, 0 }, /* insertps $V, $U/M, $Ib */
2938 /* 22 */ { NACLi_SSE41, 1, 2, 0 }, /* pinsrd/q $V, $E, $Ib */
2939 /* 23 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2940 /* 24 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2941 /* 25 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2942 /* 26 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2943 /* 27 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2944 /* 28 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2945 /* 29 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2946 /* 2a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2947 /* 2b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2948 /* 2c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2949 /* 2d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2950 /* 2e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2951 /* 2f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2952 /* 30 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2953 /* 31 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2954 /* 32 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2955 /* 33 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2956 /* 34 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2957 /* 35 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2958 /* 36 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2959 /* 37 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2960 /* 38 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2961 /* 39 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2962 /* 3a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2963 /* 3b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2964 /* 3c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2965 /* 3d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2966 /* 3e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2967 /* 3f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2968 /* 40 */ { NACLi_SSE41, 1, 2, 0 }, /* dpps $V, $W, $Ib */
2969 /* 41 */ { NACLi_SSE41, 1, 2, 0 }, /* dppd $V, $W, $Ib */
2970 /* 42 */ { NACLi_SSE41, 1, 2, 0 }, /* mpsadbw $V, $W, $Ib */
2971 /* 43 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2972 /* 44 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2973 /* 45 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2974 /* 46 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2975 /* 47 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2976 /* 48 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2977 /* 49 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2978 /* 4a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2979 /* 4b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2980 /* 4c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2981 /* 4d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2982 /* 4e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2983 /* 4f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2984 /* 50 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2985 /* 51 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2986 /* 52 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2987 /* 53 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2988 /* 54 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2989 /* 55 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2990 /* 56 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2991 /* 57 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2992 /* 58 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2993 /* 59 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2994 /* 5a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2995 /* 5b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2996 /* 5c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2997 /* 5d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2998 /* 5e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
2999 /* 5f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3000 /* 60 */ { NACLi_SSE42, 1, 2, 0 }, /* pcmpestrm $V, $W, $Ib */
3001 /* 61 */ { NACLi_SSE42, 1, 2, 0 }, /* pcmpestri $V, $W, $Ib */
3002 /* 62 */ { NACLi_SSE42, 1, 2, 0 }, /* pcmpistrm $V, $W, $Ib */
3003 /* 63 */ { NACLi_SSE42, 1, 2, 0 }, /* pcmpistri $V, $W, $Ib */
3004 /* 64 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3005 /* 65 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3006 /* 66 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3007 /* 67 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3008 /* 68 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3009 /* 69 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3010 /* 6a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3011 /* 6b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3012 /* 6c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3013 /* 6d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3014 /* 6e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3015 /* 6f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3016 /* 70 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3017 /* 71 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3018 /* 72 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3019 /* 73 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3020 /* 74 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3021 /* 75 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3022 /* 76 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3023 /* 77 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3024 /* 78 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3025 /* 79 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3026 /* 7a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3027 /* 7b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3028 /* 7c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3029 /* 7d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3030 /* 7e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3031 /* 7f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3032 /* 80 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3033 /* 81 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3034 /* 82 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3035 /* 83 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3036 /* 84 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3037 /* 85 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3038 /* 86 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3039 /* 87 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3040 /* 88 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3041 /* 89 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3042 /* 8a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3043 /* 8b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3044 /* 8c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3045 /* 8d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3046 /* 8e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3047 /* 8f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3048 /* 90 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3049 /* 91 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3050 /* 92 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3051 /* 93 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3052 /* 94 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3053 /* 95 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3054 /* 96 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3055 /* 97 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3056 /* 98 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3057 /* 99 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3058 /* 9a */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3059 /* 9b */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3060 /* 9c */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3061 /* 9d */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3062 /* 9e */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3063 /* 9f */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3064 /* a0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3065 /* a1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3066 /* a2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3067 /* a3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3068 /* a4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3069 /* a5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3070 /* a6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3071 /* a7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3072 /* a8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3073 /* a9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3074 /* aa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3075 /* ab */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3076 /* ac */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3077 /* ad */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3078 /* ae */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3079 /* af */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3080 /* b0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3081 /* b1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3082 /* b2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3083 /* b3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3084 /* b4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3085 /* b5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3086 /* b6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3087 /* b7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3088 /* b8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3089 /* b9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3090 /* ba */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3091 /* bb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3092 /* bc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3093 /* bd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3094 /* be */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3095 /* bf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3096 /* c0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3097 /* c1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3098 /* c2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3099 /* c3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3100 /* c4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3101 /* c5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3102 /* c6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3103 /* c7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3104 /* c8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3105 /* c9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3106 /* ca */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3107 /* cb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3108 /* cc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3109 /* cd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3110 /* ce */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3111 /* cf */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3112 /* d0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3113 /* d1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3114 /* d2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3115 /* d3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3116 /* d4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3117 /* d5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3118 /* d6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3119 /* d7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3120 /* d8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3121 /* d9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3122 /* da */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3123 /* db */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3124 /* dc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3125 /* dd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3126 /* de */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3127 /* df */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3128 /* e0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3129 /* e1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3130 /* e2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3131 /* e3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3132 /* e4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3133 /* e5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3134 /* e6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3135 /* e7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3136 /* e8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3137 /* e9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3138 /* ea */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3139 /* eb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3140 /* ec */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3141 /* ed */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3142 /* ee */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3143 /* ef */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3144 /* f0 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3145 /* f1 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3146 /* f2 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3147 /* f3 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3148 /* f4 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3149 /* f5 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3150 /* f6 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3151 /* f7 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3152 /* f8 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3153 /* f9 */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3154 /* fa */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3155 /* fb */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3156 /* fc */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3157 /* fd */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3158 /* fe */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3159 /* ff */ { NACLi_UNDEFINED, 0, 1, 0 }, /* undefined */
3163 /* x87 opcode tables*/
3164 static const struct OpInfo kDecode87D8[NCDTABLESIZE] = {
3165 /* 00 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3166 /* 01 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3167 /* 02 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3168 /* 03 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3169 /* 04 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3170 /* 05 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3171 /* 06 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3172 /* 07 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3173 /* 08 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3174 /* 09 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3175 /* 0a */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3176 /* 0b */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3177 /* 0c */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3178 /* 0d */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3179 /* 0e */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3180 /* 0f */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3181 /* 10 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3182 /* 11 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3183 /* 12 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3184 /* 13 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3185 /* 14 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3186 /* 15 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3187 /* 16 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3188 /* 17 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3189 /* 18 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3190 /* 19 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3191 /* 1a */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3192 /* 1b */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3193 /* 1c */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3194 /* 1d */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3195 /* 1e */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3196 /* 1f */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3197 /* 20 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3198 /* 21 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3199 /* 22 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3200 /* 23 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3201 /* 24 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3202 /* 25 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3203 /* 26 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3204 /* 27 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3205 /* 28 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3206 /* 29 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3207 /* 2a */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3208 /* 2b */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3209 /* 2c */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3210 /* 2d */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3211 /* 2e */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3212 /* 2f */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3213 /* 30 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3214 /* 31 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3215 /* 32 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3216 /* 33 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3217 /* 34 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3218 /* 35 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3219 /* 36 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3220 /* 37 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3221 /* 38 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3222 /* 39 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3223 /* 3a */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3224 /* 3b */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3225 /* 3c */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3226 /* 3d */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3227 /* 3e */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3228 /* 3f */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3229 /* 40 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3230 /* 41 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3231 /* 42 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3232 /* 43 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3233 /* 44 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3234 /* 45 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3235 /* 46 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3236 /* 47 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3237 /* 48 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3238 /* 49 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3239 /* 4a */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3240 /* 4b */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3241 /* 4c */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3242 /* 4d */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3243 /* 4e */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3244 /* 4f */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3245 /* 50 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3246 /* 51 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3247 /* 52 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3248 /* 53 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3249 /* 54 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3250 /* 55 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3251 /* 56 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3252 /* 57 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3253 /* 58 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3254 /* 59 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3255 /* 5a */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3256 /* 5b */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3257 /* 5c */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3258 /* 5d */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3259 /* 5e */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3260 /* 5f */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3261 /* 60 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3262 /* 61 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3263 /* 62 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3264 /* 63 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3265 /* 64 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3266 /* 65 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3267 /* 66 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3268 /* 67 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3269 /* 68 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3270 /* 69 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3271 /* 6a */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3272 /* 6b */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3273 /* 6c */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3274 /* 6d */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3275 /* 6e */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3276 /* 6f */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3277 /* 70 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3278 /* 71 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3279 /* 72 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3280 /* 73 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3281 /* 74 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3282 /* 75 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3283 /* 76 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3284 /* 77 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3285 /* 78 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3286 /* 79 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3287 /* 7a */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3288 /* 7b */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3289 /* 7c */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3290 /* 7d */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3291 /* 7e */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3292 /* 7f */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3293 /* 80 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3294 /* 81 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3295 /* 82 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3296 /* 83 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3297 /* 84 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3298 /* 85 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3299 /* 86 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3300 /* 87 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3301 /* 88 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3302 /* 89 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3303 /* 8a */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3304 /* 8b */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3305 /* 8c */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3306 /* 8d */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3307 /* 8e */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3308 /* 8f */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3309 /* 90 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3310 /* 91 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3311 /* 92 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3312 /* 93 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3313 /* 94 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3314 /* 95 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3315 /* 96 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3316 /* 97 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3317 /* 98 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3318 /* 99 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3319 /* 9a */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3320 /* 9b */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3321 /* 9c */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3322 /* 9d */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3323 /* 9e */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3324 /* 9f */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3325 /* a0 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3326 /* a1 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3327 /* a2 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3328 /* a3 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3329 /* a4 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3330 /* a5 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3331 /* a6 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3332 /* a7 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3333 /* a8 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3334 /* a9 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3335 /* aa */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3336 /* ab */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3337 /* ac */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3338 /* ad */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3339 /* ae */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3340 /* af */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3341 /* b0 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3342 /* b1 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3343 /* b2 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3344 /* b3 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3345 /* b4 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3346 /* b5 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3347 /* b6 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3348 /* b7 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3349 /* b8 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3350 /* b9 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3351 /* ba */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3352 /* bb */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3353 /* bc */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3354 /* bd */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3355 /* be */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3356 /* bf */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3357 /* c0 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3358 /* c1 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3359 /* c2 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3360 /* c3 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3361 /* c4 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3362 /* c5 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3363 /* c6 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3364 /* c7 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
3365 /* c8 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3366 /* c9 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3367 /* ca */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3368 /* cb */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3369 /* cc */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3370 /* cd */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3371 /* ce */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3372 /* cf */ { NACLi_X87, 1, 1, 0 }, /* fmul */
3373 /* d0 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3374 /* d1 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3375 /* d2 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3376 /* d3 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3377 /* d4 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3378 /* d5 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3379 /* d6 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3380 /* d7 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
3381 /* d8 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3382 /* d9 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3383 /* da */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3384 /* db */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3385 /* dc */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3386 /* dd */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3387 /* de */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3388 /* df */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
3389 /* e0 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3390 /* e1 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3391 /* e2 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3392 /* e3 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3393 /* e4 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3394 /* e5 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3395 /* e6 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3396 /* e7 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
3397 /* e8 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3398 /* e9 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3399 /* ea */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3400 /* eb */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3401 /* ec */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3402 /* ed */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3403 /* ee */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3404 /* ef */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
3405 /* f0 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3406 /* f1 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3407 /* f2 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3408 /* f3 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3409 /* f4 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3410 /* f5 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3411 /* f6 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3412 /* f7 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
3413 /* f8 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3414 /* f9 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3415 /* fa */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3416 /* fb */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3417 /* fc */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3418 /* fd */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3419 /* fe */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3420 /* ff */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
3423 static const struct OpInfo kDecode87D9[NCDTABLESIZE] = {
3424 /* 00 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3425 /* 01 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3426 /* 02 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3427 /* 03 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3428 /* 04 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3429 /* 05 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3430 /* 06 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3431 /* 07 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3432 /* 08 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3433 /* 09 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3434 /* 0a */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3435 /* 0b */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3436 /* 0c */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3437 /* 0d */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3438 /* 0e */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3439 /* 0f */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3440 /* 10 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3441 /* 11 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3442 /* 12 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3443 /* 13 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3444 /* 14 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3445 /* 15 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3446 /* 16 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3447 /* 17 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3448 /* 18 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3449 /* 19 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3450 /* 1a */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3451 /* 1b */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3452 /* 1c */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3453 /* 1d */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3454 /* 1e */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3455 /* 1f */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3456 /* 20 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3457 /* 21 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3458 /* 22 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3459 /* 23 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3460 /* 24 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3461 /* 25 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3462 /* 26 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3463 /* 27 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3464 /* 28 */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3465 /* 29 */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3466 /* 2a */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3467 /* 2b */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3468 /* 2c */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3469 /* 2d */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3470 /* 2e */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3471 /* 2f */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3472 /* 30 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3473 /* 31 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3474 /* 32 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3475 /* 33 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3476 /* 34 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3477 /* 35 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3478 /* 36 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3479 /* 37 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3480 /* 38 */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3481 /* 39 */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3482 /* 3a */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3483 /* 3b */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3484 /* 3c */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3485 /* 3d */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3486 /* 3e */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3487 /* 3f */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3488 /* 40 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3489 /* 41 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3490 /* 42 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3491 /* 43 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3492 /* 44 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3493 /* 45 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3494 /* 46 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3495 /* 47 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3496 /* 48 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3497 /* 49 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3498 /* 4a */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3499 /* 4b */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3500 /* 4c */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3501 /* 4d */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3502 /* 4e */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3503 /* 4f */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3504 /* 50 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3505 /* 51 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3506 /* 52 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3507 /* 53 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3508 /* 54 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3509 /* 55 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3510 /* 56 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3511 /* 57 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3512 /* 58 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3513 /* 59 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3514 /* 5a */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3515 /* 5b */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3516 /* 5c */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3517 /* 5d */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3518 /* 5e */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3519 /* 5f */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3520 /* 60 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3521 /* 61 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3522 /* 62 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3523 /* 63 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3524 /* 64 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3525 /* 65 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3526 /* 66 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3527 /* 67 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3528 /* 68 */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3529 /* 69 */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3530 /* 6a */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3531 /* 6b */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3532 /* 6c */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3533 /* 6d */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3534 /* 6e */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3535 /* 6f */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3536 /* 70 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3537 /* 71 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3538 /* 72 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3539 /* 73 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3540 /* 74 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3541 /* 75 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3542 /* 76 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3543 /* 77 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3544 /* 78 */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3545 /* 79 */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3546 /* 7a */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3547 /* 7b */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3548 /* 7c */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3549 /* 7d */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3550 /* 7e */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3551 /* 7f */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3552 /* 80 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3553 /* 81 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3554 /* 82 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3555 /* 83 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3556 /* 84 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3557 /* 85 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3558 /* 86 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3559 /* 87 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3560 /* 88 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3561 /* 89 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3562 /* 8a */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3563 /* 8b */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3564 /* 8c */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3565 /* 8d */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3566 /* 8e */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3567 /* 8f */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3568 /* 90 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3569 /* 91 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3570 /* 92 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3571 /* 93 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3572 /* 94 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3573 /* 95 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3574 /* 96 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3575 /* 97 */ { NACLi_X87, 1, 1, 0 }, /* fst */
3576 /* 98 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3577 /* 99 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3578 /* 9a */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3579 /* 9b */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3580 /* 9c */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3581 /* 9d */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3582 /* 9e */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3583 /* 9f */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3584 /* a0 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3585 /* a1 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3586 /* a2 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3587 /* a3 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3588 /* a4 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3589 /* a5 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3590 /* a6 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3591 /* a7 */ { NACLi_X87, 1, 1, 0 }, /* fldenv */
3592 /* a8 */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3593 /* a9 */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3594 /* aa */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3595 /* ab */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3596 /* ac */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3597 /* ad */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3598 /* ae */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3599 /* af */ { NACLi_X87, 1, 1, 0 }, /* fldcw */
3600 /* b0 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3601 /* b1 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3602 /* b2 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3603 /* b3 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3604 /* b4 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3605 /* b5 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3606 /* b6 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3607 /* b7 */ { NACLi_X87, 1, 1, 0 }, /* fnstenv */
3608 /* b8 */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3609 /* b9 */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3610 /* ba */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3611 /* bb */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3612 /* bc */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3613 /* bd */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3614 /* be */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3615 /* bf */ { NACLi_X87, 1, 1, 0 }, /* fnstcw */
3616 /* c0 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3617 /* c1 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3618 /* c2 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3619 /* c3 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3620 /* c4 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3621 /* c5 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3622 /* c6 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3623 /* c7 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3624 /* c8 */ { NACLi_X87, 1, 1, 0 }, /* fxch */
3625 /* c9 */ { NACLi_X87, 1, 1, 0 }, /* fxch */
3626 /* ca */ { NACLi_X87, 1, 1, 0 }, /* fxch */
3627 /* cb */ { NACLi_X87, 1, 1, 0 }, /* fxch */
3628 /* cc */ { NACLi_X87, 1, 1, 0 }, /* fxch */
3629 /* cd */ { NACLi_X87, 1, 1, 0 }, /* fxch */
3630 /* ce */ { NACLi_X87, 1, 1, 0 }, /* fxch */
3631 /* cf */ { NACLi_X87, 1, 1, 0 }, /* fxch */
3632 /* d0 */ { NACLi_X87, 1, 1, 0 }, /* fnop */
3633 /* d1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3634 /* d2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3635 /* d3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3636 /* d4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3637 /* d5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3638 /* d6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3639 /* d7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3640 /* d8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3641 /* d9 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3642 /* da */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3643 /* db */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3644 /* dc */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3645 /* dd */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3646 /* de */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3647 /* df */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3648 /* e0 */ { NACLi_X87, 1, 1, 0 }, /* fchs */
3649 /* e1 */ { NACLi_X87, 1, 1, 0 }, /* fabs */
3650 /* e2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3651 /* e3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3652 /* e4 */ { NACLi_X87, 1, 1, 0 }, /* ftst */
3653 /* e5 */ { NACLi_X87, 1, 1, 0 }, /* fxam */
3654 /* e6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3655 /* e7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3656 /* e8 */ { NACLi_X87, 1, 1, 0 }, /* fld1 */
3657 /* e9 */ { NACLi_X87, 1, 1, 0 }, /* fldl2t */
3658 /* ea */ { NACLi_X87, 1, 1, 0 }, /* fldl2e */
3659 /* eb */ { NACLi_X87, 1, 1, 0 }, /* fldpi */
3660 /* ec */ { NACLi_X87, 1, 1, 0 }, /* fldlg2 */
3661 /* ed */ { NACLi_X87, 1, 1, 0 }, /* fldln2 */
3662 /* ee */ { NACLi_X87, 1, 1, 0 }, /* fldz */
3663 /* ef */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3664 /* f0 */ { NACLi_X87, 1, 1, 0 }, /* f2xm1 */
3665 /* f1 */ { NACLi_X87, 1, 1, 0 }, /* fyl2x */
3666 /* f2 */ { NACLi_X87, 1, 1, 0 }, /* fptan */
3667 /* f3 */ { NACLi_X87, 1, 1, 0 }, /* fpatan */
3668 /* f4 */ { NACLi_X87, 1, 1, 0 }, /* fxtract */
3669 /* f5 */ { NACLi_X87, 1, 1, 0 }, /* fprem1 */
3670 /* f6 */ { NACLi_X87, 1, 1, 0 }, /* fdecstp */
3671 /* f7 */ { NACLi_X87, 1, 1, 0 }, /* fincstp */
3672 /* f8 */ { NACLi_X87, 1, 1, 0 }, /* fprem */
3673 /* f9 */ { NACLi_X87, 1, 1, 0 }, /* fyl2xp1 */
3674 /* fa */ { NACLi_X87, 1, 1, 0 }, /* fsqrt */
3675 /* fb */ { NACLi_X87_FSINCOS, 1, 1, 0 }, /* fsincos */
3676 /* fc */ { NACLi_X87, 1, 1, 0 }, /* frndint */
3677 /* fd */ { NACLi_X87, 1, 1, 0 }, /* fscale */
3678 /* fe */ { NACLi_X87, 1, 1, 0 }, /* fsin */
3679 /* ff */ { NACLi_X87, 1, 1, 0 }, /* fcos */
3682 static const struct OpInfo kDecode87DA[NCDTABLESIZE] = {
3683 /* 00 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3684 /* 01 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3685 /* 02 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3686 /* 03 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3687 /* 04 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3688 /* 05 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3689 /* 06 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3690 /* 07 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3691 /* 08 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3692 /* 09 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3693 /* 0a */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3694 /* 0b */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3695 /* 0c */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3696 /* 0d */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3697 /* 0e */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3698 /* 0f */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3699 /* 10 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3700 /* 11 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3701 /* 12 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3702 /* 13 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3703 /* 14 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3704 /* 15 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3705 /* 16 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3706 /* 17 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3707 /* 18 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3708 /* 19 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3709 /* 1a */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3710 /* 1b */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3711 /* 1c */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3712 /* 1d */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3713 /* 1e */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3714 /* 1f */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3715 /* 20 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3716 /* 21 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3717 /* 22 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3718 /* 23 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3719 /* 24 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3720 /* 25 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3721 /* 26 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3722 /* 27 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3723 /* 28 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3724 /* 29 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3725 /* 2a */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3726 /* 2b */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3727 /* 2c */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3728 /* 2d */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3729 /* 2e */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3730 /* 2f */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3731 /* 30 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3732 /* 31 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3733 /* 32 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3734 /* 33 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3735 /* 34 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3736 /* 35 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3737 /* 36 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3738 /* 37 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3739 /* 38 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3740 /* 39 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3741 /* 3a */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3742 /* 3b */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3743 /* 3c */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3744 /* 3d */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3745 /* 3e */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3746 /* 3f */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3747 /* 40 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3748 /* 41 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3749 /* 42 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3750 /* 43 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3751 /* 44 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3752 /* 45 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3753 /* 46 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3754 /* 47 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3755 /* 48 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3756 /* 49 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3757 /* 4a */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3758 /* 4b */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3759 /* 4c */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3760 /* 4d */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3761 /* 4e */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3762 /* 4f */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3763 /* 50 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3764 /* 51 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3765 /* 52 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3766 /* 53 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3767 /* 54 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3768 /* 55 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3769 /* 56 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3770 /* 57 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3771 /* 58 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3772 /* 59 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3773 /* 5a */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3774 /* 5b */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3775 /* 5c */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3776 /* 5d */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3777 /* 5e */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3778 /* 5f */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3779 /* 60 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3780 /* 61 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3781 /* 62 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3782 /* 63 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3783 /* 64 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3784 /* 65 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3785 /* 66 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3786 /* 67 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3787 /* 68 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3788 /* 69 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3789 /* 6a */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3790 /* 6b */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3791 /* 6c */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3792 /* 6d */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3793 /* 6e */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3794 /* 6f */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3795 /* 70 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3796 /* 71 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3797 /* 72 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3798 /* 73 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3799 /* 74 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3800 /* 75 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3801 /* 76 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3802 /* 77 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3803 /* 78 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3804 /* 79 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3805 /* 7a */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3806 /* 7b */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3807 /* 7c */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3808 /* 7d */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3809 /* 7e */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3810 /* 7f */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3811 /* 80 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3812 /* 81 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3813 /* 82 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3814 /* 83 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3815 /* 84 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3816 /* 85 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3817 /* 86 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3818 /* 87 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
3819 /* 88 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3820 /* 89 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3821 /* 8a */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3822 /* 8b */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3823 /* 8c */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3824 /* 8d */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3825 /* 8e */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3826 /* 8f */ { NACLi_X87, 1, 1, 0 }, /* fimul */
3827 /* 90 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3828 /* 91 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3829 /* 92 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3830 /* 93 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3831 /* 94 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3832 /* 95 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3833 /* 96 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3834 /* 97 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
3835 /* 98 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3836 /* 99 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3837 /* 9a */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3838 /* 9b */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3839 /* 9c */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3840 /* 9d */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3841 /* 9e */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3842 /* 9f */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
3843 /* a0 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3844 /* a1 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3845 /* a2 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3846 /* a3 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3847 /* a4 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3848 /* a5 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3849 /* a6 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3850 /* a7 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
3851 /* a8 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3852 /* a9 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3853 /* aa */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3854 /* ab */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3855 /* ac */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3856 /* ad */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3857 /* ae */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3858 /* af */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
3859 /* b0 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3860 /* b1 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3861 /* b2 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3862 /* b3 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3863 /* b4 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3864 /* b5 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3865 /* b6 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3866 /* b7 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
3867 /* b8 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3868 /* b9 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3869 /* ba */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3870 /* bb */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3871 /* bc */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3872 /* bd */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3873 /* be */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3874 /* bf */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
3875 /* c0 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovb */
3876 /* c1 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovb */
3877 /* c2 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovb */
3878 /* c3 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovb */
3879 /* c4 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovb */
3880 /* c5 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovb */
3881 /* c6 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovb */
3882 /* c7 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovb */
3883 /* c8 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmove */
3884 /* c9 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmove */
3885 /* ca */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmove */
3886 /* cb */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmove */
3887 /* cc */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmove */
3888 /* cd */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmove */
3889 /* ce */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmove */
3890 /* cf */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmove */
3891 /* d0 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovbe */
3892 /* d1 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovbe */
3893 /* d2 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovbe */
3894 /* d3 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovbe */
3895 /* d4 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovbe */
3896 /* d5 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovbe */
3897 /* d6 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovbe */
3898 /* d7 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovbe */
3899 /* d8 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovu */
3900 /* d9 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovu */
3901 /* da */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovu */
3902 /* db */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovu */
3903 /* dc */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovu */
3904 /* dd */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovu */
3905 /* de */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovu */
3906 /* df */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovu */
3907 /* e0 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3908 /* e1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3909 /* e2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3910 /* e3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3911 /* e4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3912 /* e5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3913 /* e6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3914 /* e7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3915 /* e8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3916 /* e9 */ { NACLi_X87, 1, 1, 0 }, /* fucompp */
3917 /* ea */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3918 /* eb */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3919 /* ec */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3920 /* ed */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3921 /* ee */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3922 /* ef */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3923 /* f0 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3924 /* f1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3925 /* f2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3926 /* f3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3927 /* f4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3928 /* f5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3929 /* f6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3930 /* f7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3931 /* f8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3932 /* f9 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3933 /* fa */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3934 /* fb */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3935 /* fc */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3936 /* fd */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3937 /* fe */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3938 /* ff */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3941 static const struct OpInfo kDecode87DB[NCDTABLESIZE] = {
3942 /* 00 */ { NACLi_X87, 1, 1, 0 }, /* fild */
3943 /* 01 */ { NACLi_X87, 1, 1, 0 }, /* fild */
3944 /* 02 */ { NACLi_X87, 1, 1, 0 }, /* fild */
3945 /* 03 */ { NACLi_X87, 1, 1, 0 }, /* fild */
3946 /* 04 */ { NACLi_X87, 1, 1, 0 }, /* fild */
3947 /* 05 */ { NACLi_X87, 1, 1, 0 }, /* fild */
3948 /* 06 */ { NACLi_X87, 1, 1, 0 }, /* fild */
3949 /* 07 */ { NACLi_X87, 1, 1, 0 }, /* fild */
3950 /* 08 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
3951 /* 09 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
3952 /* 0a */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
3953 /* 0b */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
3954 /* 0c */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
3955 /* 0d */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
3956 /* 0e */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
3957 /* 0f */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
3958 /* 10 */ { NACLi_X87, 1, 1, 0 }, /* fist */
3959 /* 11 */ { NACLi_X87, 1, 1, 0 }, /* fist */
3960 /* 12 */ { NACLi_X87, 1, 1, 0 }, /* fist */
3961 /* 13 */ { NACLi_X87, 1, 1, 0 }, /* fist */
3962 /* 14 */ { NACLi_X87, 1, 1, 0 }, /* fist */
3963 /* 15 */ { NACLi_X87, 1, 1, 0 }, /* fist */
3964 /* 16 */ { NACLi_X87, 1, 1, 0 }, /* fist */
3965 /* 17 */ { NACLi_X87, 1, 1, 0 }, /* fist */
3966 /* 18 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
3967 /* 19 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
3968 /* 1a */ { NACLi_X87, 1, 1, 0 }, /* fistp */
3969 /* 1b */ { NACLi_X87, 1, 1, 0 }, /* fistp */
3970 /* 1c */ { NACLi_X87, 1, 1, 0 }, /* fistp */
3971 /* 1d */ { NACLi_X87, 1, 1, 0 }, /* fistp */
3972 /* 1e */ { NACLi_X87, 1, 1, 0 }, /* fistp */
3973 /* 1f */ { NACLi_X87, 1, 1, 0 }, /* fistp */
3974 /* 20 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3975 /* 21 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3976 /* 22 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3977 /* 23 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3978 /* 24 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3979 /* 25 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3980 /* 26 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3981 /* 27 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3982 /* 28 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3983 /* 29 */ { NACLi_X87, 1, 1, 0 }, /* fld */
3984 /* 2a */ { NACLi_X87, 1, 1, 0 }, /* fld */
3985 /* 2b */ { NACLi_X87, 1, 1, 0 }, /* fld */
3986 /* 2c */ { NACLi_X87, 1, 1, 0 }, /* fld */
3987 /* 2d */ { NACLi_X87, 1, 1, 0 }, /* fld */
3988 /* 2e */ { NACLi_X87, 1, 1, 0 }, /* fld */
3989 /* 2f */ { NACLi_X87, 1, 1, 0 }, /* fld */
3990 /* 30 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3991 /* 31 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3992 /* 32 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3993 /* 33 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3994 /* 34 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3995 /* 35 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3996 /* 36 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3997 /* 37 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
3998 /* 38 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
3999 /* 39 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4000 /* 3a */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4001 /* 3b */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4002 /* 3c */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4003 /* 3d */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4004 /* 3e */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4005 /* 3f */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4006 /* 40 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4007 /* 41 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4008 /* 42 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4009 /* 43 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4010 /* 44 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4011 /* 45 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4012 /* 46 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4013 /* 47 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4014 /* 48 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4015 /* 49 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4016 /* 4a */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4017 /* 4b */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4018 /* 4c */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4019 /* 4d */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4020 /* 4e */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4021 /* 4f */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4022 /* 50 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4023 /* 51 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4024 /* 52 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4025 /* 53 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4026 /* 54 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4027 /* 55 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4028 /* 56 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4029 /* 57 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4030 /* 58 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4031 /* 59 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4032 /* 5a */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4033 /* 5b */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4034 /* 5c */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4035 /* 5d */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4036 /* 5e */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4037 /* 5f */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4038 /* 60 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4039 /* 61 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4040 /* 62 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4041 /* 63 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4042 /* 64 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4043 /* 65 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4044 /* 66 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4045 /* 67 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4046 /* 68 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4047 /* 69 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4048 /* 6a */ { NACLi_X87, 1, 1, 0 }, /* fld */
4049 /* 6b */ { NACLi_X87, 1, 1, 0 }, /* fld */
4050 /* 6c */ { NACLi_X87, 1, 1, 0 }, /* fld */
4051 /* 6d */ { NACLi_X87, 1, 1, 0 }, /* fld */
4052 /* 6e */ { NACLi_X87, 1, 1, 0 }, /* fld */
4053 /* 6f */ { NACLi_X87, 1, 1, 0 }, /* fld */
4054 /* 70 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4055 /* 71 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4056 /* 72 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4057 /* 73 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4058 /* 74 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4059 /* 75 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4060 /* 76 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4061 /* 77 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4062 /* 78 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4063 /* 79 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4064 /* 7a */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4065 /* 7b */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4066 /* 7c */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4067 /* 7d */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4068 /* 7e */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4069 /* 7f */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4070 /* 80 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4071 /* 81 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4072 /* 82 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4073 /* 83 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4074 /* 84 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4075 /* 85 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4076 /* 86 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4077 /* 87 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4078 /* 88 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4079 /* 89 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4080 /* 8a */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4081 /* 8b */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4082 /* 8c */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4083 /* 8d */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4084 /* 8e */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4085 /* 8f */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4086 /* 90 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4087 /* 91 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4088 /* 92 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4089 /* 93 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4090 /* 94 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4091 /* 95 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4092 /* 96 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4093 /* 97 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4094 /* 98 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4095 /* 99 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4096 /* 9a */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4097 /* 9b */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4098 /* 9c */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4099 /* 9d */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4100 /* 9e */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4101 /* 9f */ { NACLi_X87, 1, 1, 0 }, /* fistp */
4102 /* a0 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4103 /* a1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4104 /* a2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4105 /* a3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4106 /* a4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4107 /* a5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4108 /* a6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4109 /* a7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4110 /* a8 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4111 /* a9 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4112 /* aa */ { NACLi_X87, 1, 1, 0 }, /* fld */
4113 /* ab */ { NACLi_X87, 1, 1, 0 }, /* fld */
4114 /* ac */ { NACLi_X87, 1, 1, 0 }, /* fld */
4115 /* ad */ { NACLi_X87, 1, 1, 0 }, /* fld */
4116 /* ae */ { NACLi_X87, 1, 1, 0 }, /* fld */
4117 /* af */ { NACLi_X87, 1, 1, 0 }, /* fld */
4118 /* b0 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4119 /* b1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4120 /* b2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4121 /* b3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4122 /* b4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4123 /* b5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4124 /* b6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4125 /* b7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4126 /* b8 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4127 /* b9 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4128 /* ba */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4129 /* bb */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4130 /* bc */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4131 /* bd */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4132 /* be */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4133 /* bf */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4134 /* c0 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnb */
4135 /* c1 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnb */
4136 /* c2 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnb */
4137 /* c3 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnb */
4138 /* c4 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnb */
4139 /* c5 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnb */
4140 /* c6 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnb */
4141 /* c7 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnb */
4142 /* c8 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovne */
4143 /* c9 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovne */
4144 /* ca */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovne */
4145 /* cb */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovne */
4146 /* cc */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovne */
4147 /* cd */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovne */
4148 /* ce */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovne */
4149 /* cf */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovne */
4150 /* d0 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnbe */
4151 /* d1 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnbe */
4152 /* d2 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnbe */
4153 /* d3 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnbe */
4154 /* d4 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnbe */
4155 /* d5 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnbe */
4156 /* d6 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnbe */
4157 /* d7 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnbe */
4158 /* d8 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnu */
4159 /* d9 */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnu */
4160 /* da */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnu */
4161 /* db */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnu */
4162 /* dc */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnu */
4163 /* dd */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnu */
4164 /* de */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnu */
4165 /* df */ { NACLi_FCMOV, 1, 1, 0 }, /* fcmovnu */
4166 /* e0 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4167 /* e1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4168 /* e2 */ { NACLi_X87, 1, 1, 0 }, /* fnclex */
4169 /* e3 */ { NACLi_X87, 1, 1, 0 }, /* fninit */
4170 /* e4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4171 /* e5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4172 /* e6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4173 /* e7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4174 /* e8 */ { NACLi_X87, 1, 1, 0 }, /* fucomi */
4175 /* e9 */ { NACLi_X87, 1, 1, 0 }, /* fucomi */
4176 /* ea */ { NACLi_X87, 1, 1, 0 }, /* fucomi */
4177 /* eb */ { NACLi_X87, 1, 1, 0 }, /* fucomi */
4178 /* ec */ { NACLi_X87, 1, 1, 0 }, /* fucomi */
4179 /* ed */ { NACLi_X87, 1, 1, 0 }, /* fucomi */
4180 /* ee */ { NACLi_X87, 1, 1, 0 }, /* fucomi */
4181 /* ef */ { NACLi_X87, 1, 1, 0 }, /* fucomi */
4182 /* f0 */ { NACLi_X87, 1, 1, 0 }, /* fcomi */
4183 /* f1 */ { NACLi_X87, 1, 1, 0 }, /* fcomi */
4184 /* f2 */ { NACLi_X87, 1, 1, 0 }, /* fcomi */
4185 /* f3 */ { NACLi_X87, 1, 1, 0 }, /* fcomi */
4186 /* f4 */ { NACLi_X87, 1, 1, 0 }, /* fcomi */
4187 /* f5 */ { NACLi_X87, 1, 1, 0 }, /* fcomi */
4188 /* f6 */ { NACLi_X87, 1, 1, 0 }, /* fcomi */
4189 /* f7 */ { NACLi_X87, 1, 1, 0 }, /* fcomi */
4190 /* f8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4191 /* f9 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4192 /* fa */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4193 /* fb */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4194 /* fc */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4195 /* fd */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4196 /* fe */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4197 /* ff */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4200 static const struct OpInfo kDecode87DC[NCDTABLESIZE] = {
4201 /* 00 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4202 /* 01 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4203 /* 02 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4204 /* 03 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4205 /* 04 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4206 /* 05 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4207 /* 06 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4208 /* 07 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4209 /* 08 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4210 /* 09 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4211 /* 0a */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4212 /* 0b */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4213 /* 0c */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4214 /* 0d */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4215 /* 0e */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4216 /* 0f */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4217 /* 10 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4218 /* 11 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4219 /* 12 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4220 /* 13 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4221 /* 14 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4222 /* 15 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4223 /* 16 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4224 /* 17 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4225 /* 18 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4226 /* 19 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4227 /* 1a */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4228 /* 1b */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4229 /* 1c */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4230 /* 1d */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4231 /* 1e */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4232 /* 1f */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4233 /* 20 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4234 /* 21 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4235 /* 22 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4236 /* 23 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4237 /* 24 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4238 /* 25 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4239 /* 26 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4240 /* 27 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4241 /* 28 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4242 /* 29 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4243 /* 2a */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4244 /* 2b */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4245 /* 2c */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4246 /* 2d */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4247 /* 2e */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4248 /* 2f */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4249 /* 30 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4250 /* 31 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4251 /* 32 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4252 /* 33 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4253 /* 34 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4254 /* 35 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4255 /* 36 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4256 /* 37 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4257 /* 38 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4258 /* 39 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4259 /* 3a */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4260 /* 3b */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4261 /* 3c */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4262 /* 3d */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4263 /* 3e */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4264 /* 3f */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4265 /* 40 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4266 /* 41 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4267 /* 42 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4268 /* 43 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4269 /* 44 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4270 /* 45 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4271 /* 46 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4272 /* 47 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4273 /* 48 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4274 /* 49 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4275 /* 4a */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4276 /* 4b */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4277 /* 4c */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4278 /* 4d */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4279 /* 4e */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4280 /* 4f */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4281 /* 50 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4282 /* 51 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4283 /* 52 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4284 /* 53 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4285 /* 54 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4286 /* 55 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4287 /* 56 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4288 /* 57 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4289 /* 58 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4290 /* 59 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4291 /* 5a */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4292 /* 5b */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4293 /* 5c */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4294 /* 5d */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4295 /* 5e */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4296 /* 5f */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4297 /* 60 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4298 /* 61 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4299 /* 62 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4300 /* 63 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4301 /* 64 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4302 /* 65 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4303 /* 66 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4304 /* 67 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4305 /* 68 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4306 /* 69 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4307 /* 6a */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4308 /* 6b */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4309 /* 6c */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4310 /* 6d */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4311 /* 6e */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4312 /* 6f */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4313 /* 70 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4314 /* 71 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4315 /* 72 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4316 /* 73 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4317 /* 74 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4318 /* 75 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4319 /* 76 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4320 /* 77 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4321 /* 78 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4322 /* 79 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4323 /* 7a */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4324 /* 7b */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4325 /* 7c */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4326 /* 7d */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4327 /* 7e */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4328 /* 7f */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4329 /* 80 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4330 /* 81 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4331 /* 82 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4332 /* 83 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4333 /* 84 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4334 /* 85 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4335 /* 86 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4336 /* 87 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4337 /* 88 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4338 /* 89 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4339 /* 8a */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4340 /* 8b */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4341 /* 8c */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4342 /* 8d */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4343 /* 8e */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4344 /* 8f */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4345 /* 90 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4346 /* 91 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4347 /* 92 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4348 /* 93 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4349 /* 94 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4350 /* 95 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4351 /* 96 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4352 /* 97 */ { NACLi_X87, 1, 1, 0 }, /* fcom */
4353 /* 98 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4354 /* 99 */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4355 /* 9a */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4356 /* 9b */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4357 /* 9c */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4358 /* 9d */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4359 /* 9e */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4360 /* 9f */ { NACLi_X87, 1, 1, 0 }, /* fcomp */
4361 /* a0 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4362 /* a1 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4363 /* a2 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4364 /* a3 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4365 /* a4 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4366 /* a5 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4367 /* a6 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4368 /* a7 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4369 /* a8 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4370 /* a9 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4371 /* aa */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4372 /* ab */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4373 /* ac */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4374 /* ad */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4375 /* ae */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4376 /* af */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4377 /* b0 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4378 /* b1 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4379 /* b2 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4380 /* b3 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4381 /* b4 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4382 /* b5 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4383 /* b6 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4384 /* b7 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4385 /* b8 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4386 /* b9 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4387 /* ba */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4388 /* bb */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4389 /* bc */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4390 /* bd */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4391 /* be */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4392 /* bf */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4393 /* c0 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4394 /* c1 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4395 /* c2 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4396 /* c3 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4397 /* c4 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4398 /* c5 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4399 /* c6 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4400 /* c7 */ { NACLi_X87, 1, 1, 0 }, /* fadd */
4401 /* c8 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4402 /* c9 */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4403 /* ca */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4404 /* cb */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4405 /* cc */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4406 /* cd */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4407 /* ce */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4408 /* cf */ { NACLi_X87, 1, 1, 0 }, /* fmul */
4409 /* d0 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4410 /* d1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4411 /* d2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4412 /* d3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4413 /* d4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4414 /* d5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4415 /* d6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4416 /* d7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4417 /* d8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4418 /* d9 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4419 /* da */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4420 /* db */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4421 /* dc */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4422 /* dd */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4423 /* de */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4424 /* df */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4425 /* e0 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4426 /* e1 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4427 /* e2 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4428 /* e3 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4429 /* e4 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4430 /* e5 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4431 /* e6 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4432 /* e7 */ { NACLi_X87, 1, 1, 0 }, /* fsubr */
4433 /* e8 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4434 /* e9 */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4435 /* ea */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4436 /* eb */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4437 /* ec */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4438 /* ed */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4439 /* ee */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4440 /* ef */ { NACLi_X87, 1, 1, 0 }, /* fsub */
4441 /* f0 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4442 /* f1 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4443 /* f2 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4444 /* f3 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4445 /* f4 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4446 /* f5 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4447 /* f6 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4448 /* f7 */ { NACLi_X87, 1, 1, 0 }, /* fdivr */
4449 /* f8 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4450 /* f9 */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4451 /* fa */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4452 /* fb */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4453 /* fc */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4454 /* fd */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4455 /* fe */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4456 /* ff */ { NACLi_X87, 1, 1, 0 }, /* fdiv */
4459 static const struct OpInfo kDecode87DD[NCDTABLESIZE] = {
4460 /* 00 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4461 /* 01 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4462 /* 02 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4463 /* 03 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4464 /* 04 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4465 /* 05 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4466 /* 06 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4467 /* 07 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4468 /* 08 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4469 /* 09 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4470 /* 0a */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4471 /* 0b */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4472 /* 0c */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4473 /* 0d */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4474 /* 0e */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4475 /* 0f */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4476 /* 10 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4477 /* 11 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4478 /* 12 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4479 /* 13 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4480 /* 14 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4481 /* 15 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4482 /* 16 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4483 /* 17 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4484 /* 18 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4485 /* 19 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4486 /* 1a */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4487 /* 1b */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4488 /* 1c */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4489 /* 1d */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4490 /* 1e */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4491 /* 1f */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4492 /* 20 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4493 /* 21 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4494 /* 22 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4495 /* 23 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4496 /* 24 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4497 /* 25 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4498 /* 26 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4499 /* 27 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4500 /* 28 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4501 /* 29 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4502 /* 2a */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4503 /* 2b */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4504 /* 2c */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4505 /* 2d */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4506 /* 2e */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4507 /* 2f */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4508 /* 30 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4509 /* 31 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4510 /* 32 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4511 /* 33 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4512 /* 34 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4513 /* 35 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4514 /* 36 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4515 /* 37 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4516 /* 38 */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4517 /* 39 */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4518 /* 3a */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4519 /* 3b */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4520 /* 3c */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4521 /* 3d */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4522 /* 3e */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4523 /* 3f */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4524 /* 40 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4525 /* 41 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4526 /* 42 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4527 /* 43 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4528 /* 44 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4529 /* 45 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4530 /* 46 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4531 /* 47 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4532 /* 48 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4533 /* 49 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4534 /* 4a */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4535 /* 4b */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4536 /* 4c */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4537 /* 4d */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4538 /* 4e */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4539 /* 4f */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4540 /* 50 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4541 /* 51 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4542 /* 52 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4543 /* 53 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4544 /* 54 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4545 /* 55 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4546 /* 56 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4547 /* 57 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4548 /* 58 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4549 /* 59 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4550 /* 5a */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4551 /* 5b */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4552 /* 5c */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4553 /* 5d */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4554 /* 5e */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4555 /* 5f */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4556 /* 60 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4557 /* 61 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4558 /* 62 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4559 /* 63 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4560 /* 64 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4561 /* 65 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4562 /* 66 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4563 /* 67 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4564 /* 68 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4565 /* 69 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4566 /* 6a */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4567 /* 6b */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4568 /* 6c */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4569 /* 6d */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4570 /* 6e */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4571 /* 6f */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4572 /* 70 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4573 /* 71 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4574 /* 72 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4575 /* 73 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4576 /* 74 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4577 /* 75 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4578 /* 76 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4579 /* 77 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4580 /* 78 */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4581 /* 79 */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4582 /* 7a */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4583 /* 7b */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4584 /* 7c */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4585 /* 7d */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4586 /* 7e */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4587 /* 7f */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4588 /* 80 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4589 /* 81 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4590 /* 82 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4591 /* 83 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4592 /* 84 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4593 /* 85 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4594 /* 86 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4595 /* 87 */ { NACLi_X87, 1, 1, 0 }, /* fld */
4596 /* 88 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4597 /* 89 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4598 /* 8a */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4599 /* 8b */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4600 /* 8c */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4601 /* 8d */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4602 /* 8e */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4603 /* 8f */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4604 /* 90 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4605 /* 91 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4606 /* 92 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4607 /* 93 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4608 /* 94 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4609 /* 95 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4610 /* 96 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4611 /* 97 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4612 /* 98 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4613 /* 99 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4614 /* 9a */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4615 /* 9b */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4616 /* 9c */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4617 /* 9d */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4618 /* 9e */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4619 /* 9f */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4620 /* a0 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4621 /* a1 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4622 /* a2 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4623 /* a3 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4624 /* a4 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4625 /* a5 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4626 /* a6 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4627 /* a7 */ { NACLi_X87, 1, 1, 0 }, /* frstor */
4628 /* a8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4629 /* a9 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4630 /* aa */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4631 /* ab */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4632 /* ac */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4633 /* ad */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4634 /* ae */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4635 /* af */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4636 /* b0 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4637 /* b1 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4638 /* b2 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4639 /* b3 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4640 /* b4 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4641 /* b5 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4642 /* b6 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4643 /* b7 */ { NACLi_X87, 1, 1, 0 }, /* fnsave */
4644 /* b8 */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4645 /* b9 */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4646 /* ba */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4647 /* bb */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4648 /* bc */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4649 /* bd */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4650 /* be */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4651 /* bf */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
4652 /* c0 */ { NACLi_X87, 1, 1, 0 }, /* ffree */
4653 /* c1 */ { NACLi_X87, 1, 1, 0 }, /* ffree */
4654 /* c2 */ { NACLi_X87, 1, 1, 0 }, /* ffree */
4655 /* c3 */ { NACLi_X87, 1, 1, 0 }, /* ffree */
4656 /* c4 */ { NACLi_X87, 1, 1, 0 }, /* ffree */
4657 /* c5 */ { NACLi_X87, 1, 1, 0 }, /* ffree */
4658 /* c6 */ { NACLi_X87, 1, 1, 0 }, /* ffree */
4659 /* c7 */ { NACLi_X87, 1, 1, 0 }, /* ffree */
4660 /* c8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4661 /* c9 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4662 /* ca */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4663 /* cb */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4664 /* cc */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4665 /* cd */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4666 /* ce */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4667 /* cf */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4668 /* d0 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4669 /* d1 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4670 /* d2 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4671 /* d3 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4672 /* d4 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4673 /* d5 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4674 /* d6 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4675 /* d7 */ { NACLi_X87, 1, 1, 0 }, /* fst */
4676 /* d8 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4677 /* d9 */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4678 /* da */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4679 /* db */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4680 /* dc */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4681 /* dd */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4682 /* de */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4683 /* df */ { NACLi_X87, 1, 1, 0 }, /* fstp */
4684 /* e0 */ { NACLi_X87, 1, 1, 0 }, /* fucom */
4685 /* e1 */ { NACLi_X87, 1, 1, 0 }, /* fucom */
4686 /* e2 */ { NACLi_X87, 1, 1, 0 }, /* fucom */
4687 /* e3 */ { NACLi_X87, 1, 1, 0 }, /* fucom */
4688 /* e4 */ { NACLi_X87, 1, 1, 0 }, /* fucom */
4689 /* e5 */ { NACLi_X87, 1, 1, 0 }, /* fucom */
4690 /* e6 */ { NACLi_X87, 1, 1, 0 }, /* fucom */
4691 /* e7 */ { NACLi_X87, 1, 1, 0 }, /* fucom */
4692 /* e8 */ { NACLi_X87, 1, 1, 0 }, /* fucomp */
4693 /* e9 */ { NACLi_X87, 1, 1, 0 }, /* fucomp */
4694 /* ea */ { NACLi_X87, 1, 1, 0 }, /* fucomp */
4695 /* eb */ { NACLi_X87, 1, 1, 0 }, /* fucomp */
4696 /* ec */ { NACLi_X87, 1, 1, 0 }, /* fucomp */
4697 /* ed */ { NACLi_X87, 1, 1, 0 }, /* fucomp */
4698 /* ee */ { NACLi_X87, 1, 1, 0 }, /* fucomp */
4699 /* ef */ { NACLi_X87, 1, 1, 0 }, /* fucomp */
4700 /* f0 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4701 /* f1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4702 /* f2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4703 /* f3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4704 /* f4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4705 /* f5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4706 /* f6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4707 /* f7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4708 /* f8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4709 /* f9 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4710 /* fa */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4711 /* fb */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4712 /* fc */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4713 /* fd */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4714 /* fe */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4715 /* ff */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4718 static const struct OpInfo kDecode87DE[NCDTABLESIZE] = {
4719 /* 00 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4720 /* 01 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4721 /* 02 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4722 /* 03 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4723 /* 04 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4724 /* 05 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4725 /* 06 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4726 /* 07 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4727 /* 08 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4728 /* 09 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4729 /* 0a */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4730 /* 0b */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4731 /* 0c */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4732 /* 0d */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4733 /* 0e */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4734 /* 0f */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4735 /* 10 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4736 /* 11 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4737 /* 12 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4738 /* 13 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4739 /* 14 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4740 /* 15 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4741 /* 16 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4742 /* 17 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4743 /* 18 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4744 /* 19 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4745 /* 1a */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4746 /* 1b */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4747 /* 1c */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4748 /* 1d */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4749 /* 1e */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4750 /* 1f */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4751 /* 20 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4752 /* 21 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4753 /* 22 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4754 /* 23 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4755 /* 24 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4756 /* 25 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4757 /* 26 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4758 /* 27 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4759 /* 28 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4760 /* 29 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4761 /* 2a */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4762 /* 2b */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4763 /* 2c */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4764 /* 2d */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4765 /* 2e */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4766 /* 2f */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4767 /* 30 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4768 /* 31 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4769 /* 32 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4770 /* 33 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4771 /* 34 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4772 /* 35 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4773 /* 36 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4774 /* 37 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4775 /* 38 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4776 /* 39 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4777 /* 3a */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4778 /* 3b */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4779 /* 3c */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4780 /* 3d */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4781 /* 3e */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4782 /* 3f */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4783 /* 40 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4784 /* 41 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4785 /* 42 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4786 /* 43 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4787 /* 44 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4788 /* 45 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4789 /* 46 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4790 /* 47 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4791 /* 48 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4792 /* 49 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4793 /* 4a */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4794 /* 4b */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4795 /* 4c */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4796 /* 4d */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4797 /* 4e */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4798 /* 4f */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4799 /* 50 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4800 /* 51 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4801 /* 52 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4802 /* 53 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4803 /* 54 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4804 /* 55 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4805 /* 56 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4806 /* 57 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4807 /* 58 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4808 /* 59 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4809 /* 5a */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4810 /* 5b */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4811 /* 5c */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4812 /* 5d */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4813 /* 5e */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4814 /* 5f */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4815 /* 60 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4816 /* 61 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4817 /* 62 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4818 /* 63 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4819 /* 64 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4820 /* 65 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4821 /* 66 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4822 /* 67 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4823 /* 68 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4824 /* 69 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4825 /* 6a */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4826 /* 6b */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4827 /* 6c */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4828 /* 6d */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4829 /* 6e */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4830 /* 6f */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4831 /* 70 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4832 /* 71 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4833 /* 72 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4834 /* 73 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4835 /* 74 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4836 /* 75 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4837 /* 76 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4838 /* 77 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4839 /* 78 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4840 /* 79 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4841 /* 7a */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4842 /* 7b */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4843 /* 7c */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4844 /* 7d */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4845 /* 7e */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4846 /* 7f */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4847 /* 80 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4848 /* 81 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4849 /* 82 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4850 /* 83 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4851 /* 84 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4852 /* 85 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4853 /* 86 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4854 /* 87 */ { NACLi_X87, 1, 1, 0 }, /* fiadd */
4855 /* 88 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4856 /* 89 */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4857 /* 8a */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4858 /* 8b */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4859 /* 8c */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4860 /* 8d */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4861 /* 8e */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4862 /* 8f */ { NACLi_X87, 1, 1, 0 }, /* fimul */
4863 /* 90 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4864 /* 91 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4865 /* 92 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4866 /* 93 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4867 /* 94 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4868 /* 95 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4869 /* 96 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4870 /* 97 */ { NACLi_X87, 1, 1, 0 }, /* ficom */
4871 /* 98 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4872 /* 99 */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4873 /* 9a */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4874 /* 9b */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4875 /* 9c */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4876 /* 9d */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4877 /* 9e */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4878 /* 9f */ { NACLi_X87, 1, 1, 0 }, /* ficomp */
4879 /* a0 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4880 /* a1 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4881 /* a2 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4882 /* a3 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4883 /* a4 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4884 /* a5 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4885 /* a6 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4886 /* a7 */ { NACLi_X87, 1, 1, 0 }, /* fisub */
4887 /* a8 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4888 /* a9 */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4889 /* aa */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4890 /* ab */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4891 /* ac */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4892 /* ad */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4893 /* ae */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4894 /* af */ { NACLi_X87, 1, 1, 0 }, /* fisubr */
4895 /* b0 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4896 /* b1 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4897 /* b2 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4898 /* b3 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4899 /* b4 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4900 /* b5 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4901 /* b6 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4902 /* b7 */ { NACLi_X87, 1, 1, 0 }, /* fidiv */
4903 /* b8 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4904 /* b9 */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4905 /* ba */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4906 /* bb */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4907 /* bc */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4908 /* bd */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4909 /* be */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4910 /* bf */ { NACLi_X87, 1, 1, 0 }, /* fidivr */
4911 /* c0 */ { NACLi_X87, 1, 1, 0 }, /* faddp */
4912 /* c1 */ { NACLi_X87, 1, 1, 0 }, /* faddp */
4913 /* c2 */ { NACLi_X87, 1, 1, 0 }, /* faddp */
4914 /* c3 */ { NACLi_X87, 1, 1, 0 }, /* faddp */
4915 /* c4 */ { NACLi_X87, 1, 1, 0 }, /* faddp */
4916 /* c5 */ { NACLi_X87, 1, 1, 0 }, /* faddp */
4917 /* c6 */ { NACLi_X87, 1, 1, 0 }, /* faddp */
4918 /* c7 */ { NACLi_X87, 1, 1, 0 }, /* faddp */
4919 /* c8 */ { NACLi_X87, 1, 1, 0 }, /* fmulp */
4920 /* c9 */ { NACLi_X87, 1, 1, 0 }, /* fmulp */
4921 /* ca */ { NACLi_X87, 1, 1, 0 }, /* fmulp */
4922 /* cb */ { NACLi_X87, 1, 1, 0 }, /* fmulp */
4923 /* cc */ { NACLi_X87, 1, 1, 0 }, /* fmulp */
4924 /* cd */ { NACLi_X87, 1, 1, 0 }, /* fmulp */
4925 /* ce */ { NACLi_X87, 1, 1, 0 }, /* fmulp */
4926 /* cf */ { NACLi_X87, 1, 1, 0 }, /* fmulp */
4927 /* d0 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4928 /* d1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4929 /* d2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4930 /* d3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4931 /* d4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4932 /* d5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4933 /* d6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4934 /* d7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4935 /* d8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4936 /* d9 */ { NACLi_X87, 1, 1, 0 }, /* fcompp */
4937 /* da */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4938 /* db */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4939 /* dc */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4940 /* dd */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4941 /* de */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4942 /* df */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
4943 /* e0 */ { NACLi_X87, 1, 1, 0 }, /* fsubrp */
4944 /* e1 */ { NACLi_X87, 1, 1, 0 }, /* fsubrp */
4945 /* e2 */ { NACLi_X87, 1, 1, 0 }, /* fsubrp */
4946 /* e3 */ { NACLi_X87, 1, 1, 0 }, /* fsubrp */
4947 /* e4 */ { NACLi_X87, 1, 1, 0 }, /* fsubrp */
4948 /* e5 */ { NACLi_X87, 1, 1, 0 }, /* fsubrp */
4949 /* e6 */ { NACLi_X87, 1, 1, 0 }, /* fsubrp */
4950 /* e7 */ { NACLi_X87, 1, 1, 0 }, /* fsubrp */
4951 /* e8 */ { NACLi_X87, 1, 1, 0 }, /* fsubp */
4952 /* e9 */ { NACLi_X87, 1, 1, 0 }, /* fsubp */
4953 /* ea */ { NACLi_X87, 1, 1, 0 }, /* fsubp */
4954 /* eb */ { NACLi_X87, 1, 1, 0 }, /* fsubp */
4955 /* ec */ { NACLi_X87, 1, 1, 0 }, /* fsubp */
4956 /* ed */ { NACLi_X87, 1, 1, 0 }, /* fsubp */
4957 /* ee */ { NACLi_X87, 1, 1, 0 }, /* fsubp */
4958 /* ef */ { NACLi_X87, 1, 1, 0 }, /* fsubp */
4959 /* f0 */ { NACLi_X87, 1, 1, 0 }, /* fdivrp */
4960 /* f1 */ { NACLi_X87, 1, 1, 0 }, /* fdivrp */
4961 /* f2 */ { NACLi_X87, 1, 1, 0 }, /* fdivrp */
4962 /* f3 */ { NACLi_X87, 1, 1, 0 }, /* fdivrp */
4963 /* f4 */ { NACLi_X87, 1, 1, 0 }, /* fdivrp */
4964 /* f5 */ { NACLi_X87, 1, 1, 0 }, /* fdivrp */
4965 /* f6 */ { NACLi_X87, 1, 1, 0 }, /* fdivrp */
4966 /* f7 */ { NACLi_X87, 1, 1, 0 }, /* fdivrp */
4967 /* f8 */ { NACLi_X87, 1, 1, 0 }, /* fdivp */
4968 /* f9 */ { NACLi_X87, 1, 1, 0 }, /* fdivp */
4969 /* fa */ { NACLi_X87, 1, 1, 0 }, /* fdivp */
4970 /* fb */ { NACLi_X87, 1, 1, 0 }, /* fdivp */
4971 /* fc */ { NACLi_X87, 1, 1, 0 }, /* fdivp */
4972 /* fd */ { NACLi_X87, 1, 1, 0 }, /* fdivp */
4973 /* fe */ { NACLi_X87, 1, 1, 0 }, /* fdivp */
4974 /* ff */ { NACLi_X87, 1, 1, 0 }, /* fdivp */
4977 static const struct OpInfo kDecode87DF[NCDTABLESIZE] = {
4978 /* 00 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4979 /* 01 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4980 /* 02 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4981 /* 03 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4982 /* 04 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4983 /* 05 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4984 /* 06 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4985 /* 07 */ { NACLi_X87, 1, 1, 0 }, /* fild */
4986 /* 08 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4987 /* 09 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4988 /* 0a */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4989 /* 0b */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4990 /* 0c */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4991 /* 0d */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4992 /* 0e */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4993 /* 0f */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
4994 /* 10 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4995 /* 11 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4996 /* 12 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4997 /* 13 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4998 /* 14 */ { NACLi_X87, 1, 1, 0 }, /* fist */
4999 /* 15 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5000 /* 16 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5001 /* 17 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5002 /* 18 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5003 /* 19 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5004 /* 1a */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5005 /* 1b */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5006 /* 1c */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5007 /* 1d */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5008 /* 1e */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5009 /* 1f */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5010 /* 20 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5011 /* 21 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5012 /* 22 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5013 /* 23 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5014 /* 24 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5015 /* 25 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5016 /* 26 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5017 /* 27 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5018 /* 28 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5019 /* 29 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5020 /* 2a */ { NACLi_X87, 1, 1, 0 }, /* fild */
5021 /* 2b */ { NACLi_X87, 1, 1, 0 }, /* fild */
5022 /* 2c */ { NACLi_X87, 1, 1, 0 }, /* fild */
5023 /* 2d */ { NACLi_X87, 1, 1, 0 }, /* fild */
5024 /* 2e */ { NACLi_X87, 1, 1, 0 }, /* fild */
5025 /* 2f */ { NACLi_X87, 1, 1, 0 }, /* fild */
5026 /* 30 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5027 /* 31 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5028 /* 32 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5029 /* 33 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5030 /* 34 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5031 /* 35 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5032 /* 36 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5033 /* 37 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5034 /* 38 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5035 /* 39 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5036 /* 3a */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5037 /* 3b */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5038 /* 3c */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5039 /* 3d */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5040 /* 3e */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5041 /* 3f */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5042 /* 40 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5043 /* 41 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5044 /* 42 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5045 /* 43 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5046 /* 44 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5047 /* 45 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5048 /* 46 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5049 /* 47 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5050 /* 48 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5051 /* 49 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5052 /* 4a */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5053 /* 4b */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5054 /* 4c */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5055 /* 4d */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5056 /* 4e */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5057 /* 4f */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5058 /* 50 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5059 /* 51 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5060 /* 52 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5061 /* 53 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5062 /* 54 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5063 /* 55 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5064 /* 56 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5065 /* 57 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5066 /* 58 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5067 /* 59 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5068 /* 5a */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5069 /* 5b */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5070 /* 5c */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5071 /* 5d */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5072 /* 5e */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5073 /* 5f */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5074 /* 60 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5075 /* 61 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5076 /* 62 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5077 /* 63 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5078 /* 64 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5079 /* 65 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5080 /* 66 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5081 /* 67 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5082 /* 68 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5083 /* 69 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5084 /* 6a */ { NACLi_X87, 1, 1, 0 }, /* fild */
5085 /* 6b */ { NACLi_X87, 1, 1, 0 }, /* fild */
5086 /* 6c */ { NACLi_X87, 1, 1, 0 }, /* fild */
5087 /* 6d */ { NACLi_X87, 1, 1, 0 }, /* fild */
5088 /* 6e */ { NACLi_X87, 1, 1, 0 }, /* fild */
5089 /* 6f */ { NACLi_X87, 1, 1, 0 }, /* fild */
5090 /* 70 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5091 /* 71 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5092 /* 72 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5093 /* 73 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5094 /* 74 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5095 /* 75 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5096 /* 76 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5097 /* 77 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5098 /* 78 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5099 /* 79 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5100 /* 7a */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5101 /* 7b */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5102 /* 7c */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5103 /* 7d */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5104 /* 7e */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5105 /* 7f */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5106 /* 80 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5107 /* 81 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5108 /* 82 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5109 /* 83 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5110 /* 84 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5111 /* 85 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5112 /* 86 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5113 /* 87 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5114 /* 88 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5115 /* 89 */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5116 /* 8a */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5117 /* 8b */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5118 /* 8c */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5119 /* 8d */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5120 /* 8e */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5121 /* 8f */ { NACLi_X87, 1, 1, 0 }, /* fisttp */
5122 /* 90 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5123 /* 91 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5124 /* 92 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5125 /* 93 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5126 /* 94 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5127 /* 95 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5128 /* 96 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5129 /* 97 */ { NACLi_X87, 1, 1, 0 }, /* fist */
5130 /* 98 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5131 /* 99 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5132 /* 9a */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5133 /* 9b */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5134 /* 9c */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5135 /* 9d */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5136 /* 9e */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5137 /* 9f */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5138 /* a0 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5139 /* a1 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5140 /* a2 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5141 /* a3 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5142 /* a4 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5143 /* a5 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5144 /* a6 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5145 /* a7 */ { NACLi_X87, 1, 1, 0 }, /* fbld */
5146 /* a8 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5147 /* a9 */ { NACLi_X87, 1, 1, 0 }, /* fild */
5148 /* aa */ { NACLi_X87, 1, 1, 0 }, /* fild */
5149 /* ab */ { NACLi_X87, 1, 1, 0 }, /* fild */
5150 /* ac */ { NACLi_X87, 1, 1, 0 }, /* fild */
5151 /* ad */ { NACLi_X87, 1, 1, 0 }, /* fild */
5152 /* ae */ { NACLi_X87, 1, 1, 0 }, /* fild */
5153 /* af */ { NACLi_X87, 1, 1, 0 }, /* fild */
5154 /* b0 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5155 /* b1 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5156 /* b2 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5157 /* b3 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5158 /* b4 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5159 /* b5 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5160 /* b6 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5161 /* b7 */ { NACLi_X87, 1, 1, 0 }, /* fbstp */
5162 /* b8 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5163 /* b9 */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5164 /* ba */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5165 /* bb */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5166 /* bc */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5167 /* bd */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5168 /* be */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5169 /* bf */ { NACLi_X87, 1, 1, 0 }, /* fistp */
5170 /* c0 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5171 /* c1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5172 /* c2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5173 /* c3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5174 /* c4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5175 /* c5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5176 /* c6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5177 /* c7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5178 /* c8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5179 /* c9 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5180 /* ca */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5181 /* cb */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5182 /* cc */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5183 /* cd */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5184 /* ce */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5185 /* cf */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5186 /* d0 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5187 /* d1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5188 /* d2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5189 /* d3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5190 /* d4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5191 /* d5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5192 /* d6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5193 /* d7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5194 /* d8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5195 /* d9 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5196 /* da */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5197 /* db */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5198 /* dc */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5199 /* dd */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5200 /* de */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5201 /* df */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5202 /* e0 */ { NACLi_X87, 1, 1, 0 }, /* fnstsw */
5203 /* e1 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5204 /* e2 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5205 /* e3 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5206 /* e4 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5207 /* e5 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5208 /* e6 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5209 /* e7 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5210 /* e8 */ { NACLi_X87, 1, 1, 0 }, /* fucomip */
5211 /* e9 */ { NACLi_X87, 1, 1, 0 }, /* fucomip */
5212 /* ea */ { NACLi_X87, 1, 1, 0 }, /* fucomip */
5213 /* eb */ { NACLi_X87, 1, 1, 0 }, /* fucomip */
5214 /* ec */ { NACLi_X87, 1, 1, 0 }, /* fucomip */
5215 /* ed */ { NACLi_X87, 1, 1, 0 }, /* fucomip */
5216 /* ee */ { NACLi_X87, 1, 1, 0 }, /* fucomip */
5217 /* ef */ { NACLi_X87, 1, 1, 0 }, /* fucomip */
5218 /* f0 */ { NACLi_X87, 1, 1, 0 }, /* fcomip */
5219 /* f1 */ { NACLi_X87, 1, 1, 0 }, /* fcomip */
5220 /* f2 */ { NACLi_X87, 1, 1, 0 }, /* fcomip */
5221 /* f3 */ { NACLi_X87, 1, 1, 0 }, /* fcomip */
5222 /* f4 */ { NACLi_X87, 1, 1, 0 }, /* fcomip */
5223 /* f5 */ { NACLi_X87, 1, 1, 0 }, /* fcomip */
5224 /* f6 */ { NACLi_X87, 1, 1, 0 }, /* fcomip */
5225 /* f7 */ { NACLi_X87, 1, 1, 0 }, /* fcomip */
5226 /* f8 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5227 /* f9 */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5228 /* fa */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5229 /* fb */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5230 /* fc */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5231 /* fd */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5232 /* fe */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5233 /* ff */ { NACLi_INVALID, 1, 1, 0 }, /* invalid */
5236 static const uint32_t kPrefixTable[NCDTABLESIZE] = {
5238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5242 0, 0, 0, 0, 0, 0, kPrefixSEGES, 0, 0, 0, 0, 0, 0, 0, kPrefixSEGCS, 0,
5244 0, 0, 0, 0, 0, 0, kPrefixSEGSS, 0, 0, 0, 0, 0, 0, 0, kPrefixSEGDS, 0,
5246 kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX, kPrefixREX,
5248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5250 0, 0, 0, 0, kPrefixSEGFS, kPrefixSEGGS, kPrefixDATA16, kPrefixADDR16, 0, 0, 0, 0, 0, 0, 0, 0,
5252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5268 kPrefixLOCK, 0, kPrefixREPNE, kPrefixREP, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5271 static const DecodeOpsKind kOpDecodeOpsKind[NCDTABLESIZE] = {
5272 /* 00 */ DECODE_OPS_DEFAULT_32,
5273 /* 01 */ DECODE_OPS_DEFAULT_32,
5274 /* 02 */ DECODE_OPS_DEFAULT_32,
5275 /* 03 */ DECODE_OPS_DEFAULT_32,
5276 /* 04 */ DECODE_OPS_DEFAULT_32,
5277 /* 05 */ DECODE_OPS_DEFAULT_32,
5278 /* 06 */ DECODE_OPS_DEFAULT_32,
5279 /* 07 */ DECODE_OPS_DEFAULT_32,
5280 /* 08 */ DECODE_OPS_DEFAULT_32,
5281 /* 09 */ DECODE_OPS_DEFAULT_32,
5282 /* 0a */ DECODE_OPS_DEFAULT_32,
5283 /* 0b */ DECODE_OPS_DEFAULT_32,
5284 /* 0c */ DECODE_OPS_DEFAULT_32,
5285 /* 0d */ DECODE_OPS_DEFAULT_32,
5286 /* 0e */ DECODE_OPS_DEFAULT_32,
5287 /* 0f */ DECODE_OPS_DEFAULT_32,
5288 /* 10 */ DECODE_OPS_DEFAULT_32,
5289 /* 11 */ DECODE_OPS_DEFAULT_32,
5290 /* 12 */ DECODE_OPS_DEFAULT_32,
5291 /* 13 */ DECODE_OPS_DEFAULT_32,
5292 /* 14 */ DECODE_OPS_DEFAULT_32,
5293 /* 15 */ DECODE_OPS_DEFAULT_32,
5294 /* 16 */ DECODE_OPS_DEFAULT_32,
5295 /* 17 */ DECODE_OPS_DEFAULT_32,
5296 /* 18 */ DECODE_OPS_DEFAULT_32,
5297 /* 19 */ DECODE_OPS_DEFAULT_32,
5298 /* 1a */ DECODE_OPS_DEFAULT_32,
5299 /* 1b */ DECODE_OPS_DEFAULT_32,
5300 /* 1c */ DECODE_OPS_DEFAULT_32,
5301 /* 1d */ DECODE_OPS_DEFAULT_32,
5302 /* 1e */ DECODE_OPS_DEFAULT_32,
5303 /* 1f */ DECODE_OPS_DEFAULT_32,
5304 /* 20 */ DECODE_OPS_DEFAULT_32,
5305 /* 21 */ DECODE_OPS_DEFAULT_32,
5306 /* 22 */ DECODE_OPS_DEFAULT_32,
5307 /* 23 */ DECODE_OPS_DEFAULT_32,
5308 /* 24 */ DECODE_OPS_DEFAULT_32,
5309 /* 25 */ DECODE_OPS_DEFAULT_32,
5310 /* 26 */ DECODE_OPS_DEFAULT_32,
5311 /* 27 */ DECODE_OPS_DEFAULT_32,
5312 /* 28 */ DECODE_OPS_DEFAULT_32,
5313 /* 29 */ DECODE_OPS_DEFAULT_32,
5314 /* 2a */ DECODE_OPS_DEFAULT_32,
5315 /* 2b */ DECODE_OPS_DEFAULT_32,
5316 /* 2c */ DECODE_OPS_DEFAULT_32,
5317 /* 2d */ DECODE_OPS_DEFAULT_32,
5318 /* 2e */ DECODE_OPS_DEFAULT_32,
5319 /* 2f */ DECODE_OPS_DEFAULT_32,
5320 /* 30 */ DECODE_OPS_DEFAULT_32,
5321 /* 31 */ DECODE_OPS_DEFAULT_32,
5322 /* 32 */ DECODE_OPS_DEFAULT_32,
5323 /* 33 */ DECODE_OPS_DEFAULT_32,
5324 /* 34 */ DECODE_OPS_DEFAULT_32,
5325 /* 35 */ DECODE_OPS_DEFAULT_32,
5326 /* 36 */ DECODE_OPS_DEFAULT_32,
5327 /* 37 */ DECODE_OPS_DEFAULT_32,
5328 /* 38 */ DECODE_OPS_DEFAULT_32,
5329 /* 39 */ DECODE_OPS_DEFAULT_32,
5330 /* 3a */ DECODE_OPS_DEFAULT_32,
5331 /* 3b */ DECODE_OPS_DEFAULT_32,
5332 /* 3c */ DECODE_OPS_DEFAULT_32,
5333 /* 3d */ DECODE_OPS_DEFAULT_32,
5334 /* 3e */ DECODE_OPS_DEFAULT_32,
5335 /* 3f */ DECODE_OPS_DEFAULT_32,
5336 /* 40 */ DECODE_OPS_DEFAULT_32,
5337 /* 41 */ DECODE_OPS_DEFAULT_32,
5338 /* 42 */ DECODE_OPS_DEFAULT_32,
5339 /* 43 */ DECODE_OPS_DEFAULT_32,
5340 /* 44 */ DECODE_OPS_DEFAULT_32,
5341 /* 45 */ DECODE_OPS_DEFAULT_32,
5342 /* 46 */ DECODE_OPS_DEFAULT_32,
5343 /* 47 */ DECODE_OPS_DEFAULT_32,
5344 /* 48 */ DECODE_OPS_DEFAULT_32,
5345 /* 49 */ DECODE_OPS_DEFAULT_32,
5346 /* 4a */ DECODE_OPS_DEFAULT_32,
5347 /* 4b */ DECODE_OPS_DEFAULT_32,
5348 /* 4c */ DECODE_OPS_DEFAULT_32,
5349 /* 4d */ DECODE_OPS_DEFAULT_32,
5350 /* 4e */ DECODE_OPS_DEFAULT_32,
5351 /* 4f */ DECODE_OPS_DEFAULT_32,
5352 /* 50 */ DECODE_OPS_DEFAULT_64,
5353 /* 51 */ DECODE_OPS_DEFAULT_64,
5354 /* 52 */ DECODE_OPS_DEFAULT_64,
5355 /* 53 */ DECODE_OPS_DEFAULT_64,
5356 /* 54 */ DECODE_OPS_DEFAULT_64,
5357 /* 55 */ DECODE_OPS_DEFAULT_64,
5358 /* 56 */ DECODE_OPS_DEFAULT_64,
5359 /* 57 */ DECODE_OPS_DEFAULT_64,
5360 /* 58 */ DECODE_OPS_DEFAULT_64,
5361 /* 59 */ DECODE_OPS_DEFAULT_64,
5362 /* 5a */ DECODE_OPS_DEFAULT_64,
5363 /* 5b */ DECODE_OPS_DEFAULT_64,
5364 /* 5c */ DECODE_OPS_DEFAULT_64,
5365 /* 5d */ DECODE_OPS_DEFAULT_64,
5366 /* 5e */ DECODE_OPS_DEFAULT_64,
5367 /* 5f */ DECODE_OPS_DEFAULT_64,
5368 /* 60 */ DECODE_OPS_DEFAULT_32,
5369 /* 61 */ DECODE_OPS_DEFAULT_32,
5370 /* 62 */ DECODE_OPS_DEFAULT_32,
5371 /* 63 */ DECODE_OPS_DEFAULT_32,
5372 /* 64 */ DECODE_OPS_DEFAULT_32,
5373 /* 65 */ DECODE_OPS_DEFAULT_32,
5374 /* 66 */ DECODE_OPS_DEFAULT_32,
5375 /* 67 */ DECODE_OPS_DEFAULT_32,
5376 /* 68 */ DECODE_OPS_DEFAULT_64,
5377 /* 69 */ DECODE_OPS_DEFAULT_32,
5378 /* 6a */ DECODE_OPS_DEFAULT_64,
5379 /* 6b */ DECODE_OPS_DEFAULT_32,
5380 /* 6c */ DECODE_OPS_DEFAULT_32,
5381 /* 6d */ DECODE_OPS_DEFAULT_32,
5382 /* 6e */ DECODE_OPS_DEFAULT_32,
5383 /* 6f */ DECODE_OPS_DEFAULT_32,
5384 /* 70 */ DECODE_OPS_FORCE_64,
5385 /* 71 */ DECODE_OPS_FORCE_64,
5386 /* 72 */ DECODE_OPS_FORCE_64,
5387 /* 73 */ DECODE_OPS_FORCE_64,
5388 /* 74 */ DECODE_OPS_FORCE_64,
5389 /* 75 */ DECODE_OPS_FORCE_64,
5390 /* 76 */ DECODE_OPS_FORCE_64,
5391 /* 77 */ DECODE_OPS_FORCE_64,
5392 /* 78 */ DECODE_OPS_FORCE_64,
5393 /* 79 */ DECODE_OPS_FORCE_64,
5394 /* 7a */ DECODE_OPS_FORCE_64,
5395 /* 7b */ DECODE_OPS_FORCE_64,
5396 /* 7c */ DECODE_OPS_FORCE_64,
5397 /* 7d */ DECODE_OPS_FORCE_64,
5398 /* 7e */ DECODE_OPS_FORCE_64,
5399 /* 7f */ DECODE_OPS_FORCE_64,
5400 /* 80 */ DECODE_OPS_DEFAULT_32,
5401 /* 81 */ DECODE_OPS_DEFAULT_32,
5402 /* 82 */ DECODE_OPS_DEFAULT_32,
5403 /* 83 */ DECODE_OPS_DEFAULT_32,
5404 /* 84 */ DECODE_OPS_DEFAULT_32,
5405 /* 85 */ DECODE_OPS_DEFAULT_32,
5406 /* 86 */ DECODE_OPS_DEFAULT_32,
5407 /* 87 */ DECODE_OPS_DEFAULT_32,
5408 /* 88 */ DECODE_OPS_DEFAULT_32,
5409 /* 89 */ DECODE_OPS_DEFAULT_32,
5410 /* 8a */ DECODE_OPS_DEFAULT_32,
5411 /* 8b */ DECODE_OPS_DEFAULT_32,
5412 /* 8c */ DECODE_OPS_DEFAULT_32,
5413 /* 8d */ DECODE_OPS_DEFAULT_32,
5414 /* 8e */ DECODE_OPS_DEFAULT_32,
5415 /* 8f */ DECODE_OPS_DEFAULT_64,
5416 /* 90 */ DECODE_OPS_DEFAULT_32,
5417 /* 91 */ DECODE_OPS_DEFAULT_32,
5418 /* 92 */ DECODE_OPS_DEFAULT_32,
5419 /* 93 */ DECODE_OPS_DEFAULT_32,
5420 /* 94 */ DECODE_OPS_DEFAULT_32,
5421 /* 95 */ DECODE_OPS_DEFAULT_32,
5422 /* 96 */ DECODE_OPS_DEFAULT_32,
5423 /* 97 */ DECODE_OPS_DEFAULT_32,
5424 /* 98 */ DECODE_OPS_DEFAULT_32,
5425 /* 99 */ DECODE_OPS_DEFAULT_32,
5426 /* 9a */ DECODE_OPS_DEFAULT_32,
5427 /* 9b */ DECODE_OPS_DEFAULT_32,
5428 /* 9c */ DECODE_OPS_DEFAULT_64,
5429 /* 9d */ DECODE_OPS_DEFAULT_64,
5430 /* 9e */ DECODE_OPS_DEFAULT_32,
5431 /* 9f */ DECODE_OPS_DEFAULT_32,
5432 /* a0 */ DECODE_OPS_DEFAULT_32,
5433 /* a1 */ DECODE_OPS_DEFAULT_32,
5434 /* a2 */ DECODE_OPS_DEFAULT_32,
5435 /* a3 */ DECODE_OPS_DEFAULT_32,
5436 /* a4 */ DECODE_OPS_DEFAULT_32,
5437 /* a5 */ DECODE_OPS_DEFAULT_32,
5438 /* a6 */ DECODE_OPS_DEFAULT_32,
5439 /* a7 */ DECODE_OPS_DEFAULT_32,
5440 /* a8 */ DECODE_OPS_DEFAULT_32,
5441 /* a9 */ DECODE_OPS_DEFAULT_32,
5442 /* aa */ DECODE_OPS_DEFAULT_32,
5443 /* ab */ DECODE_OPS_DEFAULT_32,
5444 /* ac */ DECODE_OPS_DEFAULT_32,
5445 /* ad */ DECODE_OPS_DEFAULT_32,
5446 /* ae */ DECODE_OPS_DEFAULT_32,
5447 /* af */ DECODE_OPS_DEFAULT_32,
5448 /* b0 */ DECODE_OPS_DEFAULT_32,
5449 /* b1 */ DECODE_OPS_DEFAULT_32,
5450 /* b2 */ DECODE_OPS_DEFAULT_32,
5451 /* b3 */ DECODE_OPS_DEFAULT_32,
5452 /* b4 */ DECODE_OPS_DEFAULT_32,
5453 /* b5 */ DECODE_OPS_DEFAULT_32,
5454 /* b6 */ DECODE_OPS_DEFAULT_32,
5455 /* b7 */ DECODE_OPS_DEFAULT_32,
5456 /* b8 */ DECODE_OPS_DEFAULT_32,
5457 /* b9 */ DECODE_OPS_DEFAULT_32,
5458 /* ba */ DECODE_OPS_DEFAULT_32,
5459 /* bb */ DECODE_OPS_DEFAULT_32,
5460 /* bc */ DECODE_OPS_DEFAULT_32,
5461 /* bd */ DECODE_OPS_DEFAULT_32,
5462 /* be */ DECODE_OPS_DEFAULT_32,
5463 /* bf */ DECODE_OPS_DEFAULT_32,
5464 /* c0 */ DECODE_OPS_DEFAULT_32,
5465 /* c1 */ DECODE_OPS_DEFAULT_32,
5466 /* c2 */ DECODE_OPS_FORCE_64,
5467 /* c3 */ DECODE_OPS_FORCE_64,
5468 /* c4 */ DECODE_OPS_DEFAULT_32,
5469 /* c5 */ DECODE_OPS_DEFAULT_32,
5470 /* c6 */ DECODE_OPS_DEFAULT_32,
5471 /* c7 */ DECODE_OPS_DEFAULT_32,
5472 /* c8 */ DECODE_OPS_DEFAULT_32,
5473 /* c9 */ DECODE_OPS_DEFAULT_64,
5474 /* ca */ DECODE_OPS_DEFAULT_32,
5475 /* cb */ DECODE_OPS_DEFAULT_32,
5476 /* cc */ DECODE_OPS_DEFAULT_32,
5477 /* cd */ DECODE_OPS_DEFAULT_32,
5478 /* ce */ DECODE_OPS_DEFAULT_32,
5479 /* cf */ DECODE_OPS_DEFAULT_32,
5480 /* d0 */ DECODE_OPS_DEFAULT_32,
5481 /* d1 */ DECODE_OPS_DEFAULT_32,
5482 /* d2 */ DECODE_OPS_DEFAULT_32,
5483 /* d3 */ DECODE_OPS_DEFAULT_32,
5484 /* d4 */ DECODE_OPS_DEFAULT_32,
5485 /* d5 */ DECODE_OPS_DEFAULT_32,
5486 /* d6 */ DECODE_OPS_DEFAULT_32,
5487 /* d7 */ DECODE_OPS_DEFAULT_32,
5488 /* d8 */ DECODE_OPS_DEFAULT_32,
5489 /* d9 */ DECODE_OPS_DEFAULT_32,
5490 /* da */ DECODE_OPS_DEFAULT_32,
5491 /* db */ DECODE_OPS_DEFAULT_32,
5492 /* dc */ DECODE_OPS_DEFAULT_32,
5493 /* dd */ DECODE_OPS_DEFAULT_32,
5494 /* de */ DECODE_OPS_DEFAULT_32,
5495 /* df */ DECODE_OPS_DEFAULT_32,
5496 /* e0 */ DECODE_OPS_FORCE_64,
5497 /* e1 */ DECODE_OPS_FORCE_64,
5498 /* e2 */ DECODE_OPS_FORCE_64,
5499 /* e3 */ DECODE_OPS_FORCE_64,
5500 /* e4 */ DECODE_OPS_DEFAULT_32,
5501 /* e5 */ DECODE_OPS_DEFAULT_32,
5502 /* e6 */ DECODE_OPS_DEFAULT_32,
5503 /* e7 */ DECODE_OPS_DEFAULT_32,
5504 /* e8 */ DECODE_OPS_FORCE_64,
5505 /* e9 */ DECODE_OPS_FORCE_64,
5506 /* ea */ DECODE_OPS_DEFAULT_32,
5507 /* eb */ DECODE_OPS_FORCE_64,
5508 /* ec */ DECODE_OPS_DEFAULT_32,
5509 /* ed */ DECODE_OPS_DEFAULT_32,
5510 /* ee */ DECODE_OPS_DEFAULT_32,
5511 /* ef */ DECODE_OPS_DEFAULT_32,
5512 /* f0 */ DECODE_OPS_DEFAULT_32,
5513 /* f1 */ DECODE_OPS_DEFAULT_32,
5514 /* f2 */ DECODE_OPS_DEFAULT_32,
5515 /* f3 */ DECODE_OPS_DEFAULT_32,
5516 /* f4 */ DECODE_OPS_DEFAULT_32,
5517 /* f5 */ DECODE_OPS_DEFAULT_32,
5518 /* f6 */ DECODE_OPS_DEFAULT_32,
5519 /* f7 */ DECODE_OPS_DEFAULT_32,
5520 /* f8 */ DECODE_OPS_DEFAULT_32,
5521 /* f9 */ DECODE_OPS_DEFAULT_32,
5522 /* fa */ DECODE_OPS_DEFAULT_32,
5523 /* fb */ DECODE_OPS_DEFAULT_32,
5524 /* fc */ DECODE_OPS_DEFAULT_32,
5525 /* fd */ DECODE_OPS_DEFAULT_32,
5526 /* fe */ DECODE_OPS_DEFAULT_32,
5527 /* ff */ DECODE_OPS_DEFAULT_32,
5530 static const DecodeOpsKind kOp0FDecodeOpsKind[NCDTABLESIZE] = {
5531 /* 00 */ DECODE_OPS_DEFAULT_32,
5532 /* 01 */ DECODE_OPS_DEFAULT_32,
5533 /* 02 */ DECODE_OPS_DEFAULT_32,
5534 /* 03 */ DECODE_OPS_DEFAULT_32,
5535 /* 04 */ DECODE_OPS_DEFAULT_32,
5536 /* 05 */ DECODE_OPS_DEFAULT_32,
5537 /* 06 */ DECODE_OPS_DEFAULT_32,
5538 /* 07 */ DECODE_OPS_DEFAULT_32,
5539 /* 08 */ DECODE_OPS_DEFAULT_32,
5540 /* 09 */ DECODE_OPS_DEFAULT_32,
5541 /* 0a */ DECODE_OPS_DEFAULT_32,
5542 /* 0b */ DECODE_OPS_DEFAULT_32,
5543 /* 0c */ DECODE_OPS_DEFAULT_32,
5544 /* 0d */ DECODE_OPS_DEFAULT_32,
5545 /* 0e */ DECODE_OPS_DEFAULT_32,
5546 /* 0f */ DECODE_OPS_DEFAULT_32,
5547 /* 10 */ DECODE_OPS_DEFAULT_32,
5548 /* 11 */ DECODE_OPS_DEFAULT_32,
5549 /* 12 */ DECODE_OPS_DEFAULT_32,
5550 /* 13 */ DECODE_OPS_DEFAULT_32,
5551 /* 14 */ DECODE_OPS_DEFAULT_32,
5552 /* 15 */ DECODE_OPS_DEFAULT_32,
5553 /* 16 */ DECODE_OPS_DEFAULT_32,
5554 /* 17 */ DECODE_OPS_DEFAULT_32,
5555 /* 18 */ DECODE_OPS_DEFAULT_32,
5556 /* 19 */ DECODE_OPS_DEFAULT_32,
5557 /* 1a */ DECODE_OPS_DEFAULT_32,
5558 /* 1b */ DECODE_OPS_DEFAULT_32,
5559 /* 1c */ DECODE_OPS_DEFAULT_32,
5560 /* 1d */ DECODE_OPS_DEFAULT_32,
5561 /* 1e */ DECODE_OPS_DEFAULT_32,
5562 /* 1f */ DECODE_OPS_DEFAULT_32,
5563 /* 20 */ DECODE_OPS_DEFAULT_32,
5564 /* 21 */ DECODE_OPS_DEFAULT_32,
5565 /* 22 */ DECODE_OPS_DEFAULT_32,
5566 /* 23 */ DECODE_OPS_DEFAULT_32,
5567 /* 24 */ DECODE_OPS_DEFAULT_32,
5568 /* 25 */ DECODE_OPS_DEFAULT_32,
5569 /* 26 */ DECODE_OPS_DEFAULT_32,
5570 /* 27 */ DECODE_OPS_DEFAULT_32,
5571 /* 28 */ DECODE_OPS_DEFAULT_32,
5572 /* 29 */ DECODE_OPS_DEFAULT_32,
5573 /* 2a */ DECODE_OPS_DEFAULT_32,
5574 /* 2b */ DECODE_OPS_DEFAULT_32,
5575 /* 2c */ DECODE_OPS_DEFAULT_32,
5576 /* 2d */ DECODE_OPS_DEFAULT_32,
5577 /* 2e */ DECODE_OPS_DEFAULT_32,
5578 /* 2f */ DECODE_OPS_DEFAULT_32,
5579 /* 30 */ DECODE_OPS_DEFAULT_32,
5580 /* 31 */ DECODE_OPS_DEFAULT_32,
5581 /* 32 */ DECODE_OPS_DEFAULT_32,
5582 /* 33 */ DECODE_OPS_DEFAULT_32,
5583 /* 34 */ DECODE_OPS_DEFAULT_32,
5584 /* 35 */ DECODE_OPS_DEFAULT_32,
5585 /* 36 */ DECODE_OPS_DEFAULT_32,
5586 /* 37 */ DECODE_OPS_DEFAULT_32,
5587 /* 38 */ DECODE_OPS_DEFAULT_32,
5588 /* 39 */ DECODE_OPS_DEFAULT_32,
5589 /* 3a */ DECODE_OPS_DEFAULT_32,
5590 /* 3b */ DECODE_OPS_DEFAULT_32,
5591 /* 3c */ DECODE_OPS_DEFAULT_32,
5592 /* 3d */ DECODE_OPS_DEFAULT_32,
5593 /* 3e */ DECODE_OPS_DEFAULT_32,
5594 /* 3f */ DECODE_OPS_DEFAULT_32,
5595 /* 40 */ DECODE_OPS_DEFAULT_32,
5596 /* 41 */ DECODE_OPS_DEFAULT_32,
5597 /* 42 */ DECODE_OPS_DEFAULT_32,
5598 /* 43 */ DECODE_OPS_DEFAULT_32,
5599 /* 44 */ DECODE_OPS_DEFAULT_32,
5600 /* 45 */ DECODE_OPS_DEFAULT_32,
5601 /* 46 */ DECODE_OPS_DEFAULT_32,
5602 /* 47 */ DECODE_OPS_DEFAULT_32,
5603 /* 48 */ DECODE_OPS_DEFAULT_32,
5604 /* 49 */ DECODE_OPS_DEFAULT_32,
5605 /* 4a */ DECODE_OPS_DEFAULT_32,
5606 /* 4b */ DECODE_OPS_DEFAULT_32,
5607 /* 4c */ DECODE_OPS_DEFAULT_32,
5608 /* 4d */ DECODE_OPS_DEFAULT_32,
5609 /* 4e */ DECODE_OPS_DEFAULT_32,
5610 /* 4f */ DECODE_OPS_DEFAULT_32,
5611 /* 50 */ DECODE_OPS_DEFAULT_32,
5612 /* 51 */ DECODE_OPS_DEFAULT_32,
5613 /* 52 */ DECODE_OPS_DEFAULT_32,
5614 /* 53 */ DECODE_OPS_DEFAULT_32,
5615 /* 54 */ DECODE_OPS_DEFAULT_32,
5616 /* 55 */ DECODE_OPS_DEFAULT_32,
5617 /* 56 */ DECODE_OPS_DEFAULT_32,
5618 /* 57 */ DECODE_OPS_DEFAULT_32,
5619 /* 58 */ DECODE_OPS_DEFAULT_32,
5620 /* 59 */ DECODE_OPS_DEFAULT_32,
5621 /* 5a */ DECODE_OPS_DEFAULT_32,
5622 /* 5b */ DECODE_OPS_DEFAULT_32,
5623 /* 5c */ DECODE_OPS_DEFAULT_32,
5624 /* 5d */ DECODE_OPS_DEFAULT_32,
5625 /* 5e */ DECODE_OPS_DEFAULT_32,
5626 /* 5f */ DECODE_OPS_DEFAULT_32,
5627 /* 60 */ DECODE_OPS_DEFAULT_32,
5628 /* 61 */ DECODE_OPS_DEFAULT_32,
5629 /* 62 */ DECODE_OPS_DEFAULT_32,
5630 /* 63 */ DECODE_OPS_DEFAULT_32,
5631 /* 64 */ DECODE_OPS_DEFAULT_32,
5632 /* 65 */ DECODE_OPS_DEFAULT_32,
5633 /* 66 */ DECODE_OPS_DEFAULT_32,
5634 /* 67 */ DECODE_OPS_DEFAULT_32,
5635 /* 68 */ DECODE_OPS_DEFAULT_32,
5636 /* 69 */ DECODE_OPS_DEFAULT_32,
5637 /* 6a */ DECODE_OPS_DEFAULT_32,
5638 /* 6b */ DECODE_OPS_DEFAULT_32,
5639 /* 6c */ DECODE_OPS_DEFAULT_32,
5640 /* 6d */ DECODE_OPS_DEFAULT_32,
5641 /* 6e */ DECODE_OPS_DEFAULT_32,
5642 /* 6f */ DECODE_OPS_DEFAULT_32,
5643 /* 70 */ DECODE_OPS_DEFAULT_32,
5644 /* 71 */ DECODE_OPS_DEFAULT_32,
5645 /* 72 */ DECODE_OPS_DEFAULT_32,
5646 /* 73 */ DECODE_OPS_DEFAULT_32,
5647 /* 74 */ DECODE_OPS_DEFAULT_32,
5648 /* 75 */ DECODE_OPS_DEFAULT_32,
5649 /* 76 */ DECODE_OPS_DEFAULT_32,
5650 /* 77 */ DECODE_OPS_DEFAULT_32,
5651 /* 78 */ DECODE_OPS_DEFAULT_32,
5652 /* 79 */ DECODE_OPS_DEFAULT_32,
5653 /* 7a */ DECODE_OPS_DEFAULT_32,
5654 /* 7b */ DECODE_OPS_DEFAULT_32,
5655 /* 7c */ DECODE_OPS_DEFAULT_32,
5656 /* 7d */ DECODE_OPS_DEFAULT_32,
5657 /* 7e */ DECODE_OPS_DEFAULT_32,
5658 /* 7f */ DECODE_OPS_DEFAULT_32,
5659 /* 80 */ DECODE_OPS_FORCE_64,
5660 /* 81 */ DECODE_OPS_FORCE_64,
5661 /* 82 */ DECODE_OPS_FORCE_64,
5662 /* 83 */ DECODE_OPS_FORCE_64,
5663 /* 84 */ DECODE_OPS_FORCE_64,
5664 /* 85 */ DECODE_OPS_FORCE_64,
5665 /* 86 */ DECODE_OPS_FORCE_64,
5666 /* 87 */ DECODE_OPS_FORCE_64,
5667 /* 88 */ DECODE_OPS_FORCE_64,
5668 /* 89 */ DECODE_OPS_FORCE_64,
5669 /* 8a */ DECODE_OPS_FORCE_64,
5670 /* 8b */ DECODE_OPS_FORCE_64,
5671 /* 8c */ DECODE_OPS_FORCE_64,
5672 /* 8d */ DECODE_OPS_FORCE_64,
5673 /* 8e */ DECODE_OPS_FORCE_64,
5674 /* 8f */ DECODE_OPS_FORCE_64,
5675 /* 90 */ DECODE_OPS_DEFAULT_32,
5676 /* 91 */ DECODE_OPS_DEFAULT_32,
5677 /* 92 */ DECODE_OPS_DEFAULT_32,
5678 /* 93 */ DECODE_OPS_DEFAULT_32,
5679 /* 94 */ DECODE_OPS_DEFAULT_32,
5680 /* 95 */ DECODE_OPS_DEFAULT_32,
5681 /* 96 */ DECODE_OPS_DEFAULT_32,
5682 /* 97 */ DECODE_OPS_DEFAULT_32,
5683 /* 98 */ DECODE_OPS_DEFAULT_32,
5684 /* 99 */ DECODE_OPS_DEFAULT_32,
5685 /* 9a */ DECODE_OPS_DEFAULT_32,
5686 /* 9b */ DECODE_OPS_DEFAULT_32,
5687 /* 9c */ DECODE_OPS_DEFAULT_32,
5688 /* 9d */ DECODE_OPS_DEFAULT_32,
5689 /* 9e */ DECODE_OPS_DEFAULT_32,
5690 /* 9f */ DECODE_OPS_DEFAULT_32,
5691 /* a0 */ DECODE_OPS_DEFAULT_64,
5692 /* a1 */ DECODE_OPS_DEFAULT_64,
5693 /* a2 */ DECODE_OPS_DEFAULT_32,
5694 /* a3 */ DECODE_OPS_DEFAULT_32,
5695 /* a4 */ DECODE_OPS_DEFAULT_32,
5696 /* a5 */ DECODE_OPS_DEFAULT_32,
5697 /* a6 */ DECODE_OPS_DEFAULT_32,
5698 /* a7 */ DECODE_OPS_DEFAULT_32,
5699 /* a8 */ DECODE_OPS_DEFAULT_64,
5700 /* a9 */ DECODE_OPS_DEFAULT_64,
5701 /* aa */ DECODE_OPS_DEFAULT_32,
5702 /* ab */ DECODE_OPS_DEFAULT_32,
5703 /* ac */ DECODE_OPS_DEFAULT_32,
5704 /* ad */ DECODE_OPS_DEFAULT_32,
5705 /* ae */ DECODE_OPS_DEFAULT_32,
5706 /* af */ DECODE_OPS_DEFAULT_32,
5707 /* b0 */ DECODE_OPS_DEFAULT_32,
5708 /* b1 */ DECODE_OPS_DEFAULT_32,
5709 /* b2 */ DECODE_OPS_DEFAULT_32,
5710 /* b3 */ DECODE_OPS_DEFAULT_32,
5711 /* b4 */ DECODE_OPS_DEFAULT_32,
5712 /* b5 */ DECODE_OPS_DEFAULT_32,
5713 /* b6 */ DECODE_OPS_DEFAULT_32,
5714 /* b7 */ DECODE_OPS_DEFAULT_32,
5715 /* b8 */ DECODE_OPS_DEFAULT_32,
5716 /* b9 */ DECODE_OPS_DEFAULT_32,
5717 /* ba */ DECODE_OPS_DEFAULT_32,
5718 /* bb */ DECODE_OPS_DEFAULT_32,
5719 /* bc */ DECODE_OPS_DEFAULT_32,
5720 /* bd */ DECODE_OPS_DEFAULT_32,
5721 /* be */ DECODE_OPS_DEFAULT_32,
5722 /* bf */ DECODE_OPS_DEFAULT_32,
5723 /* c0 */ DECODE_OPS_DEFAULT_32,
5724 /* c1 */ DECODE_OPS_DEFAULT_32,
5725 /* c2 */ DECODE_OPS_DEFAULT_32,
5726 /* c3 */ DECODE_OPS_DEFAULT_32,
5727 /* c4 */ DECODE_OPS_DEFAULT_32,
5728 /* c5 */ DECODE_OPS_DEFAULT_32,
5729 /* c6 */ DECODE_OPS_DEFAULT_32,
5730 /* c7 */ DECODE_OPS_DEFAULT_32,
5731 /* c8 */ DECODE_OPS_DEFAULT_32,
5732 /* c9 */ DECODE_OPS_DEFAULT_32,
5733 /* ca */ DECODE_OPS_DEFAULT_32,
5734 /* cb */ DECODE_OPS_DEFAULT_32,
5735 /* cc */ DECODE_OPS_DEFAULT_32,
5736 /* cd */ DECODE_OPS_DEFAULT_32,
5737 /* ce */ DECODE_OPS_DEFAULT_32,
5738 /* cf */ DECODE_OPS_DEFAULT_32,
5739 /* d0 */ DECODE_OPS_DEFAULT_32,
5740 /* d1 */ DECODE_OPS_DEFAULT_32,
5741 /* d2 */ DECODE_OPS_DEFAULT_32,
5742 /* d3 */ DECODE_OPS_DEFAULT_32,
5743 /* d4 */ DECODE_OPS_DEFAULT_32,
5744 /* d5 */ DECODE_OPS_DEFAULT_32,
5745 /* d6 */ DECODE_OPS_DEFAULT_32,
5746 /* d7 */ DECODE_OPS_DEFAULT_32,
5747 /* d8 */ DECODE_OPS_DEFAULT_32,
5748 /* d9 */ DECODE_OPS_DEFAULT_32,
5749 /* da */ DECODE_OPS_DEFAULT_32,
5750 /* db */ DECODE_OPS_DEFAULT_32,
5751 /* dc */ DECODE_OPS_DEFAULT_32,
5752 /* dd */ DECODE_OPS_DEFAULT_32,
5753 /* de */ DECODE_OPS_DEFAULT_32,
5754 /* df */ DECODE_OPS_DEFAULT_32,
5755 /* e0 */ DECODE_OPS_DEFAULT_32,
5756 /* e1 */ DECODE_OPS_DEFAULT_32,
5757 /* e2 */ DECODE_OPS_DEFAULT_32,
5758 /* e3 */ DECODE_OPS_DEFAULT_32,
5759 /* e4 */ DECODE_OPS_DEFAULT_32,
5760 /* e5 */ DECODE_OPS_DEFAULT_32,
5761 /* e6 */ DECODE_OPS_DEFAULT_32,
5762 /* e7 */ DECODE_OPS_DEFAULT_32,
5763 /* e8 */ DECODE_OPS_DEFAULT_32,
5764 /* e9 */ DECODE_OPS_DEFAULT_32,
5765 /* ea */ DECODE_OPS_DEFAULT_32,
5766 /* eb */ DECODE_OPS_DEFAULT_32,
5767 /* ec */ DECODE_OPS_DEFAULT_32,
5768 /* ed */ DECODE_OPS_DEFAULT_32,
5769 /* ee */ DECODE_OPS_DEFAULT_32,
5770 /* ef */ DECODE_OPS_DEFAULT_32,
5771 /* f0 */ DECODE_OPS_DEFAULT_32,
5772 /* f1 */ DECODE_OPS_DEFAULT_32,
5773 /* f2 */ DECODE_OPS_DEFAULT_32,
5774 /* f3 */ DECODE_OPS_DEFAULT_32,
5775 /* f4 */ DECODE_OPS_DEFAULT_32,
5776 /* f5 */ DECODE_OPS_DEFAULT_32,
5777 /* f6 */ DECODE_OPS_DEFAULT_32,
5778 /* f7 */ DECODE_OPS_DEFAULT_32,
5779 /* f8 */ DECODE_OPS_DEFAULT_32,
5780 /* f9 */ DECODE_OPS_DEFAULT_32,
5781 /* fa */ DECODE_OPS_DEFAULT_32,
5782 /* fb */ DECODE_OPS_DEFAULT_32,
5783 /* fc */ DECODE_OPS_DEFAULT_32,
5784 /* fd */ DECODE_OPS_DEFAULT_32,
5785 /* fe */ DECODE_OPS_DEFAULT_32,
5786 /* ff */ DECODE_OPS_DEFAULT_32,
5789 static const DecodeOpsKind kModRMOpDecodeOpsKind[kNaClMRMGroupsRange][kModRMOpcodeGroupSize] = {
5792 /* 00 */ DECODE_OPS_DEFAULT_32,
5793 /* 01 */ DECODE_OPS_DEFAULT_32,
5794 /* 02 */ DECODE_OPS_DEFAULT_32,
5795 /* 03 */ DECODE_OPS_DEFAULT_32,
5796 /* 04 */ DECODE_OPS_DEFAULT_32,
5797 /* 05 */ DECODE_OPS_DEFAULT_32,
5798 /* 06 */ DECODE_OPS_DEFAULT_32,
5799 /* 07 */ DECODE_OPS_DEFAULT_32,
5803 /* 00 */ DECODE_OPS_DEFAULT_32,
5804 /* 01 */ DECODE_OPS_DEFAULT_32,
5805 /* 02 */ DECODE_OPS_DEFAULT_32,
5806 /* 03 */ DECODE_OPS_DEFAULT_32,
5807 /* 04 */ DECODE_OPS_DEFAULT_32,
5808 /* 05 */ DECODE_OPS_DEFAULT_32,
5809 /* 06 */ DECODE_OPS_DEFAULT_32,
5810 /* 07 */ DECODE_OPS_DEFAULT_32,
5814 /* 00 */ DECODE_OPS_DEFAULT_32,
5815 /* 01 */ DECODE_OPS_DEFAULT_32,
5816 /* 02 */ DECODE_OPS_DEFAULT_32,
5817 /* 03 */ DECODE_OPS_DEFAULT_32,
5818 /* 04 */ DECODE_OPS_DEFAULT_32,
5819 /* 05 */ DECODE_OPS_DEFAULT_32,
5820 /* 06 */ DECODE_OPS_DEFAULT_32,
5821 /* 07 */ DECODE_OPS_DEFAULT_32,
5825 /* 00 */ DECODE_OPS_DEFAULT_32,
5826 /* 01 */ DECODE_OPS_DEFAULT_32,
5827 /* 02 */ DECODE_OPS_DEFAULT_32,
5828 /* 03 */ DECODE_OPS_DEFAULT_32,
5829 /* 04 */ DECODE_OPS_DEFAULT_32,
5830 /* 05 */ DECODE_OPS_DEFAULT_32,
5831 /* 06 */ DECODE_OPS_DEFAULT_32,
5832 /* 07 */ DECODE_OPS_DEFAULT_32,
5836 /* 00 */ DECODE_OPS_DEFAULT_32,
5837 /* 01 */ DECODE_OPS_DEFAULT_32,
5838 /* 02 */ DECODE_OPS_DEFAULT_32,
5839 /* 03 */ DECODE_OPS_DEFAULT_32,
5840 /* 04 */ DECODE_OPS_DEFAULT_32,
5841 /* 05 */ DECODE_OPS_DEFAULT_32,
5842 /* 06 */ DECODE_OPS_DEFAULT_32,
5843 /* 07 */ DECODE_OPS_DEFAULT_32,
5847 /* 00 */ DECODE_OPS_DEFAULT_32,
5848 /* 01 */ DECODE_OPS_DEFAULT_32,
5849 /* 02 */ DECODE_OPS_FORCE_64,
5850 /* 03 */ DECODE_OPS_DEFAULT_32,
5851 /* 04 */ DECODE_OPS_FORCE_64,
5852 /* 05 */ DECODE_OPS_DEFAULT_32,
5853 /* 06 */ DECODE_OPS_DEFAULT_64,
5854 /* 07 */ DECODE_OPS_DEFAULT_32,
5858 /* 00 */ DECODE_OPS_DEFAULT_32,
5859 /* 01 */ DECODE_OPS_DEFAULT_32,
5860 /* 02 */ DECODE_OPS_DEFAULT_32,
5861 /* 03 */ DECODE_OPS_DEFAULT_32,
5862 /* 04 */ DECODE_OPS_DEFAULT_32,
5863 /* 05 */ DECODE_OPS_DEFAULT_32,
5864 /* 06 */ DECODE_OPS_DEFAULT_32,
5865 /* 07 */ DECODE_OPS_DEFAULT_32,
5869 /* 00 */ DECODE_OPS_DEFAULT_32,
5870 /* 01 */ DECODE_OPS_DEFAULT_32,
5871 /* 02 */ DECODE_OPS_DEFAULT_32,
5872 /* 03 */ DECODE_OPS_DEFAULT_32,
5873 /* 04 */ DECODE_OPS_DEFAULT_32,
5874 /* 05 */ DECODE_OPS_DEFAULT_32,
5875 /* 06 */ DECODE_OPS_DEFAULT_32,
5876 /* 07 */ DECODE_OPS_DEFAULT_32,
5880 /* 00 */ DECODE_OPS_DEFAULT_32,
5881 /* 01 */ DECODE_OPS_DEFAULT_32,
5882 /* 02 */ DECODE_OPS_DEFAULT_32,
5883 /* 03 */ DECODE_OPS_DEFAULT_32,
5884 /* 04 */ DECODE_OPS_DEFAULT_32,
5885 /* 05 */ DECODE_OPS_DEFAULT_32,
5886 /* 06 */ DECODE_OPS_DEFAULT_32,
5887 /* 07 */ DECODE_OPS_DEFAULT_32,
5891 /* 00 */ DECODE_OPS_DEFAULT_32,
5892 /* 01 */ DECODE_OPS_DEFAULT_32,
5893 /* 02 */ DECODE_OPS_DEFAULT_32,
5894 /* 03 */ DECODE_OPS_DEFAULT_32,
5895 /* 04 */ DECODE_OPS_DEFAULT_32,
5896 /* 05 */ DECODE_OPS_DEFAULT_32,
5897 /* 06 */ DECODE_OPS_DEFAULT_32,
5898 /* 07 */ DECODE_OPS_DEFAULT_32,
5902 /* 00 */ DECODE_OPS_DEFAULT_32,
5903 /* 01 */ DECODE_OPS_DEFAULT_32,
5904 /* 02 */ DECODE_OPS_DEFAULT_32,
5905 /* 03 */ DECODE_OPS_DEFAULT_32,
5906 /* 04 */ DECODE_OPS_DEFAULT_32,
5907 /* 05 */ DECODE_OPS_DEFAULT_32,
5908 /* 06 */ DECODE_OPS_DEFAULT_32,
5909 /* 07 */ DECODE_OPS_DEFAULT_32,
5913 /* 00 */ DECODE_OPS_DEFAULT_32,
5914 /* 01 */ DECODE_OPS_DEFAULT_32,
5915 /* 02 */ DECODE_OPS_DEFAULT_32,
5916 /* 03 */ DECODE_OPS_DEFAULT_32,
5917 /* 04 */ DECODE_OPS_DEFAULT_32,
5918 /* 05 */ DECODE_OPS_DEFAULT_32,
5919 /* 06 */ DECODE_OPS_DEFAULT_32,
5920 /* 07 */ DECODE_OPS_DEFAULT_32,
5924 /* 00 */ DECODE_OPS_DEFAULT_32,
5925 /* 01 */ DECODE_OPS_DEFAULT_32,
5926 /* 02 */ DECODE_OPS_DEFAULT_32,
5927 /* 03 */ DECODE_OPS_DEFAULT_32,
5928 /* 04 */ DECODE_OPS_DEFAULT_32,
5929 /* 05 */ DECODE_OPS_DEFAULT_32,
5930 /* 06 */ DECODE_OPS_DEFAULT_32,
5931 /* 07 */ DECODE_OPS_DEFAULT_32,
5935 /* 00 */ DECODE_OPS_DEFAULT_32,
5936 /* 01 */ DECODE_OPS_DEFAULT_32,
5937 /* 02 */ DECODE_OPS_DEFAULT_32,
5938 /* 03 */ DECODE_OPS_DEFAULT_32,
5939 /* 04 */ DECODE_OPS_DEFAULT_32,
5940 /* 05 */ DECODE_OPS_DEFAULT_32,
5941 /* 06 */ DECODE_OPS_DEFAULT_32,
5942 /* 07 */ DECODE_OPS_DEFAULT_32,
5946 /* 00 */ DECODE_OPS_DEFAULT_32,
5947 /* 01 */ DECODE_OPS_DEFAULT_32,
5948 /* 02 */ DECODE_OPS_DEFAULT_32,
5949 /* 03 */ DECODE_OPS_DEFAULT_32,
5950 /* 04 */ DECODE_OPS_DEFAULT_32,
5951 /* 05 */ DECODE_OPS_DEFAULT_32,
5952 /* 06 */ DECODE_OPS_DEFAULT_32,
5953 /* 07 */ DECODE_OPS_DEFAULT_32,
5957 /* 00 */ DECODE_OPS_DEFAULT_32,
5958 /* 01 */ DECODE_OPS_DEFAULT_32,
5959 /* 02 */ DECODE_OPS_DEFAULT_32,
5960 /* 03 */ DECODE_OPS_DEFAULT_32,
5961 /* 04 */ DECODE_OPS_DEFAULT_32,
5962 /* 05 */ DECODE_OPS_DEFAULT_32,
5963 /* 06 */ DECODE_OPS_DEFAULT_32,
5964 /* 07 */ DECODE_OPS_DEFAULT_32,
5968 /* 00 */ DECODE_OPS_DEFAULT_32,
5969 /* 01 */ DECODE_OPS_DEFAULT_32,
5970 /* 02 */ DECODE_OPS_DEFAULT_32,
5971 /* 03 */ DECODE_OPS_DEFAULT_32,
5972 /* 04 */ DECODE_OPS_DEFAULT_32,
5973 /* 05 */ DECODE_OPS_DEFAULT_32,
5974 /* 06 */ DECODE_OPS_DEFAULT_32,
5975 /* 07 */ DECODE_OPS_DEFAULT_32,
5979 /* 00 */ DECODE_OPS_DEFAULT_32,
5980 /* 01 */ DECODE_OPS_DEFAULT_32,
5981 /* 02 */ DECODE_OPS_DEFAULT_32,
5982 /* 03 */ DECODE_OPS_DEFAULT_32,
5983 /* 04 */ DECODE_OPS_DEFAULT_32,
5984 /* 05 */ DECODE_OPS_DEFAULT_32,
5985 /* 06 */ DECODE_OPS_DEFAULT_32,
5986 /* 07 */ DECODE_OPS_DEFAULT_32,
5990 /* 00 */ DECODE_OPS_DEFAULT_32,
5991 /* 01 */ DECODE_OPS_DEFAULT_32,
5992 /* 02 */ DECODE_OPS_DEFAULT_32,
5993 /* 03 */ DECODE_OPS_DEFAULT_32,
5994 /* 04 */ DECODE_OPS_DEFAULT_32,
5995 /* 05 */ DECODE_OPS_DEFAULT_32,
5996 /* 06 */ DECODE_OPS_DEFAULT_32,
5997 /* 07 */ DECODE_OPS_DEFAULT_32,
6001 /* 00 */ DECODE_OPS_DEFAULT_32,
6002 /* 01 */ DECODE_OPS_DEFAULT_32,
6003 /* 02 */ DECODE_OPS_DEFAULT_32,
6004 /* 03 */ DECODE_OPS_DEFAULT_32,
6005 /* 04 */ DECODE_OPS_DEFAULT_32,
6006 /* 05 */ DECODE_OPS_DEFAULT_32,
6007 /* 06 */ DECODE_OPS_DEFAULT_32,
6008 /* 07 */ DECODE_OPS_DEFAULT_32,