Upstream version 11.39.266.0
[platform/framework/web/crosswalk.git] / src / native_client / src / trusted / validator / x86 / ncval_seg_sfi / gen / ncdisasmtab_32.h
1 /* native_client/src/trusted/validator/x86/ncval_seg_sfi/gen/ncdisasmtab_32.h
2  * THIS FILE IS AUTO-GENERATED. DO NOT EDIT.
3  * Compiled for x86-32 bit mode.
4  *
5  * You must include ncdecode.h before this file.
6  */
7
8 static const char *kDisasmModRMOp[][kNaClMRMGroupsRange] = {
9    {  /* 0 0 */  "undefined",
10   /* 0 1 */  "undefined",
11   /* 0 2 */  "undefined",
12   /* 0 3 */  "undefined",
13   /* 0 4 */  "undefined",
14   /* 0 5 */  "undefined",
15   /* 0 6 */  "undefined",
16   /* 0 7 */  "undefined",
17    },
18    {  /* 1 0 */  "add",
19   /* 1 1 */  "or",
20   /* 1 2 */  "adc",
21   /* 1 3 */  "sbb",
22   /* 1 4 */  "and",
23   /* 1 5 */  "sub",
24   /* 1 6 */  "xor",
25   /* 1 7 */  "cmp",
26    },
27    {  /* 2 0 */  "rol",
28   /* 2 1 */  "ror",
29   /* 2 2 */  "rcl",
30   /* 2 3 */  "rcr",
31   /* 2 4 */  "shl",
32   /* 2 5 */  "shr",
33   /* 2 6 */  "undefined",
34   /* 2 7 */  "sar",
35    },
36    {  /* 3 0 */  "test $I",
37   /* 3 1 */  "undefined",
38   /* 3 2 */  "not",
39   /* 3 3 */  "neg",
40   /* 3 4 */  "mul %eax",
41   /* 3 5 */  "imul %eax",
42   /* 3 6 */  "div %eax",
43   /* 3 7 */  "idiv %eax",
44    },
45    {  /* 4 0 */  "inc",
46   /* 4 1 */  "dec",
47   /* 4 2 */  "undefined",
48   /* 4 3 */  "undefined",
49   /* 4 4 */  "undefined",
50   /* 4 5 */  "undefined",
51   /* 4 6 */  "undefined",
52   /* 4 7 */  "undefined",
53    },
54    {  /* 5 0 */  "inc",
55   /* 5 1 */  "dec",
56   /* 5 2 */  "call *",
57   /* 5 3 */  "lcall *",
58   /* 5 4 */  "jmp *",
59   /* 5 5 */  "ljmp *",
60   /* 5 6 */  "push",
61   /* 5 7 */  "undefined",
62    },
63    {  /* 6 0 */  "sldt",
64   /* 6 1 */  "str",
65   /* 6 2 */  "lldt",
66   /* 6 3 */  "ltr",
67   /* 6 4 */  "verr",
68   /* 6 5 */  "verw",
69   /* 6 6 */  "undefined",
70   /* 6 7 */  "undefined",
71    },
72    {  /* 7 0 */  "sgdt",
73   /* 7 1 */  "sidt",
74   /* 7 2 */  "lgdt",
75   /* 7 3 */  "lidt",
76   /* 7 4 */  "smsw",
77   /* 7 5 */  "undefined",
78   /* 7 6 */  "lmsw",
79   /* 7 7 */  "invlpg",
80    },
81    {  /* 8 0 */  "undefined",
82   /* 8 1 */  "undefined",
83   /* 8 2 */  "undefined",
84   /* 8 3 */  "undefined",
85   /* 8 4 */  "bt",
86   /* 8 5 */  "bts",
87   /* 8 6 */  "btr",
88   /* 8 7 */  "btc",
89    },
90    {  /* 9 0 */  "undefined",
91   /* 9 1 */  "cmpxchg8b",
92   /* 9 2 */  "undefined",
93   /* 9 3 */  "undefined",
94   /* 9 4 */  "undefined",
95   /* 9 5 */  "undefined",
96   /* 9 6 */  "undefined",
97   /* 9 7 */  "undefined",
98    },
99    {  /* 10 0 */  "undefined",
100   /* 10 1 */  "undefined",
101   /* 10 2 */  "undefined",
102   /* 10 3 */  "undefined",
103   /* 10 4 */  "undefined",
104   /* 10 5 */  "undefined",
105   /* 10 6 */  "undefined",
106   /* 10 7 */  "undefined",
107    },
108    {  /* 11 0 */  "mov",
109   /* 11 1 */  "undefined",
110   /* 11 2 */  "undefined",
111   /* 11 3 */  "undefined",
112   /* 11 4 */  "undefined",
113   /* 11 5 */  "undefined",
114   /* 11 6 */  "undefined",
115   /* 11 7 */  "undefined",
116    },
117    {  /* 12 0 */  "undefined",
118   /* 12 1 */  "undefined",
119   /* 12 2 */  "psrlw",
120   /* 12 3 */  "undefined",
121   /* 12 4 */  "psraw",
122   /* 12 5 */  "undefined",
123   /* 12 6 */  "psllw",
124   /* 12 7 */  "undefined",
125    },
126    {  /* 13 0 */  "undefined",
127   /* 13 1 */  "undefined",
128   /* 13 2 */  "psrld",
129   /* 13 3 */  "undefined",
130   /* 13 4 */  "psrad",
131   /* 13 5 */  "undefined",
132   /* 13 6 */  "pslld",
133   /* 13 7 */  "undefined",
134    },
135    {  /* 14 0 */  "undefined",
136   /* 14 1 */  "undefined",
137   /* 14 2 */  "psrlq",
138   /* 14 3 */  "psrldq",
139   /* 14 4 */  "undefined",
140   /* 14 5 */  "undefined",
141   /* 14 6 */  "psllq",
142   /* 14 7 */  "pslldq",
143    },
144    {  /* 15 0 */  "fxsave",
145   /* 15 1 */  "fxrstor",
146   /* 15 2 */  "ldmxcsr",
147   /* 15 3 */  "stmxcsr",
148   /* 15 4 */  "invalid",
149   /* 15 5 */  "lfence",
150   /* 15 6 */  "mfence",
151   /* 15 7 */  "sfence/clflush",
152    },
153    {  /* 16 0 */  "prefetch NTA",
154   /* 16 1 */  "prefetch T0",
155   /* 16 2 */  "prefetch T1",
156   /* 16 3 */  "prefetch T1",
157   /* 16 4 */  "NOP (prefetch)",
158   /* 16 5 */  "NOP (prefetch)",
159   /* 16 6 */  "NOP (prefetch)",
160   /* 16 7 */  "NOP (prefetch)",
161    },
162    {  /* 17 0 */  "undefined",
163   /* 17 1 */  "undefined",
164   /* 17 2 */  "undefined",
165   /* 17 3 */  "undefined",
166   /* 17 4 */  "undefined",
167   /* 17 5 */  "undefined",
168   /* 17 6 */  "undefined",
169   /* 17 7 */  "undefined",
170    },
171    {  /* 18 0 */  "pop $Ev",
172   /* 18 1 */  "undefined",
173   /* 18 2 */  "undefined",
174   /* 18 3 */  "undefined",
175   /* 18 4 */  "undefined",
176   /* 18 5 */  "undefined",
177   /* 18 6 */  "undefined",
178   /* 18 7 */  "undefined",
179    },
180    {  /* 19 0 */  "prefetch exclusive",
181   /* 19 1 */  "prefetch modified",
182   /* 19 2 */  "[prefetch reserved]",
183   /* 19 3 */  "prefetch modified",
184   /* 19 4 */  "[prefetch reserved]",
185   /* 19 5 */  "[prefetch reserved]",
186   /* 19 6 */  "[prefetch reserved]",
187   /* 19 7 */  "[prefetch reserved]",
188    },
189 };
190
191
192 /* one byte opcode tables */
193 static const char *kDisasm1ByteOp[NCDTABLESIZE] = {
194   /* 00 */  "add  $Eb, $Gb",
195   /* 01 */  "add  $Ev, $Gv",
196   /* 02 */  "add  $Gb, $Eb",
197   /* 03 */  "add  $Gv, $Ev",
198   /* 04 */  "add  %al, $Ib",
199   /* 05 */  "add  %eax, $Iz",
200   /* 06 */  "push %es",
201   /* 07 */  "pop %es",
202   /* 08 */  "or  $Eb, $Gb",
203   /* 09 */  "or  $Ev, $Gv",
204   /* 0a */  "or  $Gb, $Eb",
205   /* 0b */  "or  $Gv, $Ev",
206   /* 0c */  "or  %al, $Ib",
207   /* 0d */  "or  %eax, $Iz",
208   /* 0e */  "push %cs",
209   /* 0f */  "[two-byte opcode]",
210   /* 10 */  "adc  $Eb, $Gb",
211   /* 11 */  "adc  $Ev, $Gv",
212   /* 12 */  "adc  $Gb, $Eb",
213   /* 13 */  "adc  $Gv, $Ev",
214   /* 14 */  "adc  %al, $Ib",
215   /* 15 */  "adc  %eax, $Iz",
216   /* 16 */  "push %ss",
217   /* 17 */  "pop %ss",
218   /* 18 */  "sbb  $Eb, $Gb",
219   /* 19 */  "sbb  $Ev, $Gv",
220   /* 1a */  "sbb  $Gb, $Eb",
221   /* 1b */  "sbb  $Gv, $Ev",
222   /* 1c */  "sbb  %al, $Ib",
223   /* 1d */  "sbb  %eax, $Iz",
224   /* 1e */  "push %ds",
225   /* 1f */  "pop %ds",
226   /* 20 */  "and  $Eb, $Gb",
227   /* 21 */  "and  $Ev, $Gv",
228   /* 22 */  "and  $Gb, $Eb",
229   /* 23 */  "and  $Gv, $Ev",
230   /* 24 */  "and  %al, $Ib",
231   /* 25 */  "and  %eax, $Iz",
232   /* 26 */  "[seg %es]",
233   /* 27 */  "daa",
234   /* 28 */  "sub  $Eb, $Gb",
235   /* 29 */  "sub  $Ev, $Gv",
236   /* 2a */  "sub  $Gb, $Eb",
237   /* 2b */  "sub  $Gv, $Ev",
238   /* 2c */  "sub  %al, $Ib",
239   /* 2d */  "sub  %eax, $Iz",
240   /* 2e */  "[seg %cs]",
241   /* 2f */  "das",
242   /* 30 */  "xor  $Eb, $Gb",
243   /* 31 */  "xor  $Ev, $Gv",
244   /* 32 */  "xor  $Gb, $Eb",
245   /* 33 */  "xor  $Gv, $Ev",
246   /* 34 */  "xor  %al, $Ib",
247   /* 35 */  "xor  %eax, $Iz",
248   /* 36 */  "[seg %ss]",
249   /* 37 */  "aaa",
250   /* 38 */  "cmp  $Eb, $Gb",
251   /* 39 */  "cmp  $Ev, $Gv",
252   /* 3a */  "cmp  $Gb, $Eb",
253   /* 3b */  "cmp  $Gv, $Ev",
254   /* 3c */  "cmp  %al, $Ib",
255   /* 3d */  "cmp  %eax, $Iz",
256   /* 3e */  "[seg %ds]",
257   /* 3f */  "aas",
258   /* 40 */  "inc  %eax",
259   /* 41 */  "inc  %ecx",
260   /* 42 */  "inc  %edx",
261   /* 43 */  "inc  %ebx",
262   /* 44 */  "inc  %esp",
263   /* 45 */  "inc  %ebp",
264   /* 46 */  "inc  %esi",
265   /* 47 */  "inc  %edi",
266   /* 48 */  "dec  %eax",
267   /* 49 */  "dec  %ecx",
268   /* 4a */  "dec  %edx",
269   /* 4b */  "dec  %ebx",
270   /* 4c */  "dec  %esp",
271   /* 4d */  "dec  %ebp",
272   /* 4e */  "dec  %esi",
273   /* 4f */  "dec  %edi",
274   /* 50 */  "push  %eax",
275   /* 51 */  "push  %ecx",
276   /* 52 */  "push  %edx",
277   /* 53 */  "push  %ebx",
278   /* 54 */  "push  %esp",
279   /* 55 */  "push  %ebp",
280   /* 56 */  "push  %esi",
281   /* 57 */  "push  %edi",
282   /* 58 */  "pop  %eax",
283   /* 59 */  "pop  %ecx",
284   /* 5a */  "pop  %edx",
285   /* 5b */  "pop  %ebx",
286   /* 5c */  "pop  %esp",
287   /* 5d */  "pop  %ebp",
288   /* 5e */  "pop  %esi",
289   /* 5f */  "pop  %edi",
290   /* 60 */  "pusha",
291   /* 61 */  "popa",
292   /* 62 */  "bound $Gv, $Ma",
293   /* 63 */  "arpl $Ew, $Gw",
294   /* 64 */  "[seg fs]",
295   /* 65 */  "[seg gs]",
296   /* 66 */  "[data16]",
297   /* 67 */  "[addr size]",
298   /* 68 */  "push $Iz",
299   /* 69 */  "imul $Gv, $Ev, $Iz",
300   /* 6a */  "push $Ib",
301   /* 6b */  "imul $Gv, $Ev, $Ib",
302   /* 6c */  "insb $Y, $D",
303   /* 6d */  "insw/d $Y, $D",
304   /* 6e */  "outsb $D, $X",
305   /* 6f */  "outsw/d $D, $X",
306   /* 70 */  "jo $Jb",
307   /* 71 */  "jno $Jb",
308   /* 72 */  "jb $Jb",
309   /* 73 */  "jnb $Jb",
310   /* 74 */  "jz $Jb",
311   /* 75 */  "jnz $Jb",
312   /* 76 */  "jbe $Jb",
313   /* 77 */  "jnbe $Jb",
314   /* 78 */  "js $Jb",
315   /* 79 */  "jns $Jb",
316   /* 7a */  "jp $Jb",
317   /* 7b */  "jnp $Jb",
318   /* 7c */  "jl $Jb",
319   /* 7d */  "jge $Jb",
320   /* 7e */  "jle $Jb",
321   /* 7f */  "jg $Jb",
322   /* 80 */  "$group1 $Eb, $Ib",
323   /* 81 */  "$group1 $Ev, $Iz",
324   /* 82 */  "undef",
325   /* 83 */  "$group1 $Ev, $Ib",
326   /* 84 */  "test $E, $G",
327   /* 85 */  "test $E, $G",
328   /* 86 */  "xchg $E, $G",
329   /* 87 */  "xchg $E, $G",
330   /* 88 */  "mov $Eb, $Gb",
331   /* 89 */  "mov $Ev, $Gv",
332   /* 8a */  "mov $Gb, $Eb",
333   /* 8b */  "mov $Gv, $Ev",
334   /* 8c */  "mov $E, $S",
335   /* 8d */  "lea $G, $M",
336   /* 8e */  "mov $S, $E",
337   /* 8f */  "$group1a $Ev",
338   /* 90 */  "nop",
339   /* 91 */  "xchg %eax, %ecx",
340   /* 92 */  "xchg %eax, %edx",
341   /* 93 */  "xchg %eax, %ebx",
342   /* 94 */  "xchg %eax, %esp",
343   /* 95 */  "xchg %eax, %ebp",
344   /* 96 */  "xchg %eax, %esi",
345   /* 97 */  "xchg %eax, %edi",
346   /* 98 */  "cbw",
347   /* 99 */  "cwd",
348   /* 9a */  "lcall $A",
349   /* 9b */  "wait",
350   /* 9c */  "pushf $F",
351   /* 9d */  "popf $F",
352   /* 9e */  "sahf",
353   /* 9f */  "lahf",
354   /* a0 */  "mov %al, $O",
355   /* a1 */  "mov %eax, $O",
356   /* a2 */  "mov $O, %al",
357   /* a3 */  "mov $O, %eax",
358   /* a4 */  "movsb $X, $Y",
359   /* a5 */  "movsw  $X, $Y",
360   /* a6 */  "cmpsb $X, $Y",
361   /* a7 */  "cmpsw $X, $Y",
362   /* a8 */  "test %al, $I",
363   /* a9 */  "test %eax, $I",
364   /* aa */  "stosb $Y, %al",
365   /* ab */  "stosw $Y, $eax",
366   /* ac */  "lodsb %al, $X",
367   /* ad */  "lodsw %eax, $X",
368   /* ae */  "scasb %al, $X",
369   /* af */  "scasw %eax, $X",
370   /* b0 */  "mov %al, $Ib",
371   /* b1 */  "mov %cl, $Ib",
372   /* b2 */  "mov %dl, $Ib",
373   /* b3 */  "mov %bl, $Ib",
374   /* b4 */  "mov %ah, $Ib",
375   /* b5 */  "mov %ch, $Ib",
376   /* b6 */  "mov %dh, $Ib",
377   /* b7 */  "mov %bh, $Ib",
378   /* b8 */  "mov %eax, $Iv",
379   /* b9 */  "mov %ecx, $Iv",
380   /* ba */  "mov %edx, $Iv",
381   /* bb */  "mov %ebx, $Iv",
382   /* bc */  "mov %esp, $Iv",
383   /* bd */  "mov %ebp, $Iv",
384   /* be */  "mov %esi, $Iv",
385   /* bf */  "mov %edi, $Iv",
386   /* c0 */  "$group2 $Eb, $Ib",
387   /* c1 */  "$group2 $Ev, $Ib",
388   /* c2 */  "ret $Iw",
389   /* c3 */  "ret",
390   /* c4 */  "les $G, $M",
391   /* c5 */  "lds $G, $M",
392   /* c6 */  "$group11 $Eb, $Ib",
393   /* c7 */  "$group11 $Ev, $Iz",
394   /* c8 */  "enter $I, $I",
395   /* c9 */  "leave",
396   /* ca */  "ret (far)",
397   /* cb */  "ret (far)",
398   /* cc */  "int3",
399   /* cd */  "int $Iv",
400   /* ce */  "into",
401   /* cf */  "iret",
402   /* d0 */  "$group2 $Eb, 1",
403   /* d1 */  "$group2 $Ev, 1",
404   /* d2 */  "$group2 $Eb, %cl",
405   /* d3 */  "$group2 $Ev, %cl",
406   /* d4 */  "aam",
407   /* d5 */  "aad",
408   /* d6 */  "salc",
409   /* d7 */  "xlat",
410   /* d8 */  "x87",
411   /* d9 */  "x87",
412   /* da */  "x87",
413   /* db */  "x87",
414   /* dc */  "x87",
415   /* dd */  "x87",
416   /* de */  "x87",
417   /* df */  "x87",
418   /* e0 */  "loopne $Jb",
419   /* e1 */  "loope $Jb",
420   /* e2 */  "loop $Jb",
421   /* e3 */  "jcxz $Jb",
422   /* e4 */  "in %al, $I",
423   /* e5 */  "in %eax, $I",
424   /* e6 */  "out %al, $I",
425   /* e7 */  "out %eax, $I",
426   /* e8 */  "call $Jz",
427   /* e9 */  "jmp $Jz",
428   /* ea */  "ljmp $A",
429   /* eb */  "jmp $Jb",
430   /* ec */  "in %al, %dx",
431   /* ed */  "in %eax, %dx",
432   /* ee */  "out %dx, %al",
433   /* ef */  "out %dx, %eax",
434   /* f0 */  "[lock]",
435   /* f1 */  "int1",
436   /* f2 */  "[repne]",
437   /* f3 */  "[rep]",
438   /* f4 */  "hlt",
439   /* f5 */  "cmc",
440   /* f6 */  "$group3 $Eb",
441   /* f7 */  "$group3 $Ev",
442   /* f8 */  "clc",
443   /* f9 */  "stc",
444   /* fa */  "cli",
445   /* fb */  "sti",
446   /* fc */  "cld",
447   /* fd */  "std",
448   /* fe */  "$group4 $Eb",
449   /* ff */  "$group5 $Ev",
450 };
451
452
453 /* two byte opcode tables */
454 static const char *kDisasm0FXXOp[NCDTABLESIZE] = {
455   /* 00 */  "$group6 $Ew",
456   /* 01 */  "$group7",
457   /* 02 */  "lar $G, $E",
458   /* 03 */  "lsl $Gv, $Ew",
459   /* 04 */  "undefined",
460   /* 05 */  "undefined",
461   /* 06 */  "clts",
462   /* 07 */  "undefined",
463   /* 08 */  "invd",
464   /* 09 */  "wbinvd",
465   /* 0a */  "undefined",
466   /* 0b */  "ud2",
467   /* 0c */  "undefined",
468   /* 0d */  "$groupP (prefetch)",
469   /* 0e */  "femms",
470   /* 0f */  "3DNow",
471   /* 10 */  "movups $Vps, $Wps",
472   /* 11 */  "movups $Wps, $Vps",
473   /* 12 */  "movlps $Vps, $Mq",
474   /* 13 */  "movlps $Mq, $Vps",
475   /* 14 */  "unpcklps $Vps, $Wq",
476   /* 15 */  "unpckhps $Vps, $Wq",
477   /* 16 */  "movhps $Vps, $Mq",
478   /* 17 */  "movhps $Mq, $Vps",
479   /* 18 */  "$group16",
480   /* 19 */  "undefined",
481   /* 1a */  "undefined",
482   /* 1b */  "undefined",
483   /* 1c */  "undefined",
484   /* 1d */  "undefined",
485   /* 1e */  "undefined",
486   /* 1f */  "nop",
487   /* 20 */  "mov $C, $R",
488   /* 21 */  "mov $D, $R",
489   /* 22 */  "mov $R, $C",
490   /* 23 */  "mov $R, $D",
491   /* 24 */  "undefined",
492   /* 25 */  "undefined",
493   /* 26 */  "undefined",
494   /* 27 */  "undefined",
495   /* 28 */  "movaps $Vps, $Wps",
496   /* 29 */  "movaps $Wps, $Vps",
497   /* 2a */  "cvtpi2ps $Vps, $Qq",
498   /* 2b */  "movntps $Mdq, $Vps",
499   /* 2c */  "cvttps2pi $Pq, $Wps",
500   /* 2d */  "cvtps2pi $Pq, $Wps",
501   /* 2e */  "ucomiss $Vss, $Wss",
502   /* 2f */  "comiss $Vps, $Wps",
503   /* 30 */  "wrmsr",
504   /* 31 */  "rdtsc",
505   /* 32 */  "rdmsr",
506   /* 33 */  "rdpmc",
507   /* 34 */  "sysenter",
508   /* 35 */  "sysexit",
509   /* 36 */  "undefined",
510   /* 37 */  "getsec",
511   /* 38 */  "SSSE3, SSE4",
512   /* 39 */  "undefined",
513   /* 3a */  "SSSE3, SSE4",
514   /* 3b */  "undefined",
515   /* 3c */  "undefined",
516   /* 3d */  "undefined",
517   /* 3e */  "undefined",
518   /* 3f */  "undefined",
519   /* 40 */  "cmovo $Gv, $Ev",
520   /* 41 */  "cmovno $Gv, $Ev",
521   /* 42 */  "cmovb $Gv, $Ev",
522   /* 43 */  "cmovnb $Gv, $Ev",
523   /* 44 */  "cmovz $Gv, $Ev",
524   /* 45 */  "cmovnz $Gv, $Ev",
525   /* 46 */  "cmovbe $Gv, $Ev",
526   /* 47 */  "cmovnbe $Gv, $Ev",
527   /* 48 */  "cmovs $Gv, $Ev",
528   /* 49 */  "cmovns $Gv, $Ev",
529   /* 4a */  "cmovp $Gv, $Ev",
530   /* 4b */  "cmovnp $Gv, $Ev",
531   /* 4c */  "cmovl $Gv, $Ev",
532   /* 4d */  "cmovnl $Gv, $Ev",
533   /* 4e */  "cmovle $Gv, $Ev",
534   /* 4f */  "cmovnle $Gv, $Ev",
535   /* 50 */  "movmskps $Gd, $VRps",
536   /* 51 */  "sqrtps $Vps, $Wps",
537   /* 52 */  "rsqrtps $Vps, $Wps",
538   /* 53 */  "rcpps $Vps, $Wps",
539   /* 54 */  "andps $Vps, $Wps",
540   /* 55 */  "andnps $Vps, $Wps",
541   /* 56 */  "orps $Vps, $Wps",
542   /* 57 */  "xorps $Vps, $Wps",
543   /* 58 */  "addps $Vps, $Wps",
544   /* 59 */  "mulps $Vps, $Wps",
545   /* 5a */  "cvtps2pd $Vpd, $Wps",
546   /* 5b */  "cvtdq2ps $Vps, $Wdq",
547   /* 5c */  "subps $Vps, $Wps",
548   /* 5d */  "minps $Vps, $Wps",
549   /* 5e */  "divps $Vps, $Wps",
550   /* 5f */  "maxps $Vps, $Wps",
551   /* 60 */  "punpcklbw $Pq, $Qd",
552   /* 61 */  "punpcklwd $Pq, $Qd",
553   /* 62 */  "punpckldq $Pq, $Qd",
554   /* 63 */  "packsswb $Pq, $Qq",
555   /* 64 */  "pcmpgtb $Pq, $Qq",
556   /* 65 */  "pcmpgtw $Pq, $Qq",
557   /* 66 */  "pcmpgtd $Pq, $Qq",
558   /* 67 */  "packuswb $Pq, $Qq",
559   /* 68 */  "punpckhbw $Pq, $Qd",
560   /* 69 */  "punpckhwd $Pq, $Qd",
561   /* 6a */  "punpckhdq $Pq, $Qd",
562   /* 6b */  "packssdw $Pq, $Qq",
563   /* 6c */  "invalid",
564   /* 6d */  "invalid",
565   /* 6e */  "movd $Pq, $Ed",
566   /* 6f */  "movq $Pq, $Qq",
567   /* 70 */  "pshufw $Pq, $Qq, $Ib",
568   /* 71 */  "$group12 $PRq, $Ib",
569   /* 72 */  "$group13 $PRq, $Ib",
570   /* 73 */  "$group14 $PRq, $Ib",
571   /* 74 */  "pcmpeqb $Pq, $Qq",
572   /* 75 */  "pcmpeqw $Pq, $Qq",
573   /* 76 */  "pcmpeqd $Pq, $Qq",
574   /* 77 */  "emms",
575   /* 78 */  "invalid",
576   /* 79 */  "invalid",
577   /* 7a */  "invalid",
578   /* 7b */  "invalid",
579   /* 7c */  "invalid",
580   /* 7d */  "invalid",
581   /* 7e */  "movd $Ed, $Pd",
582   /* 7f */  "movq $Qq, $Pq",
583   /* 80 */  "jo $Jz",
584   /* 81 */  "jno $Jz",
585   /* 82 */  "jb $Jz",
586   /* 83 */  "jnb $Jz",
587   /* 84 */  "jz $Jz",
588   /* 85 */  "jnz $Jz",
589   /* 86 */  "jbe $Jz",
590   /* 87 */  "jnbe $Jz",
591   /* 88 */  "js $Jz",
592   /* 89 */  "jns $Jz",
593   /* 8a */  "jp $Jz",
594   /* 8b */  "jnp $Jz",
595   /* 8c */  "jl $Jz",
596   /* 8d */  "jge $Jz",
597   /* 8e */  "jle $Jz",
598   /* 8f */  "jg $Jz",
599   /* 90 */  "seto $Eb",
600   /* 91 */  "setno $Eb",
601   /* 92 */  "setb $Eb",
602   /* 93 */  "setnb $Eb",
603   /* 94 */  "setz $Eb",
604   /* 95 */  "setnz $Eb",
605   /* 96 */  "setbe $Eb",
606   /* 97 */  "setnbe $Eb",
607   /* 98 */  "sets $Eb",
608   /* 99 */  "setns $Eb",
609   /* 9a */  "setp $Eb",
610   /* 9b */  "setnp $Eb",
611   /* 9c */  "setl $Eb",
612   /* 9d */  "setge $Eb",
613   /* 9e */  "setle $Eb",
614   /* 9f */  "setg $Eb",
615   /* a0 */  "push %fs",
616   /* a1 */  "pop %fs",
617   /* a2 */  "cpuid",
618   /* a3 */  "bt $Ev, $Gv",
619   /* a4 */  "shld $Ev, $Gv, $Ib",
620   /* a5 */  "shld $Ev, $Gv, %cl",
621   /* a6 */  "invalid",
622   /* a7 */  "invalid",
623   /* a8 */  "push %gs",
624   /* a9 */  "pop %gs",
625   /* aa */  "rsm",
626   /* ab */  "bts $Ev, $Gv",
627   /* ac */  "shrd $Ev, $Gv, $Ib",
628   /* ad */  "shrd $Ev, $Gv, %cl",
629   /* ae */  "$group15 $M",
630   /* af */  "imul $Gv, $Ev",
631   /* b0 */  "cmpxchg $E, $G",
632   /* b1 */  "cmpxchg $E, $G",
633   /* b2 */  "lss $Mp",
634   /* b3 */  "btr $Ev, $Gv",
635   /* b4 */  "lfs $Mp",
636   /* b5 */  "lgs $Mp",
637   /* b6 */  "movzx $Gv, $Eb",
638   /* b7 */  "movzx $Gv, $Ew",
639   /* b8 */  "reserved",
640   /* b9 */  "$group10",
641   /* ba */  "$group8 $Ev, $Ib",
642   /* bb */  "btc $Ev, $Gv",
643   /* bc */  "bsf $Gv, $Ev",
644   /* bd */  "bsr $Gv, $Ev",
645   /* be */  "movsx $Gv, $Eb",
646   /* bf */  "movsx $Gv, $Ew",
647   /* c0 */  "xadd $E, $G",
648   /* c1 */  "xadd $E, $G",
649   /* c2 */  "cmpps $V, $W, $I",
650   /* c3 */  "movnti $Md, $Gd",
651   /* c4 */  "pinsrw $Pq, $Ew, $Ib",
652   /* c5 */  "pextrw $Gd, $PRq, $Ib",
653   /* c6 */  "shufps $Vps, $Wps, $Ib",
654   /* c7 */  "$group9 $Mq",
655   /* c8 */  "bswap %eax",
656   /* c9 */  "bswap %ecx",
657   /* ca */  "bswap %edx",
658   /* cb */  "bswap %ebx",
659   /* cc */  "bswap %esp",
660   /* cd */  "bswap %ebp",
661   /* ce */  "bswap %esi",
662   /* cf */  "bswap %edi",
663   /* d0 */  "invalid",
664   /* d1 */  "psrlw $Pq, $Qq",
665   /* d2 */  "psrld $Pq, $Qq",
666   /* d3 */  "psrlq $Pq, $Qq",
667   /* d4 */  "paddq $Pq, $Qq",
668   /* d5 */  "pmullw $Pq, $Qq",
669   /* d6 */  "invalid",
670   /* d7 */  "pmovmskb $Gd, $PRq",
671   /* d8 */  "psubusb $Pq, $Qq",
672   /* d9 */  "psubusw $Pq, $Qq",
673   /* da */  "pminub $Pq, $Qq",
674   /* db */  "pand $Pq, $Qq",
675   /* dc */  "paddusb $Pq, $Qq",
676   /* dd */  "paddusw $Pq, $Qq",
677   /* de */  "pmaxub $Pq, $Qq",
678   /* df */  "pandn $Pq, $Qq",
679   /* e0 */  "pavgb $Pq, $Qq",
680   /* e1 */  "psraw $Pq, $Qq",
681   /* e2 */  "psrad $Pq, $Qq",
682   /* e3 */  "pavgw $Pq, $Qq",
683   /* e4 */  "pmulhuw $Pq, $Qq",
684   /* e5 */  "pmulhw $Pq, $Qq",
685   /* e6 */  "invalid",
686   /* e7 */  "movntq $Mq, $Pq",
687   /* e8 */  "psubsb $Pq, $Qq",
688   /* e9 */  "psubsw $Pq, $Qq",
689   /* ea */  "pminsw $Pq, $Qq",
690   /* eb */  "por $Pq, $Qq",
691   /* ec */  "paddsb $Pq, $Qq",
692   /* ed */  "paddsw $Pq, $Qq",
693   /* ee */  "pmaxsw $Pq, $Qq",
694   /* ef */  "pxor $Pq, $Qq",
695   /* f0 */  "invalid",
696   /* f1 */  "psllw $Pq, $Qq",
697   /* f2 */  "pslld $Pq, $Qq",
698   /* f3 */  "psllq $Pq, $Qq",
699   /* f4 */  "pmuludq $Pq, $Qq",
700   /* f5 */  "pmaddwd $Pq, $Qq",
701   /* f6 */  "psadbw $Pq, $Qq",
702   /* f7 */  "maskmovq $Pq, $PRq",
703   /* f8 */  "psubb $Pq, $Qq",
704   /* f9 */  "psubw $Pq, $Qq",
705   /* fa */  "psubd $Pq, $Qq",
706   /* fb */  "psubq $Pq, $Qq",
707   /* fc */  "paddb $Pq, $Qq",
708   /* fd */  "paddw $Pq, $Qq",
709   /* fe */  "paddd $Pq, $Qq",
710   /* ff */  "invalid",
711 };
712
713 static const char *kDisasm660FXXOp[NCDTABLESIZE] = {
714   /* 00 */  "undefined",
715   /* 01 */  "undefined",
716   /* 02 */  "undefined",
717   /* 03 */  "undefined",
718   /* 04 */  "undefined",
719   /* 05 */  "undefined",
720   /* 06 */  "undefined",
721   /* 07 */  "undefined",
722   /* 08 */  "undefined",
723   /* 09 */  "undefined",
724   /* 0a */  "undefined",
725   /* 0b */  "undefined",
726   /* 0c */  "undefined",
727   /* 0d */  "undefined",
728   /* 0e */  "undefined",
729   /* 0f */  "undefined",
730   /* 10 */  "movupd $Vpd, $Wpd",
731   /* 11 */  "movupd $Wpd, $Vpd",
732   /* 12 */  "movlpd $Vps, $Mq",
733   /* 13 */  "movlpd $Mq, $Vsd",
734   /* 14 */  "unpcklpd $Vpd, $Wq",
735   /* 15 */  "unpckhpd $Vpd, $Wq",
736   /* 16 */  "movhpd $Vsd, $Mq",
737   /* 17 */  "movhpd $Mq, $Vpd",
738   /* 18 */  "undefined",
739   /* 19 */  "undefined",
740   /* 1a */  "undefined",
741   /* 1b */  "undefined",
742   /* 1c */  "undefined",
743   /* 1d */  "undefined",
744   /* 1e */  "undefined",
745   /* 1f */  "undefined",
746   /* 20 */  "undefined",
747   /* 21 */  "undefined",
748   /* 22 */  "undefined",
749   /* 23 */  "undefined",
750   /* 24 */  "undefined",
751   /* 25 */  "undefined",
752   /* 26 */  "undefined",
753   /* 27 */  "undefined",
754   /* 28 */  "movapd $Vpd, $Wpd",
755   /* 29 */  "movapd $Wpd, $Vpd",
756   /* 2a */  "cvtpi2pd $Vpd $Qq",
757   /* 2b */  "movntpd $Mdq, $Vpd",
758   /* 2c */  "cvttpd2pi $Pq, $Wpd",
759   /* 2d */  "cvtpd2pi $Pq, $Wpd",
760   /* 2e */  "ucomisd $Vps, $Wps",
761   /* 2f */  "comisd $Vpd, $Wsd",
762   /* 30 */  "undefined",
763   /* 31 */  "undefined",
764   /* 32 */  "undefined",
765   /* 33 */  "undefined",
766   /* 34 */  "undefined",
767   /* 35 */  "undefined",
768   /* 36 */  "undefined",
769   /* 37 */  "undefined",
770   /* 38 */  "SSE4",
771   /* 39 */  "undefined",
772   /* 3a */  "SSE4",
773   /* 3b */  "undefined",
774   /* 3c */  "undefined",
775   /* 3d */  "undefined",
776   /* 3e */  "undefined",
777   /* 3f */  "undefined",
778   /* 40 */  "cmovo $Gv, $Ev",
779   /* 41 */  "cmovno $Gv, $Ev",
780   /* 42 */  "cmovb $Gv, $Ev",
781   /* 43 */  "cmovnb $Gv, $Ev",
782   /* 44 */  "cmovz $Gv, $Ev",
783   /* 45 */  "cmovnz $Gv, $Ev",
784   /* 46 */  "cmovbe $Gv, $Ev",
785   /* 47 */  "cmovnbe $Gv, $Ev",
786   /* 48 */  "cmovs $Gv, $Ev",
787   /* 49 */  "cmovns $Gv, $Ev",
788   /* 4a */  "cmovp $Gv, $Ev",
789   /* 4b */  "cmovnp $Gv, $Ev",
790   /* 4c */  "cmovl $Gv, $Ev",
791   /* 4d */  "cmovnl $Gv, $Ev",
792   /* 4e */  "cmovle $Gv, $Ev",
793   /* 4f */  "cmovnle $Gv, $Ev",
794   /* 50 */  "movmskpd $Gd, $VRpd",
795   /* 51 */  "sqrtpd $Vpd, $Wpd",
796   /* 52 */  "invalid",
797   /* 53 */  "invalid",
798   /* 54 */  "andpd $Vpd, $Wpd",
799   /* 55 */  "andnpd $Vpd, $Wpd",
800   /* 56 */  "orpd $Vpd, $Wpd",
801   /* 57 */  "xorpd $Vpd, $Wpd",
802   /* 58 */  "addpd $Vpd, $Wpd",
803   /* 59 */  "mulpd $Vpd, $Wpd",
804   /* 5a */  "cvtpd2ps $Vps, $Wpd",
805   /* 5b */  "cvtps2dq $Vdq, $Wps",
806   /* 5c */  "subpd $Vpd, $Wpd",
807   /* 5d */  "minpd $Vpd, $Wpd",
808   /* 5e */  "divpd $Vpd, $Wpd",
809   /* 5f */  "maxpd $Vpd, $Wpd",
810   /* 60 */  "punpcklbw $Vdq, $Wq",
811   /* 61 */  "punpcklwd $Vdq, $Wq",
812   /* 62 */  "punpckldq $Vdq, $Wq",
813   /* 63 */  "packsswb $Vdq, $Wdq",
814   /* 64 */  "pcmpgtb $Vdq, $Wdq",
815   /* 65 */  "pcmpgtw $Vdq, $Wdq",
816   /* 66 */  "pcmpgtd $Vdq, $Wdq",
817   /* 67 */  "packuswb $Vdq, $Wdq",
818   /* 68 */  "punpckhbw $Vdq, $Wq",
819   /* 69 */  "punpckhwd $Vdq, $Wq",
820   /* 6a */  "punpckhdq $Vdq, $Wq",
821   /* 6b */  "packssdw $Vdq, $Wdq",
822   /* 6c */  "punpcklqdq $Vdq, $Wq",
823   /* 6d */  "punpckhqdq $Vdq, $Wq",
824   /* 6e */  "movd $Vdq, $Edq",
825   /* 6f */  "movdqa $Vdq, $Wdq",
826   /* 70 */  "pshufd $Vdq, $Wdq, $Ib",
827   /* 71 */  "$group12 $VRdq, $Ib",
828   /* 72 */  "$group13 $VRdq, $Ib",
829   /* 73 */  "$group14 $VRdq, $Ib",
830   /* 74 */  "pcmpeqb $Vdq, $Wdq",
831   /* 75 */  "pcmpeqw $Vdq, $Wdq",
832   /* 76 */  "pcmpeqd $Vdq, $Wdq",
833   /* 77 */  "invalid",
834   /* 78 */  "$group17 $Vdq, $Ib, $Ib",
835   /* 79 */  "extrq $Vdq, $VRq",
836   /* 7a */  "invalid",
837   /* 7b */  "invalid",
838   /* 7c */  "haddpd $Vpd, $Wpd",
839   /* 7d */  "hsubpd $Vpd, $Wpd",
840   /* 7e */  "movd $Ed, $Vd",
841   /* 7f */  "movdqa $Wdq, $Vdq",
842   /* 80 */  "undefined",
843   /* 81 */  "undefined",
844   /* 82 */  "undefined",
845   /* 83 */  "undefined",
846   /* 84 */  "undefined",
847   /* 85 */  "undefined",
848   /* 86 */  "undefined",
849   /* 87 */  "undefined",
850   /* 88 */  "undefined",
851   /* 89 */  "undefined",
852   /* 8a */  "undefined",
853   /* 8b */  "undefined",
854   /* 8c */  "undefined",
855   /* 8d */  "undefined",
856   /* 8e */  "undefined",
857   /* 8f */  "undefined",
858   /* 90 */  "undefined",
859   /* 91 */  "undefined",
860   /* 92 */  "undefined",
861   /* 93 */  "undefined",
862   /* 94 */  "undefined",
863   /* 95 */  "undefined",
864   /* 96 */  "undefined",
865   /* 97 */  "undefined",
866   /* 98 */  "undefined",
867   /* 99 */  "undefined",
868   /* 9a */  "undefined",
869   /* 9b */  "undefined",
870   /* 9c */  "undefined",
871   /* 9d */  "undefined",
872   /* 9e */  "undefined",
873   /* 9f */  "undefined",
874   /* a0 */  "undefined",
875   /* a1 */  "undefined",
876   /* a2 */  "undefined",
877   /* a3 */  "undefined",
878   /* a4 */  "undefined",
879   /* a5 */  "undefined",
880   /* a6 */  "undefined",
881   /* a7 */  "undefined",
882   /* a8 */  "undefined",
883   /* a9 */  "undefined",
884   /* aa */  "undefined",
885   /* ab */  "undefined",
886   /* ac */  "undefined",
887   /* ad */  "undefined",
888   /* ae */  "undefined",
889   /* af */  "imul $Gv, $Ev",
890   /* b0 */  "undefined",
891   /* b1 */  "undefined",
892   /* b2 */  "undefined",
893   /* b3 */  "undefined",
894   /* b4 */  "undefined",
895   /* b5 */  "undefined",
896   /* b6 */  "movzx $Gv, $Eb",
897   /* b7 */  "movzx $Gv, $Ew",
898   /* b8 */  "undefined",
899   /* b9 */  "undefined",
900   /* ba */  "undefined",
901   /* bb */  "undefined",
902   /* bc */  "undefined",
903   /* bd */  "undefined",
904   /* be */  "movsx $Gv, $Eb",
905   /* bf */  "movsx $Gv, $Ew",
906   /* c0 */  "undefined",
907   /* c1 */  "undefined",
908   /* c2 */  "cmppd $V, $W, $I",
909   /* c3 */  "invalid",
910   /* c4 */  "pinsrw $Vdq, $Ew, $Ib",
911   /* c5 */  "pextrw $Gd, $VRdq, $Ib",
912   /* c6 */  "shufpd $Vpd, $Wpd, $Ib",
913   /* c7 */  "undefined",
914   /* c8 */  "undefined",
915   /* c9 */  "undefined",
916   /* ca */  "undefined",
917   /* cb */  "undefined",
918   /* cc */  "undefined",
919   /* cd */  "undefined",
920   /* ce */  "undefined",
921   /* cf */  "undefined",
922   /* d0 */  "addsubpd $Vpd, $Wpd",
923   /* d1 */  "psrlw $Vdq, $Wdq",
924   /* d2 */  "psrld $Vdq, $Wdq",
925   /* d3 */  "psrlq $Vdq, $Wdq",
926   /* d4 */  "paddq $Vdq, $Wdq",
927   /* d5 */  "pmullw $Vdq, $Wdq",
928   /* d6 */  "movq $Wq, $Vq",
929   /* d7 */  "pmovmskb $Gd, $VRdq",
930   /* d8 */  "psubusb $Vdq, $Wdq",
931   /* d9 */  "psubusw $Vdq, $Wdq",
932   /* da */  "pminub $Vdq, $Wdq",
933   /* db */  "pand $Vdq, $Wdq",
934   /* dc */  "paddusb $Vdq, $Wdq",
935   /* dd */  "paddusw $Vdq, $Wdq",
936   /* de */  "pmaxub $Vdq, $Wdq",
937   /* df */  "pandn $Vdq, $Wdq",
938   /* e0 */  "pavgb $Vdq, $Wdq",
939   /* e1 */  "psraw $Vdq, $Wdq",
940   /* e2 */  "psrad $Vdq, $Wdq",
941   /* e3 */  "pavgw $Vdq, $Wdq",
942   /* e4 */  "pmulhuw $Vdq, $Wdq",
943   /* e5 */  "pmulhw $Vdq, $Wdq",
944   /* e6 */  "cvttpd2dq $Vq, $Wpd",
945   /* e7 */  "movntdq $Mdq, $Vdq",
946   /* e8 */  "psubsb $Vdq, $Wdq",
947   /* e9 */  "psubsw $Vdq, $Wdq",
948   /* ea */  "pminsw $Vdq, $Wdq",
949   /* eb */  "por $Vdq, $Wdq",
950   /* ec */  "paddsb $Vdq, $Wdq",
951   /* ed */  "paddsw $Vdq, $Wdq",
952   /* ee */  "pmaxsw $Vdq, $Wdq",
953   /* ef */  "pxor $Vdq, $Wdq",
954   /* f0 */  "invalid",
955   /* f1 */  "psllw $Vdq, $Wdq",
956   /* f2 */  "pslld $Vdq, $Wdq",
957   /* f3 */  "psllq $Vdq, $Wdq",
958   /* f4 */  "pmuludq $Vdq, $Wdq",
959   /* f5 */  "pmaddwd $Vdq, $Wdq",
960   /* f6 */  "psadbw $Vdq, $Wdq",
961   /* f7 */  "maskmovdqu $Vdq, $VRdq",
962   /* f8 */  "psubb $Vdq, $Wdq",
963   /* f9 */  "psubw $Vdq, $Wdq",
964   /* fa */  "psubd $Vdq, $Wdq",
965   /* fb */  "psubq $Vdq, $Wdq",
966   /* fc */  "paddb $Vdq, $Wdq",
967   /* fd */  "paddw $Vdq, $Wdq",
968   /* fe */  "paddd $Vdq, $Wdq",
969   /* ff */  "invalid",
970 };
971
972 static const char *kDisasmF20FXXOp[NCDTABLESIZE] = {
973   /* 00 */  "undefined",
974   /* 01 */  "undefined",
975   /* 02 */  "undefined",
976   /* 03 */  "undefined",
977   /* 04 */  "undefined",
978   /* 05 */  "undefined",
979   /* 06 */  "undefined",
980   /* 07 */  "undefined",
981   /* 08 */  "undefined",
982   /* 09 */  "undefined",
983   /* 0a */  "undefined",
984   /* 0b */  "undefined",
985   /* 0c */  "undefined",
986   /* 0d */  "undefined",
987   /* 0e */  "undefined",
988   /* 0f */  "undefined",
989   /* 10 */  "movsd $Vsd, $Wsd",
990   /* 11 */  "movsd $Wsd, $Vsd",
991   /* 12 */  "movddup $Vpd, $Wsd",
992   /* 13 */  "invalid",
993   /* 14 */  "invalid",
994   /* 15 */  "invalid",
995   /* 16 */  "invalid",
996   /* 17 */  "invalid",
997   /* 18 */  "undefined",
998   /* 19 */  "undefined",
999   /* 1a */  "undefined",
1000   /* 1b */  "undefined",
1001   /* 1c */  "undefined",
1002   /* 1d */  "undefined",
1003   /* 1e */  "undefined",
1004   /* 1f */  "undefined",
1005   /* 20 */  "undefined",
1006   /* 21 */  "undefined",
1007   /* 22 */  "undefined",
1008   /* 23 */  "undefined",
1009   /* 24 */  "undefined",
1010   /* 25 */  "undefined",
1011   /* 26 */  "undefined",
1012   /* 27 */  "undefined",
1013   /* 28 */  "invalid",
1014   /* 29 */  "invalid",
1015   /* 2a */  "cvtsi2sd $Vsd, $Ed",
1016   /* 2b */  "movntsd $Mq, $Vsd",
1017   /* 2c */  "cvttsd2si $Gd, $Wsd",
1018   /* 2d */  "cvtsd2si $Gd, $Wsd",
1019   /* 2e */  "invalid",
1020   /* 2f */  "invalid",
1021   /* 30 */  "undefined",
1022   /* 31 */  "undefined",
1023   /* 32 */  "undefined",
1024   /* 33 */  "undefined",
1025   /* 34 */  "undefined",
1026   /* 35 */  "undefined",
1027   /* 36 */  "undefined",
1028   /* 37 */  "undefined",
1029   /* 38 */  "SSE4",
1030   /* 39 */  "undefined",
1031   /* 3a */  "undefined",
1032   /* 3b */  "undefined",
1033   /* 3c */  "undefined",
1034   /* 3d */  "undefined",
1035   /* 3e */  "undefined",
1036   /* 3f */  "undefined",
1037   /* 40 */  "undefined",
1038   /* 41 */  "undefined",
1039   /* 42 */  "undefined",
1040   /* 43 */  "undefined",
1041   /* 44 */  "undefined",
1042   /* 45 */  "undefined",
1043   /* 46 */  "undefined",
1044   /* 47 */  "undefined",
1045   /* 48 */  "undefined",
1046   /* 49 */  "undefined",
1047   /* 4a */  "undefined",
1048   /* 4b */  "undefined",
1049   /* 4c */  "undefined",
1050   /* 4d */  "undefined",
1051   /* 4e */  "undefined",
1052   /* 4f */  "undefined",
1053   /* 50 */  "invalid",
1054   /* 51 */  "sqrtsd $Vsd, $Wsd",
1055   /* 52 */  "invalid",
1056   /* 53 */  "invalid",
1057   /* 54 */  "invalid",
1058   /* 55 */  "invalid",
1059   /* 56 */  "invalid",
1060   /* 57 */  "invalid",
1061   /* 58 */  "addsd $Vsd, $Wsd",
1062   /* 59 */  "mulsd $Vsd, $Wsd",
1063   /* 5a */  "cvtsd2ss $Vss, $Wsd",
1064   /* 5b */  "invalid",
1065   /* 5c */  "subsd $Vsd, $Wsd",
1066   /* 5d */  "minsd $Vsd, $Wsd",
1067   /* 5e */  "divsd $Vsd, $Wsd",
1068   /* 5f */  "maxsd $Vsd, $Wsd",
1069   /* 60 */  "invalid",
1070   /* 61 */  "invalid",
1071   /* 62 */  "invalid",
1072   /* 63 */  "invalid",
1073   /* 64 */  "invalid",
1074   /* 65 */  "invalid",
1075   /* 66 */  "invalid",
1076   /* 67 */  "invalid",
1077   /* 68 */  "invalid",
1078   /* 69 */  "invalid",
1079   /* 6a */  "invalid",
1080   /* 6b */  "invalid",
1081   /* 6c */  "invalid",
1082   /* 6d */  "invalid",
1083   /* 6e */  "invalid",
1084   /* 6f */  "invalid",
1085   /* 70 */  "pshuflw $Vq, $Wq, $Ib",
1086   /* 71 */  "invalid",
1087   /* 72 */  "invalid",
1088   /* 73 */  "invalid",
1089   /* 74 */  "invalid",
1090   /* 75 */  "invalid",
1091   /* 76 */  "invalid",
1092   /* 77 */  "invalid",
1093   /* 78 */  "insertq $Vdq, $VRq, $Ib, $Ib",
1094   /* 79 */  "insertq $Vdq, $VRdq",
1095   /* 7a */  "invalid",
1096   /* 7b */  "invalid",
1097   /* 7c */  "haddps $Vps, $Wps",
1098   /* 7d */  "hsubps $Vps, $Wps",
1099   /* 7e */  "invalid",
1100   /* 7f */  "invalid",
1101   /* 80 */  "undefined",
1102   /* 81 */  "undefined",
1103   /* 82 */  "undefined",
1104   /* 83 */  "undefined",
1105   /* 84 */  "undefined",
1106   /* 85 */  "undefined",
1107   /* 86 */  "undefined",
1108   /* 87 */  "undefined",
1109   /* 88 */  "undefined",
1110   /* 89 */  "undefined",
1111   /* 8a */  "undefined",
1112   /* 8b */  "undefined",
1113   /* 8c */  "undefined",
1114   /* 8d */  "undefined",
1115   /* 8e */  "undefined",
1116   /* 8f */  "undefined",
1117   /* 90 */  "undefined",
1118   /* 91 */  "undefined",
1119   /* 92 */  "undefined",
1120   /* 93 */  "undefined",
1121   /* 94 */  "undefined",
1122   /* 95 */  "undefined",
1123   /* 96 */  "undefined",
1124   /* 97 */  "undefined",
1125   /* 98 */  "undefined",
1126   /* 99 */  "undefined",
1127   /* 9a */  "undefined",
1128   /* 9b */  "undefined",
1129   /* 9c */  "undefined",
1130   /* 9d */  "undefined",
1131   /* 9e */  "undefined",
1132   /* 9f */  "undefined",
1133   /* a0 */  "undefined",
1134   /* a1 */  "undefined",
1135   /* a2 */  "undefined",
1136   /* a3 */  "undefined",
1137   /* a4 */  "undefined",
1138   /* a5 */  "undefined",
1139   /* a6 */  "undefined",
1140   /* a7 */  "undefined",
1141   /* a8 */  "undefined",
1142   /* a9 */  "undefined",
1143   /* aa */  "undefined",
1144   /* ab */  "undefined",
1145   /* ac */  "undefined",
1146   /* ad */  "undefined",
1147   /* ae */  "undefined",
1148   /* af */  "undefined",
1149   /* b0 */  "undefined",
1150   /* b1 */  "undefined",
1151   /* b2 */  "undefined",
1152   /* b3 */  "undefined",
1153   /* b4 */  "undefined",
1154   /* b5 */  "undefined",
1155   /* b6 */  "undefined",
1156   /* b7 */  "undefined",
1157   /* b8 */  "reserved",
1158   /* b9 */  "reserved",
1159   /* ba */  "reserved",
1160   /* bb */  "reserved",
1161   /* bc */  "reserved",
1162   /* bd */  "reserved",
1163   /* be */  "reserved",
1164   /* bf */  "reserved",
1165   /* c0 */  "undefined",
1166   /* c1 */  "undefined",
1167   /* c2 */  "cmpsd $V, $W, $I",
1168   /* c3 */  "invalid",
1169   /* c4 */  "invalid",
1170   /* c5 */  "invalid",
1171   /* c6 */  "invalid",
1172   /* c7 */  "undefined",
1173   /* c8 */  "undefined",
1174   /* c9 */  "undefined",
1175   /* ca */  "undefined",
1176   /* cb */  "undefined",
1177   /* cc */  "undefined",
1178   /* cd */  "undefined",
1179   /* ce */  "undefined",
1180   /* cf */  "undefined",
1181   /* d0 */  "addsubps $Vps, $Wps",
1182   /* d1 */  "invalid",
1183   /* d2 */  "invalid",
1184   /* d3 */  "invalid",
1185   /* d4 */  "invalid",
1186   /* d5 */  "invalid",
1187   /* d6 */  "movdq2q $Pq, $VRq",
1188   /* d7 */  "invalid",
1189   /* d8 */  "invalid",
1190   /* d9 */  "invalid",
1191   /* da */  "invalid",
1192   /* db */  "invalid",
1193   /* dc */  "invalid",
1194   /* dd */  "invalid",
1195   /* de */  "invalid",
1196   /* df */  "invalid",
1197   /* e0 */  "invalid",
1198   /* e1 */  "invalid",
1199   /* e2 */  "invalid",
1200   /* e3 */  "invalid",
1201   /* e4 */  "invalid",
1202   /* e5 */  "invalid",
1203   /* e6 */  "cvtpd2dq $Vq, $Wpd",
1204   /* e7 */  "invalid",
1205   /* e8 */  "invalid",
1206   /* e9 */  "invalid",
1207   /* ea */  "invalid",
1208   /* eb */  "invalid",
1209   /* ec */  "invalid",
1210   /* ed */  "invalid",
1211   /* ee */  "invalid",
1212   /* ef */  "invalid",
1213   /* f0 */  "lddqu $Vpd, $Mdq",
1214   /* f1 */  "invalid",
1215   /* f2 */  "invalid",
1216   /* f3 */  "invalid",
1217   /* f4 */  "invalid",
1218   /* f5 */  "invalid",
1219   /* f6 */  "invalid",
1220   /* f7 */  "invalid",
1221   /* f8 */  "invalid",
1222   /* f9 */  "invalid",
1223   /* fa */  "invalid",
1224   /* fb */  "invalid",
1225   /* fc */  "invalid",
1226   /* fd */  "invalid",
1227   /* fe */  "invalid",
1228   /* ff */  "invalid",
1229 };
1230
1231 static const char *kDisasmF30FXXOp[NCDTABLESIZE] = {
1232   /* 00 */  "undefined",
1233   /* 01 */  "undefined",
1234   /* 02 */  "undefined",
1235   /* 03 */  "undefined",
1236   /* 04 */  "undefined",
1237   /* 05 */  "undefined",
1238   /* 06 */  "undefined",
1239   /* 07 */  "undefined",
1240   /* 08 */  "undefined",
1241   /* 09 */  "undefined",
1242   /* 0a */  "undefined",
1243   /* 0b */  "undefined",
1244   /* 0c */  "undefined",
1245   /* 0d */  "undefined",
1246   /* 0e */  "undefined",
1247   /* 0f */  "undefined",
1248   /* 10 */  "movss $Vss, $Wss",
1249   /* 11 */  "movss $Wss, $Vss",
1250   /* 12 */  "movsldup $Vps, $Wps",
1251   /* 13 */  "invalid",
1252   /* 14 */  "invalid",
1253   /* 15 */  "invalid",
1254   /* 16 */  "movshdup $Vps, $Wps",
1255   /* 17 */  "invalid",
1256   /* 18 */  "undefined",
1257   /* 19 */  "undefined",
1258   /* 1a */  "undefined",
1259   /* 1b */  "undefined",
1260   /* 1c */  "undefined",
1261   /* 1d */  "undefined",
1262   /* 1e */  "undefined",
1263   /* 1f */  "undefined",
1264   /* 20 */  "undefined",
1265   /* 21 */  "undefined",
1266   /* 22 */  "undefined",
1267   /* 23 */  "undefined",
1268   /* 24 */  "undefined",
1269   /* 25 */  "undefined",
1270   /* 26 */  "undefined",
1271   /* 27 */  "undefined",
1272   /* 28 */  "invalid",
1273   /* 29 */  "invalid",
1274   /* 2a */  "cvtsi2ss $Vss, $Ed",
1275   /* 2b */  "movntss $Md, $Vss",
1276   /* 2c */  "cvttss2si $Gd, $Wss",
1277   /* 2d */  "cvtss2si $Gd, $Wss",
1278   /* 2e */  "invalid",
1279   /* 2f */  "invalid",
1280   /* 30 */  "undefined",
1281   /* 31 */  "undefined",
1282   /* 32 */  "undefined",
1283   /* 33 */  "undefined",
1284   /* 34 */  "undefined",
1285   /* 35 */  "undefined",
1286   /* 36 */  "undefined",
1287   /* 37 */  "undefined",
1288   /* 38 */  "undefined",
1289   /* 39 */  "undefined",
1290   /* 3a */  "undefined",
1291   /* 3b */  "undefined",
1292   /* 3c */  "undefined",
1293   /* 3d */  "undefined",
1294   /* 3e */  "undefined",
1295   /* 3f */  "undefined",
1296   /* 40 */  "undefined",
1297   /* 41 */  "undefined",
1298   /* 42 */  "undefined",
1299   /* 43 */  "undefined",
1300   /* 44 */  "undefined",
1301   /* 45 */  "undefined",
1302   /* 46 */  "undefined",
1303   /* 47 */  "undefined",
1304   /* 48 */  "undefined",
1305   /* 49 */  "undefined",
1306   /* 4a */  "undefined",
1307   /* 4b */  "undefined",
1308   /* 4c */  "undefined",
1309   /* 4d */  "undefined",
1310   /* 4e */  "undefined",
1311   /* 4f */  "undefined",
1312   /* 50 */  "invalid",
1313   /* 51 */  "sqrtss $Vss, $Wss",
1314   /* 52 */  "rsqrtss $Vss, $Wss",
1315   /* 53 */  "rcpss $Vss, $Wss",
1316   /* 54 */  "invalid",
1317   /* 55 */  "invalid",
1318   /* 56 */  "invalid",
1319   /* 57 */  "invalid",
1320   /* 58 */  "addss $Vss, $Wss",
1321   /* 59 */  "mulss $Vss, $Wss",
1322   /* 5a */  "cvtss2sd $Vsd, $Wss",
1323   /* 5b */  "cvttps2dq $Vdq, $Wps",
1324   /* 5c */  "subss $Vss, $Wss",
1325   /* 5d */  "minss $Vss, $Wss",
1326   /* 5e */  "divss $Vss, $Wss",
1327   /* 5f */  "maxss $Vss, $Wss",
1328   /* 60 */  "invalid",
1329   /* 61 */  "invalid",
1330   /* 62 */  "invalid",
1331   /* 63 */  "invalid",
1332   /* 64 */  "invalid",
1333   /* 65 */  "invalid",
1334   /* 66 */  "invalid",
1335   /* 67 */  "invalid",
1336   /* 68 */  "invalid",
1337   /* 69 */  "invalid",
1338   /* 6a */  "invalid",
1339   /* 6b */  "invalid",
1340   /* 6c */  "invalid",
1341   /* 6d */  "invalid",
1342   /* 6e */  "invalid",
1343   /* 6f */  "movdqu $Vdq, $Wdq",
1344   /* 70 */  "pshufhw $Vq, $Wq, $Ib",
1345   /* 71 */  "invalid",
1346   /* 72 */  "invalid",
1347   /* 73 */  "invalid",
1348   /* 74 */  "invalid",
1349   /* 75 */  "invalid",
1350   /* 76 */  "invalid",
1351   /* 77 */  "invalid",
1352   /* 78 */  "invalid",
1353   /* 79 */  "invalid",
1354   /* 7a */  "invalid",
1355   /* 7b */  "invalid",
1356   /* 7c */  "invalid",
1357   /* 7d */  "invalid",
1358   /* 7e */  "movq $Vq, $Wq",
1359   /* 7f */  "movdqu $Wdq, $Vdq",
1360   /* 80 */  "undefined",
1361   /* 81 */  "undefined",
1362   /* 82 */  "undefined",
1363   /* 83 */  "undefined",
1364   /* 84 */  "undefined",
1365   /* 85 */  "undefined",
1366   /* 86 */  "undefined",
1367   /* 87 */  "undefined",
1368   /* 88 */  "undefined",
1369   /* 89 */  "undefined",
1370   /* 8a */  "undefined",
1371   /* 8b */  "undefined",
1372   /* 8c */  "undefined",
1373   /* 8d */  "undefined",
1374   /* 8e */  "undefined",
1375   /* 8f */  "undefined",
1376   /* 90 */  "undefined",
1377   /* 91 */  "undefined",
1378   /* 92 */  "undefined",
1379   /* 93 */  "undefined",
1380   /* 94 */  "undefined",
1381   /* 95 */  "undefined",
1382   /* 96 */  "undefined",
1383   /* 97 */  "undefined",
1384   /* 98 */  "undefined",
1385   /* 99 */  "undefined",
1386   /* 9a */  "undefined",
1387   /* 9b */  "undefined",
1388   /* 9c */  "undefined",
1389   /* 9d */  "undefined",
1390   /* 9e */  "undefined",
1391   /* 9f */  "undefined",
1392   /* a0 */  "undefined",
1393   /* a1 */  "undefined",
1394   /* a2 */  "undefined",
1395   /* a3 */  "undefined",
1396   /* a4 */  "undefined",
1397   /* a5 */  "undefined",
1398   /* a6 */  "undefined",
1399   /* a7 */  "undefined",
1400   /* a8 */  "undefined",
1401   /* a9 */  "undefined",
1402   /* aa */  "undefined",
1403   /* ab */  "undefined",
1404   /* ac */  "undefined",
1405   /* ad */  "undefined",
1406   /* ae */  "undefined",
1407   /* af */  "undefined",
1408   /* b0 */  "undefined",
1409   /* b1 */  "undefined",
1410   /* b2 */  "undefined",
1411   /* b3 */  "undefined",
1412   /* b4 */  "undefined",
1413   /* b5 */  "undefined",
1414   /* b6 */  "undefined",
1415   /* b7 */  "undefined",
1416   /* b8 */  "popcnt",
1417   /* b9 */  "reserved",
1418   /* ba */  "reserved",
1419   /* bb */  "reserved",
1420   /* bc */  "tzcnt $Gv, $Ev",
1421   /* bd */  "lzcnt $Gv, $Ev",
1422   /* be */  "reserved",
1423   /* bf */  "reserved",
1424   /* c0 */  "undefined",
1425   /* c1 */  "undefined",
1426   /* c2 */  "cmpss $V, $W, $I",
1427   /* c3 */  "invalid",
1428   /* c4 */  "invalid",
1429   /* c5 */  "invalid",
1430   /* c6 */  "invalid",
1431   /* c7 */  "undefined",
1432   /* c8 */  "undefined",
1433   /* c9 */  "undefined",
1434   /* ca */  "undefined",
1435   /* cb */  "undefined",
1436   /* cc */  "undefined",
1437   /* cd */  "undefined",
1438   /* ce */  "undefined",
1439   /* cf */  "undefined",
1440   /* d0 */  "invalid",
1441   /* d1 */  "invalid",
1442   /* d2 */  "invalid",
1443   /* d3 */  "invalid",
1444   /* d4 */  "invalid",
1445   /* d5 */  "invalid",
1446   /* d6 */  "movq2dq $Vdq, $PRq",
1447   /* d7 */  "invalid",
1448   /* d8 */  "invalid",
1449   /* d9 */  "invalid",
1450   /* da */  "invalid",
1451   /* db */  "invalid",
1452   /* dc */  "invalid",
1453   /* dd */  "invalid",
1454   /* de */  "invalid",
1455   /* df */  "invalid",
1456   /* e0 */  "invalid",
1457   /* e1 */  "invalid",
1458   /* e2 */  "invalid",
1459   /* e3 */  "invalid",
1460   /* e4 */  "invalid",
1461   /* e5 */  "invalid",
1462   /* e6 */  "cvtdq2pd $Vpd, $Wq",
1463   /* e7 */  "invalid",
1464   /* e8 */  "invalid",
1465   /* e9 */  "invalid",
1466   /* ea */  "invalid",
1467   /* eb */  "invalid",
1468   /* ec */  "invalid",
1469   /* ed */  "invalid",
1470   /* ee */  "invalid",
1471   /* ef */  "invalid",
1472   /* f0 */  "invalid",
1473   /* f1 */  "invalid",
1474   /* f2 */  "invalid",
1475   /* f3 */  "invalid",
1476   /* f4 */  "invalid",
1477   /* f5 */  "invalid",
1478   /* f6 */  "invalid",
1479   /* f7 */  "invalid",
1480   /* f8 */  "invalid",
1481   /* f9 */  "invalid",
1482   /* fa */  "invalid",
1483   /* fb */  "invalid",
1484   /* fc */  "invalid",
1485   /* fd */  "invalid",
1486   /* fe */  "invalid",
1487   /* ff */  "invalid",
1488 };
1489
1490
1491 /* three byte opcode tables */
1492 static const char *kDisasm0F0FOp[NCDTABLESIZE] = {
1493   /* 00 */  "undefined",
1494   /* 01 */  "undefined",
1495   /* 02 */  "undefined",
1496   /* 03 */  "undefined",
1497   /* 04 */  "undefined",
1498   /* 05 */  "undefined",
1499   /* 06 */  "undefined",
1500   /* 07 */  "undefined",
1501   /* 08 */  "undefined",
1502   /* 09 */  "undefined",
1503   /* 0a */  "undefined",
1504   /* 0b */  "undefined",
1505   /* 0c */  "pi2fw $P, $Q",
1506   /* 0d */  "pi2fd $P, $Q",
1507   /* 0e */  "undefined",
1508   /* 0f */  "undefined",
1509   /* 10 */  "undefined",
1510   /* 11 */  "undefined",
1511   /* 12 */  "undefined",
1512   /* 13 */  "undefined",
1513   /* 14 */  "undefined",
1514   /* 15 */  "undefined",
1515   /* 16 */  "undefined",
1516   /* 17 */  "undefined",
1517   /* 18 */  "undefined",
1518   /* 19 */  "undefined",
1519   /* 1a */  "undefined",
1520   /* 1b */  "undefined",
1521   /* 1c */  "pf2iw $P, $Q",
1522   /* 1d */  "pf2id $P, $Q",
1523   /* 1e */  "undefined",
1524   /* 1f */  "undefined",
1525   /* 20 */  "undefined",
1526   /* 21 */  "undefined",
1527   /* 22 */  "undefined",
1528   /* 23 */  "undefined",
1529   /* 24 */  "undefined",
1530   /* 25 */  "undefined",
1531   /* 26 */  "undefined",
1532   /* 27 */  "undefined",
1533   /* 28 */  "undefined",
1534   /* 29 */  "undefined",
1535   /* 2a */  "undefined",
1536   /* 2b */  "undefined",
1537   /* 2c */  "undefined",
1538   /* 2d */  "undefined",
1539   /* 2e */  "undefined",
1540   /* 2f */  "undefined",
1541   /* 30 */  "undefined",
1542   /* 31 */  "undefined",
1543   /* 32 */  "undefined",
1544   /* 33 */  "undefined",
1545   /* 34 */  "undefined",
1546   /* 35 */  "undefined",
1547   /* 36 */  "undefined",
1548   /* 37 */  "undefined",
1549   /* 38 */  "undefined",
1550   /* 39 */  "undefined",
1551   /* 3a */  "undefined",
1552   /* 3b */  "undefined",
1553   /* 3c */  "undefined",
1554   /* 3d */  "undefined",
1555   /* 3e */  "undefined",
1556   /* 3f */  "undefined",
1557   /* 40 */  "undefined",
1558   /* 41 */  "undefined",
1559   /* 42 */  "undefined",
1560   /* 43 */  "undefined",
1561   /* 44 */  "undefined",
1562   /* 45 */  "undefined",
1563   /* 46 */  "undefined",
1564   /* 47 */  "undefined",
1565   /* 48 */  "undefined",
1566   /* 49 */  "undefined",
1567   /* 4a */  "undefined",
1568   /* 4b */  "undefined",
1569   /* 4c */  "undefined",
1570   /* 4d */  "undefined",
1571   /* 4e */  "undefined",
1572   /* 4f */  "undefined",
1573   /* 50 */  "undefined",
1574   /* 51 */  "undefined",
1575   /* 52 */  "undefined",
1576   /* 53 */  "undefined",
1577   /* 54 */  "undefined",
1578   /* 55 */  "undefined",
1579   /* 56 */  "undefined",
1580   /* 57 */  "undefined",
1581   /* 58 */  "undefined",
1582   /* 59 */  "undefined",
1583   /* 5a */  "undefined",
1584   /* 5b */  "undefined",
1585   /* 5c */  "undefined",
1586   /* 5d */  "undefined",
1587   /* 5e */  "undefined",
1588   /* 5f */  "undefined",
1589   /* 60 */  "undefined",
1590   /* 61 */  "undefined",
1591   /* 62 */  "undefined",
1592   /* 63 */  "undefined",
1593   /* 64 */  "undefined",
1594   /* 65 */  "undefined",
1595   /* 66 */  "undefined",
1596   /* 67 */  "undefined",
1597   /* 68 */  "undefined",
1598   /* 69 */  "undefined",
1599   /* 6a */  "undefined",
1600   /* 6b */  "undefined",
1601   /* 6c */  "undefined",
1602   /* 6d */  "undefined",
1603   /* 6e */  "undefined",
1604   /* 6f */  "undefined",
1605   /* 70 */  "undefined",
1606   /* 71 */  "undefined",
1607   /* 72 */  "undefined",
1608   /* 73 */  "undefined",
1609   /* 74 */  "undefined",
1610   /* 75 */  "undefined",
1611   /* 76 */  "undefined",
1612   /* 77 */  "undefined",
1613   /* 78 */  "undefined",
1614   /* 79 */  "undefined",
1615   /* 7a */  "undefined",
1616   /* 7b */  "undefined",
1617   /* 7c */  "undefined",
1618   /* 7d */  "undefined",
1619   /* 7e */  "undefined",
1620   /* 7f */  "undefined",
1621   /* 80 */  "undefined",
1622   /* 81 */  "undefined",
1623   /* 82 */  "undefined",
1624   /* 83 */  "undefined",
1625   /* 84 */  "undefined",
1626   /* 85 */  "undefined",
1627   /* 86 */  "undefined",
1628   /* 87 */  "undefined",
1629   /* 88 */  "undefined",
1630   /* 89 */  "undefined",
1631   /* 8a */  "pfnacc $P, $Q",
1632   /* 8b */  "undefined",
1633   /* 8c */  "undefined",
1634   /* 8d */  "undefined",
1635   /* 8e */  "pfpnacc $P, $Q",
1636   /* 8f */  "undefined",
1637   /* 90 */  "pfcmpge $P, $Q",
1638   /* 91 */  "undefined",
1639   /* 92 */  "undefined",
1640   /* 93 */  "undefined",
1641   /* 94 */  "pfmin $P, $Q",
1642   /* 95 */  "undefined",
1643   /* 96 */  "pfrcp $P, $Q",
1644   /* 97 */  "pfrsqrt $P, $Q",
1645   /* 98 */  "undefined",
1646   /* 99 */  "undefined",
1647   /* 9a */  "pfsub $P, $Q",
1648   /* 9b */  "undefined",
1649   /* 9c */  "undefined",
1650   /* 9d */  "undefined",
1651   /* 9e */  "pfadd $P, $Q",
1652   /* 9f */  "undefined",
1653   /* a0 */  "pfcmpgt $P, $Q",
1654   /* a1 */  "undefined",
1655   /* a2 */  "undefined",
1656   /* a3 */  "undefined",
1657   /* a4 */  "pfmax $P, $Q",
1658   /* a5 */  "undefined",
1659   /* a6 */  "pfrcpit1 $P, $Q",
1660   /* a7 */  "pfrsqit1 $P, $Q",
1661   /* a8 */  "undefined",
1662   /* a9 */  "undefined",
1663   /* aa */  "pfsubr $P, $Q",
1664   /* ab */  "undefined",
1665   /* ac */  "undefined",
1666   /* ad */  "undefined",
1667   /* ae */  "pfacc $P, $Q",
1668   /* af */  "undefined",
1669   /* b0 */  "pfcmpeq $P, $Q",
1670   /* b1 */  "undefined",
1671   /* b2 */  "undefined",
1672   /* b3 */  "undefined",
1673   /* b4 */  "pfmul $P, $Q",
1674   /* b5 */  "undefined",
1675   /* b6 */  "pfrcpit2 $P, $Q",
1676   /* b7 */  "pmulhrw $P, $Q",
1677   /* b8 */  "undefined",
1678   /* b9 */  "undefined",
1679   /* ba */  "undefined",
1680   /* bb */  "pswapd $P, $Q",
1681   /* bc */  "undefined",
1682   /* bd */  "undefined",
1683   /* be */  "undefined",
1684   /* bf */  "pavgusb $P, $Q",
1685   /* c0 */  "undefined",
1686   /* c1 */  "undefined",
1687   /* c2 */  "undefined",
1688   /* c3 */  "undefined",
1689   /* c4 */  "undefined",
1690   /* c5 */  "undefined",
1691   /* c6 */  "undefined",
1692   /* c7 */  "undefined",
1693   /* c8 */  "undefined",
1694   /* c9 */  "undefined",
1695   /* ca */  "undefined",
1696   /* cb */  "undefined",
1697   /* cc */  "undefined",
1698   /* cd */  "undefined",
1699   /* ce */  "undefined",
1700   /* cf */  "undefined",
1701   /* d0 */  "undefined",
1702   /* d1 */  "undefined",
1703   /* d2 */  "undefined",
1704   /* d3 */  "undefined",
1705   /* d4 */  "undefined",
1706   /* d5 */  "undefined",
1707   /* d6 */  "undefined",
1708   /* d7 */  "undefined",
1709   /* d8 */  "undefined",
1710   /* d9 */  "undefined",
1711   /* da */  "undefined",
1712   /* db */  "undefined",
1713   /* dc */  "undefined",
1714   /* dd */  "undefined",
1715   /* de */  "undefined",
1716   /* df */  "undefined",
1717   /* e0 */  "undefined",
1718   /* e1 */  "undefined",
1719   /* e2 */  "undefined",
1720   /* e3 */  "undefined",
1721   /* e4 */  "undefined",
1722   /* e5 */  "undefined",
1723   /* e6 */  "undefined",
1724   /* e7 */  "undefined",
1725   /* e8 */  "undefined",
1726   /* e9 */  "undefined",
1727   /* ea */  "undefined",
1728   /* eb */  "undefined",
1729   /* ec */  "undefined",
1730   /* ed */  "undefined",
1731   /* ee */  "undefined",
1732   /* ef */  "undefined",
1733   /* f0 */  "undefined",
1734   /* f1 */  "undefined",
1735   /* f2 */  "undefined",
1736   /* f3 */  "undefined",
1737   /* f4 */  "undefined",
1738   /* f5 */  "undefined",
1739   /* f6 */  "undefined",
1740   /* f7 */  "undefined",
1741   /* f8 */  "undefined",
1742   /* f9 */  "undefined",
1743   /* fa */  "undefined",
1744   /* fb */  "undefined",
1745   /* fc */  "undefined",
1746   /* fd */  "undefined",
1747   /* fe */  "undefined",
1748   /* ff */  "undefined",
1749 };
1750
1751 static const char *kDisasm0F38Op[NCDTABLESIZE] = {
1752   /* 00 */  "pshufb $P, $Q",
1753   /* 01 */  "phaddw $P, $Q",
1754   /* 02 */  "phaddd $P, $Q",
1755   /* 03 */  "phaddsw $P, $Q",
1756   /* 04 */  "pmaddubsw $P, $Q",
1757   /* 05 */  "phsubw $P, $Q",
1758   /* 06 */  "phsubd $P, $Q",
1759   /* 07 */  "phsubsw $P, $Q",
1760   /* 08 */  "psignb $P, $Q",
1761   /* 09 */  "psignw $P, $Q",
1762   /* 0a */  "psignd $P, $Q",
1763   /* 0b */  "pmulhrsw $P, $Q",
1764   /* 0c */  "undefined",
1765   /* 0d */  "undefined",
1766   /* 0e */  "undefined",
1767   /* 0f */  "undefined",
1768   /* 10 */  "undefined",
1769   /* 11 */  "undefined",
1770   /* 12 */  "undefined",
1771   /* 13 */  "undefined",
1772   /* 14 */  "undefined",
1773   /* 15 */  "undefined",
1774   /* 16 */  "undefined",
1775   /* 17 */  "undefined",
1776   /* 18 */  "undefined",
1777   /* 19 */  "undefined",
1778   /* 1a */  "undefined",
1779   /* 1b */  "undefined",
1780   /* 1c */  "pabsb $P, $Q",
1781   /* 1d */  "pabsw $P, $Q",
1782   /* 1e */  "pabsd $P, $Q",
1783   /* 1f */  "undefined",
1784   /* 20 */  "undefined",
1785   /* 21 */  "undefined",
1786   /* 22 */  "undefined",
1787   /* 23 */  "undefined",
1788   /* 24 */  "undefined",
1789   /* 25 */  "undefined",
1790   /* 26 */  "undefined",
1791   /* 27 */  "undefined",
1792   /* 28 */  "undefined",
1793   /* 29 */  "undefined",
1794   /* 2a */  "undefined",
1795   /* 2b */  "undefined",
1796   /* 2c */  "undefined",
1797   /* 2d */  "undefined",
1798   /* 2e */  "undefined",
1799   /* 2f */  "undefined",
1800   /* 30 */  "undefined",
1801   /* 31 */  "undefined",
1802   /* 32 */  "undefined",
1803   /* 33 */  "undefined",
1804   /* 34 */  "undefined",
1805   /* 35 */  "undefined",
1806   /* 36 */  "undefined",
1807   /* 37 */  "undefined",
1808   /* 38 */  "undefined",
1809   /* 39 */  "undefined",
1810   /* 3a */  "undefined",
1811   /* 3b */  "undefined",
1812   /* 3c */  "undefined",
1813   /* 3d */  "undefined",
1814   /* 3e */  "undefined",
1815   /* 3f */  "undefined",
1816   /* 40 */  "undefined",
1817   /* 41 */  "undefined",
1818   /* 42 */  "undefined",
1819   /* 43 */  "undefined",
1820   /* 44 */  "undefined",
1821   /* 45 */  "undefined",
1822   /* 46 */  "undefined",
1823   /* 47 */  "undefined",
1824   /* 48 */  "undefined",
1825   /* 49 */  "undefined",
1826   /* 4a */  "undefined",
1827   /* 4b */  "undefined",
1828   /* 4c */  "undefined",
1829   /* 4d */  "undefined",
1830   /* 4e */  "undefined",
1831   /* 4f */  "undefined",
1832   /* 50 */  "undefined",
1833   /* 51 */  "undefined",
1834   /* 52 */  "undefined",
1835   /* 53 */  "undefined",
1836   /* 54 */  "undefined",
1837   /* 55 */  "undefined",
1838   /* 56 */  "undefined",
1839   /* 57 */  "undefined",
1840   /* 58 */  "undefined",
1841   /* 59 */  "undefined",
1842   /* 5a */  "undefined",
1843   /* 5b */  "undefined",
1844   /* 5c */  "undefined",
1845   /* 5d */  "undefined",
1846   /* 5e */  "undefined",
1847   /* 5f */  "undefined",
1848   /* 60 */  "undefined",
1849   /* 61 */  "undefined",
1850   /* 62 */  "undefined",
1851   /* 63 */  "undefined",
1852   /* 64 */  "undefined",
1853   /* 65 */  "undefined",
1854   /* 66 */  "undefined",
1855   /* 67 */  "undefined",
1856   /* 68 */  "undefined",
1857   /* 69 */  "undefined",
1858   /* 6a */  "undefined",
1859   /* 6b */  "undefined",
1860   /* 6c */  "undefined",
1861   /* 6d */  "undefined",
1862   /* 6e */  "undefined",
1863   /* 6f */  "undefined",
1864   /* 70 */  "undefined",
1865   /* 71 */  "undefined",
1866   /* 72 */  "undefined",
1867   /* 73 */  "undefined",
1868   /* 74 */  "undefined",
1869   /* 75 */  "undefined",
1870   /* 76 */  "undefined",
1871   /* 77 */  "undefined",
1872   /* 78 */  "undefined",
1873   /* 79 */  "undefined",
1874   /* 7a */  "undefined",
1875   /* 7b */  "undefined",
1876   /* 7c */  "undefined",
1877   /* 7d */  "undefined",
1878   /* 7e */  "undefined",
1879   /* 7f */  "undefined",
1880   /* 80 */  "undefined",
1881   /* 81 */  "undefined",
1882   /* 82 */  "undefined",
1883   /* 83 */  "undefined",
1884   /* 84 */  "undefined",
1885   /* 85 */  "undefined",
1886   /* 86 */  "undefined",
1887   /* 87 */  "undefined",
1888   /* 88 */  "undefined",
1889   /* 89 */  "undefined",
1890   /* 8a */  "undefined",
1891   /* 8b */  "undefined",
1892   /* 8c */  "undefined",
1893   /* 8d */  "undefined",
1894   /* 8e */  "undefined",
1895   /* 8f */  "undefined",
1896   /* 90 */  "undefined",
1897   /* 91 */  "undefined",
1898   /* 92 */  "undefined",
1899   /* 93 */  "undefined",
1900   /* 94 */  "undefined",
1901   /* 95 */  "undefined",
1902   /* 96 */  "undefined",
1903   /* 97 */  "undefined",
1904   /* 98 */  "undefined",
1905   /* 99 */  "undefined",
1906   /* 9a */  "undefined",
1907   /* 9b */  "undefined",
1908   /* 9c */  "undefined",
1909   /* 9d */  "undefined",
1910   /* 9e */  "undefined",
1911   /* 9f */  "undefined",
1912   /* a0 */  "undefined",
1913   /* a1 */  "undefined",
1914   /* a2 */  "undefined",
1915   /* a3 */  "undefined",
1916   /* a4 */  "undefined",
1917   /* a5 */  "undefined",
1918   /* a6 */  "undefined",
1919   /* a7 */  "undefined",
1920   /* a8 */  "undefined",
1921   /* a9 */  "undefined",
1922   /* aa */  "undefined",
1923   /* ab */  "undefined",
1924   /* ac */  "undefined",
1925   /* ad */  "undefined",
1926   /* ae */  "undefined",
1927   /* af */  "undefined",
1928   /* b0 */  "undefined",
1929   /* b1 */  "undefined",
1930   /* b2 */  "undefined",
1931   /* b3 */  "undefined",
1932   /* b4 */  "undefined",
1933   /* b5 */  "undefined",
1934   /* b6 */  "undefined",
1935   /* b7 */  "undefined",
1936   /* b8 */  "undefined",
1937   /* b9 */  "undefined",
1938   /* ba */  "undefined",
1939   /* bb */  "undefined",
1940   /* bc */  "undefined",
1941   /* bd */  "undefined",
1942   /* be */  "undefined",
1943   /* bf */  "undefined",
1944   /* c0 */  "undefined",
1945   /* c1 */  "undefined",
1946   /* c2 */  "undefined",
1947   /* c3 */  "undefined",
1948   /* c4 */  "undefined",
1949   /* c5 */  "undefined",
1950   /* c6 */  "undefined",
1951   /* c7 */  "undefined",
1952   /* c8 */  "undefined",
1953   /* c9 */  "undefined",
1954   /* ca */  "undefined",
1955   /* cb */  "undefined",
1956   /* cc */  "undefined",
1957   /* cd */  "undefined",
1958   /* ce */  "undefined",
1959   /* cf */  "undefined",
1960   /* d0 */  "undefined",
1961   /* d1 */  "undefined",
1962   /* d2 */  "undefined",
1963   /* d3 */  "undefined",
1964   /* d4 */  "undefined",
1965   /* d5 */  "undefined",
1966   /* d6 */  "undefined",
1967   /* d7 */  "undefined",
1968   /* d8 */  "undefined",
1969   /* d9 */  "undefined",
1970   /* da */  "undefined",
1971   /* db */  "undefined",
1972   /* dc */  "undefined",
1973   /* dd */  "undefined",
1974   /* de */  "undefined",
1975   /* df */  "undefined",
1976   /* e0 */  "undefined",
1977   /* e1 */  "undefined",
1978   /* e2 */  "undefined",
1979   /* e3 */  "undefined",
1980   /* e4 */  "undefined",
1981   /* e5 */  "undefined",
1982   /* e6 */  "undefined",
1983   /* e7 */  "undefined",
1984   /* e8 */  "undefined",
1985   /* e9 */  "undefined",
1986   /* ea */  "undefined",
1987   /* eb */  "undefined",
1988   /* ec */  "undefined",
1989   /* ed */  "undefined",
1990   /* ee */  "undefined",
1991   /* ef */  "undefined",
1992   /* f0 */  "MOVBE $G, $M",
1993   /* f1 */  "MOVBE $M, $G",
1994   /* f2 */  "undefined",
1995   /* f3 */  "undefined",
1996   /* f4 */  "undefined",
1997   /* f5 */  "undefined",
1998   /* f6 */  "undefined",
1999   /* f7 */  "undefined",
2000   /* f8 */  "undefined",
2001   /* f9 */  "undefined",
2002   /* fa */  "undefined",
2003   /* fb */  "undefined",
2004   /* fc */  "undefined",
2005   /* fd */  "undefined",
2006   /* fe */  "undefined",
2007   /* ff */  "undefined",
2008 };
2009
2010 static const char *kDisasm660F38Op[NCDTABLESIZE] = {
2011   /* 00 */  "pshufb $V, $W",
2012   /* 01 */  "phaddw $V, $W",
2013   /* 02 */  "phaddd $V, $W",
2014   /* 03 */  "phaddsw $V, $W",
2015   /* 04 */  "pmaddubsw $V, $W",
2016   /* 05 */  "phsubw $V, $W",
2017   /* 06 */  "phsubd $V, $W",
2018   /* 07 */  "phsubsw $V, $W",
2019   /* 08 */  "psignb $V, $W",
2020   /* 09 */  "psignw $V, $W",
2021   /* 0a */  "psignd $V, $W",
2022   /* 0b */  "pmulhrsw $V, $W",
2023   /* 0c */  "undefined",
2024   /* 0d */  "undefined",
2025   /* 0e */  "undefined",
2026   /* 0f */  "undefined",
2027   /* 10 */  "pblendvb $V, $W",
2028   /* 11 */  "undefined",
2029   /* 12 */  "undefined",
2030   /* 13 */  "undefined",
2031   /* 14 */  "blendvps $V, $W",
2032   /* 15 */  "blendvpd $V, $W",
2033   /* 16 */  "undefined",
2034   /* 17 */  "ptest $V, $W",
2035   /* 18 */  "undefined",
2036   /* 19 */  "undefined",
2037   /* 1a */  "undefined",
2038   /* 1b */  "undefined",
2039   /* 1c */  "pabsb $V, $W",
2040   /* 1d */  "pabsw $V, $W",
2041   /* 1e */  "pabsd $V, $W",
2042   /* 1f */  "undefined",
2043   /* 20 */  "pmovsxbw $V, $U/M",
2044   /* 21 */  "pmovsxbd $V, $U/M",
2045   /* 22 */  "pmovsxbq $V, $U/M",
2046   /* 23 */  "pmovsxwd $V, $U/M",
2047   /* 24 */  "pmovsxwq $V, $U/M",
2048   /* 25 */  "pmovsxdq $V, $U/M",
2049   /* 26 */  "undefined",
2050   /* 27 */  "undefined",
2051   /* 28 */  "pmuldq $V, $W",
2052   /* 29 */  "pcmpeqq $V, $W",
2053   /* 2a */  "movntdqa $V, $W",
2054   /* 2b */  "packusdw $V, $W",
2055   /* 2c */  "undefined",
2056   /* 2d */  "undefined",
2057   /* 2e */  "undefined",
2058   /* 2f */  "undefined",
2059   /* 30 */  "pmovzxbw $V, $U/M",
2060   /* 31 */  "pmovzxbd $V, $U/M",
2061   /* 32 */  "pmovzxbq $V, $U/M",
2062   /* 33 */  "pmovzxwd $V, $U/M",
2063   /* 34 */  "pmovzxwq $V, $U/M",
2064   /* 35 */  "pmovzxdq $V, $U/M",
2065   /* 36 */  "undefined",
2066   /* 37 */  "pcmpgtq $V, $U/M",
2067   /* 38 */  "pminsb $V, $W",
2068   /* 39 */  "pminsd $V, $W",
2069   /* 3a */  "pminuw $V, $W",
2070   /* 3b */  "pminud $V, $W",
2071   /* 3c */  "pmaxsb $V, $W",
2072   /* 3d */  "pmaxsd $V, $W",
2073   /* 3e */  "pmaxuw $V, $W",
2074   /* 3f */  "pmaxud $V, $W",
2075   /* 40 */  "pmulld $V, $W",
2076   /* 41 */  "phminposuw $V, $W",
2077   /* 42 */  "undefined",
2078   /* 43 */  "undefined",
2079   /* 44 */  "undefined",
2080   /* 45 */  "undefined",
2081   /* 46 */  "undefined",
2082   /* 47 */  "undefined",
2083   /* 48 */  "undefined",
2084   /* 49 */  "undefined",
2085   /* 4a */  "undefined",
2086   /* 4b */  "undefined",
2087   /* 4c */  "undefined",
2088   /* 4d */  "undefined",
2089   /* 4e */  "undefined",
2090   /* 4f */  "undefined",
2091   /* 50 */  "undefined",
2092   /* 51 */  "undefined",
2093   /* 52 */  "undefined",
2094   /* 53 */  "undefined",
2095   /* 54 */  "undefined",
2096   /* 55 */  "undefined",
2097   /* 56 */  "undefined",
2098   /* 57 */  "undefined",
2099   /* 58 */  "undefined",
2100   /* 59 */  "undefined",
2101   /* 5a */  "undefined",
2102   /* 5b */  "undefined",
2103   /* 5c */  "undefined",
2104   /* 5d */  "undefined",
2105   /* 5e */  "undefined",
2106   /* 5f */  "undefined",
2107   /* 60 */  "undefined",
2108   /* 61 */  "undefined",
2109   /* 62 */  "undefined",
2110   /* 63 */  "undefined",
2111   /* 64 */  "undefined",
2112   /* 65 */  "undefined",
2113   /* 66 */  "undefined",
2114   /* 67 */  "undefined",
2115   /* 68 */  "undefined",
2116   /* 69 */  "undefined",
2117   /* 6a */  "undefined",
2118   /* 6b */  "undefined",
2119   /* 6c */  "undefined",
2120   /* 6d */  "undefined",
2121   /* 6e */  "undefined",
2122   /* 6f */  "undefined",
2123   /* 70 */  "undefined",
2124   /* 71 */  "undefined",
2125   /* 72 */  "undefined",
2126   /* 73 */  "undefined",
2127   /* 74 */  "undefined",
2128   /* 75 */  "undefined",
2129   /* 76 */  "undefined",
2130   /* 77 */  "undefined",
2131   /* 78 */  "undefined",
2132   /* 79 */  "undefined",
2133   /* 7a */  "undefined",
2134   /* 7b */  "undefined",
2135   /* 7c */  "undefined",
2136   /* 7d */  "undefined",
2137   /* 7e */  "undefined",
2138   /* 7f */  "undefined",
2139   /* 80 */  "NVEPT $G, $M",
2140   /* 81 */  "NVVPID $G, $M",
2141   /* 82 */  "undefined",
2142   /* 83 */  "undefined",
2143   /* 84 */  "undefined",
2144   /* 85 */  "undefined",
2145   /* 86 */  "undefined",
2146   /* 87 */  "undefined",
2147   /* 88 */  "undefined",
2148   /* 89 */  "undefined",
2149   /* 8a */  "undefined",
2150   /* 8b */  "undefined",
2151   /* 8c */  "undefined",
2152   /* 8d */  "undefined",
2153   /* 8e */  "undefined",
2154   /* 8f */  "undefined",
2155   /* 90 */  "undefined",
2156   /* 91 */  "undefined",
2157   /* 92 */  "undefined",
2158   /* 93 */  "undefined",
2159   /* 94 */  "undefined",
2160   /* 95 */  "undefined",
2161   /* 96 */  "undefined",
2162   /* 97 */  "undefined",
2163   /* 98 */  "undefined",
2164   /* 99 */  "undefined",
2165   /* 9a */  "undefined",
2166   /* 9b */  "undefined",
2167   /* 9c */  "undefined",
2168   /* 9d */  "undefined",
2169   /* 9e */  "undefined",
2170   /* 9f */  "undefined",
2171   /* a0 */  "undefined",
2172   /* a1 */  "undefined",
2173   /* a2 */  "undefined",
2174   /* a3 */  "undefined",
2175   /* a4 */  "undefined",
2176   /* a5 */  "undefined",
2177   /* a6 */  "undefined",
2178   /* a7 */  "undefined",
2179   /* a8 */  "undefined",
2180   /* a9 */  "undefined",
2181   /* aa */  "undefined",
2182   /* ab */  "undefined",
2183   /* ac */  "undefined",
2184   /* ad */  "undefined",
2185   /* ae */  "undefined",
2186   /* af */  "undefined",
2187   /* b0 */  "undefined",
2188   /* b1 */  "undefined",
2189   /* b2 */  "undefined",
2190   /* b3 */  "undefined",
2191   /* b4 */  "undefined",
2192   /* b5 */  "undefined",
2193   /* b6 */  "undefined",
2194   /* b7 */  "undefined",
2195   /* b8 */  "undefined",
2196   /* b9 */  "undefined",
2197   /* ba */  "undefined",
2198   /* bb */  "undefined",
2199   /* bc */  "undefined",
2200   /* bd */  "undefined",
2201   /* be */  "undefined",
2202   /* bf */  "undefined",
2203   /* c0 */  "undefined",
2204   /* c1 */  "undefined",
2205   /* c2 */  "undefined",
2206   /* c3 */  "undefined",
2207   /* c4 */  "undefined",
2208   /* c5 */  "undefined",
2209   /* c6 */  "undefined",
2210   /* c7 */  "undefined",
2211   /* c8 */  "undefined",
2212   /* c9 */  "undefined",
2213   /* ca */  "undefined",
2214   /* cb */  "undefined",
2215   /* cc */  "undefined",
2216   /* cd */  "undefined",
2217   /* ce */  "undefined",
2218   /* cf */  "undefined",
2219   /* d0 */  "undefined",
2220   /* d1 */  "undefined",
2221   /* d2 */  "undefined",
2222   /* d3 */  "undefined",
2223   /* d4 */  "undefined",
2224   /* d5 */  "undefined",
2225   /* d6 */  "undefined",
2226   /* d7 */  "undefined",
2227   /* d8 */  "undefined",
2228   /* d9 */  "undefined",
2229   /* da */  "undefined",
2230   /* db */  "undefined",
2231   /* dc */  "undefined",
2232   /* dd */  "undefined",
2233   /* de */  "undefined",
2234   /* df */  "undefined",
2235   /* e0 */  "undefined",
2236   /* e1 */  "undefined",
2237   /* e2 */  "undefined",
2238   /* e3 */  "undefined",
2239   /* e4 */  "undefined",
2240   /* e5 */  "undefined",
2241   /* e6 */  "undefined",
2242   /* e7 */  "undefined",
2243   /* e8 */  "undefined",
2244   /* e9 */  "undefined",
2245   /* ea */  "undefined",
2246   /* eb */  "undefined",
2247   /* ec */  "undefined",
2248   /* ed */  "undefined",
2249   /* ee */  "undefined",
2250   /* ef */  "undefined",
2251   /* f0 */  "undefined",
2252   /* f1 */  "undefined",
2253   /* f2 */  "undefined",
2254   /* f3 */  "undefined",
2255   /* f4 */  "undefined",
2256   /* f5 */  "undefined",
2257   /* f6 */  "undefined",
2258   /* f7 */  "undefined",
2259   /* f8 */  "undefined",
2260   /* f9 */  "undefined",
2261   /* fa */  "undefined",
2262   /* fb */  "undefined",
2263   /* fc */  "undefined",
2264   /* fd */  "undefined",
2265   /* fe */  "undefined",
2266   /* ff */  "undefined",
2267 };
2268
2269 static const char *kDisasmF20F38Op[NCDTABLESIZE] = {
2270   /* 00 */  "undefined",
2271   /* 01 */  "undefined",
2272   /* 02 */  "undefined",
2273   /* 03 */  "undefined",
2274   /* 04 */  "undefined",
2275   /* 05 */  "undefined",
2276   /* 06 */  "undefined",
2277   /* 07 */  "undefined",
2278   /* 08 */  "undefined",
2279   /* 09 */  "undefined",
2280   /* 0a */  "undefined",
2281   /* 0b */  "undefined",
2282   /* 0c */  "undefined",
2283   /* 0d */  "undefined",
2284   /* 0e */  "undefined",
2285   /* 0f */  "undefined",
2286   /* 10 */  "undefined",
2287   /* 11 */  "undefined",
2288   /* 12 */  "undefined",
2289   /* 13 */  "undefined",
2290   /* 14 */  "undefined",
2291   /* 15 */  "undefined",
2292   /* 16 */  "undefined",
2293   /* 17 */  "undefined",
2294   /* 18 */  "undefined",
2295   /* 19 */  "undefined",
2296   /* 1a */  "undefined",
2297   /* 1b */  "undefined",
2298   /* 1c */  "undefined",
2299   /* 1d */  "undefined",
2300   /* 1e */  "undefined",
2301   /* 1f */  "undefined",
2302   /* 20 */  "undefined",
2303   /* 21 */  "undefined",
2304   /* 22 */  "undefined",
2305   /* 23 */  "undefined",
2306   /* 24 */  "undefined",
2307   /* 25 */  "undefined",
2308   /* 26 */  "undefined",
2309   /* 27 */  "undefined",
2310   /* 28 */  "undefined",
2311   /* 29 */  "undefined",
2312   /* 2a */  "undefined",
2313   /* 2b */  "undefined",
2314   /* 2c */  "undefined",
2315   /* 2d */  "undefined",
2316   /* 2e */  "undefined",
2317   /* 2f */  "undefined",
2318   /* 30 */  "undefined",
2319   /* 31 */  "undefined",
2320   /* 32 */  "undefined",
2321   /* 33 */  "undefined",
2322   /* 34 */  "undefined",
2323   /* 35 */  "undefined",
2324   /* 36 */  "undefined",
2325   /* 37 */  "undefined",
2326   /* 38 */  "undefined",
2327   /* 39 */  "undefined",
2328   /* 3a */  "undefined",
2329   /* 3b */  "undefined",
2330   /* 3c */  "undefined",
2331   /* 3d */  "undefined",
2332   /* 3e */  "undefined",
2333   /* 3f */  "undefined",
2334   /* 40 */  "undefined",
2335   /* 41 */  "undefined",
2336   /* 42 */  "undefined",
2337   /* 43 */  "undefined",
2338   /* 44 */  "undefined",
2339   /* 45 */  "undefined",
2340   /* 46 */  "undefined",
2341   /* 47 */  "undefined",
2342   /* 48 */  "undefined",
2343   /* 49 */  "undefined",
2344   /* 4a */  "undefined",
2345   /* 4b */  "undefined",
2346   /* 4c */  "undefined",
2347   /* 4d */  "undefined",
2348   /* 4e */  "undefined",
2349   /* 4f */  "undefined",
2350   /* 50 */  "undefined",
2351   /* 51 */  "undefined",
2352   /* 52 */  "undefined",
2353   /* 53 */  "undefined",
2354   /* 54 */  "undefined",
2355   /* 55 */  "undefined",
2356   /* 56 */  "undefined",
2357   /* 57 */  "undefined",
2358   /* 58 */  "undefined",
2359   /* 59 */  "undefined",
2360   /* 5a */  "undefined",
2361   /* 5b */  "undefined",
2362   /* 5c */  "undefined",
2363   /* 5d */  "undefined",
2364   /* 5e */  "undefined",
2365   /* 5f */  "undefined",
2366   /* 60 */  "undefined",
2367   /* 61 */  "undefined",
2368   /* 62 */  "undefined",
2369   /* 63 */  "undefined",
2370   /* 64 */  "undefined",
2371   /* 65 */  "undefined",
2372   /* 66 */  "undefined",
2373   /* 67 */  "undefined",
2374   /* 68 */  "undefined",
2375   /* 69 */  "undefined",
2376   /* 6a */  "undefined",
2377   /* 6b */  "undefined",
2378   /* 6c */  "undefined",
2379   /* 6d */  "undefined",
2380   /* 6e */  "undefined",
2381   /* 6f */  "undefined",
2382   /* 70 */  "undefined",
2383   /* 71 */  "undefined",
2384   /* 72 */  "undefined",
2385   /* 73 */  "undefined",
2386   /* 74 */  "undefined",
2387   /* 75 */  "undefined",
2388   /* 76 */  "undefined",
2389   /* 77 */  "undefined",
2390   /* 78 */  "undefined",
2391   /* 79 */  "undefined",
2392   /* 7a */  "undefined",
2393   /* 7b */  "undefined",
2394   /* 7c */  "undefined",
2395   /* 7d */  "undefined",
2396   /* 7e */  "undefined",
2397   /* 7f */  "undefined",
2398   /* 80 */  "undefined",
2399   /* 81 */  "undefined",
2400   /* 82 */  "undefined",
2401   /* 83 */  "undefined",
2402   /* 84 */  "undefined",
2403   /* 85 */  "undefined",
2404   /* 86 */  "undefined",
2405   /* 87 */  "undefined",
2406   /* 88 */  "undefined",
2407   /* 89 */  "undefined",
2408   /* 8a */  "undefined",
2409   /* 8b */  "undefined",
2410   /* 8c */  "undefined",
2411   /* 8d */  "undefined",
2412   /* 8e */  "undefined",
2413   /* 8f */  "undefined",
2414   /* 90 */  "undefined",
2415   /* 91 */  "undefined",
2416   /* 92 */  "undefined",
2417   /* 93 */  "undefined",
2418   /* 94 */  "undefined",
2419   /* 95 */  "undefined",
2420   /* 96 */  "undefined",
2421   /* 97 */  "undefined",
2422   /* 98 */  "undefined",
2423   /* 99 */  "undefined",
2424   /* 9a */  "undefined",
2425   /* 9b */  "undefined",
2426   /* 9c */  "undefined",
2427   /* 9d */  "undefined",
2428   /* 9e */  "undefined",
2429   /* 9f */  "undefined",
2430   /* a0 */  "undefined",
2431   /* a1 */  "undefined",
2432   /* a2 */  "undefined",
2433   /* a3 */  "undefined",
2434   /* a4 */  "undefined",
2435   /* a5 */  "undefined",
2436   /* a6 */  "undefined",
2437   /* a7 */  "undefined",
2438   /* a8 */  "undefined",
2439   /* a9 */  "undefined",
2440   /* aa */  "undefined",
2441   /* ab */  "undefined",
2442   /* ac */  "undefined",
2443   /* ad */  "undefined",
2444   /* ae */  "undefined",
2445   /* af */  "undefined",
2446   /* b0 */  "undefined",
2447   /* b1 */  "undefined",
2448   /* b2 */  "undefined",
2449   /* b3 */  "undefined",
2450   /* b4 */  "undefined",
2451   /* b5 */  "undefined",
2452   /* b6 */  "undefined",
2453   /* b7 */  "undefined",
2454   /* b8 */  "undefined",
2455   /* b9 */  "undefined",
2456   /* ba */  "undefined",
2457   /* bb */  "undefined",
2458   /* bc */  "undefined",
2459   /* bd */  "undefined",
2460   /* be */  "undefined",
2461   /* bf */  "undefined",
2462   /* c0 */  "undefined",
2463   /* c1 */  "undefined",
2464   /* c2 */  "undefined",
2465   /* c3 */  "undefined",
2466   /* c4 */  "undefined",
2467   /* c5 */  "undefined",
2468   /* c6 */  "undefined",
2469   /* c7 */  "undefined",
2470   /* c8 */  "undefined",
2471   /* c9 */  "undefined",
2472   /* ca */  "undefined",
2473   /* cb */  "undefined",
2474   /* cc */  "undefined",
2475   /* cd */  "undefined",
2476   /* ce */  "undefined",
2477   /* cf */  "undefined",
2478   /* d0 */  "undefined",
2479   /* d1 */  "undefined",
2480   /* d2 */  "undefined",
2481   /* d3 */  "undefined",
2482   /* d4 */  "undefined",
2483   /* d5 */  "undefined",
2484   /* d6 */  "undefined",
2485   /* d7 */  "undefined",
2486   /* d8 */  "undefined",
2487   /* d9 */  "undefined",
2488   /* da */  "undefined",
2489   /* db */  "undefined",
2490   /* dc */  "undefined",
2491   /* dd */  "undefined",
2492   /* de */  "undefined",
2493   /* df */  "undefined",
2494   /* e0 */  "undefined",
2495   /* e1 */  "undefined",
2496   /* e2 */  "undefined",
2497   /* e3 */  "undefined",
2498   /* e4 */  "undefined",
2499   /* e5 */  "undefined",
2500   /* e6 */  "undefined",
2501   /* e7 */  "undefined",
2502   /* e8 */  "undefined",
2503   /* e9 */  "undefined",
2504   /* ea */  "undefined",
2505   /* eb */  "undefined",
2506   /* ec */  "undefined",
2507   /* ed */  "undefined",
2508   /* ee */  "undefined",
2509   /* ef */  "undefined",
2510   /* f0 */  "CRC32 $Gd, $Eb",
2511   /* f1 */  "CRC32 $Gd, $Ev",
2512   /* f2 */  "undefined",
2513   /* f3 */  "undefined",
2514   /* f4 */  "undefined",
2515   /* f5 */  "undefined",
2516   /* f6 */  "undefined",
2517   /* f7 */  "undefined",
2518   /* f8 */  "undefined",
2519   /* f9 */  "undefined",
2520   /* fa */  "undefined",
2521   /* fb */  "undefined",
2522   /* fc */  "undefined",
2523   /* fd */  "undefined",
2524   /* fe */  "undefined",
2525   /* ff */  "undefined",
2526 };
2527
2528 static const char *kDisasm0F3AOp[NCDTABLESIZE] = {
2529   /* 00 */  "undefined",
2530   /* 01 */  "undefined",
2531   /* 02 */  "undefined",
2532   /* 03 */  "undefined",
2533   /* 04 */  "undefined",
2534   /* 05 */  "undefined",
2535   /* 06 */  "undefined",
2536   /* 07 */  "undefined",
2537   /* 08 */  "undefined",
2538   /* 09 */  "undefined",
2539   /* 0a */  "undefined",
2540   /* 0b */  "undefined",
2541   /* 0c */  "undefined",
2542   /* 0d */  "undefined",
2543   /* 0e */  "undefined",
2544   /* 0f */  "palignr $P, $Q, $Ib",
2545   /* 10 */  "undefined",
2546   /* 11 */  "undefined",
2547   /* 12 */  "undefined",
2548   /* 13 */  "undefined",
2549   /* 14 */  "undefined",
2550   /* 15 */  "undefined",
2551   /* 16 */  "undefined",
2552   /* 17 */  "undefined",
2553   /* 18 */  "undefined",
2554   /* 19 */  "undefined",
2555   /* 1a */  "undefined",
2556   /* 1b */  "undefined",
2557   /* 1c */  "undefined",
2558   /* 1d */  "undefined",
2559   /* 1e */  "undefined",
2560   /* 1f */  "undefined",
2561   /* 20 */  "undefined",
2562   /* 21 */  "undefined",
2563   /* 22 */  "undefined",
2564   /* 23 */  "undefined",
2565   /* 24 */  "undefined",
2566   /* 25 */  "undefined",
2567   /* 26 */  "undefined",
2568   /* 27 */  "undefined",
2569   /* 28 */  "undefined",
2570   /* 29 */  "undefined",
2571   /* 2a */  "undefined",
2572   /* 2b */  "undefined",
2573   /* 2c */  "undefined",
2574   /* 2d */  "undefined",
2575   /* 2e */  "undefined",
2576   /* 2f */  "undefined",
2577   /* 30 */  "undefined",
2578   /* 31 */  "undefined",
2579   /* 32 */  "undefined",
2580   /* 33 */  "undefined",
2581   /* 34 */  "undefined",
2582   /* 35 */  "undefined",
2583   /* 36 */  "undefined",
2584   /* 37 */  "undefined",
2585   /* 38 */  "undefined",
2586   /* 39 */  "undefined",
2587   /* 3a */  "undefined",
2588   /* 3b */  "undefined",
2589   /* 3c */  "undefined",
2590   /* 3d */  "undefined",
2591   /* 3e */  "undefined",
2592   /* 3f */  "undefined",
2593   /* 40 */  "undefined",
2594   /* 41 */  "undefined",
2595   /* 42 */  "undefined",
2596   /* 43 */  "undefined",
2597   /* 44 */  "undefined",
2598   /* 45 */  "undefined",
2599   /* 46 */  "undefined",
2600   /* 47 */  "undefined",
2601   /* 48 */  "undefined",
2602   /* 49 */  "undefined",
2603   /* 4a */  "undefined",
2604   /* 4b */  "undefined",
2605   /* 4c */  "undefined",
2606   /* 4d */  "undefined",
2607   /* 4e */  "undefined",
2608   /* 4f */  "undefined",
2609   /* 50 */  "undefined",
2610   /* 51 */  "undefined",
2611   /* 52 */  "undefined",
2612   /* 53 */  "undefined",
2613   /* 54 */  "undefined",
2614   /* 55 */  "undefined",
2615   /* 56 */  "undefined",
2616   /* 57 */  "undefined",
2617   /* 58 */  "undefined",
2618   /* 59 */  "undefined",
2619   /* 5a */  "undefined",
2620   /* 5b */  "undefined",
2621   /* 5c */  "undefined",
2622   /* 5d */  "undefined",
2623   /* 5e */  "undefined",
2624   /* 5f */  "undefined",
2625   /* 60 */  "undefined",
2626   /* 61 */  "undefined",
2627   /* 62 */  "undefined",
2628   /* 63 */  "undefined",
2629   /* 64 */  "undefined",
2630   /* 65 */  "undefined",
2631   /* 66 */  "undefined",
2632   /* 67 */  "undefined",
2633   /* 68 */  "undefined",
2634   /* 69 */  "undefined",
2635   /* 6a */  "undefined",
2636   /* 6b */  "undefined",
2637   /* 6c */  "undefined",
2638   /* 6d */  "undefined",
2639   /* 6e */  "undefined",
2640   /* 6f */  "undefined",
2641   /* 70 */  "undefined",
2642   /* 71 */  "undefined",
2643   /* 72 */  "undefined",
2644   /* 73 */  "undefined",
2645   /* 74 */  "undefined",
2646   /* 75 */  "undefined",
2647   /* 76 */  "undefined",
2648   /* 77 */  "undefined",
2649   /* 78 */  "undefined",
2650   /* 79 */  "undefined",
2651   /* 7a */  "undefined",
2652   /* 7b */  "undefined",
2653   /* 7c */  "undefined",
2654   /* 7d */  "undefined",
2655   /* 7e */  "undefined",
2656   /* 7f */  "undefined",
2657   /* 80 */  "undefined",
2658   /* 81 */  "undefined",
2659   /* 82 */  "undefined",
2660   /* 83 */  "undefined",
2661   /* 84 */  "undefined",
2662   /* 85 */  "undefined",
2663   /* 86 */  "undefined",
2664   /* 87 */  "undefined",
2665   /* 88 */  "undefined",
2666   /* 89 */  "undefined",
2667   /* 8a */  "undefined",
2668   /* 8b */  "undefined",
2669   /* 8c */  "undefined",
2670   /* 8d */  "undefined",
2671   /* 8e */  "undefined",
2672   /* 8f */  "undefined",
2673   /* 90 */  "undefined",
2674   /* 91 */  "undefined",
2675   /* 92 */  "undefined",
2676   /* 93 */  "undefined",
2677   /* 94 */  "undefined",
2678   /* 95 */  "undefined",
2679   /* 96 */  "undefined",
2680   /* 97 */  "undefined",
2681   /* 98 */  "undefined",
2682   /* 99 */  "undefined",
2683   /* 9a */  "undefined",
2684   /* 9b */  "undefined",
2685   /* 9c */  "undefined",
2686   /* 9d */  "undefined",
2687   /* 9e */  "undefined",
2688   /* 9f */  "undefined",
2689   /* a0 */  "undefined",
2690   /* a1 */  "undefined",
2691   /* a2 */  "undefined",
2692   /* a3 */  "undefined",
2693   /* a4 */  "undefined",
2694   /* a5 */  "undefined",
2695   /* a6 */  "undefined",
2696   /* a7 */  "undefined",
2697   /* a8 */  "undefined",
2698   /* a9 */  "undefined",
2699   /* aa */  "undefined",
2700   /* ab */  "undefined",
2701   /* ac */  "undefined",
2702   /* ad */  "undefined",
2703   /* ae */  "undefined",
2704   /* af */  "undefined",
2705   /* b0 */  "undefined",
2706   /* b1 */  "undefined",
2707   /* b2 */  "undefined",
2708   /* b3 */  "undefined",
2709   /* b4 */  "undefined",
2710   /* b5 */  "undefined",
2711   /* b6 */  "undefined",
2712   /* b7 */  "undefined",
2713   /* b8 */  "undefined",
2714   /* b9 */  "undefined",
2715   /* ba */  "undefined",
2716   /* bb */  "undefined",
2717   /* bc */  "undefined",
2718   /* bd */  "undefined",
2719   /* be */  "undefined",
2720   /* bf */  "undefined",
2721   /* c0 */  "undefined",
2722   /* c1 */  "undefined",
2723   /* c2 */  "undefined",
2724   /* c3 */  "undefined",
2725   /* c4 */  "undefined",
2726   /* c5 */  "undefined",
2727   /* c6 */  "undefined",
2728   /* c7 */  "undefined",
2729   /* c8 */  "undefined",
2730   /* c9 */  "undefined",
2731   /* ca */  "undefined",
2732   /* cb */  "undefined",
2733   /* cc */  "undefined",
2734   /* cd */  "undefined",
2735   /* ce */  "undefined",
2736   /* cf */  "undefined",
2737   /* d0 */  "undefined",
2738   /* d1 */  "undefined",
2739   /* d2 */  "undefined",
2740   /* d3 */  "undefined",
2741   /* d4 */  "undefined",
2742   /* d5 */  "undefined",
2743   /* d6 */  "undefined",
2744   /* d7 */  "undefined",
2745   /* d8 */  "undefined",
2746   /* d9 */  "undefined",
2747   /* da */  "undefined",
2748   /* db */  "undefined",
2749   /* dc */  "undefined",
2750   /* dd */  "undefined",
2751   /* de */  "undefined",
2752   /* df */  "undefined",
2753   /* e0 */  "undefined",
2754   /* e1 */  "undefined",
2755   /* e2 */  "undefined",
2756   /* e3 */  "undefined",
2757   /* e4 */  "undefined",
2758   /* e5 */  "undefined",
2759   /* e6 */  "undefined",
2760   /* e7 */  "undefined",
2761   /* e8 */  "undefined",
2762   /* e9 */  "undefined",
2763   /* ea */  "undefined",
2764   /* eb */  "undefined",
2765   /* ec */  "undefined",
2766   /* ed */  "undefined",
2767   /* ee */  "undefined",
2768   /* ef */  "undefined",
2769   /* f0 */  "undefined",
2770   /* f1 */  "undefined",
2771   /* f2 */  "undefined",
2772   /* f3 */  "undefined",
2773   /* f4 */  "undefined",
2774   /* f5 */  "undefined",
2775   /* f6 */  "undefined",
2776   /* f7 */  "undefined",
2777   /* f8 */  "undefined",
2778   /* f9 */  "undefined",
2779   /* fa */  "undefined",
2780   /* fb */  "undefined",
2781   /* fc */  "undefined",
2782   /* fd */  "undefined",
2783   /* fe */  "undefined",
2784   /* ff */  "undefined",
2785 };
2786
2787 static const char *kDisasm660F3AOp[NCDTABLESIZE] = {
2788   /* 00 */  "undefined",
2789   /* 01 */  "undefined",
2790   /* 02 */  "undefined",
2791   /* 03 */  "undefined",
2792   /* 04 */  "undefined",
2793   /* 05 */  "undefined",
2794   /* 06 */  "undefined",
2795   /* 07 */  "undefined",
2796   /* 08 */  "roundps $V, $W, $Ib",
2797   /* 09 */  "roundpd $V, $W, $Ib",
2798   /* 0a */  "roundss $V, $W, $Ib",
2799   /* 0b */  "roundsd $V, $W, $Ib",
2800   /* 0c */  "blendps $V, $W, $Ib",
2801   /* 0d */  "blendpd $V, $W, $Ib",
2802   /* 0e */  "pblendw $V, $W, $Ib",
2803   /* 0f */  "palignr $V, $W, $Ib",
2804   /* 10 */  "undefined",
2805   /* 11 */  "undefined",
2806   /* 12 */  "undefined",
2807   /* 13 */  "undefined",
2808   /* 14 */  "pextrb $R/M, $V, $Ib",
2809   /* 15 */  "pextrw $R/M, $V, $Ib",
2810   /* 16 */  "pextrd/q $E, $V, $Ib",
2811   /* 17 */  "extractps $E, $V, $Ib",
2812   /* 18 */  "undefined",
2813   /* 19 */  "undefined",
2814   /* 1a */  "undefined",
2815   /* 1b */  "undefined",
2816   /* 1c */  "undefined",
2817   /* 1d */  "undefined",
2818   /* 1e */  "undefined",
2819   /* 1f */  "undefined",
2820   /* 20 */  "pinsrb $V, $R/M, $Ib",
2821   /* 21 */  "insertps $V, $U/M, $Ib",
2822   /* 22 */  "pinsrd/q $V, $E, $Ib",
2823   /* 23 */  "undefined",
2824   /* 24 */  "undefined",
2825   /* 25 */  "undefined",
2826   /* 26 */  "undefined",
2827   /* 27 */  "undefined",
2828   /* 28 */  "undefined",
2829   /* 29 */  "undefined",
2830   /* 2a */  "undefined",
2831   /* 2b */  "undefined",
2832   /* 2c */  "undefined",
2833   /* 2d */  "undefined",
2834   /* 2e */  "undefined",
2835   /* 2f */  "undefined",
2836   /* 30 */  "undefined",
2837   /* 31 */  "undefined",
2838   /* 32 */  "undefined",
2839   /* 33 */  "undefined",
2840   /* 34 */  "undefined",
2841   /* 35 */  "undefined",
2842   /* 36 */  "undefined",
2843   /* 37 */  "undefined",
2844   /* 38 */  "undefined",
2845   /* 39 */  "undefined",
2846   /* 3a */  "undefined",
2847   /* 3b */  "undefined",
2848   /* 3c */  "undefined",
2849   /* 3d */  "undefined",
2850   /* 3e */  "undefined",
2851   /* 3f */  "undefined",
2852   /* 40 */  "dpps $V, $W, $Ib",
2853   /* 41 */  "dppd $V, $W, $Ib",
2854   /* 42 */  "mpsadbw $V, $W, $Ib",
2855   /* 43 */  "undefined",
2856   /* 44 */  "undefined",
2857   /* 45 */  "undefined",
2858   /* 46 */  "undefined",
2859   /* 47 */  "undefined",
2860   /* 48 */  "undefined",
2861   /* 49 */  "undefined",
2862   /* 4a */  "undefined",
2863   /* 4b */  "undefined",
2864   /* 4c */  "undefined",
2865   /* 4d */  "undefined",
2866   /* 4e */  "undefined",
2867   /* 4f */  "undefined",
2868   /* 50 */  "undefined",
2869   /* 51 */  "undefined",
2870   /* 52 */  "undefined",
2871   /* 53 */  "undefined",
2872   /* 54 */  "undefined",
2873   /* 55 */  "undefined",
2874   /* 56 */  "undefined",
2875   /* 57 */  "undefined",
2876   /* 58 */  "undefined",
2877   /* 59 */  "undefined",
2878   /* 5a */  "undefined",
2879   /* 5b */  "undefined",
2880   /* 5c */  "undefined",
2881   /* 5d */  "undefined",
2882   /* 5e */  "undefined",
2883   /* 5f */  "undefined",
2884   /* 60 */  "pcmpestrm $V, $W, $Ib",
2885   /* 61 */  "pcmpestri $V, $W, $Ib",
2886   /* 62 */  "pcmpistrm $V, $W, $Ib",
2887   /* 63 */  "pcmpistri $V, $W, $Ib",
2888   /* 64 */  "undefined",
2889   /* 65 */  "undefined",
2890   /* 66 */  "undefined",
2891   /* 67 */  "undefined",
2892   /* 68 */  "undefined",
2893   /* 69 */  "undefined",
2894   /* 6a */  "undefined",
2895   /* 6b */  "undefined",
2896   /* 6c */  "undefined",
2897   /* 6d */  "undefined",
2898   /* 6e */  "undefined",
2899   /* 6f */  "undefined",
2900   /* 70 */  "undefined",
2901   /* 71 */  "undefined",
2902   /* 72 */  "undefined",
2903   /* 73 */  "undefined",
2904   /* 74 */  "undefined",
2905   /* 75 */  "undefined",
2906   /* 76 */  "undefined",
2907   /* 77 */  "undefined",
2908   /* 78 */  "undefined",
2909   /* 79 */  "undefined",
2910   /* 7a */  "undefined",
2911   /* 7b */  "undefined",
2912   /* 7c */  "undefined",
2913   /* 7d */  "undefined",
2914   /* 7e */  "undefined",
2915   /* 7f */  "undefined",
2916   /* 80 */  "undefined",
2917   /* 81 */  "undefined",
2918   /* 82 */  "undefined",
2919   /* 83 */  "undefined",
2920   /* 84 */  "undefined",
2921   /* 85 */  "undefined",
2922   /* 86 */  "undefined",
2923   /* 87 */  "undefined",
2924   /* 88 */  "undefined",
2925   /* 89 */  "undefined",
2926   /* 8a */  "undefined",
2927   /* 8b */  "undefined",
2928   /* 8c */  "undefined",
2929   /* 8d */  "undefined",
2930   /* 8e */  "undefined",
2931   /* 8f */  "undefined",
2932   /* 90 */  "undefined",
2933   /* 91 */  "undefined",
2934   /* 92 */  "undefined",
2935   /* 93 */  "undefined",
2936   /* 94 */  "undefined",
2937   /* 95 */  "undefined",
2938   /* 96 */  "undefined",
2939   /* 97 */  "undefined",
2940   /* 98 */  "undefined",
2941   /* 99 */  "undefined",
2942   /* 9a */  "undefined",
2943   /* 9b */  "undefined",
2944   /* 9c */  "undefined",
2945   /* 9d */  "undefined",
2946   /* 9e */  "undefined",
2947   /* 9f */  "undefined",
2948   /* a0 */  "undefined",
2949   /* a1 */  "undefined",
2950   /* a2 */  "undefined",
2951   /* a3 */  "undefined",
2952   /* a4 */  "undefined",
2953   /* a5 */  "undefined",
2954   /* a6 */  "undefined",
2955   /* a7 */  "undefined",
2956   /* a8 */  "undefined",
2957   /* a9 */  "undefined",
2958   /* aa */  "undefined",
2959   /* ab */  "undefined",
2960   /* ac */  "undefined",
2961   /* ad */  "undefined",
2962   /* ae */  "undefined",
2963   /* af */  "undefined",
2964   /* b0 */  "undefined",
2965   /* b1 */  "undefined",
2966   /* b2 */  "undefined",
2967   /* b3 */  "undefined",
2968   /* b4 */  "undefined",
2969   /* b5 */  "undefined",
2970   /* b6 */  "undefined",
2971   /* b7 */  "undefined",
2972   /* b8 */  "undefined",
2973   /* b9 */  "undefined",
2974   /* ba */  "undefined",
2975   /* bb */  "undefined",
2976   /* bc */  "undefined",
2977   /* bd */  "undefined",
2978   /* be */  "undefined",
2979   /* bf */  "undefined",
2980   /* c0 */  "undefined",
2981   /* c1 */  "undefined",
2982   /* c2 */  "undefined",
2983   /* c3 */  "undefined",
2984   /* c4 */  "undefined",
2985   /* c5 */  "undefined",
2986   /* c6 */  "undefined",
2987   /* c7 */  "undefined",
2988   /* c8 */  "undefined",
2989   /* c9 */  "undefined",
2990   /* ca */  "undefined",
2991   /* cb */  "undefined",
2992   /* cc */  "undefined",
2993   /* cd */  "undefined",
2994   /* ce */  "undefined",
2995   /* cf */  "undefined",
2996   /* d0 */  "undefined",
2997   /* d1 */  "undefined",
2998   /* d2 */  "undefined",
2999   /* d3 */  "undefined",
3000   /* d4 */  "undefined",
3001   /* d5 */  "undefined",
3002   /* d6 */  "undefined",
3003   /* d7 */  "undefined",
3004   /* d8 */  "undefined",
3005   /* d9 */  "undefined",
3006   /* da */  "undefined",
3007   /* db */  "undefined",
3008   /* dc */  "undefined",
3009   /* dd */  "undefined",
3010   /* de */  "undefined",
3011   /* df */  "undefined",
3012   /* e0 */  "undefined",
3013   /* e1 */  "undefined",
3014   /* e2 */  "undefined",
3015   /* e3 */  "undefined",
3016   /* e4 */  "undefined",
3017   /* e5 */  "undefined",
3018   /* e6 */  "undefined",
3019   /* e7 */  "undefined",
3020   /* e8 */  "undefined",
3021   /* e9 */  "undefined",
3022   /* ea */  "undefined",
3023   /* eb */  "undefined",
3024   /* ec */  "undefined",
3025   /* ed */  "undefined",
3026   /* ee */  "undefined",
3027   /* ef */  "undefined",
3028   /* f0 */  "undefined",
3029   /* f1 */  "undefined",
3030   /* f2 */  "undefined",
3031   /* f3 */  "undefined",
3032   /* f4 */  "undefined",
3033   /* f5 */  "undefined",
3034   /* f6 */  "undefined",
3035   /* f7 */  "undefined",
3036   /* f8 */  "undefined",
3037   /* f9 */  "undefined",
3038   /* fa */  "undefined",
3039   /* fb */  "undefined",
3040   /* fc */  "undefined",
3041   /* fd */  "undefined",
3042   /* fe */  "undefined",
3043   /* ff */  "undefined",
3044 };
3045
3046
3047 /* x87 opcode tables*/
3048 static const char *kDisasm87D8[NCDTABLESIZE] = {
3049   /* 00 */  "fadd",
3050   /* 01 */  "fadd",
3051   /* 02 */  "fadd",
3052   /* 03 */  "fadd",
3053   /* 04 */  "fadd",
3054   /* 05 */  "fadd",
3055   /* 06 */  "fadd",
3056   /* 07 */  "fadd",
3057   /* 08 */  "fmul",
3058   /* 09 */  "fmul",
3059   /* 0a */  "fmul",
3060   /* 0b */  "fmul",
3061   /* 0c */  "fmul",
3062   /* 0d */  "fmul",
3063   /* 0e */  "fmul",
3064   /* 0f */  "fmul",
3065   /* 10 */  "fcom",
3066   /* 11 */  "fcom",
3067   /* 12 */  "fcom",
3068   /* 13 */  "fcom",
3069   /* 14 */  "fcom",
3070   /* 15 */  "fcom",
3071   /* 16 */  "fcom",
3072   /* 17 */  "fcom",
3073   /* 18 */  "fcomp",
3074   /* 19 */  "fcomp",
3075   /* 1a */  "fcomp",
3076   /* 1b */  "fcomp",
3077   /* 1c */  "fcomp",
3078   /* 1d */  "fcomp",
3079   /* 1e */  "fcomp",
3080   /* 1f */  "fcomp",
3081   /* 20 */  "fsub",
3082   /* 21 */  "fsub",
3083   /* 22 */  "fsub",
3084   /* 23 */  "fsub",
3085   /* 24 */  "fsub",
3086   /* 25 */  "fsub",
3087   /* 26 */  "fsub",
3088   /* 27 */  "fsub",
3089   /* 28 */  "fsubr",
3090   /* 29 */  "fsubr",
3091   /* 2a */  "fsubr",
3092   /* 2b */  "fsubr",
3093   /* 2c */  "fsubr",
3094   /* 2d */  "fsubr",
3095   /* 2e */  "fsubr",
3096   /* 2f */  "fsubr",
3097   /* 30 */  "fdiv",
3098   /* 31 */  "fdiv",
3099   /* 32 */  "fdiv",
3100   /* 33 */  "fdiv",
3101   /* 34 */  "fdiv",
3102   /* 35 */  "fdiv",
3103   /* 36 */  "fdiv",
3104   /* 37 */  "fdiv",
3105   /* 38 */  "fdivr",
3106   /* 39 */  "fdivr",
3107   /* 3a */  "fdivr",
3108   /* 3b */  "fdivr",
3109   /* 3c */  "fdivr",
3110   /* 3d */  "fdivr",
3111   /* 3e */  "fdivr",
3112   /* 3f */  "fdivr",
3113   /* 40 */  "fadd",
3114   /* 41 */  "fadd",
3115   /* 42 */  "fadd",
3116   /* 43 */  "fadd",
3117   /* 44 */  "fadd",
3118   /* 45 */  "fadd",
3119   /* 46 */  "fadd",
3120   /* 47 */  "fadd",
3121   /* 48 */  "fmul",
3122   /* 49 */  "fmul",
3123   /* 4a */  "fmul",
3124   /* 4b */  "fmul",
3125   /* 4c */  "fmul",
3126   /* 4d */  "fmul",
3127   /* 4e */  "fmul",
3128   /* 4f */  "fmul",
3129   /* 50 */  "fcom",
3130   /* 51 */  "fcom",
3131   /* 52 */  "fcom",
3132   /* 53 */  "fcom",
3133   /* 54 */  "fcom",
3134   /* 55 */  "fcom",
3135   /* 56 */  "fcom",
3136   /* 57 */  "fcom",
3137   /* 58 */  "fcomp",
3138   /* 59 */  "fcomp",
3139   /* 5a */  "fcomp",
3140   /* 5b */  "fcomp",
3141   /* 5c */  "fcomp",
3142   /* 5d */  "fcomp",
3143   /* 5e */  "fcomp",
3144   /* 5f */  "fcomp",
3145   /* 60 */  "fsub",
3146   /* 61 */  "fsub",
3147   /* 62 */  "fsub",
3148   /* 63 */  "fsub",
3149   /* 64 */  "fsub",
3150   /* 65 */  "fsub",
3151   /* 66 */  "fsub",
3152   /* 67 */  "fsub",
3153   /* 68 */  "fsubr",
3154   /* 69 */  "fsubr",
3155   /* 6a */  "fsubr",
3156   /* 6b */  "fsubr",
3157   /* 6c */  "fsubr",
3158   /* 6d */  "fsubr",
3159   /* 6e */  "fsubr",
3160   /* 6f */  "fsubr",
3161   /* 70 */  "fdiv",
3162   /* 71 */  "fdiv",
3163   /* 72 */  "fdiv",
3164   /* 73 */  "fdiv",
3165   /* 74 */  "fdiv",
3166   /* 75 */  "fdiv",
3167   /* 76 */  "fdiv",
3168   /* 77 */  "fdiv",
3169   /* 78 */  "fdivr",
3170   /* 79 */  "fdivr",
3171   /* 7a */  "fdivr",
3172   /* 7b */  "fdivr",
3173   /* 7c */  "fdivr",
3174   /* 7d */  "fdivr",
3175   /* 7e */  "fdivr",
3176   /* 7f */  "fdivr",
3177   /* 80 */  "fadd",
3178   /* 81 */  "fadd",
3179   /* 82 */  "fadd",
3180   /* 83 */  "fadd",
3181   /* 84 */  "fadd",
3182   /* 85 */  "fadd",
3183   /* 86 */  "fadd",
3184   /* 87 */  "fadd",
3185   /* 88 */  "fmul",
3186   /* 89 */  "fmul",
3187   /* 8a */  "fmul",
3188   /* 8b */  "fmul",
3189   /* 8c */  "fmul",
3190   /* 8d */  "fmul",
3191   /* 8e */  "fmul",
3192   /* 8f */  "fmul",
3193   /* 90 */  "fcom",
3194   /* 91 */  "fcom",
3195   /* 92 */  "fcom",
3196   /* 93 */  "fcom",
3197   /* 94 */  "fcom",
3198   /* 95 */  "fcom",
3199   /* 96 */  "fcom",
3200   /* 97 */  "fcom",
3201   /* 98 */  "fcomp",
3202   /* 99 */  "fcomp",
3203   /* 9a */  "fcomp",
3204   /* 9b */  "fcomp",
3205   /* 9c */  "fcomp",
3206   /* 9d */  "fcomp",
3207   /* 9e */  "fcomp",
3208   /* 9f */  "fcomp",
3209   /* a0 */  "fsub",
3210   /* a1 */  "fsub",
3211   /* a2 */  "fsub",
3212   /* a3 */  "fsub",
3213   /* a4 */  "fsub",
3214   /* a5 */  "fsub",
3215   /* a6 */  "fsub",
3216   /* a7 */  "fsub",
3217   /* a8 */  "fsubr",
3218   /* a9 */  "fsubr",
3219   /* aa */  "fsubr",
3220   /* ab */  "fsubr",
3221   /* ac */  "fsubr",
3222   /* ad */  "fsubr",
3223   /* ae */  "fsubr",
3224   /* af */  "fsubr",
3225   /* b0 */  "fdiv",
3226   /* b1 */  "fdiv",
3227   /* b2 */  "fdiv",
3228   /* b3 */  "fdiv",
3229   /* b4 */  "fdiv",
3230   /* b5 */  "fdiv",
3231   /* b6 */  "fdiv",
3232   /* b7 */  "fdiv",
3233   /* b8 */  "fdivr",
3234   /* b9 */  "fdivr",
3235   /* ba */  "fdivr",
3236   /* bb */  "fdivr",
3237   /* bc */  "fdivr",
3238   /* bd */  "fdivr",
3239   /* be */  "fdivr",
3240   /* bf */  "fdivr",
3241   /* c0 */  "fadd",
3242   /* c1 */  "fadd",
3243   /* c2 */  "fadd",
3244   /* c3 */  "fadd",
3245   /* c4 */  "fadd",
3246   /* c5 */  "fadd",
3247   /* c6 */  "fadd",
3248   /* c7 */  "fadd",
3249   /* c8 */  "fmul",
3250   /* c9 */  "fmul",
3251   /* ca */  "fmul",
3252   /* cb */  "fmul",
3253   /* cc */  "fmul",
3254   /* cd */  "fmul",
3255   /* ce */  "fmul",
3256   /* cf */  "fmul",
3257   /* d0 */  "fcom",
3258   /* d1 */  "fcom",
3259   /* d2 */  "fcom",
3260   /* d3 */  "fcom",
3261   /* d4 */  "fcom",
3262   /* d5 */  "fcom",
3263   /* d6 */  "fcom",
3264   /* d7 */  "fcom",
3265   /* d8 */  "fcomp",
3266   /* d9 */  "fcomp",
3267   /* da */  "fcomp",
3268   /* db */  "fcomp",
3269   /* dc */  "fcomp",
3270   /* dd */  "fcomp",
3271   /* de */  "fcomp",
3272   /* df */  "fcomp",
3273   /* e0 */  "fsub",
3274   /* e1 */  "fsub",
3275   /* e2 */  "fsub",
3276   /* e3 */  "fsub",
3277   /* e4 */  "fsub",
3278   /* e5 */  "fsub",
3279   /* e6 */  "fsub",
3280   /* e7 */  "fsub",
3281   /* e8 */  "fsubr",
3282   /* e9 */  "fsubr",
3283   /* ea */  "fsubr",
3284   /* eb */  "fsubr",
3285   /* ec */  "fsubr",
3286   /* ed */  "fsubr",
3287   /* ee */  "fsubr",
3288   /* ef */  "fsubr",
3289   /* f0 */  "fdiv",
3290   /* f1 */  "fdiv",
3291   /* f2 */  "fdiv",
3292   /* f3 */  "fdiv",
3293   /* f4 */  "fdiv",
3294   /* f5 */  "fdiv",
3295   /* f6 */  "fdiv",
3296   /* f7 */  "fdiv",
3297   /* f8 */  "fdivr",
3298   /* f9 */  "fdivr",
3299   /* fa */  "fdivr",
3300   /* fb */  "fdivr",
3301   /* fc */  "fdivr",
3302   /* fd */  "fdivr",
3303   /* fe */  "fdivr",
3304   /* ff */  "fdivr",
3305 };
3306
3307 static const char *kDisasm87D9[NCDTABLESIZE] = {
3308   /* 00 */  "fld",
3309   /* 01 */  "fld",
3310   /* 02 */  "fld",
3311   /* 03 */  "fld",
3312   /* 04 */  "fld",
3313   /* 05 */  "fld",
3314   /* 06 */  "fld",
3315   /* 07 */  "fld",
3316   /* 08 */  "invalid",
3317   /* 09 */  "invalid",
3318   /* 0a */  "invalid",
3319   /* 0b */  "invalid",
3320   /* 0c */  "invalid",
3321   /* 0d */  "invalid",
3322   /* 0e */  "invalid",
3323   /* 0f */  "invalid",
3324   /* 10 */  "fst",
3325   /* 11 */  "fst",
3326   /* 12 */  "fst",
3327   /* 13 */  "fst",
3328   /* 14 */  "fst",
3329   /* 15 */  "fst",
3330   /* 16 */  "fst",
3331   /* 17 */  "fst",
3332   /* 18 */  "fstp",
3333   /* 19 */  "fstp",
3334   /* 1a */  "fstp",
3335   /* 1b */  "fstp",
3336   /* 1c */  "fstp",
3337   /* 1d */  "fstp",
3338   /* 1e */  "fstp",
3339   /* 1f */  "fstp",
3340   /* 20 */  "fldenv",
3341   /* 21 */  "fldenv",
3342   /* 22 */  "fldenv",
3343   /* 23 */  "fldenv",
3344   /* 24 */  "fldenv",
3345   /* 25 */  "fldenv",
3346   /* 26 */  "fldenv",
3347   /* 27 */  "fldenv",
3348   /* 28 */  "fldcw",
3349   /* 29 */  "fldcw",
3350   /* 2a */  "fldcw",
3351   /* 2b */  "fldcw",
3352   /* 2c */  "fldcw",
3353   /* 2d */  "fldcw",
3354   /* 2e */  "fldcw",
3355   /* 2f */  "fldcw",
3356   /* 30 */  "fnstenv",
3357   /* 31 */  "fnstenv",
3358   /* 32 */  "fnstenv",
3359   /* 33 */  "fnstenv",
3360   /* 34 */  "fnstenv",
3361   /* 35 */  "fnstenv",
3362   /* 36 */  "fnstenv",
3363   /* 37 */  "fnstenv",
3364   /* 38 */  "fnstcw",
3365   /* 39 */  "fnstcw",
3366   /* 3a */  "fnstcw",
3367   /* 3b */  "fnstcw",
3368   /* 3c */  "fnstcw",
3369   /* 3d */  "fnstcw",
3370   /* 3e */  "fnstcw",
3371   /* 3f */  "fnstcw",
3372   /* 40 */  "fld",
3373   /* 41 */  "fld",
3374   /* 42 */  "fld",
3375   /* 43 */  "fld",
3376   /* 44 */  "fld",
3377   /* 45 */  "fld",
3378   /* 46 */  "fld",
3379   /* 47 */  "fld",
3380   /* 48 */  "invalid",
3381   /* 49 */  "invalid",
3382   /* 4a */  "invalid",
3383   /* 4b */  "invalid",
3384   /* 4c */  "invalid",
3385   /* 4d */  "invalid",
3386   /* 4e */  "invalid",
3387   /* 4f */  "invalid",
3388   /* 50 */  "fst",
3389   /* 51 */  "fst",
3390   /* 52 */  "fst",
3391   /* 53 */  "fst",
3392   /* 54 */  "fst",
3393   /* 55 */  "fst",
3394   /* 56 */  "fst",
3395   /* 57 */  "fst",
3396   /* 58 */  "fstp",
3397   /* 59 */  "fstp",
3398   /* 5a */  "fstp",
3399   /* 5b */  "fstp",
3400   /* 5c */  "fstp",
3401   /* 5d */  "fstp",
3402   /* 5e */  "fstp",
3403   /* 5f */  "fstp",
3404   /* 60 */  "fldenv",
3405   /* 61 */  "fldenv",
3406   /* 62 */  "fldenv",
3407   /* 63 */  "fldenv",
3408   /* 64 */  "fldenv",
3409   /* 65 */  "fldenv",
3410   /* 66 */  "fldenv",
3411   /* 67 */  "fldenv",
3412   /* 68 */  "fldcw",
3413   /* 69 */  "fldcw",
3414   /* 6a */  "fldcw",
3415   /* 6b */  "fldcw",
3416   /* 6c */  "fldcw",
3417   /* 6d */  "fldcw",
3418   /* 6e */  "fldcw",
3419   /* 6f */  "fldcw",
3420   /* 70 */  "fnstenv",
3421   /* 71 */  "fnstenv",
3422   /* 72 */  "fnstenv",
3423   /* 73 */  "fnstenv",
3424   /* 74 */  "fnstenv",
3425   /* 75 */  "fnstenv",
3426   /* 76 */  "fnstenv",
3427   /* 77 */  "fnstenv",
3428   /* 78 */  "fnstcw",
3429   /* 79 */  "fnstcw",
3430   /* 7a */  "fnstcw",
3431   /* 7b */  "fnstcw",
3432   /* 7c */  "fnstcw",
3433   /* 7d */  "fnstcw",
3434   /* 7e */  "fnstcw",
3435   /* 7f */  "fnstcw",
3436   /* 80 */  "fld",
3437   /* 81 */  "fld",
3438   /* 82 */  "fld",
3439   /* 83 */  "fld",
3440   /* 84 */  "fld",
3441   /* 85 */  "fld",
3442   /* 86 */  "fld",
3443   /* 87 */  "fld",
3444   /* 88 */  "invalid",
3445   /* 89 */  "invalid",
3446   /* 8a */  "invalid",
3447   /* 8b */  "invalid",
3448   /* 8c */  "invalid",
3449   /* 8d */  "invalid",
3450   /* 8e */  "invalid",
3451   /* 8f */  "invalid",
3452   /* 90 */  "fst",
3453   /* 91 */  "fst",
3454   /* 92 */  "fst",
3455   /* 93 */  "fst",
3456   /* 94 */  "fst",
3457   /* 95 */  "fst",
3458   /* 96 */  "fst",
3459   /* 97 */  "fst",
3460   /* 98 */  "fstp",
3461   /* 99 */  "fstp",
3462   /* 9a */  "fstp",
3463   /* 9b */  "fstp",
3464   /* 9c */  "fstp",
3465   /* 9d */  "fstp",
3466   /* 9e */  "fstp",
3467   /* 9f */  "fstp",
3468   /* a0 */  "fldenv",
3469   /* a1 */  "fldenv",
3470   /* a2 */  "fldenv",
3471   /* a3 */  "fldenv",
3472   /* a4 */  "fldenv",
3473   /* a5 */  "fldenv",
3474   /* a6 */  "fldenv",
3475   /* a7 */  "fldenv",
3476   /* a8 */  "fldcw",
3477   /* a9 */  "fldcw",
3478   /* aa */  "fldcw",
3479   /* ab */  "fldcw",
3480   /* ac */  "fldcw",
3481   /* ad */  "fldcw",
3482   /* ae */  "fldcw",
3483   /* af */  "fldcw",
3484   /* b0 */  "fnstenv",
3485   /* b1 */  "fnstenv",
3486   /* b2 */  "fnstenv",
3487   /* b3 */  "fnstenv",
3488   /* b4 */  "fnstenv",
3489   /* b5 */  "fnstenv",
3490   /* b6 */  "fnstenv",
3491   /* b7 */  "fnstenv",
3492   /* b8 */  "fnstcw",
3493   /* b9 */  "fnstcw",
3494   /* ba */  "fnstcw",
3495   /* bb */  "fnstcw",
3496   /* bc */  "fnstcw",
3497   /* bd */  "fnstcw",
3498   /* be */  "fnstcw",
3499   /* bf */  "fnstcw",
3500   /* c0 */  "fld",
3501   /* c1 */  "fld",
3502   /* c2 */  "fld",
3503   /* c3 */  "fld",
3504   /* c4 */  "fld",
3505   /* c5 */  "fld",
3506   /* c6 */  "fld",
3507   /* c7 */  "fld",
3508   /* c8 */  "fxch",
3509   /* c9 */  "fxch",
3510   /* ca */  "fxch",
3511   /* cb */  "fxch",
3512   /* cc */  "fxch",
3513   /* cd */  "fxch",
3514   /* ce */  "fxch",
3515   /* cf */  "fxch",
3516   /* d0 */  "fnop",
3517   /* d1 */  "invalid",
3518   /* d2 */  "invalid",
3519   /* d3 */  "invalid",
3520   /* d4 */  "invalid",
3521   /* d5 */  "invalid",
3522   /* d6 */  "invalid",
3523   /* d7 */  "invalid",
3524   /* d8 */  "invalid",
3525   /* d9 */  "invalid",
3526   /* da */  "invalid",
3527   /* db */  "invalid",
3528   /* dc */  "invalid",
3529   /* dd */  "invalid",
3530   /* de */  "invalid",
3531   /* df */  "invalid",
3532   /* e0 */  "fchs",
3533   /* e1 */  "fabs",
3534   /* e2 */  "invalid",
3535   /* e3 */  "invalid",
3536   /* e4 */  "ftst",
3537   /* e5 */  "fxam",
3538   /* e6 */  "invalid",
3539   /* e7 */  "invalid",
3540   /* e8 */  "fld1",
3541   /* e9 */  "fldl2t",
3542   /* ea */  "fldl2e",
3543   /* eb */  "fldpi",
3544   /* ec */  "fldlg2",
3545   /* ed */  "fldln2",
3546   /* ee */  "fldz",
3547   /* ef */  "invalid",
3548   /* f0 */  "f2xm1",
3549   /* f1 */  "fyl2x",
3550   /* f2 */  "fptan",
3551   /* f3 */  "fpatan",
3552   /* f4 */  "fxtract",
3553   /* f5 */  "fprem1",
3554   /* f6 */  "fdecstp",
3555   /* f7 */  "fincstp",
3556   /* f8 */  "fprem",
3557   /* f9 */  "fyl2xp1",
3558   /* fa */  "fsqrt",
3559   /* fb */  "fsincos",
3560   /* fc */  "frndint",
3561   /* fd */  "fscale",
3562   /* fe */  "fsin",
3563   /* ff */  "fcos",
3564 };
3565
3566 static const char *kDisasm87DA[NCDTABLESIZE] = {
3567   /* 00 */  "fiadd",
3568   /* 01 */  "fiadd",
3569   /* 02 */  "fiadd",
3570   /* 03 */  "fiadd",
3571   /* 04 */  "fiadd",
3572   /* 05 */  "fiadd",
3573   /* 06 */  "fiadd",
3574   /* 07 */  "fiadd",
3575   /* 08 */  "fimul",
3576   /* 09 */  "fimul",
3577   /* 0a */  "fimul",
3578   /* 0b */  "fimul",
3579   /* 0c */  "fimul",
3580   /* 0d */  "fimul",
3581   /* 0e */  "fimul",
3582   /* 0f */  "fimul",
3583   /* 10 */  "ficom",
3584   /* 11 */  "ficom",
3585   /* 12 */  "ficom",
3586   /* 13 */  "ficom",
3587   /* 14 */  "ficom",
3588   /* 15 */  "ficom",
3589   /* 16 */  "ficom",
3590   /* 17 */  "ficom",
3591   /* 18 */  "ficomp",
3592   /* 19 */  "ficomp",
3593   /* 1a */  "ficomp",
3594   /* 1b */  "ficomp",
3595   /* 1c */  "ficomp",
3596   /* 1d */  "ficomp",
3597   /* 1e */  "ficomp",
3598   /* 1f */  "ficomp",
3599   /* 20 */  "fisub",
3600   /* 21 */  "fisub",
3601   /* 22 */  "fisub",
3602   /* 23 */  "fisub",
3603   /* 24 */  "fisub",
3604   /* 25 */  "fisub",
3605   /* 26 */  "fisub",
3606   /* 27 */  "fisub",
3607   /* 28 */  "fisubr",
3608   /* 29 */  "fisubr",
3609   /* 2a */  "fisubr",
3610   /* 2b */  "fisubr",
3611   /* 2c */  "fisubr",
3612   /* 2d */  "fisubr",
3613   /* 2e */  "fisubr",
3614   /* 2f */  "fisubr",
3615   /* 30 */  "fidiv",
3616   /* 31 */  "fidiv",
3617   /* 32 */  "fidiv",
3618   /* 33 */  "fidiv",
3619   /* 34 */  "fidiv",
3620   /* 35 */  "fidiv",
3621   /* 36 */  "fidiv",
3622   /* 37 */  "fidiv",
3623   /* 38 */  "fidivr",
3624   /* 39 */  "fidivr",
3625   /* 3a */  "fidivr",
3626   /* 3b */  "fidivr",
3627   /* 3c */  "fidivr",
3628   /* 3d */  "fidivr",
3629   /* 3e */  "fidivr",
3630   /* 3f */  "fidivr",
3631   /* 40 */  "fiadd",
3632   /* 41 */  "fiadd",
3633   /* 42 */  "fiadd",
3634   /* 43 */  "fiadd",
3635   /* 44 */  "fiadd",
3636   /* 45 */  "fiadd",
3637   /* 46 */  "fiadd",
3638   /* 47 */  "fiadd",
3639   /* 48 */  "fimul",
3640   /* 49 */  "fimul",
3641   /* 4a */  "fimul",
3642   /* 4b */  "fimul",
3643   /* 4c */  "fimul",
3644   /* 4d */  "fimul",
3645   /* 4e */  "fimul",
3646   /* 4f */  "fimul",
3647   /* 50 */  "ficom",
3648   /* 51 */  "ficom",
3649   /* 52 */  "ficom",
3650   /* 53 */  "ficom",
3651   /* 54 */  "ficom",
3652   /* 55 */  "ficom",
3653   /* 56 */  "ficom",
3654   /* 57 */  "ficom",
3655   /* 58 */  "ficomp",
3656   /* 59 */  "ficomp",
3657   /* 5a */  "ficomp",
3658   /* 5b */  "ficomp",
3659   /* 5c */  "ficomp",
3660   /* 5d */  "ficomp",
3661   /* 5e */  "ficomp",
3662   /* 5f */  "ficomp",
3663   /* 60 */  "fisub",
3664   /* 61 */  "fisub",
3665   /* 62 */  "fisub",
3666   /* 63 */  "fisub",
3667   /* 64 */  "fisub",
3668   /* 65 */  "fisub",
3669   /* 66 */  "fisub",
3670   /* 67 */  "fisub",
3671   /* 68 */  "fisubr",
3672   /* 69 */  "fisubr",
3673   /* 6a */  "fisubr",
3674   /* 6b */  "fisubr",
3675   /* 6c */  "fisubr",
3676   /* 6d */  "fisubr",
3677   /* 6e */  "fisubr",
3678   /* 6f */  "fisubr",
3679   /* 70 */  "fidiv",
3680   /* 71 */  "fidiv",
3681   /* 72 */  "fidiv",
3682   /* 73 */  "fidiv",
3683   /* 74 */  "fidiv",
3684   /* 75 */  "fidiv",
3685   /* 76 */  "fidiv",
3686   /* 77 */  "fidiv",
3687   /* 78 */  "fidivr",
3688   /* 79 */  "fidivr",
3689   /* 7a */  "fidivr",
3690   /* 7b */  "fidivr",
3691   /* 7c */  "fidivr",
3692   /* 7d */  "fidivr",
3693   /* 7e */  "fidivr",
3694   /* 7f */  "fidivr",
3695   /* 80 */  "fiadd",
3696   /* 81 */  "fiadd",
3697   /* 82 */  "fiadd",
3698   /* 83 */  "fiadd",
3699   /* 84 */  "fiadd",
3700   /* 85 */  "fiadd",
3701   /* 86 */  "fiadd",
3702   /* 87 */  "fiadd",
3703   /* 88 */  "fimul",
3704   /* 89 */  "fimul",
3705   /* 8a */  "fimul",
3706   /* 8b */  "fimul",
3707   /* 8c */  "fimul",
3708   /* 8d */  "fimul",
3709   /* 8e */  "fimul",
3710   /* 8f */  "fimul",
3711   /* 90 */  "ficom",
3712   /* 91 */  "ficom",
3713   /* 92 */  "ficom",
3714   /* 93 */  "ficom",
3715   /* 94 */  "ficom",
3716   /* 95 */  "ficom",
3717   /* 96 */  "ficom",
3718   /* 97 */  "ficom",
3719   /* 98 */  "ficomp",
3720   /* 99 */  "ficomp",
3721   /* 9a */  "ficomp",
3722   /* 9b */  "ficomp",
3723   /* 9c */  "ficomp",
3724   /* 9d */  "ficomp",
3725   /* 9e */  "ficomp",
3726   /* 9f */  "ficomp",
3727   /* a0 */  "fisub",
3728   /* a1 */  "fisub",
3729   /* a2 */  "fisub",
3730   /* a3 */  "fisub",
3731   /* a4 */  "fisub",
3732   /* a5 */  "fisub",
3733   /* a6 */  "fisub",
3734   /* a7 */  "fisub",
3735   /* a8 */  "fisubr",
3736   /* a9 */  "fisubr",
3737   /* aa */  "fisubr",
3738   /* ab */  "fisubr",
3739   /* ac */  "fisubr",
3740   /* ad */  "fisubr",
3741   /* ae */  "fisubr",
3742   /* af */  "fisubr",
3743   /* b0 */  "fidiv",
3744   /* b1 */  "fidiv",
3745   /* b2 */  "fidiv",
3746   /* b3 */  "fidiv",
3747   /* b4 */  "fidiv",
3748   /* b5 */  "fidiv",
3749   /* b6 */  "fidiv",
3750   /* b7 */  "fidiv",
3751   /* b8 */  "fidivr",
3752   /* b9 */  "fidivr",
3753   /* ba */  "fidivr",
3754   /* bb */  "fidivr",
3755   /* bc */  "fidivr",
3756   /* bd */  "fidivr",
3757   /* be */  "fidivr",
3758   /* bf */  "fidivr",
3759   /* c0 */  "fcmovb",
3760   /* c1 */  "fcmovb",
3761   /* c2 */  "fcmovb",
3762   /* c3 */  "fcmovb",
3763   /* c4 */  "fcmovb",
3764   /* c5 */  "fcmovb",
3765   /* c6 */  "fcmovb",
3766   /* c7 */  "fcmovb",
3767   /* c8 */  "fcmove",
3768   /* c9 */  "fcmove",
3769   /* ca */  "fcmove",
3770   /* cb */  "fcmove",
3771   /* cc */  "fcmove",
3772   /* cd */  "fcmove",
3773   /* ce */  "fcmove",
3774   /* cf */  "fcmove",
3775   /* d0 */  "fcmovbe",
3776   /* d1 */  "fcmovbe",
3777   /* d2 */  "fcmovbe",
3778   /* d3 */  "fcmovbe",
3779   /* d4 */  "fcmovbe",
3780   /* d5 */  "fcmovbe",
3781   /* d6 */  "fcmovbe",
3782   /* d7 */  "fcmovbe",
3783   /* d8 */  "fcmovu",
3784   /* d9 */  "fcmovu",
3785   /* da */  "fcmovu",
3786   /* db */  "fcmovu",
3787   /* dc */  "fcmovu",
3788   /* dd */  "fcmovu",
3789   /* de */  "fcmovu",
3790   /* df */  "fcmovu",
3791   /* e0 */  "invalid",
3792   /* e1 */  "invalid",
3793   /* e2 */  "invalid",
3794   /* e3 */  "invalid",
3795   /* e4 */  "invalid",
3796   /* e5 */  "invalid",
3797   /* e6 */  "invalid",
3798   /* e7 */  "invalid",
3799   /* e8 */  "invalid",
3800   /* e9 */  "fucompp",
3801   /* ea */  "invalid",
3802   /* eb */  "invalid",
3803   /* ec */  "invalid",
3804   /* ed */  "invalid",
3805   /* ee */  "invalid",
3806   /* ef */  "invalid",
3807   /* f0 */  "invalid",
3808   /* f1 */  "invalid",
3809   /* f2 */  "invalid",
3810   /* f3 */  "invalid",
3811   /* f4 */  "invalid",
3812   /* f5 */  "invalid",
3813   /* f6 */  "invalid",
3814   /* f7 */  "invalid",
3815   /* f8 */  "invalid",
3816   /* f9 */  "invalid",
3817   /* fa */  "invalid",
3818   /* fb */  "invalid",
3819   /* fc */  "invalid",
3820   /* fd */  "invalid",
3821   /* fe */  "invalid",
3822   /* ff */  "invalid",
3823 };
3824
3825 static const char *kDisasm87DB[NCDTABLESIZE] = {
3826   /* 00 */  "fild",
3827   /* 01 */  "fild",
3828   /* 02 */  "fild",
3829   /* 03 */  "fild",
3830   /* 04 */  "fild",
3831   /* 05 */  "fild",
3832   /* 06 */  "fild",
3833   /* 07 */  "fild",
3834   /* 08 */  "fisttp",
3835   /* 09 */  "fisttp",
3836   /* 0a */  "fisttp",
3837   /* 0b */  "fisttp",
3838   /* 0c */  "fisttp",
3839   /* 0d */  "fisttp",
3840   /* 0e */  "fisttp",
3841   /* 0f */  "fisttp",
3842   /* 10 */  "fist",
3843   /* 11 */  "fist",
3844   /* 12 */  "fist",
3845   /* 13 */  "fist",
3846   /* 14 */  "fist",
3847   /* 15 */  "fist",
3848   /* 16 */  "fist",
3849   /* 17 */  "fist",
3850   /* 18 */  "fistp",
3851   /* 19 */  "fistp",
3852   /* 1a */  "fistp",
3853   /* 1b */  "fistp",
3854   /* 1c */  "fistp",
3855   /* 1d */  "fistp",
3856   /* 1e */  "fistp",
3857   /* 1f */  "fistp",
3858   /* 20 */  "invalid",
3859   /* 21 */  "invalid",
3860   /* 22 */  "invalid",
3861   /* 23 */  "invalid",
3862   /* 24 */  "invalid",
3863   /* 25 */  "invalid",
3864   /* 26 */  "invalid",
3865   /* 27 */  "invalid",
3866   /* 28 */  "fld",
3867   /* 29 */  "fld",
3868   /* 2a */  "fld",
3869   /* 2b */  "fld",
3870   /* 2c */  "fld",
3871   /* 2d */  "fld",
3872   /* 2e */  "fld",
3873   /* 2f */  "fld",
3874   /* 30 */  "invalid",
3875   /* 31 */  "invalid",
3876   /* 32 */  "invalid",
3877   /* 33 */  "invalid",
3878   /* 34 */  "invalid",
3879   /* 35 */  "invalid",
3880   /* 36 */  "invalid",
3881   /* 37 */  "invalid",
3882   /* 38 */  "fstp",
3883   /* 39 */  "fstp",
3884   /* 3a */  "fstp",
3885   /* 3b */  "fstp",
3886   /* 3c */  "fstp",
3887   /* 3d */  "fstp",
3888   /* 3e */  "fstp",
3889   /* 3f */  "fstp",
3890   /* 40 */  "fild",
3891   /* 41 */  "fild",
3892   /* 42 */  "fild",
3893   /* 43 */  "fild",
3894   /* 44 */  "fild",
3895   /* 45 */  "fild",
3896   /* 46 */  "fild",
3897   /* 47 */  "fild",
3898   /* 48 */  "fisttp",
3899   /* 49 */  "fisttp",
3900   /* 4a */  "fisttp",
3901   /* 4b */  "fisttp",
3902   /* 4c */  "fisttp",
3903   /* 4d */  "fisttp",
3904   /* 4e */  "fisttp",
3905   /* 4f */  "fisttp",
3906   /* 50 */  "fist",
3907   /* 51 */  "fist",
3908   /* 52 */  "fist",
3909   /* 53 */  "fist",
3910   /* 54 */  "fist",
3911   /* 55 */  "fist",
3912   /* 56 */  "fist",
3913   /* 57 */  "fist",
3914   /* 58 */  "fistp",
3915   /* 59 */  "fistp",
3916   /* 5a */  "fistp",
3917   /* 5b */  "fistp",
3918   /* 5c */  "fistp",
3919   /* 5d */  "fistp",
3920   /* 5e */  "fistp",
3921   /* 5f */  "fistp",
3922   /* 60 */  "invalid",
3923   /* 61 */  "invalid",
3924   /* 62 */  "invalid",
3925   /* 63 */  "invalid",
3926   /* 64 */  "invalid",
3927   /* 65 */  "invalid",
3928   /* 66 */  "invalid",
3929   /* 67 */  "invalid",
3930   /* 68 */  "fld",
3931   /* 69 */  "fld",
3932   /* 6a */  "fld",
3933   /* 6b */  "fld",
3934   /* 6c */  "fld",
3935   /* 6d */  "fld",
3936   /* 6e */  "fld",
3937   /* 6f */  "fld",
3938   /* 70 */  "invalid",
3939   /* 71 */  "invalid",
3940   /* 72 */  "invalid",
3941   /* 73 */  "invalid",
3942   /* 74 */  "invalid",
3943   /* 75 */  "invalid",
3944   /* 76 */  "invalid",
3945   /* 77 */  "invalid",
3946   /* 78 */  "fstp",
3947   /* 79 */  "fstp",
3948   /* 7a */  "fstp",
3949   /* 7b */  "fstp",
3950   /* 7c */  "fstp",
3951   /* 7d */  "fstp",
3952   /* 7e */  "fstp",
3953   /* 7f */  "fstp",
3954   /* 80 */  "fild",
3955   /* 81 */  "fild",
3956   /* 82 */  "fild",
3957   /* 83 */  "fild",
3958   /* 84 */  "fild",
3959   /* 85 */  "fild",
3960   /* 86 */  "fild",
3961   /* 87 */  "fild",
3962   /* 88 */  "fisttp",
3963   /* 89 */  "fisttp",
3964   /* 8a */  "fisttp",
3965   /* 8b */  "fisttp",
3966   /* 8c */  "fisttp",
3967   /* 8d */  "fisttp",
3968   /* 8e */  "fisttp",
3969   /* 8f */  "fisttp",
3970   /* 90 */  "fist",
3971   /* 91 */  "fist",
3972   /* 92 */  "fist",
3973   /* 93 */  "fist",
3974   /* 94 */  "fist",
3975   /* 95 */  "fist",
3976   /* 96 */  "fist",
3977   /* 97 */  "fist",
3978   /* 98 */  "fistp",
3979   /* 99 */  "fistp",
3980   /* 9a */  "fistp",
3981   /* 9b */  "fistp",
3982   /* 9c */  "fistp",
3983   /* 9d */  "fistp",
3984   /* 9e */  "fistp",
3985   /* 9f */  "fistp",
3986   /* a0 */  "invalid",
3987   /* a1 */  "invalid",
3988   /* a2 */  "invalid",
3989   /* a3 */  "invalid",
3990   /* a4 */  "invalid",
3991   /* a5 */  "invalid",
3992   /* a6 */  "invalid",
3993   /* a7 */  "invalid",
3994   /* a8 */  "fld",
3995   /* a9 */  "fld",
3996   /* aa */  "fld",
3997   /* ab */  "fld",
3998   /* ac */  "fld",
3999   /* ad */  "fld",
4000   /* ae */  "fld",
4001   /* af */  "fld",
4002   /* b0 */  "invalid",
4003   /* b1 */  "invalid",
4004   /* b2 */  "invalid",
4005   /* b3 */  "invalid",
4006   /* b4 */  "invalid",
4007   /* b5 */  "invalid",
4008   /* b6 */  "invalid",
4009   /* b7 */  "invalid",
4010   /* b8 */  "fstp",
4011   /* b9 */  "fstp",
4012   /* ba */  "fstp",
4013   /* bb */  "fstp",
4014   /* bc */  "fstp",
4015   /* bd */  "fstp",
4016   /* be */  "fstp",
4017   /* bf */  "fstp",
4018   /* c0 */  "fcmovnb",
4019   /* c1 */  "fcmovnb",
4020   /* c2 */  "fcmovnb",
4021   /* c3 */  "fcmovnb",
4022   /* c4 */  "fcmovnb",
4023   /* c5 */  "fcmovnb",
4024   /* c6 */  "fcmovnb",
4025   /* c7 */  "fcmovnb",
4026   /* c8 */  "fcmovne",
4027   /* c9 */  "fcmovne",
4028   /* ca */  "fcmovne",
4029   /* cb */  "fcmovne",
4030   /* cc */  "fcmovne",
4031   /* cd */  "fcmovne",
4032   /* ce */  "fcmovne",
4033   /* cf */  "fcmovne",
4034   /* d0 */  "fcmovnbe",
4035   /* d1 */  "fcmovnbe",
4036   /* d2 */  "fcmovnbe",
4037   /* d3 */  "fcmovnbe",
4038   /* d4 */  "fcmovnbe",
4039   /* d5 */  "fcmovnbe",
4040   /* d6 */  "fcmovnbe",
4041   /* d7 */  "fcmovnbe",
4042   /* d8 */  "fcmovnu",
4043   /* d9 */  "fcmovnu",
4044   /* da */  "fcmovnu",
4045   /* db */  "fcmovnu",
4046   /* dc */  "fcmovnu",
4047   /* dd */  "fcmovnu",
4048   /* de */  "fcmovnu",
4049   /* df */  "fcmovnu",
4050   /* e0 */  "invalid",
4051   /* e1 */  "invalid",
4052   /* e2 */  "fnclex",
4053   /* e3 */  "fninit",
4054   /* e4 */  "invalid",
4055   /* e5 */  "invalid",
4056   /* e6 */  "invalid",
4057   /* e7 */  "invalid",
4058   /* e8 */  "fucomi",
4059   /* e9 */  "fucomi",
4060   /* ea */  "fucomi",
4061   /* eb */  "fucomi",
4062   /* ec */  "fucomi",
4063   /* ed */  "fucomi",
4064   /* ee */  "fucomi",
4065   /* ef */  "fucomi",
4066   /* f0 */  "fcomi",
4067   /* f1 */  "fcomi",
4068   /* f2 */  "fcomi",
4069   /* f3 */  "fcomi",
4070   /* f4 */  "fcomi",
4071   /* f5 */  "fcomi",
4072   /* f6 */  "fcomi",
4073   /* f7 */  "fcomi",
4074   /* f8 */  "invalid",
4075   /* f9 */  "invalid",
4076   /* fa */  "invalid",
4077   /* fb */  "invalid",
4078   /* fc */  "invalid",
4079   /* fd */  "invalid",
4080   /* fe */  "invalid",
4081   /* ff */  "invalid",
4082 };
4083
4084 static const char *kDisasm87DC[NCDTABLESIZE] = {
4085   /* 00 */  "fadd",
4086   /* 01 */  "fadd",
4087   /* 02 */  "fadd",
4088   /* 03 */  "fadd",
4089   /* 04 */  "fadd",
4090   /* 05 */  "fadd",
4091   /* 06 */  "fadd",
4092   /* 07 */  "fadd",
4093   /* 08 */  "fmul",
4094   /* 09 */  "fmul",
4095   /* 0a */  "fmul",
4096   /* 0b */  "fmul",
4097   /* 0c */  "fmul",
4098   /* 0d */  "fmul",
4099   /* 0e */  "fmul",
4100   /* 0f */  "fmul",
4101   /* 10 */  "fcom",
4102   /* 11 */  "fcom",
4103   /* 12 */  "fcom",
4104   /* 13 */  "fcom",
4105   /* 14 */  "fcom",
4106   /* 15 */  "fcom",
4107   /* 16 */  "fcom",
4108   /* 17 */  "fcom",
4109   /* 18 */  "fcomp",
4110   /* 19 */  "fcomp",
4111   /* 1a */  "fcomp",
4112   /* 1b */  "fcomp",
4113   /* 1c */  "fcomp",
4114   /* 1d */  "fcomp",
4115   /* 1e */  "fcomp",
4116   /* 1f */  "fcomp",
4117   /* 20 */  "fsub",
4118   /* 21 */  "fsub",
4119   /* 22 */  "fsub",
4120   /* 23 */  "fsub",
4121   /* 24 */  "fsub",
4122   /* 25 */  "fsub",
4123   /* 26 */  "fsub",
4124   /* 27 */  "fsub",
4125   /* 28 */  "fsubr",
4126   /* 29 */  "fsubr",
4127   /* 2a */  "fsubr",
4128   /* 2b */  "fsubr",
4129   /* 2c */  "fsubr",
4130   /* 2d */  "fsubr",
4131   /* 2e */  "fsubr",
4132   /* 2f */  "fsubr",
4133   /* 30 */  "fdiv",
4134   /* 31 */  "fdiv",
4135   /* 32 */  "fdiv",
4136   /* 33 */  "fdiv",
4137   /* 34 */  "fdiv",
4138   /* 35 */  "fdiv",
4139   /* 36 */  "fdiv",
4140   /* 37 */  "fdiv",
4141   /* 38 */  "fdivr",
4142   /* 39 */  "fdivr",
4143   /* 3a */  "fdivr",
4144   /* 3b */  "fdivr",
4145   /* 3c */  "fdivr",
4146   /* 3d */  "fdivr",
4147   /* 3e */  "fdivr",
4148   /* 3f */  "fdivr",
4149   /* 40 */  "fadd",
4150   /* 41 */  "fadd",
4151   /* 42 */  "fadd",
4152   /* 43 */  "fadd",
4153   /* 44 */  "fadd",
4154   /* 45 */  "fadd",
4155   /* 46 */  "fadd",
4156   /* 47 */  "fadd",
4157   /* 48 */  "fmul",
4158   /* 49 */  "fmul",
4159   /* 4a */  "fmul",
4160   /* 4b */  "fmul",
4161   /* 4c */  "fmul",
4162   /* 4d */  "fmul",
4163   /* 4e */  "fmul",
4164   /* 4f */  "fmul",
4165   /* 50 */  "fcom",
4166   /* 51 */  "fcom",
4167   /* 52 */  "fcom",
4168   /* 53 */  "fcom",
4169   /* 54 */  "fcom",
4170   /* 55 */  "fcom",
4171   /* 56 */  "fcom",
4172   /* 57 */  "fcom",
4173   /* 58 */  "fcomp",
4174   /* 59 */  "fcomp",
4175   /* 5a */  "fcomp",
4176   /* 5b */  "fcomp",
4177   /* 5c */  "fcomp",
4178   /* 5d */  "fcomp",
4179   /* 5e */  "fcomp",
4180   /* 5f */  "fcomp",
4181   /* 60 */  "fsub",
4182   /* 61 */  "fsub",
4183   /* 62 */  "fsub",
4184   /* 63 */  "fsub",
4185   /* 64 */  "fsub",
4186   /* 65 */  "fsub",
4187   /* 66 */  "fsub",
4188   /* 67 */  "fsub",
4189   /* 68 */  "fsubr",
4190   /* 69 */  "fsubr",
4191   /* 6a */  "fsubr",
4192   /* 6b */  "fsubr",
4193   /* 6c */  "fsubr",
4194   /* 6d */  "fsubr",
4195   /* 6e */  "fsubr",
4196   /* 6f */  "fsubr",
4197   /* 70 */  "fdiv",
4198   /* 71 */  "fdiv",
4199   /* 72 */  "fdiv",
4200   /* 73 */  "fdiv",
4201   /* 74 */  "fdiv",
4202   /* 75 */  "fdiv",
4203   /* 76 */  "fdiv",
4204   /* 77 */  "fdiv",
4205   /* 78 */  "fdivr",
4206   /* 79 */  "fdivr",
4207   /* 7a */  "fdivr",
4208   /* 7b */  "fdivr",
4209   /* 7c */  "fdivr",
4210   /* 7d */  "fdivr",
4211   /* 7e */  "fdivr",
4212   /* 7f */  "fdivr",
4213   /* 80 */  "fadd",
4214   /* 81 */  "fadd",
4215   /* 82 */  "fadd",
4216   /* 83 */  "fadd",
4217   /* 84 */  "fadd",
4218   /* 85 */  "fadd",
4219   /* 86 */  "fadd",
4220   /* 87 */  "fadd",
4221   /* 88 */  "fmul",
4222   /* 89 */  "fmul",
4223   /* 8a */  "fmul",
4224   /* 8b */  "fmul",
4225   /* 8c */  "fmul",
4226   /* 8d */  "fmul",
4227   /* 8e */  "fmul",
4228   /* 8f */  "fmul",
4229   /* 90 */  "fcom",
4230   /* 91 */  "fcom",
4231   /* 92 */  "fcom",
4232   /* 93 */  "fcom",
4233   /* 94 */  "fcom",
4234   /* 95 */  "fcom",
4235   /* 96 */  "fcom",
4236   /* 97 */  "fcom",
4237   /* 98 */  "fcomp",
4238   /* 99 */  "fcomp",
4239   /* 9a */  "fcomp",
4240   /* 9b */  "fcomp",
4241   /* 9c */  "fcomp",
4242   /* 9d */  "fcomp",
4243   /* 9e */  "fcomp",
4244   /* 9f */  "fcomp",
4245   /* a0 */  "fsub",
4246   /* a1 */  "fsub",
4247   /* a2 */  "fsub",
4248   /* a3 */  "fsub",
4249   /* a4 */  "fsub",
4250   /* a5 */  "fsub",
4251   /* a6 */  "fsub",
4252   /* a7 */  "fsub",
4253   /* a8 */  "fsubr",
4254   /* a9 */  "fsubr",
4255   /* aa */  "fsubr",
4256   /* ab */  "fsubr",
4257   /* ac */  "fsubr",
4258   /* ad */  "fsubr",
4259   /* ae */  "fsubr",
4260   /* af */  "fsubr",
4261   /* b0 */  "fdiv",
4262   /* b1 */  "fdiv",
4263   /* b2 */  "fdiv",
4264   /* b3 */  "fdiv",
4265   /* b4 */  "fdiv",
4266   /* b5 */  "fdiv",
4267   /* b6 */  "fdiv",
4268   /* b7 */  "fdiv",
4269   /* b8 */  "fdivr",
4270   /* b9 */  "fdivr",
4271   /* ba */  "fdivr",
4272   /* bb */  "fdivr",
4273   /* bc */  "fdivr",
4274   /* bd */  "fdivr",
4275   /* be */  "fdivr",
4276   /* bf */  "fdivr",
4277   /* c0 */  "fadd",
4278   /* c1 */  "fadd",
4279   /* c2 */  "fadd",
4280   /* c3 */  "fadd",
4281   /* c4 */  "fadd",
4282   /* c5 */  "fadd",
4283   /* c6 */  "fadd",
4284   /* c7 */  "fadd",
4285   /* c8 */  "fmul",
4286   /* c9 */  "fmul",
4287   /* ca */  "fmul",
4288   /* cb */  "fmul",
4289   /* cc */  "fmul",
4290   /* cd */  "fmul",
4291   /* ce */  "fmul",
4292   /* cf */  "fmul",
4293   /* d0 */  "invalid",
4294   /* d1 */  "invalid",
4295   /* d2 */  "invalid",
4296   /* d3 */  "invalid",
4297   /* d4 */  "invalid",
4298   /* d5 */  "invalid",
4299   /* d6 */  "invalid",
4300   /* d7 */  "invalid",
4301   /* d8 */  "invalid",
4302   /* d9 */  "invalid",
4303   /* da */  "invalid",
4304   /* db */  "invalid",
4305   /* dc */  "invalid",
4306   /* dd */  "invalid",
4307   /* de */  "invalid",
4308   /* df */  "invalid",
4309   /* e0 */  "fsubr",
4310   /* e1 */  "fsubr",
4311   /* e2 */  "fsubr",
4312   /* e3 */  "fsubr",
4313   /* e4 */  "fsubr",
4314   /* e5 */  "fsubr",
4315   /* e6 */  "fsubr",
4316   /* e7 */  "fsubr",
4317   /* e8 */  "fsub",
4318   /* e9 */  "fsub",
4319   /* ea */  "fsub",
4320   /* eb */  "fsub",
4321   /* ec */  "fsub",
4322   /* ed */  "fsub",
4323   /* ee */  "fsub",
4324   /* ef */  "fsub",
4325   /* f0 */  "fdivr",
4326   /* f1 */  "fdivr",
4327   /* f2 */  "fdivr",
4328   /* f3 */  "fdivr",
4329   /* f4 */  "fdivr",
4330   /* f5 */  "fdivr",
4331   /* f6 */  "fdivr",
4332   /* f7 */  "fdivr",
4333   /* f8 */  "fdiv",
4334   /* f9 */  "fdiv",
4335   /* fa */  "fdiv",
4336   /* fb */  "fdiv",
4337   /* fc */  "fdiv",
4338   /* fd */  "fdiv",
4339   /* fe */  "fdiv",
4340   /* ff */  "fdiv",
4341 };
4342
4343 static const char *kDisasm87DD[NCDTABLESIZE] = {
4344   /* 00 */  "fld",
4345   /* 01 */  "fld",
4346   /* 02 */  "fld",
4347   /* 03 */  "fld",
4348   /* 04 */  "fld",
4349   /* 05 */  "fld",
4350   /* 06 */  "fld",
4351   /* 07 */  "fld",
4352   /* 08 */  "fisttp",
4353   /* 09 */  "fisttp",
4354   /* 0a */  "fisttp",
4355   /* 0b */  "fisttp",
4356   /* 0c */  "fisttp",
4357   /* 0d */  "fisttp",
4358   /* 0e */  "fisttp",
4359   /* 0f */  "fisttp",
4360   /* 10 */  "fst",
4361   /* 11 */  "fst",
4362   /* 12 */  "fst",
4363   /* 13 */  "fst",
4364   /* 14 */  "fst",
4365   /* 15 */  "fst",
4366   /* 16 */  "fst",
4367   /* 17 */  "fst",
4368   /* 18 */  "fstp",
4369   /* 19 */  "fstp",
4370   /* 1a */  "fstp",
4371   /* 1b */  "fstp",
4372   /* 1c */  "fstp",
4373   /* 1d */  "fstp",
4374   /* 1e */  "fstp",
4375   /* 1f */  "fstp",
4376   /* 20 */  "frstor",
4377   /* 21 */  "frstor",
4378   /* 22 */  "frstor",
4379   /* 23 */  "frstor",
4380   /* 24 */  "frstor",
4381   /* 25 */  "frstor",
4382   /* 26 */  "frstor",
4383   /* 27 */  "frstor",
4384   /* 28 */  "invalid",
4385   /* 29 */  "invalid",
4386   /* 2a */  "invalid",
4387   /* 2b */  "invalid",
4388   /* 2c */  "invalid",
4389   /* 2d */  "invalid",
4390   /* 2e */  "invalid",
4391   /* 2f */  "invalid",
4392   /* 30 */  "fnsave",
4393   /* 31 */  "fnsave",
4394   /* 32 */  "fnsave",
4395   /* 33 */  "fnsave",
4396   /* 34 */  "fnsave",
4397   /* 35 */  "fnsave",
4398   /* 36 */  "fnsave",
4399   /* 37 */  "fnsave",
4400   /* 38 */  "fnstsw",
4401   /* 39 */  "fnstsw",
4402   /* 3a */  "fnstsw",
4403   /* 3b */  "fnstsw",
4404   /* 3c */  "fnstsw",
4405   /* 3d */  "fnstsw",
4406   /* 3e */  "fnstsw",
4407   /* 3f */  "fnstsw",
4408   /* 40 */  "fld",
4409   /* 41 */  "fld",
4410   /* 42 */  "fld",
4411   /* 43 */  "fld",
4412   /* 44 */  "fld",
4413   /* 45 */  "fld",
4414   /* 46 */  "fld",
4415   /* 47 */  "fld",
4416   /* 48 */  "fisttp",
4417   /* 49 */  "fisttp",
4418   /* 4a */  "fisttp",
4419   /* 4b */  "fisttp",
4420   /* 4c */  "fisttp",
4421   /* 4d */  "fisttp",
4422   /* 4e */  "fisttp",
4423   /* 4f */  "fisttp",
4424   /* 50 */  "fst",
4425   /* 51 */  "fst",
4426   /* 52 */  "fst",
4427   /* 53 */  "fst",
4428   /* 54 */  "fst",
4429   /* 55 */  "fst",
4430   /* 56 */  "fst",
4431   /* 57 */  "fst",
4432   /* 58 */  "fstp",
4433   /* 59 */  "fstp",
4434   /* 5a */  "fstp",
4435   /* 5b */  "fstp",
4436   /* 5c */  "fstp",
4437   /* 5d */  "fstp",
4438   /* 5e */  "fstp",
4439   /* 5f */  "fstp",
4440   /* 60 */  "frstor",
4441   /* 61 */  "frstor",
4442   /* 62 */  "frstor",
4443   /* 63 */  "frstor",
4444   /* 64 */  "frstor",
4445   /* 65 */  "frstor",
4446   /* 66 */  "frstor",
4447   /* 67 */  "frstor",
4448   /* 68 */  "invalid",
4449   /* 69 */  "invalid",
4450   /* 6a */  "invalid",
4451   /* 6b */  "invalid",
4452   /* 6c */  "invalid",
4453   /* 6d */  "invalid",
4454   /* 6e */  "invalid",
4455   /* 6f */  "invalid",
4456   /* 70 */  "fnsave",
4457   /* 71 */  "fnsave",
4458   /* 72 */  "fnsave",
4459   /* 73 */  "fnsave",
4460   /* 74 */  "fnsave",
4461   /* 75 */  "fnsave",
4462   /* 76 */  "fnsave",
4463   /* 77 */  "fnsave",
4464   /* 78 */  "fnstsw",
4465   /* 79 */  "fnstsw",
4466   /* 7a */  "fnstsw",
4467   /* 7b */  "fnstsw",
4468   /* 7c */  "fnstsw",
4469   /* 7d */  "fnstsw",
4470   /* 7e */  "fnstsw",
4471   /* 7f */  "fnstsw",
4472   /* 80 */  "fld",
4473   /* 81 */  "fld",
4474   /* 82 */  "fld",
4475   /* 83 */  "fld",
4476   /* 84 */  "fld",
4477   /* 85 */  "fld",
4478   /* 86 */  "fld",
4479   /* 87 */  "fld",
4480   /* 88 */  "fisttp",
4481   /* 89 */  "fisttp",
4482   /* 8a */  "fisttp",
4483   /* 8b */  "fisttp",
4484   /* 8c */  "fisttp",
4485   /* 8d */  "fisttp",
4486   /* 8e */  "fisttp",
4487   /* 8f */  "fisttp",
4488   /* 90 */  "fst",
4489   /* 91 */  "fst",
4490   /* 92 */  "fst",
4491   /* 93 */  "fst",
4492   /* 94 */  "fst",
4493   /* 95 */  "fst",
4494   /* 96 */  "fst",
4495   /* 97 */  "fst",
4496   /* 98 */  "fstp",
4497   /* 99 */  "fstp",
4498   /* 9a */  "fstp",
4499   /* 9b */  "fstp",
4500   /* 9c */  "fstp",
4501   /* 9d */  "fstp",
4502   /* 9e */  "fstp",
4503   /* 9f */  "fstp",
4504   /* a0 */  "frstor",
4505   /* a1 */  "frstor",
4506   /* a2 */  "frstor",
4507   /* a3 */  "frstor",
4508   /* a4 */  "frstor",
4509   /* a5 */  "frstor",
4510   /* a6 */  "frstor",
4511   /* a7 */  "frstor",
4512   /* a8 */  "invalid",
4513   /* a9 */  "invalid",
4514   /* aa */  "invalid",
4515   /* ab */  "invalid",
4516   /* ac */  "invalid",
4517   /* ad */  "invalid",
4518   /* ae */  "invalid",
4519   /* af */  "invalid",
4520   /* b0 */  "fnsave",
4521   /* b1 */  "fnsave",
4522   /* b2 */  "fnsave",
4523   /* b3 */  "fnsave",
4524   /* b4 */  "fnsave",
4525   /* b5 */  "fnsave",
4526   /* b6 */  "fnsave",
4527   /* b7 */  "fnsave",
4528   /* b8 */  "fnstsw",
4529   /* b9 */  "fnstsw",
4530   /* ba */  "fnstsw",
4531   /* bb */  "fnstsw",
4532   /* bc */  "fnstsw",
4533   /* bd */  "fnstsw",
4534   /* be */  "fnstsw",
4535   /* bf */  "fnstsw",
4536   /* c0 */  "ffree",
4537   /* c1 */  "ffree",
4538   /* c2 */  "ffree",
4539   /* c3 */  "ffree",
4540   /* c4 */  "ffree",
4541   /* c5 */  "ffree",
4542   /* c6 */  "ffree",
4543   /* c7 */  "ffree",
4544   /* c8 */  "invalid",
4545   /* c9 */  "invalid",
4546   /* ca */  "invalid",
4547   /* cb */  "invalid",
4548   /* cc */  "invalid",
4549   /* cd */  "invalid",
4550   /* ce */  "invalid",
4551   /* cf */  "invalid",
4552   /* d0 */  "fst",
4553   /* d1 */  "fst",
4554   /* d2 */  "fst",
4555   /* d3 */  "fst",
4556   /* d4 */  "fst",
4557   /* d5 */  "fst",
4558   /* d6 */  "fst",
4559   /* d7 */  "fst",
4560   /* d8 */  "fstp",
4561   /* d9 */  "fstp",
4562   /* da */  "fstp",
4563   /* db */  "fstp",
4564   /* dc */  "fstp",
4565   /* dd */  "fstp",
4566   /* de */  "fstp",
4567   /* df */  "fstp",
4568   /* e0 */  "fucom",
4569   /* e1 */  "fucom",
4570   /* e2 */  "fucom",
4571   /* e3 */  "fucom",
4572   /* e4 */  "fucom",
4573   /* e5 */  "fucom",
4574   /* e6 */  "fucom",
4575   /* e7 */  "fucom",
4576   /* e8 */  "fucomp",
4577   /* e9 */  "fucomp",
4578   /* ea */  "fucomp",
4579   /* eb */  "fucomp",
4580   /* ec */  "fucomp",
4581   /* ed */  "fucomp",
4582   /* ee */  "fucomp",
4583   /* ef */  "fucomp",
4584   /* f0 */  "invalid",
4585   /* f1 */  "invalid",
4586   /* f2 */  "invalid",
4587   /* f3 */  "invalid",
4588   /* f4 */  "invalid",
4589   /* f5 */  "invalid",
4590   /* f6 */  "invalid",
4591   /* f7 */  "invalid",
4592   /* f8 */  "invalid",
4593   /* f9 */  "invalid",
4594   /* fa */  "invalid",
4595   /* fb */  "invalid",
4596   /* fc */  "invalid",
4597   /* fd */  "invalid",
4598   /* fe */  "invalid",
4599   /* ff */  "invalid",
4600 };
4601
4602 static const char *kDisasm87DE[NCDTABLESIZE] = {
4603   /* 00 */  "fiadd",
4604   /* 01 */  "fiadd",
4605   /* 02 */  "fiadd",
4606   /* 03 */  "fiadd",
4607   /* 04 */  "fiadd",
4608   /* 05 */  "fiadd",
4609   /* 06 */  "fiadd",
4610   /* 07 */  "fiadd",
4611   /* 08 */  "fimul",
4612   /* 09 */  "fimul",
4613   /* 0a */  "fimul",
4614   /* 0b */  "fimul",
4615   /* 0c */  "fimul",
4616   /* 0d */  "fimul",
4617   /* 0e */  "fimul",
4618   /* 0f */  "fimul",
4619   /* 10 */  "ficom",
4620   /* 11 */  "ficom",
4621   /* 12 */  "ficom",
4622   /* 13 */  "ficom",
4623   /* 14 */  "ficom",
4624   /* 15 */  "ficom",
4625   /* 16 */  "ficom",
4626   /* 17 */  "ficom",
4627   /* 18 */  "ficomp",
4628   /* 19 */  "ficomp",
4629   /* 1a */  "ficomp",
4630   /* 1b */  "ficomp",
4631   /* 1c */  "ficomp",
4632   /* 1d */  "ficomp",
4633   /* 1e */  "ficomp",
4634   /* 1f */  "ficomp",
4635   /* 20 */  "fisub",
4636   /* 21 */  "fisub",
4637   /* 22 */  "fisub",
4638   /* 23 */  "fisub",
4639   /* 24 */  "fisub",
4640   /* 25 */  "fisub",
4641   /* 26 */  "fisub",
4642   /* 27 */  "fisub",
4643   /* 28 */  "fisubr",
4644   /* 29 */  "fisubr",
4645   /* 2a */  "fisubr",
4646   /* 2b */  "fisubr",
4647   /* 2c */  "fisubr",
4648   /* 2d */  "fisubr",
4649   /* 2e */  "fisubr",
4650   /* 2f */  "fisubr",
4651   /* 30 */  "fidiv",
4652   /* 31 */  "fidiv",
4653   /* 32 */  "fidiv",
4654   /* 33 */  "fidiv",
4655   /* 34 */  "fidiv",
4656   /* 35 */  "fidiv",
4657   /* 36 */  "fidiv",
4658   /* 37 */  "fidiv",
4659   /* 38 */  "fidivr",
4660   /* 39 */  "fidivr",
4661   /* 3a */  "fidivr",
4662   /* 3b */  "fidivr",
4663   /* 3c */  "fidivr",
4664   /* 3d */  "fidivr",
4665   /* 3e */  "fidivr",
4666   /* 3f */  "fidivr",
4667   /* 40 */  "fiadd",
4668   /* 41 */  "fiadd",
4669   /* 42 */  "fiadd",
4670   /* 43 */  "fiadd",
4671   /* 44 */  "fiadd",
4672   /* 45 */  "fiadd",
4673   /* 46 */  "fiadd",
4674   /* 47 */  "fiadd",
4675   /* 48 */  "fimul",
4676   /* 49 */  "fimul",
4677   /* 4a */  "fimul",
4678   /* 4b */  "fimul",
4679   /* 4c */  "fimul",
4680   /* 4d */  "fimul",
4681   /* 4e */  "fimul",
4682   /* 4f */  "fimul",
4683   /* 50 */  "ficom",
4684   /* 51 */  "ficom",
4685   /* 52 */  "ficom",
4686   /* 53 */  "ficom",
4687   /* 54 */  "ficom",
4688   /* 55 */  "ficom",
4689   /* 56 */  "ficom",
4690   /* 57 */  "ficom",
4691   /* 58 */  "ficomp",
4692   /* 59 */  "ficomp",
4693   /* 5a */  "ficomp",
4694   /* 5b */  "ficomp",
4695   /* 5c */  "ficomp",
4696   /* 5d */  "ficomp",
4697   /* 5e */  "ficomp",
4698   /* 5f */  "ficomp",
4699   /* 60 */  "fisub",
4700   /* 61 */  "fisub",
4701   /* 62 */  "fisub",
4702   /* 63 */  "fisub",
4703   /* 64 */  "fisub",
4704   /* 65 */  "fisub",
4705   /* 66 */  "fisub",
4706   /* 67 */  "fisub",
4707   /* 68 */  "fisubr",
4708   /* 69 */  "fisubr",
4709   /* 6a */  "fisubr",
4710   /* 6b */  "fisubr",
4711   /* 6c */  "fisubr",
4712   /* 6d */  "fisubr",
4713   /* 6e */  "fisubr",
4714   /* 6f */  "fisubr",
4715   /* 70 */  "fidiv",
4716   /* 71 */  "fidiv",
4717   /* 72 */  "fidiv",
4718   /* 73 */  "fidiv",
4719   /* 74 */  "fidiv",
4720   /* 75 */  "fidiv",
4721   /* 76 */  "fidiv",
4722   /* 77 */  "fidiv",
4723   /* 78 */  "fidivr",
4724   /* 79 */  "fidivr",
4725   /* 7a */  "fidivr",
4726   /* 7b */  "fidivr",
4727   /* 7c */  "fidivr",
4728   /* 7d */  "fidivr",
4729   /* 7e */  "fidivr",
4730   /* 7f */  "fidivr",
4731   /* 80 */  "fiadd",
4732   /* 81 */  "fiadd",
4733   /* 82 */  "fiadd",
4734   /* 83 */  "fiadd",
4735   /* 84 */  "fiadd",
4736   /* 85 */  "fiadd",
4737   /* 86 */  "fiadd",
4738   /* 87 */  "fiadd",
4739   /* 88 */  "fimul",
4740   /* 89 */  "fimul",
4741   /* 8a */  "fimul",
4742   /* 8b */  "fimul",
4743   /* 8c */  "fimul",
4744   /* 8d */  "fimul",
4745   /* 8e */  "fimul",
4746   /* 8f */  "fimul",
4747   /* 90 */  "ficom",
4748   /* 91 */  "ficom",
4749   /* 92 */  "ficom",
4750   /* 93 */  "ficom",
4751   /* 94 */  "ficom",
4752   /* 95 */  "ficom",
4753   /* 96 */  "ficom",
4754   /* 97 */  "ficom",
4755   /* 98 */  "ficomp",
4756   /* 99 */  "ficomp",
4757   /* 9a */  "ficomp",
4758   /* 9b */  "ficomp",
4759   /* 9c */  "ficomp",
4760   /* 9d */  "ficomp",
4761   /* 9e */  "ficomp",
4762   /* 9f */  "ficomp",
4763   /* a0 */  "fisub",
4764   /* a1 */  "fisub",
4765   /* a2 */  "fisub",
4766   /* a3 */  "fisub",
4767   /* a4 */  "fisub",
4768   /* a5 */  "fisub",
4769   /* a6 */  "fisub",
4770   /* a7 */  "fisub",
4771   /* a8 */  "fisubr",
4772   /* a9 */  "fisubr",
4773   /* aa */  "fisubr",
4774   /* ab */  "fisubr",
4775   /* ac */  "fisubr",
4776   /* ad */  "fisubr",
4777   /* ae */  "fisubr",
4778   /* af */  "fisubr",
4779   /* b0 */  "fidiv",
4780   /* b1 */  "fidiv",
4781   /* b2 */  "fidiv",
4782   /* b3 */  "fidiv",
4783   /* b4 */  "fidiv",
4784   /* b5 */  "fidiv",
4785   /* b6 */  "fidiv",
4786   /* b7 */  "fidiv",
4787   /* b8 */  "fidivr",
4788   /* b9 */  "fidivr",
4789   /* ba */  "fidivr",
4790   /* bb */  "fidivr",
4791   /* bc */  "fidivr",
4792   /* bd */  "fidivr",
4793   /* be */  "fidivr",
4794   /* bf */  "fidivr",
4795   /* c0 */  "faddp",
4796   /* c1 */  "faddp",
4797   /* c2 */  "faddp",
4798   /* c3 */  "faddp",
4799   /* c4 */  "faddp",
4800   /* c5 */  "faddp",
4801   /* c6 */  "faddp",
4802   /* c7 */  "faddp",
4803   /* c8 */  "fmulp",
4804   /* c9 */  "fmulp",
4805   /* ca */  "fmulp",
4806   /* cb */  "fmulp",
4807   /* cc */  "fmulp",
4808   /* cd */  "fmulp",
4809   /* ce */  "fmulp",
4810   /* cf */  "fmulp",
4811   /* d0 */  "invalid",
4812   /* d1 */  "invalid",
4813   /* d2 */  "invalid",
4814   /* d3 */  "invalid",
4815   /* d4 */  "invalid",
4816   /* d5 */  "invalid",
4817   /* d6 */  "invalid",
4818   /* d7 */  "invalid",
4819   /* d8 */  "invalid",
4820   /* d9 */  "fcompp",
4821   /* da */  "invalid",
4822   /* db */  "invalid",
4823   /* dc */  "invalid",
4824   /* dd */  "invalid",
4825   /* de */  "invalid",
4826   /* df */  "invalid",
4827   /* e0 */  "fsubrp",
4828   /* e1 */  "fsubrp",
4829   /* e2 */  "fsubrp",
4830   /* e3 */  "fsubrp",
4831   /* e4 */  "fsubrp",
4832   /* e5 */  "fsubrp",
4833   /* e6 */  "fsubrp",
4834   /* e7 */  "fsubrp",
4835   /* e8 */  "fsubp",
4836   /* e9 */  "fsubp",
4837   /* ea */  "fsubp",
4838   /* eb */  "fsubp",
4839   /* ec */  "fsubp",
4840   /* ed */  "fsubp",
4841   /* ee */  "fsubp",
4842   /* ef */  "fsubp",
4843   /* f0 */  "fdivrp",
4844   /* f1 */  "fdivrp",
4845   /* f2 */  "fdivrp",
4846   /* f3 */  "fdivrp",
4847   /* f4 */  "fdivrp",
4848   /* f5 */  "fdivrp",
4849   /* f6 */  "fdivrp",
4850   /* f7 */  "fdivrp",
4851   /* f8 */  "fdivp",
4852   /* f9 */  "fdivp",
4853   /* fa */  "fdivp",
4854   /* fb */  "fdivp",
4855   /* fc */  "fdivp",
4856   /* fd */  "fdivp",
4857   /* fe */  "fdivp",
4858   /* ff */  "fdivp",
4859 };
4860
4861 static const char *kDisasm87DF[NCDTABLESIZE] = {
4862   /* 00 */  "fild",
4863   /* 01 */  "fild",
4864   /* 02 */  "fild",
4865   /* 03 */  "fild",
4866   /* 04 */  "fild",
4867   /* 05 */  "fild",
4868   /* 06 */  "fild",
4869   /* 07 */  "fild",
4870   /* 08 */  "fisttp",
4871   /* 09 */  "fisttp",
4872   /* 0a */  "fisttp",
4873   /* 0b */  "fisttp",
4874   /* 0c */  "fisttp",
4875   /* 0d */  "fisttp",
4876   /* 0e */  "fisttp",
4877   /* 0f */  "fisttp",
4878   /* 10 */  "fist",
4879   /* 11 */  "fist",
4880   /* 12 */  "fist",
4881   /* 13 */  "fist",
4882   /* 14 */  "fist",
4883   /* 15 */  "fist",
4884   /* 16 */  "fist",
4885   /* 17 */  "fist",
4886   /* 18 */  "fistp",
4887   /* 19 */  "fistp",
4888   /* 1a */  "fistp",
4889   /* 1b */  "fistp",
4890   /* 1c */  "fistp",
4891   /* 1d */  "fistp",
4892   /* 1e */  "fistp",
4893   /* 1f */  "fistp",
4894   /* 20 */  "fbld",
4895   /* 21 */  "fbld",
4896   /* 22 */  "fbld",
4897   /* 23 */  "fbld",
4898   /* 24 */  "fbld",
4899   /* 25 */  "fbld",
4900   /* 26 */  "fbld",
4901   /* 27 */  "fbld",
4902   /* 28 */  "fild",
4903   /* 29 */  "fild",
4904   /* 2a */  "fild",
4905   /* 2b */  "fild",
4906   /* 2c */  "fild",
4907   /* 2d */  "fild",
4908   /* 2e */  "fild",
4909   /* 2f */  "fild",
4910   /* 30 */  "fbstp",
4911   /* 31 */  "fbstp",
4912   /* 32 */  "fbstp",
4913   /* 33 */  "fbstp",
4914   /* 34 */  "fbstp",
4915   /* 35 */  "fbstp",
4916   /* 36 */  "fbstp",
4917   /* 37 */  "fbstp",
4918   /* 38 */  "fistp",
4919   /* 39 */  "fistp",
4920   /* 3a */  "fistp",
4921   /* 3b */  "fistp",
4922   /* 3c */  "fistp",
4923   /* 3d */  "fistp",
4924   /* 3e */  "fistp",
4925   /* 3f */  "fistp",
4926   /* 40 */  "fild",
4927   /* 41 */  "fild",
4928   /* 42 */  "fild",
4929   /* 43 */  "fild",
4930   /* 44 */  "fild",
4931   /* 45 */  "fild",
4932   /* 46 */  "fild",
4933   /* 47 */  "fild",
4934   /* 48 */  "fisttp",
4935   /* 49 */  "fisttp",
4936   /* 4a */  "fisttp",
4937   /* 4b */  "fisttp",
4938   /* 4c */  "fisttp",
4939   /* 4d */  "fisttp",
4940   /* 4e */  "fisttp",
4941   /* 4f */  "fisttp",
4942   /* 50 */  "fist",
4943   /* 51 */  "fist",
4944   /* 52 */  "fist",
4945   /* 53 */  "fist",
4946   /* 54 */  "fist",
4947   /* 55 */  "fist",
4948   /* 56 */  "fist",
4949   /* 57 */  "fist",
4950   /* 58 */  "fistp",
4951   /* 59 */  "fistp",
4952   /* 5a */  "fistp",
4953   /* 5b */  "fistp",
4954   /* 5c */  "fistp",
4955   /* 5d */  "fistp",
4956   /* 5e */  "fistp",
4957   /* 5f */  "fistp",
4958   /* 60 */  "fbld",
4959   /* 61 */  "fbld",
4960   /* 62 */  "fbld",
4961   /* 63 */  "fbld",
4962   /* 64 */  "fbld",
4963   /* 65 */  "fbld",
4964   /* 66 */  "fbld",
4965   /* 67 */  "fbld",
4966   /* 68 */  "fild",
4967   /* 69 */  "fild",
4968   /* 6a */  "fild",
4969   /* 6b */  "fild",
4970   /* 6c */  "fild",
4971   /* 6d */  "fild",
4972   /* 6e */  "fild",
4973   /* 6f */  "fild",
4974   /* 70 */  "fbstp",
4975   /* 71 */  "fbstp",
4976   /* 72 */  "fbstp",
4977   /* 73 */  "fbstp",
4978   /* 74 */  "fbstp",
4979   /* 75 */  "fbstp",
4980   /* 76 */  "fbstp",
4981   /* 77 */  "fbstp",
4982   /* 78 */  "fistp",
4983   /* 79 */  "fistp",
4984   /* 7a */  "fistp",
4985   /* 7b */  "fistp",
4986   /* 7c */  "fistp",
4987   /* 7d */  "fistp",
4988   /* 7e */  "fistp",
4989   /* 7f */  "fistp",
4990   /* 80 */  "fild",
4991   /* 81 */  "fild",
4992   /* 82 */  "fild",
4993   /* 83 */  "fild",
4994   /* 84 */  "fild",
4995   /* 85 */  "fild",
4996   /* 86 */  "fild",
4997   /* 87 */  "fild",
4998   /* 88 */  "fisttp",
4999   /* 89 */  "fisttp",
5000   /* 8a */  "fisttp",
5001   /* 8b */  "fisttp",
5002   /* 8c */  "fisttp",
5003   /* 8d */  "fisttp",
5004   /* 8e */  "fisttp",
5005   /* 8f */  "fisttp",
5006   /* 90 */  "fist",
5007   /* 91 */  "fist",
5008   /* 92 */  "fist",
5009   /* 93 */  "fist",
5010   /* 94 */  "fist",
5011   /* 95 */  "fist",
5012   /* 96 */  "fist",
5013   /* 97 */  "fist",
5014   /* 98 */  "fistp",
5015   /* 99 */  "fistp",
5016   /* 9a */  "fistp",
5017   /* 9b */  "fistp",
5018   /* 9c */  "fistp",
5019   /* 9d */  "fistp",
5020   /* 9e */  "fistp",
5021   /* 9f */  "fistp",
5022   /* a0 */  "fbld",
5023   /* a1 */  "fbld",
5024   /* a2 */  "fbld",
5025   /* a3 */  "fbld",
5026   /* a4 */  "fbld",
5027   /* a5 */  "fbld",
5028   /* a6 */  "fbld",
5029   /* a7 */  "fbld",
5030   /* a8 */  "fild",
5031   /* a9 */  "fild",
5032   /* aa */  "fild",
5033   /* ab */  "fild",
5034   /* ac */  "fild",
5035   /* ad */  "fild",
5036   /* ae */  "fild",
5037   /* af */  "fild",
5038   /* b0 */  "fbstp",
5039   /* b1 */  "fbstp",
5040   /* b2 */  "fbstp",
5041   /* b3 */  "fbstp",
5042   /* b4 */  "fbstp",
5043   /* b5 */  "fbstp",
5044   /* b6 */  "fbstp",
5045   /* b7 */  "fbstp",
5046   /* b8 */  "fistp",
5047   /* b9 */  "fistp",
5048   /* ba */  "fistp",
5049   /* bb */  "fistp",
5050   /* bc */  "fistp",
5051   /* bd */  "fistp",
5052   /* be */  "fistp",
5053   /* bf */  "fistp",
5054   /* c0 */  "invalid",
5055   /* c1 */  "invalid",
5056   /* c2 */  "invalid",
5057   /* c3 */  "invalid",
5058   /* c4 */  "invalid",
5059   /* c5 */  "invalid",
5060   /* c6 */  "invalid",
5061   /* c7 */  "invalid",
5062   /* c8 */  "invalid",
5063   /* c9 */  "invalid",
5064   /* ca */  "invalid",
5065   /* cb */  "invalid",
5066   /* cc */  "invalid",
5067   /* cd */  "invalid",
5068   /* ce */  "invalid",
5069   /* cf */  "invalid",
5070   /* d0 */  "invalid",
5071   /* d1 */  "invalid",
5072   /* d2 */  "invalid",
5073   /* d3 */  "invalid",
5074   /* d4 */  "invalid",
5075   /* d5 */  "invalid",
5076   /* d6 */  "invalid",
5077   /* d7 */  "invalid",
5078   /* d8 */  "invalid",
5079   /* d9 */  "invalid",
5080   /* da */  "invalid",
5081   /* db */  "invalid",
5082   /* dc */  "invalid",
5083   /* dd */  "invalid",
5084   /* de */  "invalid",
5085   /* df */  "invalid",
5086   /* e0 */  "fnstsw",
5087   /* e1 */  "invalid",
5088   /* e2 */  "invalid",
5089   /* e3 */  "invalid",
5090   /* e4 */  "invalid",
5091   /* e5 */  "invalid",
5092   /* e6 */  "invalid",
5093   /* e7 */  "invalid",
5094   /* e8 */  "fucomip",
5095   /* e9 */  "fucomip",
5096   /* ea */  "fucomip",
5097   /* eb */  "fucomip",
5098   /* ec */  "fucomip",
5099   /* ed */  "fucomip",
5100   /* ee */  "fucomip",
5101   /* ef */  "fucomip",
5102   /* f0 */  "fcomip",
5103   /* f1 */  "fcomip",
5104   /* f2 */  "fcomip",
5105   /* f3 */  "fcomip",
5106   /* f4 */  "fcomip",
5107   /* f5 */  "fcomip",
5108   /* f6 */  "fcomip",
5109   /* f7 */  "fcomip",
5110   /* f8 */  "invalid",
5111   /* f9 */  "invalid",
5112   /* fa */  "invalid",
5113   /* fb */  "invalid",
5114   /* fc */  "invalid",
5115   /* fd */  "invalid",
5116   /* fe */  "invalid",
5117   /* ff */  "invalid",
5118 };
5119