:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / apps / utils / pice / module / disassemblerdata.h
1 /*++
2
3 Copyright (c) 2000-2001 Goran Devic                                                   
4 Modified (c) 2001 Klaus P. Gerlicher
5
6 Module Name:
7
8     disassembler.h
9
10 Abstract:
11
12     header for disassembler.c
13
14 Environment:
15
16     LINUX 2.2.X
17     Kernel mode only
18
19 Author: 
20
21     Goran Devic                                                   
22
23 Revision History:
24
25   17-Mar-2000:  Original                                        (Goran Devic)                                             
26   05-Jan-2001:  Modified for pICE                               (Klaus P. Gerlicher)
27
28 Copyright notice:
29
30   This file may be distributed under the terms of the GNU Public License.
31
32 BUGS:
33     There is no segment override for _Ap (look the code)
34 --*/
35
36
37 /******************************************************************************
38 *                                                                             *
39 *   Include Files                                                             *
40 *                                                                             *
41 ******************************************************************************/
42
43 #include "disassemblerdefines.h"    // Include its own defines
44
45 /******************************************************************************
46 *                                                                             *
47 *   Define opcode names as ASCIIZ strings                                     *
48 *                                                                             *
49 ******************************************************************************/
50 char* sNames[] = {
51 "",                 /* 0X000 */
52 "AAA",              /* 0X001 */
53 "AAD",              /* 0X002 */
54 "AAM",              /* 0X003 */
55 "AAS",              /* 0X004 */
56 "ADC",              /* 0X005 */
57 "ADD",              /* 0X006 */
58 "AND",              /* 0X007 */
59 "ARPL",             /* 0X008 */
60 "BOUND",            /* 0X009 */
61 "BSF",              /* 0X00A */
62 "BSR",              /* 0X00B */
63 "BT",               /* 0X00C */
64 "BTC",              /* 0X00D */
65 "BTR",              /* 0X00E */
66 "BTS",              /* 0X00F */
67 "CALL",             /* 0X010 */
68 "CBW",              /* 0X011 */
69 "CWDE",             /* 0X012 */
70 "CLC",              /* 0X013 */
71 "CLD",              /* 0X014 */
72 "CLI",              /* 0X015 */
73 "CLTS",             /* 0X016 */
74 "CMC",              /* 0X017 */
75 "CMP",              /* 0X018 */
76 "CMPS",             /* 0X019 */
77 "CMPSB",            /* 0X01A */
78 "CMPSW",            /* 0X01B */
79 "CMPSD",            /* 0X01C */
80 "CWD",              /* 0X01D */
81 "CDQ",              /* 0X01E */
82 "DAA",              /* 0X01F */
83 "DAS",              /* 0X020 */
84 "DEC",              /* 0X021 */
85 "DIV",              /* 0X022 */
86 "ENTER",            /* 0X023 */
87 "HLT",              /* 0X024 */
88 "IDIV",             /* 0X025 */
89 "IMUL",             /* 0X026 */
90 "IN",               /* 0X027 */
91 "INC",              /* 0X028 */
92 "INS",              /* 0X029 */
93 "INSB",             /* 0X02A */
94 "INSW",             /* 0X02B */
95 "INSD",             /* 0X02C */
96 "INT",              /* 0X02D */
97 "INTO",             /* 0X02E */
98 "IRET",             /* 0X02F */
99 "IRETD",            /* 0X030 */
100 "JO",               /* 0X031 */
101 "JNO",              /* 0X032 */
102 "JB",               /* 0X033 */
103 "JNB",              /* 0X034 */
104 "JZ",               /* 0X035 */
105 "JNZ",              /* 0X036 */
106 "JBE",              /* 0X037 */
107 "JNBE",             /* 0X038 */
108 "JS",               /* 0X039 */
109 "JNS",              /* 0X03A */
110 "JP",               /* 0X03B */
111 "JNP",              /* 0X03C */
112 "JL",               /* 0X03D */
113 "JNL",              /* 0X03E */
114 "JLE",              /* 0X03F */
115 "JNLE",             /* 0X040 */
116 "JMP",              /* 0X041 */
117 "LAHF",             /* 0X042 */
118 "LAR",              /* 0X043 */
119 "LEA",              /* 0X044 */
120 "LEAVE",            /* 0X045 */
121 "LGDT",             /* 0X046 */
122 "LIDT",             /* 0X047 */
123 "LGS",              /* 0X048 */
124 "LSS",              /* 0X049 */
125 "LDS",              /* 0X04A */
126 "LES",              /* 0X04B */
127 "LFS",              /* 0X04C */
128 "LLDT",             /* 0X04D */
129 "LMSW",             /* 0X04E */
130 "LOCK",             /* 0X04F */
131 "LODS",             /* 0X050 */
132 "LODSB",            /* 0X051 */
133 "LODSW",            /* 0X052 */
134 "LODSD",            /* 0X053 */
135 "LOOP",             /* 0X054 */
136 "LOOPE",            /* 0X055 */
137 "LOOPZ",            /* 0X056 */
138 "LOOPNE",           /* 0X057 */
139 "LOOPNZ",           /* 0X058 */
140 "LSL",              /* 0X059 */
141 "LTR",              /* 0X05A */
142 "MOV",              /* 0X05B */
143 "MOVS",             /* 0X05C */
144 "MOVSB",            /* 0X05D */
145 "MOVSW",            /* 0X05E */
146 "MOVSD",            /* 0X05F */
147 "MOVSX",            /* 0X060 */
148 "MOVZX",            /* 0X061 */
149 "MUL",              /* 0X062 */
150 "NEG",              /* 0X063 */
151 "NOP",              /* 0X064 */
152 "NOT",              /* 0X065 */
153 "OR",               /* 0X066 */
154 "OUT",              /* 0X067 */
155 "OUTS",             /* 0X068 */
156 "OUTSB",            /* 0X069 */
157 "OUTSW",            /* 0X06A */
158 "OUTSD",            /* 0X06B */
159 "POP",              /* 0X06C */
160 "POPA",             /* 0X06D */
161 "POPAD",            /* 0X06E */
162 "POPF",             /* 0X06F */
163 "POPFD",            /* 0X070 */
164 "PUSH",             /* 0X071 */
165 "PUSHA",            /* 0X072 */
166 "PUSHAD",           /* 0X073 */
167 "PUSHF",            /* 0X074 */
168 "PUSHFD",           /* 0X075 */
169 "RCL",              /* 0X076 */
170 "RCR",              /* 0X077 */
171 "ROL",              /* 0X078 */
172 "ROR",              /* 0X079 */
173 "REP",              /* 0X07A */
174 "REPE",             /* 0X07B */
175 "REPZ",             /* 0X07C */
176 "REPNE",            /* 0X07D */
177 "REPNZ",            /* 0X07E */
178 "RET",              /* 0X07F */
179 "SAHF",             /* 0X080 */
180 "SAL",              /* 0X081 */
181 "SAR",              /* 0X082 */
182 "SHL",              /* 0X083 */
183 "SHR",              /* 0X084 */
184 "SBB",              /* 0X085 */
185 "SCAS",             /* 0X086 */
186 "SCASB",            /* 0X087 */
187 "SCASW",            /* 0X088 */
188 "SCASD",            /* 0X089 */
189 "SET",              /* 0X08A */
190 "SGDT",             /* 0X08B */
191 "SIDT",             /* 0X08C */
192 "SHLD",             /* 0X08D */
193 "SHRD",             /* 0X08E */
194 "SLDT",             /* 0X08F */
195 "SMSW",             /* 0X090 */
196 "STC",              /* 0X091 */
197 "STD",              /* 0X092 */
198 "STI",              /* 0X093 */
199 "STOS",             /* 0X094 */
200 "STOSB",            /* 0X095 */
201 "STOSW",            /* 0X096 */
202 "STOSD",            /* 0X097 */
203 "STR",              /* 0X098 */
204 "SUB",              /* 0X099 */
205 "TEST",             /* 0X09A */
206 "VERR",             /* 0X09B */
207 "VERW",             /* 0X09C */
208 "WAIT",             /* 0X09D */
209 "XCHG",             /* 0X09E */
210 "XLAT",             /* 0X09F */
211 "XLATB",            /* 0X0A0 */
212 "XOR",              /* 0X0A1 */
213 "JCXZ",             /* 0X0A2 */
214 "LOADALL",          /* 0X0A3 */
215 "INVD",             /* 0X0A4 */
216 "WBINVD",           /* 0X0A5 */
217 "SETO",             /* 0X0A6 */
218 "SETNO",            /* 0X0A7 */
219 "SETB",             /* 0X0A8 */
220 "SETNB",            /* 0X0A9 */
221 "SETZ",             /* 0X0AA */
222 "SETNZ",            /* 0X0AB */
223 "SETBE",            /* 0X0AC */
224 "SETNBE",           /* 0X0AD */
225 "SETS",             /* 0X0AE */
226 "SETNS",            /* 0X0AF */
227 "SETP",             /* 0X0B0 */
228 "SETNP",            /* 0X0B1 */
229 "SETL",             /* 0X0B2 */
230 "SETNL",            /* 0X0B3 */
231 "SETLE",            /* 0X0B4 */
232 "SETNLE",           /* 0X0B5 */
233 "WRMSR",            /* 0X0B6 */
234 "RDTSC",            /* 0X0B7 */
235 "RDMSR",            /* 0X0B8 */
236 "CPUID",            /* 0X0B9 */
237 "RSM",              /* 0X0BA */
238 "CMPXCHG",          /* 0X0BB */
239 "XADD",             /* 0X0BC */
240 "BSWAP",            /* 0X0BD */
241 "INVLPG",           /* 0X0BE */
242 "CMPXCHG8B",        /* 0X0BF */
243 "JMP FAR",          /* 0X0C0 */
244 "RETF",             /* 0X0C1 */
245 "RDPMC"             /* 0X0C2 */
246 };
247
248
249 char* sCoprocNames[] = {
250 "",                 /* 0X000 */
251 "F2XM1",            /* 0X001 */
252 "FABS",             /* 0X002 */
253 "FADD",             /* 0X003 */
254 "FADDP",            /* 0X004 */
255 "FBLD",             /* 0X005 */
256 "FBSTP",            /* 0X006 */
257 "FCHS",             /* 0X007 */
258 "FCLEX",            /* 0X008 */
259 "FCOM",             /* 0X009 */
260 "FCOMP",            /* 0X00A */
261 "FCOMPP",           /* 0X00B */
262 "FCOS",             /* 0X00C */
263 "FDECSTP",          /* 0X00D */
264 "FDIV",             /* 0X00E */
265 "FDIVP",            /* 0X00F */
266 "FDIVR",            /* 0X010 */
267 "FDIVRP",           /* 0X011 */
268 "FFREE",            /* 0X012 */
269 "FIADD",            /* 0X013 */
270 "FICOM",            /* 0X014 */
271 "FICOMP",           /* 0X015 */
272 "FIDIV",            /* 0X016 */
273 "FIDIVR",           /* 0X017 */
274 "FILD",             /* 0X018 */
275 "FIMUL",            /* 0X019 */
276 "FINCSTP",          /* 0X01A */
277 "FINIT",            /* 0X01B */
278 "FIST",             /* 0X01C */
279 "FISTP",            /* 0X01D */
280 "FISUB",            /* 0X01E */
281 "FISUBR",           /* 0X01F */
282 "FLD",              /* 0X020 */
283 "FLD1",             /* 0X021 */
284 "FLDCW",            /* 0X022 */
285 "FLDENV",           /* 0X023 */
286 "FLDL2E",           /* 0X024 */
287 "FLDL2T",           /* 0X025 */
288 "FLDLG2",           /* 0X026 */
289 "FLDLN2",           /* 0X027 */
290 "FLDPI",            /* 0X028 */
291 "FLDZ",             /* 0X029 */
292 "FMUL",             /* 0X02A */
293 "FMULP",            /* 0X02B */
294 "FNOP",             /* 0X02C */
295 "FPATAN",           /* 0X02D */
296 "FPREM",            /* 0X02E */
297 "FPREM1",           /* 0X02F */
298 "FPTAN",            /* 0X030 */
299 "FRNDINT",          /* 0X031 */
300 "FRSTOR",           /* 0X032 */
301 "FSAVE",            /* 0X033 */
302 "FSCALE",           /* 0X034 */
303 "FSIN",             /* 0X035 */
304 "FSINCOS",          /* 0X036 */
305 "FSQRT",            /* 0X037 */
306 "FST",              /* 0X038 */
307 "FSTCW",            /* 0X039 */
308 "FSTENV",           /* 0X03A */
309 "FSTP",             /* 0X03B */
310 "FSTSW",            /* 0X03C */
311 "FSUB",             /* 0X03D */
312 "FSUBP",            /* 0X03E */
313 "FSUBR",            /* 0X03F */
314 "FSUBRP",           /* 0X040 */
315 "FTST",             /* 0X041 */
316 "FUCOM",            /* 0X042 */
317 "FUCOMP",           /* 0X043 */
318 "FUCOMPP",          /* 0X044 */
319 "FXAM",             /* 0X045 */
320 "FXCH",             /* 0X046 */
321 "FXTRACT",          /* 0X047 */
322 "FYL2X",            /* 0X048 */
323 "FYL2XP1"           /* 0X049 */
324 };
325
326
327 /******************************************************************************
328 *
329 *   Table of the first byte of an instruction
330 *
331 ******************************************************************************/
332 TOpcodeData Op1[ 256 ] = {
333 { /* 00 */        _add       ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
334 { /* 01 */        _add       ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
335 { /* 02 */        _add       ,2  ,_Gb ,_Eb ,0   ,0  ,0, DIS_MODRM   },
336 { /* 03 */        _add       ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
337 { /* 04 */        _add       ,2  ,_AL ,_Ib ,0   ,0  ,0, 0   },
338 { /* 05 */        _add       ,2  ,_eAX,_Iv ,0   ,0  ,0, 0   },
339 { /* 06 */        _push      ,1  ,_ES ,0   ,0   ,0  ,0, 0   },
340 { /* 07 */        _pop       ,1  ,_ES ,0   ,0   ,0  ,0, 0   },
341 { /* 08 */        _or        ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
342 { /* 09 */        _or        ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
343 { /* 0A */        _or        ,2  ,_Gb ,_Eb ,0   ,0  ,0, DIS_MODRM   },
344 { /* 0B */        _or        ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
345 { /* 0C */        _or        ,2  ,_AL ,_Ib ,0   ,0  ,0, 0   },
346 { /* 0D */        _or        ,2  ,_eAX,_Iv ,0   ,0  ,0, 0   },
347 { /* 0E */        _push      ,1  ,_CS ,0   ,0   ,0  ,0, 0   },
348 { /* 0F */        _2BESC     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
349
350 { /* 10 */        _adc       ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
351 { /* 11 */        _adc       ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
352 { /* 12 */        _adc       ,2  ,_Gb ,_Eb ,0   ,0  ,0, DIS_MODRM   },
353 { /* 13 */        _adc       ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
354 { /* 14 */        _adc       ,2  ,_AL ,_Ib ,0   ,0  ,0, 0   },
355 { /* 15 */        _adc       ,2  ,_eAX,_Iv ,0   ,0  ,0, 0   },
356 { /* 16 */        _push      ,1  ,_SS ,0   ,0   ,0  ,0, 0   },
357 { /* 17 */        _pop       ,1  ,_SS ,0   ,0   ,0  ,0, 0   },
358 { /* 18 */        _sbb       ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
359 { /* 19 */        _sbb       ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
360 { /* 1A */        _sbb       ,2  ,_Gb ,_Eb ,0   ,0  ,0, DIS_MODRM   },
361 { /* 1B */        _sbb       ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
362 { /* 1C */        _sbb       ,2  ,_AL ,_Ib ,0   ,0  ,0, 0   },
363 { /* 1D */        _sbb       ,2  ,_eAX,_Iv ,0   ,0  ,0, 0   },
364 { /* 1E */        _push      ,1  ,_DS ,0   ,0   ,0  ,0, 0   },
365 { /* 1F */        _pop       ,1  ,_DS ,0   ,0   ,0  ,0, 0   },
366
367 { /* 20 */        _and       ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
368 { /* 21 */        _and       ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
369 { /* 22 */        _and       ,2  ,_Gb ,_Eb ,0   ,0  ,0, DIS_MODRM   },
370 { /* 23 */        _and       ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
371 { /* 24 */        _and       ,2  ,_AL ,_Ib ,0   ,0  ,0, 0   },
372 { /* 25 */        _and       ,2  ,_eAX,_Iv ,0   ,0  ,0, 0   },
373 { /* 26 */        _S_ES      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
374 { /* 27 */        _daa       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
375 { /* 28 */        _sub       ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
376 { /* 29 */        _sub       ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
377 { /* 2A */        _sub       ,2  ,_Gb ,_Eb ,0   ,0  ,0, DIS_MODRM   },
378 { /* 2B */        _sub       ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
379 { /* 2C */        _sub       ,2  ,_AL ,_Ib ,0   ,0  ,0, 0   },
380 { /* 2D */        _sub       ,2  ,_eAX,_Iv ,0   ,0  ,0, 0   },
381 { /* 2E */        _S_CS      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
382 { /* 2F */        _das       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
383
384 { /* 30 */        _xor       ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
385 { /* 31 */        _xor       ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
386 { /* 32 */        _xor       ,2  ,_Gb ,_Eb ,0   ,0  ,0, DIS_MODRM   },
387 { /* 33 */        _xor       ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
388 { /* 34 */        _xor       ,2  ,_AL ,_Ib ,0   ,0  ,0, 0   },
389 { /* 35 */        _xor       ,2  ,_eAX,_Iv ,0   ,0  ,0, 0   },
390 { /* 36 */        _S_SS      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
391 { /* 37 */        _aaa       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
392 { /* 38 */        _cmp       ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
393 { /* 39 */        _cmp       ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
394 { /* 3A */        _cmp       ,2  ,_Gb ,_Eb ,0   ,0  ,0, DIS_MODRM   },
395 { /* 3B */        _cmp       ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
396 { /* 3C */        _cmp       ,2  ,_AL ,_Ib ,0   ,0  ,0, 0   },
397 { /* 3D */        _cmp       ,2  ,_eAX,_Iv ,0   ,0  ,0, 0   },
398 { /* 3E */        _S_DS      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
399 { /* 3F */        _aas       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
400
401 { /* 40 */        _inc       ,1  ,_eAX,0   ,0   ,0  ,0, 0   },
402 { /* 41 */        _inc       ,1  ,_eCX,0   ,0   ,0  ,0, 0   },
403 { /* 42 */        _inc       ,1  ,_eDX,0   ,0   ,0  ,0, 0   },
404 { /* 43 */        _inc       ,1  ,_eBX,0   ,0   ,0  ,0, 0   },
405 { /* 44 */        _inc       ,1  ,_eSP,0   ,0   ,0  ,0, 0   },
406 { /* 45 */        _inc       ,1  ,_eBP,0   ,0   ,0  ,0, 0   },
407 { /* 46 */        _inc       ,1  ,_eSI,0   ,0   ,0  ,0, 0   },
408 { /* 47 */        _inc       ,1  ,_eDI,0   ,0   ,0  ,0, 0   },
409 { /* 48 */        _dec       ,1  ,_eAX,0   ,0   ,0  ,0, 0   },
410 { /* 49 */        _dec       ,1  ,_eCX,0   ,0   ,0  ,0, 0   },
411 { /* 4A */        _dec       ,1  ,_eDX,0   ,0   ,0  ,0, 0   },
412 { /* 4B */        _dec       ,1  ,_eBX,0   ,0   ,0  ,0, 0   },
413 { /* 4C */        _dec       ,1  ,_eSP,0   ,0   ,0  ,0, 0   },
414 { /* 4D */        _dec       ,1  ,_eBP,0   ,0   ,0  ,0, 0   },
415 { /* 4E */        _dec       ,1  ,_eSI,0   ,0   ,0  ,0, 0   },
416 { /* 4F */        _dec       ,1  ,_eDI,0   ,0   ,0  ,0, 0   },
417
418 { /* 50 */        _push      ,1  ,_eAX,0   ,0   ,0  ,0, 0   },
419 { /* 51 */        _push      ,1  ,_eCX,0   ,0   ,0  ,0, 0   },
420 { /* 52 */        _push      ,1  ,_eDX,0   ,0   ,0  ,0, 0   },
421 { /* 53 */        _push      ,1  ,_eBX,0   ,0   ,0  ,0, 0   },
422 { /* 54 */        _push      ,1  ,_eSP,0   ,0   ,0  ,0, 0   },
423 { /* 55 */        _push      ,1  ,_eBP,0   ,0   ,0  ,0, 0   },
424 { /* 56 */        _push      ,1  ,_eSI,0   ,0   ,0  ,0, 0   },
425 { /* 57 */        _push      ,1  ,_eDI,0   ,0   ,0  ,0, 0   },
426 { /* 58 */        _pop       ,1  ,_eAX,0   ,0   ,0  ,0, 0   },
427 { /* 59 */        _pop       ,1  ,_eCX,0   ,0   ,0  ,0, 0   },
428 { /* 5A */        _pop       ,1  ,_eDX,0   ,0   ,0  ,0, 0   },
429 { /* 5B */        _pop       ,1  ,_eBX,0   ,0   ,0  ,0, 0   },
430 { /* 5C */        _pop       ,1  ,_eSP,0   ,0   ,0  ,0, 0   },
431 { /* 5D */        _pop       ,1  ,_eBP,0   ,0   ,0  ,0, 0   },
432 { /* 5E */        _pop       ,1  ,_eSI,0   ,0   ,0  ,0, 0   },
433 { /* 5F */        _pop       ,1  ,_eDI,0   ,0   ,0  ,0, 0   },
434
435 { /* 60 */        _pusha     ,0  ,0   ,0   ,0   ,0  ,0, DIS_NAME_FLAG   },
436 { /* 61 */        _popa      ,0  ,0   ,0   ,0   ,0  ,0, DIS_NAME_FLAG   },
437 { /* 62 */        _bound     ,2  ,_Gv ,_Ma ,0   ,0  ,0, DIS_MODRM   },
438 { /* 63 */        _arpl      ,2  ,_Ew ,_Rw ,0   ,0  ,0, DIS_MODRM   },
439 { /* 64 */        _S_FS      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
440 { /* 65 */        _S_GS      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
441 { /* 66 */        _OPSIZ     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
442 { /* 67 */        _ADSIZ     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
443 { /* 68 */        _push      ,1  ,_Iv ,0   ,0   ,0  ,0, 0   },
444 { /* 69 */        _imul      ,2  ,_Gv ,_Ev ,_Iv ,0  ,0, DIS_MODRM   },
445 { /* 6A */        _push      ,1  ,_Ib ,0   ,0   ,0  ,0, 0   },
446 { /* 6B */        _imul      ,3  ,_Gv ,_Ev ,_Ib ,0  ,0, DIS_MODRM   },
447 { /* 6C */        _insb      ,2  ,_Yb ,_DX ,0   ,0  ,0, SCAN_TERMINATING    },
448 { /* 6D */        _insw      ,2  ,_Yv ,_DX ,0   ,0  ,0, SCAN_TERMINATING | DIS_NAME_FLAG    },
449 { /* 6E */        _outsb     ,2  ,_DX ,_Xb ,0   ,0  ,0, SCAN_TERMINATING    },
450 { /* 6F */        _outsw     ,2  ,_DX ,_Xv ,0   ,0  ,0, SCAN_TERMINATING | DIS_NAME_FLAG    },
451
452 { /* 70 */        _jo        ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
453 { /* 71 */        _jno       ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
454 { /* 72 */        _jb        ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
455 { /* 73 */        _jnb       ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
456 { /* 74 */        _jz        ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
457 { /* 75 */        _jnz       ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
458 { /* 76 */        _jbe       ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
459 { /* 77 */        _jnbe      ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
460 { /* 78 */        _js        ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
461 { /* 79 */        _jns       ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
462 { /* 7A */        _jp        ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
463 { /* 7B */        _jnp       ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
464 { /* 7C */        _jl        ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
465 { /* 7D */        _jnl       ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
466 { /* 7E */        _jle       ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
467 { /* 7F */        _jnle      ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
468
469 { /* 80 */        _GRP1a     ,2  ,_Eb ,_Ib ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
470 { /* 81 */        _GRP1b     ,2  ,_Ev ,_Iv ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
471 { /* 82 */        _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
472 { /* 83 */        _GRP1c     ,2  ,_Ev ,_Ib ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
473 { /* 84 */        _test      ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
474 { /* 85 */        _test      ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
475 { /* 86 */        _xchg      ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
476 { /* 87 */        _xchg      ,2  ,_Ev ,_Gv ,0   ,0  ,INSTR_READ_WRITE | INSTR_WORD_DWORD, DIS_MODRM     },
477 { /* 88 */        _mov       ,2  ,_Eb ,_Gb ,0   ,0  ,INSTR_WRITE | INSTR_BYTE, DIS_MODRM    },
478 { /* 89 */        _mov       ,2  ,_Ev ,_Gv ,0   ,0  ,INSTR_WRITE | INSTR_WORD, DIS_MODRM    },
479 { /* 8A */        _mov       ,2  ,_Gb ,_Eb ,0   ,0  ,INSTR_READ | INSTR_BYTE, DIS_MODRM     },
480 { /* 8B */        _mov       ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
481 { /* 8C */        _mov       ,2  ,_Ew ,_Sw ,0   ,0  ,0, DIS_MODRM   },
482 { /* 8D */        _lea       ,2  ,_Gv ,_M  ,0   ,0  ,0, DIS_MODRM   },
483 { /* 8E */        _mov       ,2  ,_Sw ,_Ew ,0   ,0  ,0, SCAN_TERM_PMODE | DIS_MODRM     },
484 { /* 8F */        _pop       ,1  ,_Ev ,0   ,0   ,0  ,0, DIS_MODRM   },
485
486 { /* 90 */        _nop       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
487 { /* 91 */        _xchg      ,2  ,_eCX,_eAX,0   ,0  ,0, 0   },
488 { /* 92 */        _xchg      ,2  ,_eDX,_eAX,0   ,0  ,0, 0   },
489 { /* 93 */        _xchg      ,2  ,_eBX,_eAX,0   ,0  ,0, 0   },
490 { /* 94 */        _xchg      ,2  ,_eSP,_eAX,0   ,0  ,0, 0   },
491 { /* 95 */        _xchg      ,2  ,_eBP,_eAX,0   ,0  ,0, 0   },
492 { /* 96 */        _xchg      ,2  ,_eSI,_eAX,0   ,0  ,0, 0   },
493 { /* 97 */        _xchg      ,2  ,_eDI,_eAX,0   ,0  ,0, 0   },
494 { /* 98 */        _cbw       ,0  ,0   ,0   ,0   ,0  ,0, DIS_NAME_FLAG   },
495 { /* 99 */        _cwd       ,0  ,0   ,0   ,0   ,0  ,0, DIS_NAME_FLAG   },
496 { /* 9A */        _call      ,1  ,_Ap ,0   ,0   ,0  ,0, SCAN_SINGLE_STEP    },
497 { /* 9B */        _wait      ,0  ,0   ,0   ,0   ,0  ,0, 0   },
498 { /* 9C */        _pushf     ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING | DIS_NAME_FLAG    },
499 { /* 9D */        _popf      ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING | DIS_NAME_FLAG    },
500 { /* 9E */        _sahf      ,0  ,0   ,0   ,0   ,0  ,0, 0   },
501 { /* 9F */        _lahf      ,0  ,0   ,0   ,0   ,0  ,0, 0   },
502
503 { /* A0 */        _mov       ,2  ,_AL ,_O  ,0   ,0  ,0, 0   },
504 { /* A1 */        _mov       ,2  ,_eAX,_O  ,0   ,0  ,INSTR_READ | INSTR_WORD_DWORD, 0   },
505 { /* A2 */        _mov       ,2  ,_O  ,_AL ,0   ,0  ,0, 0   },
506 { /* A3 */        _mov       ,2  ,_O  ,_eAX,0   ,0  ,INSTR_WRITE | INSTR_WORD_DWORD, 0  },
507 { /* A4 */        _movsb     ,2  ,_Yb ,_Xb ,0   ,0  ,0, 0   },
508 { /* A5 */        _movsw     ,2  ,_Yv ,_Xv ,0   ,0  ,0, DIS_NAME_FLAG   },
509 { /* A6 */        _cmpsb     ,2  ,_Xb ,_Yb ,0   ,0  ,0, 0   },
510 { /* A7 */        _cmpsw     ,2  ,_Xv ,_Yv ,0   ,0  ,0, DIS_NAME_FLAG   },
511 { /* A8 */        _test      ,2  ,_AL ,_Ib ,0   ,0  ,0, 0   },
512 { /* A9 */        _test      ,2  ,_eAX,_Iv ,0   ,0  ,0, 0   },
513 { /* AA */        _stosb     ,2  ,_Yb ,_AL ,0   ,0  ,0, 0   },
514 { /* AB */        _stosw     ,2  ,_Yb ,_eAX,0   ,0  ,0, DIS_NAME_FLAG   },
515 { /* AC */        _lodsb     ,2  ,_AL ,_Xb ,0   ,0  ,INSTR_READ | INSTR_BYTE, 0     },
516 { /* AD */        _lodsw     ,2  ,_eAX,_Xv ,0   ,0  ,INSTR_READ | INSTR_WORD_DWORD, DIS_NAME_FLAG   },
517 { /* AE */        _scasb     ,2  ,_AL ,_Xb ,0   ,0  ,0, 0   },
518 { /* AF */        _scasw     ,2  ,_eAX,_Xv ,0   ,0  ,0, DIS_NAME_FLAG   },
519
520 { /* B0 */        _mov       ,2  ,_AL ,_Ib ,0   ,0  ,0, 0   },
521 { /* B1 */        _mov       ,2  ,_CL ,_Ib ,0   ,0  ,0, 0   },
522 { /* B2 */        _mov       ,2  ,_DL ,_Ib ,0   ,0  ,0, 0   },
523 { /* B3 */        _mov       ,2  ,_BL ,_Ib ,0   ,0  ,0, 0   },
524 { /* B4 */        _mov       ,2  ,_AH ,_Ib ,0   ,0  ,0, 0   },
525 { /* B5 */        _mov       ,2  ,_CH ,_Ib ,0   ,0  ,0, 0   },
526 { /* B6 */        _mov       ,2  ,_DH ,_Ib ,0   ,0  ,0, 0   },
527 { /* B7 */        _mov       ,2  ,_BH ,_Ib ,0   ,0  ,0, 0   },
528 { /* B8 */        _mov       ,2  ,_eAX,_Iv ,0   ,0  ,0, 0   },
529 { /* B9 */        _mov       ,2  ,_eCX,_Iv ,0   ,0  ,0, 0   },
530 { /* BA */        _mov       ,2  ,_eDX,_Iv ,0   ,0  ,0, 0   },
531 { /* BB */        _mov       ,2  ,_eBX,_Iv ,0   ,0  ,0, 0   },
532 { /* BC */        _mov       ,2  ,_eSP,_Iv ,0   ,0  ,0, 0   },
533 { /* BD */        _mov       ,2  ,_eBP,_Iv ,0   ,0  ,0, 0   },
534 { /* BE */        _mov       ,2  ,_eSI,_Iv ,0   ,0  ,0, 0   },
535 { /* BF */        _mov       ,2  ,_eDI,_Iv ,0   ,0  ,0, 0   },
536
537 { /* C0 */        _GRP2a     ,2  ,_Eb ,_Ib ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
538 { /* C1 */        _GRP2b     ,2  ,_Ev ,_Ib ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
539 { /* C2 */        _ret       ,1  ,_Iw ,0   ,0   ,0  ,0, SCAN_SINGLE_STEP    },
540 { /* C3 */        _ret       ,0  ,0   ,0   ,0   ,0  ,0, SCAN_SINGLE_STEP    },
541 { /* C4 */        _les       ,2  ,_Gv ,_Mp ,0   ,0  ,0, SCAN_TERM_PMODE | DIS_MODRM     },
542 { /* C5 */        _lds       ,2  ,_Gv ,_Mp ,0   ,0  ,0, SCAN_TERM_PMODE | DIS_MODRM     },
543 { /* C6 */        _mov       ,2  ,_Eb ,_Ib ,0   ,0  ,0, DIS_MODRM   },
544 { /* C7 */        _mov       ,2  ,_Ev ,_Iv ,0   ,0  ,0, DIS_MODRM   },
545 { /* C8 */        _enter     ,2  ,_Iw ,_Ib ,0   ,0  ,0, 0   },
546 { /* C9 */        _leave     ,0  ,0   ,0   ,0   ,0  ,0, 0   },
547 { /* CA */        _retf      ,1  ,_Iw ,0   ,0   ,0  ,0, SCAN_SINGLE_STEP    },
548 { /* CB */        _retf      ,0  ,0   ,0   ,0   ,0  ,0, SCAN_SINGLE_STEP    },
549 { /* CC */        _int       ,1  ,_3  ,0   ,0   ,0  ,0, 0   },
550 { /* CD */        _int       ,1  ,_Ib ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
551 { /* CE */        _into      ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
552 { /* CF */        _iret      ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
553
554 { /* D0 */        _GRP2c     ,2  ,_Eb ,_1  ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
555 { /* D1 */        _GRP2d     ,2  ,_Ev ,_1  ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
556 { /* D2 */        _GRP2e     ,2  ,_Eb ,_CL ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
557 { /* D3 */        _GRP2f     ,2  ,_Ev ,_CL ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
558 { /* D4 */        _aam       ,1  ,_Ib ,0   ,0   ,0  ,0, 0   },
559 { /* D5 */        _aad       ,1  ,_Ib ,0   ,0   ,0  ,0, 0   },
560 { /* D6 */        _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
561 { /* D7 */        _xlat      ,0  ,0   ,0   ,0   ,0  ,0, 0   },
562 { /* D8 */        _EscD8     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
563 { /* D9 */        _EscD9     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
564 { /* DA */        _EscDA     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
565 { /* DB */        _EscDB     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
566 { /* DC */        _EscDC     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
567 { /* DD */        _EscDD     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
568 { /* DE */        _EscDE     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
569 { /* DF */        _EscDF     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
570
571 { /* E0 */        _loopne    ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
572 { /* E1 */        _loope     ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
573 { /* E2 */        _loop      ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
574 { /* E3 */        _jcxz      ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
575 { /* E4 */        _in        ,2  ,_AL ,_Ib ,0   ,0  ,0, SCAN_TERMINATING    },
576 { /* E5 */        _in        ,2  ,_eAX,_Ib ,0   ,0  ,0, SCAN_TERMINATING    },
577 { /* E6 */        _out       ,2  ,_Ib ,_AL ,0   ,0  ,0, SCAN_TERMINATING    },
578 { /* E7 */        _out       ,2  ,_Ib ,_eAX,0   ,0  ,0, SCAN_TERMINATING    },
579 { /* E8 */        _call      ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
580 { /* E9 */        _jmp       ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_JUMP   },
581 { /* EA */        _jmpf      ,1  ,_Ap ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
582 { /* EB */        _jmp       ,1  ,_Jb ,0   ,0   ,0  ,0, SCAN_JUMP   },
583 { /* EC */        _in        ,2  ,_AL ,_DX ,0   ,0  ,0, SCAN_TERMINATING    },
584 { /* ED */        _in        ,2  ,_eAX,_DX ,0   ,0  ,0, SCAN_TERMINATING    },
585 { /* EE */        _out       ,2  ,_DX ,_AL ,0   ,0  ,0, SCAN_TERMINATING    },
586 { /* EF */        _out       ,2  ,_DX ,_eAX,0   ,0  ,0, SCAN_TERMINATING    },
587
588 { /* F0 */        _lock      ,0  ,0   ,0   ,0   ,0  ,0, 0   },
589 { /* F1 */        _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
590 { /* F2 */        _REPNE     ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
591 { /* F3 */        _REP       ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
592 { /* F4 */        _hlt       ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
593 { /* F5 */        _cmc       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
594 { /* F6 */        _GRP3a     ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
595 { /* F7 */        _GRP3b     ,1  ,_Ev ,0   ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
596 { /* F8 */        _clc       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
597 { /* F9 */        _stc       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
598 { /* FA */        _cli       ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
599 { /* FB */        _sti       ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
600 { /* FC */        _cld       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
601 { /* FD */        _std       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
602 { /* FE */        _GRP4      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
603 { /* FF */        _GRP5      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     }
604 };
605
606
607 /******************************************************************************
608 *
609 *   Table of the second byte of an instruction where the first byte was FF,
610 *   the 2-byte escape code
611 *
612 ******************************************************************************/
613 TOpcodeData Op2[ 256 ] = {
614 { /* 0F 00 */     _GRP6      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
615 { /* 0F 01 */     _GRP7      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
616 { /* 0F 02 */     _lar       ,2  ,_Gv ,_Ew ,0   ,0  ,0, DIS_MODRM   },
617 { /* 0F 03 */     _lsl       ,2  ,_Gv ,_Ew ,0   ,0  ,0, DIS_MODRM   },
618 { /* 0F 04 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
619 { /* 0F 05 */     _loadall   ,0  ,0   ,0   ,0   ,0  ,0, 0   },
620 { /* 0F 06 */     _clts      ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
621 { /* 0F 07 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
622 { /* 0F 08 */     _invd      ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
623 { /* 0F 09 */     _wbinv     ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
624 { /* 0F 0A */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
625 { /* 0F 0B */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
626 { /* 0F 0C */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
627 { /* 0F 0D */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
628 { /* 0F 0E */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
629 { /* 0F 0F */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
630
631 { /* 0F 10 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
632 { /* 0F 11 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
633 { /* 0F 12 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
634 { /* 0F 13 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
635 { /* 0F 14 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
636 { /* 0F 15 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
637 { /* 0F 16 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
638 { /* 0F 17 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
639 { /* 0F 18 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
640 { /* 0F 19 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
641 { /* 0F 1A */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
642 { /* 0F 1B */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
643 { /* 0F 1C */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
644 { /* 0F 1D */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
645 { /* 0F 1E */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
646 { /* 0F 1F */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
647
648 { /* 0F 20 */     _mov       ,2  ,_Rd ,_Cd ,0   ,0  ,0, SCAN_TERMINATING | DIS_MODRM    },
649 { /* 0F 21 */     _mov       ,2  ,_Rd ,_Dd ,0   ,0  ,0, SCAN_TERMINATING | DIS_MODRM    },
650 { /* 0F 22 */     _mov       ,2  ,_Cd ,_Rd ,0   ,0  ,0, SCAN_TERMINATING | DIS_MODRM    },
651 { /* 0F 23 */     _mov       ,2  ,_Dd ,_Rd ,0   ,0  ,0, SCAN_TERMINATING | DIS_MODRM    },
652 { /* 0F 24 */     _mov       ,2  ,_Rd ,_Td ,0   ,0  ,0, DIS_MODRM   },
653 { /* 0F 25 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
654 { /* 0F 26 */     _mov       ,2  ,_Td ,_Rd ,0   ,0  ,0, DIS_MODRM   },
655 { /* 0F 27 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
656 { /* 0F 28 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
657 { /* 0F 29 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
658 { /* 0F 2A */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
659 { /* 0F 2B */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
660 { /* 0F 2C */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
661 { /* 0F 2D */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
662 { /* 0F 2E */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
663 { /* 0F 2F */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
664
665 { /* 0F 30 */     _wrmsr     ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
666 { /* 0F 31 */     _rdtsc     ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
667 { /* 0F 32 */     _rdmsr     ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
668 { /* 0F 33 */     _rdpmc     ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
669 { /* 0F 34 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
670 { /* 0F 35 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
671 { /* 0F 36 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
672 { /* 0F 37 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
673 { /* 0F 38 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
674 { /* 0F 39 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
675 { /* 0F 3A */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
676 { /* 0F 3B */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
677 { /* 0F 3C */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
678 { /* 0F 3D */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
679 { /* 0F 3E */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
680 { /* 0F 3F */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
681
682 { /* 0F 40 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
683 { /* 0F 41 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
684 { /* 0F 42 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
685 { /* 0F 43 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
686 { /* 0F 44 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
687 { /* 0F 45 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
688 { /* 0F 46 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
689 { /* 0F 47 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
690 { /* 0F 48 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
691 { /* 0F 49 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
692 { /* 0F 4A */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
693 { /* 0F 4B */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
694 { /* 0F 4C */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
695 { /* 0F 4D */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
696 { /* 0F 4E */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
697 { /* 0F 4F */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
698
699 { /* 0F 50 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
700 { /* 0F 51 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
701 { /* 0F 52 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
702 { /* 0F 53 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
703 { /* 0F 54 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
704 { /* 0F 55 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
705 { /* 0F 56 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
706 { /* 0F 57 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
707 { /* 0F 58 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
708 { /* 0F 59 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
709 { /* 0F 5A */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
710 { /* 0F 5B */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
711 { /* 0F 5C */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
712 { /* 0F 5D */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
713 { /* 0F 5E */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
714 { /* 0F 5F */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
715
716 { /* 0F 60 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
717 { /* 0F 61 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
718 { /* 0F 62 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
719 { /* 0F 63 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
720 { /* 0F 64 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
721 { /* 0F 65 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
722 { /* 0F 66 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
723 { /* 0F 67 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
724 { /* 0F 68 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
725 { /* 0F 69 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
726 { /* 0F 6A */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
727 { /* 0F 6B */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
728 { /* 0F 6C */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
729 { /* 0F 6D */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
730 { /* 0F 6E */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
731 { /* 0F 6F */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
732
733 { /* 0F 70 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
734 { /* 0F 71 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
735 { /* 0F 72 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
736 { /* 0F 73 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
737 { /* 0F 74 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
738 { /* 0F 75 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
739 { /* 0F 76 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
740 { /* 0F 77 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
741 { /* 0F 78 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
742 { /* 0F 79 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
743 { /* 0F 7A */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
744 { /* 0F 7B */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
745 { /* 0F 7C */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
746 { /* 0F 7D */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
747 { /* 0F 7E */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
748 { /* 0F 7F */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
749
750 { /* 0F 80 */     _jo        ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
751 { /* 0F 81 */     _jno       ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
752 { /* 0F 82 */     _jb        ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
753 { /* 0F 83 */     _jnb       ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
754 { /* 0F 84 */     _jz        ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
755 { /* 0F 85 */     _jnz       ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
756 { /* 0F 86 */     _jbe       ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
757 { /* 0F 87 */     _jnbe      ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
758 { /* 0F 88 */     _js        ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
759 { /* 0F 89 */     _jns       ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
760 { /* 0F 8A */     _jp        ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
761 { /* 0F 8B */     _jnp       ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
762 { /* 0F 8C */     _jl        ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
763 { /* 0F 8D */     _jnl       ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
764 { /* 0F 8E */     _jle       ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
765 { /* 0F 8F */     _jnle      ,1  ,_Jv ,0   ,0   ,0  ,0, SCAN_COND_JUMP  },
766
767 { /* 0F 90 */     _seto      ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
768 { /* 0F 91 */     _setno     ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
769 { /* 0F 92 */     _setb      ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
770 { /* 0F 93 */     _setnb     ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
771 { /* 0F 94 */     _setz      ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
772 { /* 0F 95 */     _setnz     ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
773 { /* 0F 96 */     _setbe     ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
774 { /* 0F 97 */     _setnbe    ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
775 { /* 0F 98 */     _sets      ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
776 { /* 0F 99 */     _setns     ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
777 { /* 0F 9A */     _setp      ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
778 { /* 0F 9B */     _setnp     ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
779 { /* 0F 9C */     _setl      ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
780 { /* 0F 9D */     _setnl     ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
781 { /* 0F 9E */     _setle     ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
782 { /* 0F 9F */     _setnle    ,1  ,_Eb ,0   ,0   ,0  ,0, DIS_MODRM   },
783
784 { /* 0F A0 */     _push      ,1  ,_FS ,0   ,0   ,0  ,0, 0   },
785 { /* 0F A1 */     _pop       ,1  ,_FS ,0   ,0   ,0  ,0, 0   },
786 { /* 0F A2 */     _cpuid     ,0  ,0   ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
787 { /* 0F A3 */     _bt        ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
788 { /* 0F A4 */     _shld      ,3  ,_Ev ,_Gv ,_Ib ,0  ,0, DIS_MODRM   },
789 { /* 0F A5 */     _shld      ,3  ,_Ev ,_Gv ,_CL ,0  ,0, DIS_MODRM   },
790 { /* 0F A6 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
791 { /* 0F A7 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
792 { /* 0F A8 */     _push      ,1  ,_GS ,0   ,0   ,0  ,0, 0   },
793 { /* 0F A9 */     _pop       ,1  ,_GS ,0   ,0   ,0  ,0, 0   },
794 { /* 0F AA */     _rsm       ,0  ,0   ,0   ,0   ,0  ,0, 0   },
795 { /* 0F AB */     _bts       ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
796 { /* 0F AC */     _shrd      ,3  ,_Ev ,_Gv ,_Ib ,0  ,0, DIS_MODRM   },
797 { /* 0F AD */     _shrd      ,3  ,_Ev ,_Gv ,_CL ,0  ,0, DIS_MODRM   },
798 { /* 0F AE */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
799 { /* 0F AF */     _imul      ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
800
801 { /* 0F B0 */     _cmpx      ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
802 { /* 0F B1 */     _cmpx      ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
803 { /* 0F B2 */     _lss       ,2  ,_Gv ,_Mp ,0   ,0  ,0, SCAN_TERM_PMODE | DIS_MODRM     },
804 { /* 0F B3 */     _btr       ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
805 { /* 0F B4 */     _lfs       ,2  ,_Gv ,_Mp ,0   ,0  ,0, SCAN_TERM_PMODE | DIS_MODRM     },
806 { /* 0F B5 */     _lgs       ,2  ,_Gv ,_Mp ,0   ,0  ,0, SCAN_TERM_PMODE | DIS_MODRM     },
807 { /* 0F B6 */     _movzx     ,2  ,_Gv ,_Eb ,0   ,0  ,0, DIS_MODRM   },
808 { /* 0F B7 */     _movzx     ,2  ,_Gv ,_Ew ,0   ,0  ,0, DIS_MODRM   },
809 { /* 0F B8 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
810 { /* 0F B9 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
811 { /* 0F BA */     _GRP8      ,2  ,_Ev ,_Ib ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
812 { /* 0F BB */     _btc       ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
813 { /* 0F BC */     _bsf       ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
814 { /* 0F BD */     _bsr       ,2  ,_Gv ,_Ev ,0   ,0  ,0, DIS_MODRM   },
815 { /* 0F BE */     _movsx     ,2  ,_Gv ,_Eb ,0   ,0  ,0, DIS_MODRM   },
816 { /* 0F BF */     _movsx     ,2  ,_Gv ,_Ew ,0   ,0  ,0, DIS_MODRM   },
817
818 { /* 0F C0 */     _xadd      ,2  ,_Eb ,_Gb ,0   ,0  ,0, DIS_MODRM   },
819 { /* 0F C1 */     _xadd      ,2  ,_Ev ,_Gv ,0   ,0  ,0, DIS_MODRM   },
820 { /* 0F C2 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
821 { /* 0F C3 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
822 { /* 0F C4 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
823 { /* 0F C5 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
824 { /* 0F C6 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
825 { /* 0F C7 */     _GRP9      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL | DIS_MODRM     },
826 { /* 0F C8 */     _bswap     ,1  ,_eAX,0   ,0   ,0  ,0, 0   },
827 { /* 0F C9 */     _bswap     ,1  ,_eCX,0   ,0   ,0  ,0, 0   },
828 { /* 0F CA */     _bswap     ,1  ,_eDX,0   ,0   ,0  ,0, 0   },
829 { /* 0F CB */     _bswap     ,1  ,_eBX,0   ,0   ,0  ,0, 0   },
830 { /* 0F CC */     _bswap     ,1  ,_eSP,0   ,0   ,0  ,0, 0   },
831 { /* 0F CD */     _bswap     ,1  ,_eBP,0   ,0   ,0  ,0, 0   },
832 { /* 0F CE */     _bswap     ,1  ,_eSI,0   ,0   ,0  ,0, 0   },
833 { /* 0F CF */     _bswap     ,1  ,_eDI,0   ,0   ,0  ,0, 0   },
834
835 { /* 0F D0 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
836 { /* 0F D1 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
837 { /* 0F D2 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
838 { /* 0F D3 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
839 { /* 0F D4 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
840 { /* 0F D5 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
841 { /* 0F D6 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
842 { /* 0F D7 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
843 { /* 0F D8 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
844 { /* 0F D9 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
845 { /* 0F DA */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
846 { /* 0F DB */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
847 { /* 0F DC */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
848 { /* 0F DD */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
849 { /* 0F DE */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
850 { /* 0F DF */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
851
852 { /* 0F E0 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
853 { /* 0F E1 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
854 { /* 0F E2 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
855 { /* 0F E3 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
856 { /* 0F E4 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
857 { /* 0F E5 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
858 { /* 0F E6 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
859 { /* 0F E7 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
860 { /* 0F E8 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
861 { /* 0F E9 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
862 { /* 0F EA */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
863 { /* 0F EB */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
864 { /* 0F EC */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
865 { /* 0F ED */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
866 { /* 0F EE */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
867 { /* 0F EF */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
868
869 { /* 0F F0 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
870 { /* 0F F1 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
871 { /* 0F F2 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
872 { /* 0F F3 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
873 { /* 0F F4 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
874 { /* 0F F5 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
875 { /* 0F F6 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
876 { /* 0F F7 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
877 { /* 0F F8 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
878 { /* 0F F9 */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
879 { /* 0F FA */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
880 { /* 0F FB */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
881 { /* 0F FC */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
882 { /* 0F FD */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
883 { /* 0F FE */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
884 { /* 0F FF */     _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     }
885 };
886
887
888 /******************************************************************************
889 *
890 *   Table for Groups codes; groups 1 - 9
891 *
892 *   (These records have DIS_MODRM implied)
893 *
894 ******************************************************************************/
895 TOpcodeData Groups[ 17 ][ 8 ] = {
896 {{ /* Group 1a */  _add       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
897  { /* 001 */       _or        ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
898  { /* 010 */       _adc       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
899  { /* 011 */       _sbb       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
900  { /* 100 */       _and       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
901  { /* 101 */       _sub       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
902  { /* 110 */       _xor       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
903  { /* 111 */       _cmp       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   }},
904
905 {{ /* Group 1b */  _add       ,2  ,_Ev ,_Iv ,0   ,0  ,0, 0   },
906  { /* 001 */       _or        ,2  ,_Ev ,_Iv ,0   ,0  ,0, 0   },
907  { /* 010 */       _adc       ,2  ,_Ev ,_Iv ,0   ,0  ,0, 0   },
908  { /* 011 */       _sbb       ,2  ,_Ev ,_Iv ,0   ,0  ,0, 0   },
909  { /* 100 */       _and       ,2  ,_Ev ,_Iv ,0   ,0  ,0, 0   },
910  { /* 101 */       _sub       ,2  ,_Ev ,_Iv ,0   ,0  ,0, 0   },
911  { /* 110 */       _xor       ,2  ,_Ev ,_Iv ,0   ,0  ,0, 0   },
912  { /* 111 */       _cmp       ,2  ,_Ev ,_Iv ,0   ,0  ,0, 0   }},
913
914 {{ /* Group 1c */  _add       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
915  { /* 001 */       _or        ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
916  { /* 010 */       _adc       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
917  { /* 011 */       _sbb       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
918  { /* 100 */       _and       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
919  { /* 101 */       _sub       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
920  { /* 110 */       _xor       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
921  { /* 111 */       _cmp       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   }},
922
923 {{ /* Group 2a */  _rol       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
924  { /* 001 */       _ror       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
925  { /* 010 */       _rcl       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
926  { /* 011 */       _rcr       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
927  { /* 100 */       _sal       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
928  { /* 101 */       _shr       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
929  { /* 110 */       _shl       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
930  { /* 111 */       _sar       ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   }},
931
932 {{ /* Group 2b */  _rol       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
933  { /* 001 */       _ror       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
934  { /* 010 */       _rcl       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
935  { /* 011 */       _rcr       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
936  { /* 100 */       _sal       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
937  { /* 101 */       _shr       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
938  { /* 110 */       _shl       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
939  { /* 111 */       _sar       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   }},
940
941 {{ /* Group 2c */  _rol       ,2  ,_Eb ,_1  ,0   ,0  ,0, 0   },
942  { /* 001 */       _ror       ,2  ,_Eb ,_1  ,0   ,0  ,0, 0   },
943  { /* 010 */       _rcl       ,2  ,_Eb ,_1  ,0   ,0  ,0, 0   },
944  { /* 011 */       _rcr       ,2  ,_Eb ,_1  ,0   ,0  ,0, 0   },
945  { /* 100 */       _sal       ,2  ,_Eb ,_1  ,0   ,0  ,0, 0   },
946  { /* 101 */       _shr       ,2  ,_Eb ,_1  ,0   ,0  ,0, 0   },
947  { /* 110 */       _shl       ,2  ,_Eb ,_1  ,0   ,0  ,0, 0   },
948  { /* 111 */       _sar       ,2  ,_Eb ,_1  ,0   ,0  ,0, 0   }},
949
950 {{ /* Group 2d */  _rol       ,2  ,_Ev ,_1  ,0   ,0  ,0, 0   },
951  { /* 001 */       _ror       ,2  ,_Ev ,_1  ,0   ,0  ,0, 0   },
952  { /* 010 */       _rcl       ,2  ,_Ev ,_1  ,0   ,0  ,0, 0   },
953  { /* 011 */       _rcr       ,2  ,_Ev ,_1  ,0   ,0  ,0, 0   },
954  { /* 100 */       _sal       ,2  ,_Ev ,_1  ,0   ,0  ,0, 0   },
955  { /* 101 */       _shr       ,2  ,_Ev ,_1  ,0   ,0  ,0, 0   },
956  { /* 110 */       _shl       ,2  ,_Ev ,_1  ,0   ,0  ,0, 0   },
957  { /* 111 */       _sar       ,2  ,_Ev ,_1  ,0   ,0  ,0, 0   }},
958
959 {{ /* Group 2e */  _rol       ,2  ,_Eb ,_CL ,0   ,0  ,0, 0   },
960  { /* 001 */       _ror       ,2  ,_Eb ,_CL ,0   ,0  ,0, 0   },
961  { /* 010 */       _rcl       ,2  ,_Eb ,_CL ,0   ,0  ,0, 0   },
962  { /* 011 */       _rcr       ,2  ,_Eb ,_CL ,0   ,0  ,0, 0   },
963  { /* 100 */       _sal       ,2  ,_Eb ,_CL ,0   ,0  ,0, 0   },
964  { /* 101 */       _shr       ,2  ,_Eb ,_CL ,0   ,0  ,0, 0   },
965  { /* 110 */       _shl       ,2  ,_Eb ,_CL ,0   ,0  ,0, 0   },
966  { /* 111 */       _sar       ,2  ,_Eb ,_CL ,0   ,0  ,0, 0   }},
967
968 {{ /* Group 2f */  _rol       ,2  ,_Ev ,_CL ,0   ,0  ,0, 0   },
969  { /* 001 */       _ror       ,2  ,_Ev ,_CL ,0   ,0  ,0, 0   },
970  { /* 010 */       _rcl       ,2  ,_Ev ,_CL ,0   ,0  ,0, 0   },
971  { /* 011 */       _rcr       ,2  ,_Ev ,_CL ,0   ,0  ,0, 0   },
972  { /* 100 */       _sal       ,2  ,_Ev ,_CL ,0   ,0  ,0, 0   },
973  { /* 101 */       _shr       ,2  ,_Ev ,_CL ,0   ,0  ,0, 0   },
974  { /* 110 */       _shl       ,2  ,_Ev ,_CL ,0   ,0  ,0, 0   },
975  { /* 111 */       _sar       ,2  ,_Ev ,_CL ,0   ,0  ,0, 0   }},
976
977 {{ /* Group 3a */  _test      ,2  ,_Eb ,_Ib ,0   ,0  ,0, 0   },
978  { /* 001 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
979  { /* 010 */       _not       ,1  ,_Eb ,0   ,0   ,0  ,0, 0   },
980  { /* 011 */       _neg       ,1  ,_Eb ,0   ,0   ,0  ,0, 0   },
981  { /* 100 */       _mul       ,1  ,_Eb ,0   ,0   ,0  ,0, 0   },
982  { /* 101 */       _imul      ,1  ,_Eb ,0   ,0   ,0  ,0, 0   },
983  { /* 110 */       _div       ,1  ,_Eb ,0   ,0   ,0  ,0, 0   },
984  { /* 111 */       _idiv      ,1  ,_Eb ,0   ,0   ,0  ,0, 0   }},
985
986 {{ /* Group 3b */  _test      ,2  ,_Ev ,_Iv ,0   ,0  ,0, 0   },
987  { /* 001 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
988  { /* 010 */       _not       ,1  ,_Ev ,0   ,0   ,0  ,0, 0   },
989  { /* 011 */       _neg       ,1  ,_Ev ,0   ,0   ,0  ,0, 0   },
990  { /* 100 */       _mul       ,1  ,_Ev ,0   ,0   ,0  ,0, 0   },
991  { /* 101 */       _imul      ,1  ,_Ev ,0   ,0   ,0  ,0, 0   },
992  { /* 110 */       _div       ,1  ,_Ev ,0   ,0   ,0  ,0, 0   },
993  { /* 111 */       _idiv      ,1  ,_Ev ,0   ,0   ,0  ,0, 0   }},
994
995 {{ /* Group 4  */  _inc       ,1  ,_Eb ,0   ,0   ,0  ,0, 0   },
996  { /* 001 */       _dec       ,1  ,_Eb ,0   ,0   ,0  ,0, 0   },
997  { /* 010 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
998  { /* 011 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
999  { /* 100 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1000  { /* 101 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1001  { /* 110 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1002  { /* 111 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     }},
1003
1004 {{ /* Group 5  */  _inc       ,1  ,_Ev ,0   ,0   ,0  ,0, 0   },
1005  { /* 001 */       _dec       ,1  ,_Ev ,0   ,0   ,0  ,0, 0   },
1006  { /* 010 */       _call      ,1  ,_Ev ,0   ,0   ,0  ,0, SCAN_SINGLE_STEP    },
1007  { /* 011 */       _call      ,1  ,_Ep ,0   ,0   ,0  ,0, SCAN_SINGLE_STEP    },
1008  { /* 100 */       _jmp       ,1  ,_Ev ,0   ,0   ,0  ,0, SCAN_SINGLE_STEP    },
1009  { /* 101 */       _jmp       ,1  ,_Ep ,0   ,0   ,0  ,0, SCAN_SINGLE_STEP    },
1010  { /* 110 */       _push      ,1  ,_Ev ,0   ,0   ,0  ,0, 0   },
1011  { /* 111 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     }},
1012
1013 {{ /* Group 6  */  _sldt      ,1  ,_Ew ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
1014  { /* 001 */       _str       ,1  ,_Ew ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
1015  { /* 010 */       _lldt      ,1  ,_Ew ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
1016  { /* 011 */       _ltr       ,1  ,_Ew ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
1017  { /* 100 */       _verr      ,1  ,_Ew ,0   ,0   ,0  ,0, 0   },
1018  { /* 101 */       _verw      ,1  ,_Ew ,0   ,0   ,0  ,0, 0   },
1019  { /* 110 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1020  { /* 111 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     }},
1021
1022 {{ /* Group 7  */  _sgdt      ,1  ,_Ms ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
1023  { /* 001 */       _sidt      ,1  ,_Ms ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
1024  { /* 010 */       _lgdt      ,1  ,_Ms ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
1025  { /* 011 */       _lidt      ,1  ,_Ms ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
1026  { /* 100 */       _smsw      ,1  ,_Ew ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
1027  { /* 101 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1028  { /* 110 */       _lmsw      ,1  ,_Ew ,0   ,0   ,0  ,0, SCAN_TERMINATING    },
1029  { /* 111 */       _invpg     ,1  ,_M  ,0   ,0   ,0  ,0, SCAN_TERMINATING    }},
1030
1031 {{ /* Group 8  */  _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1032  { /* 001 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1033  { /* 010 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1034  { /* 011 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1035  { /* 100 */       _bt        ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
1036  { /* 101 */       _bts       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
1037  { /* 110 */       _btr       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   },
1038  { /* 111 */       _btc       ,2  ,_Ev ,_Ib ,0   ,0  ,0, 0   }},
1039
1040 {{ /* Group 9  */  _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1041  { /* 001 */       _cmpx8     ,1  ,_Mq ,0   ,0   ,0  ,0, 0   },
1042  { /* 010 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1043  { /* 011 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1044  { /* 100 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1045  { /* 101 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1046  { /* 110 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL     },
1047  { /* 111 */       _NDEF      ,0  ,0   ,0   ,0   ,0  ,0, DIS_SPECIAL  }}
1048 };
1049
1050
1051 /******************************************************************************
1052 *
1053 *   Coprocessor instructions have the prefix byte of D8-DF.
1054 *   The Coproc1 table defines instructions that have the second byte in the
1055 *   range 00-BF
1056 *
1057 ******************************************************************************/
1058 TOpcodeData Coproc1[ 8 ][ 8 ] = {
1059 {{ /* D8 000 */    _fadd    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1060 {  /* D8 001 */    _fmul    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1061 {  /* D8 010 */    _fcom    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1062 {  /* D8 011 */    _fcomp   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1063 {  /* D8 100 */    _fsub    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1064 {  /* D8 101 */    _fsubr   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1065 {  /* D8 110 */    _fdiv    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1066 {  /* D8 111 */    _fdivr   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         }},
1067
1068 {{ /* D9 000 */    _fld     ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1069 {  /* D9 001 */    _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL        },
1070 {  /* D9 010 */    _fst     ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1071 {  /* D9 011 */    _fstp    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1072 {  /* D9 100 */    _fldenv  ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1073 {  /* D9 101 */    _fldcw   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1074 {  /* D9 110 */    _fstenv  ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1075 {  /* D9 111 */    _fstcw   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         }},
1076
1077 {{ /* DA 000 */    _fiadd   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1078 {  /* DA 001 */    _fimul   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1079 {  /* DA 010 */    _ficom   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1080 {  /* DA 011 */    _ficomp  ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1081 {  /* DA 100 */    _fisub   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1082 {  /* DA 101 */    _fisubr  ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1083 {  /* DA 110 */    _fidiv   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1084 {  /* DA 111 */    _fidivr  ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         }},
1085
1086 {{ /* DB 000 */    _fild    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1087 {  /* DB 001 */    _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL        },
1088 {  /* DB 010 */    _fist    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1089 {  /* DB 011 */    _fistp   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1090 {  /* DB 100 */    _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL        },
1091 {  /* DB 101 */    _fld     ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1092 {  /* DB 110 */    _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL        },
1093 {  /* DB 111 */    _fstp    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         }},
1094
1095 {{ /* DC 000 */    _fadd    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1096 {  /* DC 001 */    _fmul    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1097 {  /* DC 010 */    _fcom    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1098 {  /* DC 011 */    _fcomp   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1099 {  /* DC 100 */    _fsub    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1100 {  /* DC 101 */    _fsubr   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1101 {  /* DC 110 */    _fdiv    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1102 {  /* DC 111 */    _fdivr   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         }},
1103
1104 {{ /* DD 000 */    _fld     ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1105 {  /* DD 001 */    _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL        },
1106 {  /* DD 010 */    _fst     ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1107 {  /* DD 011 */    _fstp    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1108 {  /* DD 100 */    _frstor  ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1109 {  /* DD 101 */    _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL        },
1110 {  /* DD 110 */    _fsave   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1111 {  /* DD 111 */    _fstsw   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         }},
1112
1113 {{ /* DE 000 */    _fiadd   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1114 {  /* DE 001 */    _fimul   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1115 {  /* DE 010 */    _ficom   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1116 {  /* DE 011 */    _ficomp  ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1117 {  /* DE 100 */    _fisub   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1118 {  /* DE 101 */    _fisubr  ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1119 {  /* DE 110 */    _fidiv   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1120 {  /* DE 111 */    _fidivr  ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         }},
1121
1122 {{ /* DF 000 */    _fild    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1123 {  /* DF 001 */    _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL        },
1124 {  /* DF 010 */    _fist    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1125 {  /* DF 011 */    _fistp   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1126 {  /* DF 100 */    _fbld    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1127 {  /* DF 101 */    _fild    ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1128 {  /* DF 110 */    _fbstp   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         },
1129 {  /* DF 111 */    _fistp   ,1  ,_M  ,0   ,0   ,0 ,0, DIS_COPROC         }}
1130 };
1131
1132
1133 /******************************************************************************
1134 *
1135 *   The Coproc2 table defines coprocessor instructions that have the second
1136 *   byte in the range C0-FF
1137 *
1138 ******************************************************************************/
1139 TOpcodeData Coproc2[ 8 ][ 16 * 4 ] = {
1140 {{ /* D8 C0 */     _fadd    ,2  ,_ST ,_ST0,0   ,0 ,0, DIS_COPROC       },
1141 {  /* D8 C1 */     _fadd    ,2  ,_ST ,_ST1,0   ,0 ,0, DIS_COPROC       },
1142 {  /* D8 C2 */     _fadd    ,2  ,_ST ,_ST2,0   ,0 ,0, DIS_COPROC       },
1143 {  /* D8 C3 */     _fadd    ,2  ,_ST ,_ST3,0   ,0 ,0, DIS_COPROC       },
1144 {  /* D8 C4 */     _fadd    ,2  ,_ST ,_ST4,0   ,0 ,0, DIS_COPROC       },
1145 {  /* D8 C5 */     _fadd    ,2  ,_ST ,_ST5,0   ,0 ,0, DIS_COPROC       },
1146 {  /* D8 C6 */     _fadd    ,2  ,_ST ,_ST6,0   ,0 ,0, DIS_COPROC       },
1147 {  /* D8 C7 */     _fadd    ,2  ,_ST ,_ST7,0   ,0 ,0, DIS_COPROC       },
1148
1149 {  /* D8 C8 */     _fmul    ,2  ,_ST ,_ST0,0   ,0 ,0, DIS_COPROC       },
1150 {  /* D8 C9 */     _fmul    ,2  ,_ST ,_ST1,0   ,0 ,0, DIS_COPROC       },
1151 {  /* D8 CA */     _fmul    ,2  ,_ST ,_ST2,0   ,0 ,0, DIS_COPROC       },
1152 {  /* D8 CB */     _fmul    ,2  ,_ST ,_ST3,0   ,0 ,0, DIS_COPROC       },
1153 {  /* D8 CC */     _fmul    ,2  ,_ST ,_ST4,0   ,0 ,0, DIS_COPROC       },
1154 {  /* D8 CD */     _fmul    ,2  ,_ST ,_ST5,0   ,0 ,0, DIS_COPROC       },
1155 {  /* D8 CE */     _fmul    ,2  ,_ST ,_ST6,0   ,0 ,0, DIS_COPROC       },
1156 {  /* D8 CF */     _fmul    ,2  ,_ST ,_ST7,0   ,0 ,0, DIS_COPROC       },
1157
1158 {  /* D8 D0 */     _fcom    ,2  ,_ST ,_ST0,0   ,0 ,0, DIS_COPROC       },
1159 {  /* D8 D1 */     _fcom    ,2  ,_ST ,_ST1,0   ,0 ,0, DIS_COPROC       },
1160 {  /* D8 D2 */     _fcom    ,2  ,_ST ,_ST2,0   ,0 ,0, DIS_COPROC       },
1161 {  /* D8 D3 */     _fcom    ,2  ,_ST ,_ST3,0   ,0 ,0, DIS_COPROC       },
1162 {  /* D8 D4 */     _fcom    ,2  ,_ST ,_ST4,0   ,0 ,0, DIS_COPROC       },
1163 {  /* D8 D5 */     _fcom    ,2  ,_ST ,_ST5,0   ,0 ,0, DIS_COPROC       },
1164 {  /* D8 D6 */     _fcom    ,2  ,_ST ,_ST6,0   ,0 ,0, DIS_COPROC       },
1165 {  /* D8 D7 */     _fcom    ,2  ,_ST ,_ST7,0   ,0 ,0, DIS_COPROC       },
1166
1167 {  /* D8 D8 */     _fcomp   ,2  ,_ST ,_ST0,0   ,0 ,0, DIS_COPROC       },
1168 {  /* D8 D9 */     _fcomp   ,2  ,_ST ,_ST1,0   ,0 ,0, DIS_COPROC       },
1169 {  /* D8 DA */     _fcomp   ,2  ,_ST ,_ST2,0   ,0 ,0, DIS_COPROC       },
1170 {  /* D8 DB */     _fcomp   ,2  ,_ST ,_ST3,0   ,0 ,0, DIS_COPROC       },
1171 {  /* D8 DC */     _fcomp   ,2  ,_ST ,_ST4,0   ,0 ,0, DIS_COPROC       },
1172 {  /* D8 DD */     _fcomp   ,2  ,_ST ,_ST5,0   ,0 ,0, DIS_COPROC       },
1173 {  /* D8 DE */     _fcomp   ,2  ,_ST ,_ST6,0   ,0 ,0, DIS_COPROC       },
1174 {  /* D8 DF */     _fcomp   ,2  ,_ST ,_ST7,0   ,0 ,0, DIS_COPROC       },
1175
1176 {  /* D8 E0 */     _fsub    ,2  ,_ST ,_ST0,0   ,0 ,0, DIS_COPROC       },
1177 {  /* D8 E1 */     _fsub    ,2  ,_ST ,_ST1,0   ,0 ,0, DIS_COPROC       },
1178 {  /* D8 E2 */     _fsub    ,2  ,_ST ,_ST2,0   ,0 ,0, DIS_COPROC       },
1179 {  /* D8 E3 */     _fsub    ,2  ,_ST ,_ST3,0   ,0 ,0, DIS_COPROC       },
1180 {  /* D8 E4 */     _fsub    ,2  ,_ST ,_ST4,0   ,0 ,0, DIS_COPROC       },
1181 {  /* D8 E5 */     _fsub    ,2  ,_ST ,_ST5,0   ,0 ,0, DIS_COPROC       },
1182 {  /* D8 E6 */     _fsub    ,2  ,_ST ,_ST6,0   ,0 ,0, DIS_COPROC       },
1183 {  /* D8 E7 */     _fsub    ,2  ,_ST ,_ST7,0   ,0 ,0, DIS_COPROC       },
1184
1185 {  /* D8 E8 */     _fsubr   ,2  ,_ST ,_ST0,0   ,0 ,0, DIS_COPROC       },
1186 {  /* D8 E9 */     _fsubr   ,2  ,_ST ,_ST1,0   ,0 ,0, DIS_COPROC       },
1187 {  /* D8 EA */     _fsubr   ,2  ,_ST ,_ST2,0   ,0 ,0, DIS_COPROC       },
1188 {  /* D8 EB */     _fsubr   ,2  ,_ST ,_ST3,0   ,0 ,0, DIS_COPROC       },
1189 {  /* D8 EC */     _fsubr   ,2  ,_ST ,_ST4,0   ,0 ,0, DIS_COPROC       },
1190 {  /* D8 ED */     _fsubr   ,2  ,_ST ,_ST5,0   ,0 ,0, DIS_COPROC       },
1191 {  /* D8 EE */     _fsubr   ,2  ,_ST ,_ST6,0   ,0 ,0, DIS_COPROC       },
1192 {  /* D8 EF */     _fsubr   ,2  ,_ST ,_ST7,0   ,0 ,0, DIS_COPROC       },
1193
1194 {  /* D8 F0 */     _fdiv    ,2  ,_ST ,_ST0,0   ,0 ,0, DIS_COPROC       },
1195 {  /* D8 F1 */     _fdiv    ,2  ,_ST ,_ST1,0   ,0 ,0, DIS_COPROC       },
1196 {  /* D8 F2 */     _fdiv    ,2  ,_ST ,_ST2,0   ,0 ,0, DIS_COPROC       },
1197 {  /* D8 F3 */     _fdiv    ,2  ,_ST ,_ST3,0   ,0 ,0, DIS_COPROC       },
1198 {  /* D8 F4 */     _fdiv    ,2  ,_ST ,_ST4,0   ,0 ,0, DIS_COPROC       },
1199 {  /* D8 F5 */     _fdiv    ,2  ,_ST ,_ST5,0   ,0 ,0, DIS_COPROC       },
1200 {  /* D8 F6 */     _fdiv    ,2  ,_ST ,_ST6,0   ,0 ,0, DIS_COPROC       },
1201 {  /* D8 F7 */     _fdiv    ,2  ,_ST ,_ST7,0   ,0 ,0, DIS_COPROC       },
1202
1203 {  /* D8 F8 */     _fdivr   ,2  ,_ST ,_ST0,0   ,0 ,0, DIS_COPROC       },
1204 {  /* D8 F9 */     _fdivr   ,2  ,_ST ,_ST1,0   ,0 ,0, DIS_COPROC       },
1205 {  /* D8 FA */     _fdivr   ,2  ,_ST ,_ST2,0   ,0 ,0, DIS_COPROC       },
1206 {  /* D8 FB */     _fdivr   ,2  ,_ST ,_ST3,0   ,0 ,0, DIS_COPROC       },
1207 {  /* D8 FC */     _fdivr   ,2  ,_ST ,_ST4,0   ,0 ,0, DIS_COPROC       },
1208 {  /* D8 FD */     _fdivr   ,2  ,_ST ,_ST5,0   ,0 ,0, DIS_COPROC       },
1209 {  /* D8 FE */     _fdivr   ,2  ,_ST ,_ST6,0   ,0 ,0, DIS_COPROC       },
1210 {  /* D8 FF */     _fdivr   ,2  ,_ST ,_ST7,0   ,0 ,0, DIS_COPROC       }},
1211 /*----------------------------------------------------*/
1212 {{ /* D9 C0 */     _fld     ,2  ,_ST ,_ST0,0   ,0 ,0, DIS_COPROC       },
1213 {  /* D9 C1 */     _fld     ,2  ,_ST ,_ST1,0   ,0 ,0, DIS_COPROC       },
1214 {  /* D9 C2 */     _fld     ,2  ,_ST ,_ST2,0   ,0 ,0, DIS_COPROC       },
1215 {  /* D9 C3 */     _fld     ,2  ,_ST ,_ST3,0   ,0 ,0, DIS_COPROC       },
1216 {  /* D9 C4 */     _fld     ,2  ,_ST ,_ST4,0   ,0 ,0, DIS_COPROC       },
1217 {  /* D9 C5 */     _fld     ,2  ,_ST ,_ST5,0   ,0 ,0, DIS_COPROC       },
1218 {  /* D9 C6 */     _fld     ,2  ,_ST ,_ST6,0   ,0 ,0, DIS_COPROC       },
1219 {  /* D9 C7 */     _fld     ,2  ,_ST ,_ST7,0   ,0 ,0, DIS_COPROC       },
1220
1221 {  /* D9 C8 */     _fxch    ,2  ,_ST ,_ST0,0   ,0 ,0, DIS_COPROC       },
1222 {  /* D9 C9 */     _fxch    ,2  ,_ST ,_ST1,0   ,0 ,0, DIS_COPROC       },
1223 {  /* D9 CA */     _fxch    ,2  ,_ST ,_ST2,0   ,0 ,0, DIS_COPROC       },
1224 {  /* D9 CB */     _fxch    ,2  ,_ST ,_ST3,0   ,0 ,0, DIS_COPROC       },
1225 {  /* D9 CC */     _fxch    ,2  ,_ST ,_ST4,0   ,0 ,0, DIS_COPROC       },
1226 {  /* D9 CD */     _fxch    ,2  ,_ST ,_ST5,0   ,0 ,0, DIS_COPROC       },
1227 {  /* D9 CE */     _fxch    ,2  ,_ST ,_ST6,0   ,0 ,0, DIS_COPROC       },
1228 {  /* D9 CF */     _fxch    ,2  ,_ST ,_ST7,0   ,0 ,0, DIS_COPROC       },
1229
1230 {  /* D9 D0 */     _fnop    ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1231 {  /* D9 D1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1232 {  /* D9 D2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1233 {  /* D9 D3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1234 {  /* D9 D4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1235 {  /* D9 D5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1236 {  /* D9 D6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1237 {  /* D9 D7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1238
1239 {  /* D9 D8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1240 {  /* D9 D9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1241 {  /* D9 DA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1242 {  /* D9 DB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1243 {  /* D9 DC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1244 {  /* D9 DD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1245 {  /* D9 DE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1246 {  /* D9 DF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1247
1248 {  /* D9 E0 */     _fchs    ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1249 {  /* D9 E1 */     _fabs    ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1250 {  /* D9 E2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1251 {  /* D9 E3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1252 {  /* D9 E4 */     _ftst    ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1253 {  /* D9 E5 */     _fxam    ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1254 {  /* D9 E6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1255 {  /* D9 E7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1256
1257 {  /* D9 E8 */     _fld1    ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1258 {  /* D9 E9 */     _fldl2t  ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1259 {  /* D9 EA */     _fldl2e  ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1260 {  /* D9 EB */     _fldpi   ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1261 {  /* D9 EC */     _fldlg2  ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1262 {  /* D9 ED */     _fldln2  ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1263 {  /* D9 EE */     _fldz    ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1264 {  /* D9 EF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1265
1266 {  /* D9 F0 */     _f2xm1   ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1267 {  /* D9 F1 */     _fyl2x   ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1268 {  /* D9 F2 */     _fptan   ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1269 {  /* D9 F3 */     _fpatan  ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1270 {  /* D9 F4 */     _fxtract ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1271 {  /* D9 F5 */     _fprem1  ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1272 {  /* D9 F6 */     _fdecstp ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1273 {  /* D9 F7 */     _fincstp ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1274
1275 {  /* D9 F8 */     _fprem   ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1276 {  /* D9 F9 */     _fyl2xp1 ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1277 {  /* D9 FA */     _fsqrt   ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1278 {  /* D9 FB */     _fsincos ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1279 {  /* D9 FC */     _frndint ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1280 {  /* D9 FD */     _fscale  ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1281 {  /* D9 FE */     _fsin    ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1282 {  /* D9 FF */     _fcos    ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       }},
1283 /*----------------------------------------------------*/
1284 {{ /* DA C0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1285 {  /* DA C1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1286 {  /* DA C2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1287 {  /* DA C3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1288 {  /* DA C4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1289 {  /* DA C5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1290 {  /* DA C6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1291 {  /* DA C7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1292
1293 {  /* DA C8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1294 {  /* DA C9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1295 {  /* DA CA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1296 {  /* DA CB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1297 {  /* DA CC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1298 {  /* DA CD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1299 {  /* DA CE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1300 {  /* DA CF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1301
1302 {  /* DA D0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1303 {  /* DA D1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1304 {  /* DA D2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1305 {  /* DA D3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1306 {  /* DA D4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1307 {  /* DA D5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1308 {  /* DA D6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1309 {  /* DA D7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1310
1311 {  /* DA D8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1312 {  /* DA D9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1313 {  /* DA DA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1314 {  /* DA DB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1315 {  /* DA DC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1316 {  /* DA DD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1317 {  /* DA DE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1318 {  /* DA DF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1319
1320 {  /* DA E0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1321 {  /* DA E1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1322 {  /* DA E2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1323 {  /* DA E3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1324 {  /* DA E4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1325 {  /* DA E5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1326 {  /* DA E6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1327 {  /* DA E7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1328
1329 {  /* DA E8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1330 {  /* DA E9 */     _fucompp ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1331 {  /* DA EA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1332 {  /* DA EB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1333 {  /* DA EC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1334 {  /* DA ED */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1335 {  /* DA EE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1336 {  /* DA EF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1337
1338 {  /* DA F0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1339 {  /* DA F1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1340 {  /* DA F2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1341 {  /* DA F3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1342 {  /* DA F4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1343 {  /* DA F5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1344 {  /* DA F6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1345 {  /* DA F7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1346
1347 {  /* DA F8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1348 {  /* DA F9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1349 {  /* DA FA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1350 {  /* DA FB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1351 {  /* DA FC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1352 {  /* DA FD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1353 {  /* DA FE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1354 {  /* DA FF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      }},
1355 /*----------------------------------------------------*/
1356 {{ /* DB C0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1357 {  /* DB C1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1358 {  /* DB C2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1359 {  /* DB C3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1360 {  /* DB C4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1361 {  /* DB C5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1362 {  /* DB C6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1363 {  /* DB C7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1364
1365 {  /* DB C8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1366 {  /* DB C9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1367 {  /* DB CA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1368 {  /* DB CB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1369 {  /* DB CC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1370 {  /* DB CD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1371 {  /* DB CE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1372 {  /* DB CF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1373
1374 {  /* DB D0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1375 {  /* DB D1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1376 {  /* DB D2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1377 {  /* DB D3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1378 {  /* DB D4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1379 {  /* DB D5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1380 {  /* DB D6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1381 {  /* DB D7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1382
1383 {  /* DB D8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1384 {  /* DB D9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1385 {  /* DB DA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1386 {  /* DB DB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1387 {  /* DB DC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1388 {  /* DB DD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1389 {  /* DB DE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1390 {  /* DB DF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1391
1392 {  /* DB E0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1393 {  /* DB E1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1394 {  /* DB E2 */     _fclex   ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1395 {  /* DB E3 */     _finit   ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1396 {  /* DB E4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1397 {  /* DB E5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1398 {  /* DB E6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1399 {  /* DB E7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1400
1401 {  /* DB E8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1402 {  /* DB E9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1403 {  /* DB EA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1404 {  /* DB EB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1405 {  /* DB EC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1406 {  /* DB ED */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1407 {  /* DB EE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1408 {  /* DB EF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1409
1410 {  /* DB F0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1411 {  /* DB F1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1412 {  /* DB F2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1413 {  /* DB F3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1414 {  /* DB F4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1415 {  /* DB F5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1416 {  /* DB F6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1417 {  /* DB F7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1418
1419 {  /* DB F8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1420 {  /* DB F9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1421 {  /* DB FA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1422 {  /* DB FB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1423 {  /* DB FC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1424 {  /* DB FD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1425 {  /* DB FE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1426 {  /* DB FF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      }},
1427 /*----------------------------------------------------*/
1428 {{ /* DC C0 */     _fadd    ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1429 {  /* DC C1 */     _fadd    ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1430 {  /* DC C2 */     _fadd    ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1431 {  /* DC C3 */     _fadd    ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1432 {  /* DC C4 */     _fadd    ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1433 {  /* DC C5 */     _fadd    ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1434 {  /* DC C6 */     _fadd    ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1435 {  /* DC C7 */     _fadd    ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1436
1437 {  /* DC C8 */     _fmul    ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1438 {  /* DC C9 */     _fmul    ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1439 {  /* DC CA */     _fmul    ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1440 {  /* DC CB */     _fmul    ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1441 {  /* DC CC */     _fmul    ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1442 {  /* DC CD */     _fmul    ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1443 {  /* DC CE */     _fmul    ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1444 {  /* DC CF */     _fmul    ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1445
1446 {  /* DC D0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1447 {  /* DC D1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1448 {  /* DC D2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1449 {  /* DC D3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1450 {  /* DC D4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1451 {  /* DC D5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1452 {  /* DC D6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1453 {  /* DC D7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1454
1455 {  /* DC D8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1456 {  /* DC D9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1457 {  /* DC DA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1458 {  /* DC DB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1459 {  /* DC DC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1460 {  /* DC DD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1461 {  /* DC DE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1462 {  /* DC DF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1463
1464 {  /* DC E0 */     _fsubr   ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1465 {  /* DC E1 */     _fsubr   ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1466 {  /* DC E2 */     _fsubr   ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1467 {  /* DC E3 */     _fsubr   ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1468 {  /* DC E4 */     _fsubr   ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1469 {  /* DC E5 */     _fsubr   ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1470 {  /* DC E6 */     _fsubr   ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1471 {  /* DC E7 */     _fsubr   ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1472
1473 {  /* DC E8 */     _fsub    ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1474 {  /* DC E9 */     _fsub    ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1475 {  /* DC EA */     _fsub    ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1476 {  /* DC EB */     _fsub    ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1477 {  /* DC EC */     _fsub    ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1478 {  /* DC ED */     _fsub    ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1479 {  /* DC EE */     _fsub    ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1480 {  /* DC EF */     _fsub    ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1481
1482 {  /* DC F0 */     _fdivr   ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1483 {  /* DC F1 */     _fdivr   ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1484 {  /* DC F2 */     _fdivr   ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1485 {  /* DC F3 */     _fdivr   ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1486 {  /* DC F4 */     _fdivr   ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1487 {  /* DC F5 */     _fdivr   ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1488 {  /* DC F6 */     _fdivr   ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1489 {  /* DC F7 */     _fdivr   ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1490
1491 {  /* DC F8 */     _fdiv    ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1492 {  /* DC F9 */     _fdiv    ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1493 {  /* DC FA */     _fdiv    ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1494 {  /* DC FB */     _fdiv    ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1495 {  /* DC FC */     _fdiv    ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1496 {  /* DC FD */     _fdiv    ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1497 {  /* DC FE */     _fdiv    ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1498 {  /* DC FF */     _fdiv    ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       }},
1499 /*----------------------------------------------------*/
1500 {{ /* DD C0 */     _ffree   ,1  ,_ST0,0   ,0   ,0 ,0, DIS_COPROC       },
1501 {  /* DD C1 */     _ffree   ,1  ,_ST1,0   ,0   ,0 ,0, DIS_COPROC       },
1502 {  /* DD C2 */     _ffree   ,1  ,_ST2,0   ,0   ,0 ,0, DIS_COPROC       },
1503 {  /* DD C3 */     _ffree   ,1  ,_ST3,0   ,0   ,0 ,0, DIS_COPROC       },
1504 {  /* DD C4 */     _ffree   ,1  ,_ST4,0   ,0   ,0 ,0, DIS_COPROC       },
1505 {  /* DD C5 */     _ffree   ,1  ,_ST5,0   ,0   ,0 ,0, DIS_COPROC       },
1506 {  /* DD C6 */     _ffree   ,1  ,_ST6,0   ,0   ,0 ,0, DIS_COPROC       },
1507 {  /* DD C7 */     _ffree   ,1  ,_ST7,0   ,0   ,0 ,0, DIS_COPROC       },
1508
1509 {  /* DD C8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1510 {  /* DD C9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1511 {  /* DD CA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1512 {  /* DD CB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1513 {  /* DD CC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1514 {  /* DD CD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1515 {  /* DD CE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1516 {  /* DD CF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1517
1518 {  /* DD D0 */     _fst     ,1  ,_ST0,0   ,0   ,0 ,0, DIS_COPROC       },
1519 {  /* DD D1 */     _fst     ,1  ,_ST1,0   ,0   ,0 ,0, DIS_COPROC       },
1520 {  /* DD D2 */     _fst     ,1  ,_ST2,0   ,0   ,0 ,0, DIS_COPROC       },
1521 {  /* DD D3 */     _fst     ,1  ,_ST3,0   ,0   ,0 ,0, DIS_COPROC       },
1522 {  /* DD D4 */     _fst     ,1  ,_ST4,0   ,0   ,0 ,0, DIS_COPROC       },
1523 {  /* DD D5 */     _fst     ,1  ,_ST5,0   ,0   ,0 ,0, DIS_COPROC       },
1524 {  /* DD D6 */     _fst     ,1  ,_ST6,0   ,0   ,0 ,0, DIS_COPROC       },
1525 {  /* DD D7 */     _fst     ,1  ,_ST7,0   ,0   ,0 ,0, DIS_COPROC       },
1526
1527 {  /* DD D8 */     _fstp    ,1  ,_ST0,0   ,0   ,0 ,0, DIS_COPROC       },
1528 {  /* DD D9 */     _fstp    ,1  ,_ST1,0   ,0   ,0 ,0, DIS_COPROC       },
1529 {  /* DD DA */     _fstp    ,1  ,_ST2,0   ,0   ,0 ,0, DIS_COPROC       },
1530 {  /* DD DB */     _fstp    ,1  ,_ST3,0   ,0   ,0 ,0, DIS_COPROC       },
1531 {  /* DD DC */     _fstp    ,1  ,_ST4,0   ,0   ,0 ,0, DIS_COPROC       },
1532 {  /* DD DD */     _fstp    ,1  ,_ST5,0   ,0   ,0 ,0, DIS_COPROC       },
1533 {  /* DD DE */     _fstp    ,1  ,_ST6,0   ,0   ,0 ,0, DIS_COPROC       },
1534 {  /* DD DF */     _fstp    ,1  ,_ST7,0   ,0   ,0 ,0, DIS_COPROC       },
1535
1536 {  /* DD E0 */     _fucom   ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1537 {  /* DD E1 */     _fucom   ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1538 {  /* DD E2 */     _fucom   ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1539 {  /* DD E3 */     _fucom   ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1540 {  /* DD E4 */     _fucom   ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1541 {  /* DD E5 */     _fucom   ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1542 {  /* DD E6 */     _fucom   ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1543 {  /* DD E7 */     _fucom   ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1544
1545 {  /* DD E8 */     _fucomp  ,1  ,_ST0,0   ,0   ,0 ,0, DIS_COPROC       },
1546 {  /* DD E9 */     _fucomp  ,1  ,_ST1,0   ,0   ,0 ,0, DIS_COPROC       },
1547 {  /* DD EA */     _fucomp  ,1  ,_ST2,0   ,0   ,0 ,0, DIS_COPROC       },
1548 {  /* DD EB */     _fucomp  ,1  ,_ST3,0   ,0   ,0 ,0, DIS_COPROC       },
1549 {  /* DD EC */     _fucomp  ,1  ,_ST4,0   ,0   ,0 ,0, DIS_COPROC       },
1550 {  /* DD ED */     _fucomp  ,1  ,_ST5,0   ,0   ,0 ,0, DIS_COPROC       },
1551 {  /* DD EE */     _fucomp  ,1  ,_ST6,0   ,0   ,0 ,0, DIS_COPROC       },
1552 {  /* DD EF */     _fucomp  ,1  ,_ST7,0   ,0   ,0 ,0, DIS_COPROC       },
1553
1554 {  /* DD F0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1555 {  /* DD F1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1556 {  /* DD F2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1557 {  /* DD F3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1558 {  /* DD F4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1559 {  /* DD F5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1560 {  /* DD F6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1561 {  /* DD F7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1562
1563 {  /* DD F8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1564 {  /* DD F9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1565 {  /* DD FA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1566 {  /* DD FB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1567 {  /* DD FC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1568 {  /* DD FD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1569 {  /* DD FE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1570 {  /* DD FF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      }},
1571 /*----------------------------------------------------*/
1572 {{ /* DE C0 */     _faddp   ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1573 {  /* DE C1 */     _faddp   ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1574 {  /* DE C2 */     _faddp   ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1575 {  /* DE C3 */     _faddp   ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1576 {  /* DE C4 */     _faddp   ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1577 {  /* DE C5 */     _faddp   ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1578 {  /* DE C6 */     _faddp   ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1579 {  /* DE C7 */     _faddp   ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1580
1581 {  /* DE C8 */     _fmulp   ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1582 {  /* DE C9 */     _fmulp   ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1583 {  /* DE CA */     _fmulp   ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1584 {  /* DE CB */     _fmulp   ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1585 {  /* DE CC */     _fmulp   ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1586 {  /* DE CD */     _fmulp   ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1587 {  /* DE CE */     _fmulp   ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1588 {  /* DE CF */     _fmulp   ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1589
1590 {  /* DE D0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1591 {  /* DE D1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1592 {  /* DE D2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1593 {  /* DE D3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1594 {  /* DE D4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1595 {  /* DE D5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1596 {  /* DE D6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1597 {  /* DE D7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1598
1599 {  /* DE D8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1600 {  /* DE D9 */     _fcompp  ,0  ,0   ,0   ,0   ,0 ,0, DIS_COPROC       },
1601 {  /* DE DA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1602 {  /* DE DB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1603 {  /* DE DC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1604 {  /* DE DD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1605 {  /* DE DE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1606 {  /* DE DF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1607
1608 {  /* DE E0 */     _fsubrp  ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1609 {  /* DE E1 */     _fsubrp  ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1610 {  /* DE E2 */     _fsubrp  ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1611 {  /* DE E3 */     _fsubrp  ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1612 {  /* DE E4 */     _fsubrp  ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1613 {  /* DE E5 */     _fsubrp  ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1614 {  /* DE E6 */     _fsubrp  ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1615 {  /* DE E7 */     _fsubrp  ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1616
1617 {  /* DE E8 */     _fsubp   ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1618 {  /* DE E9 */     _fsubp   ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1619 {  /* DE EA */     _fsubp   ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1620 {  /* DE EB */     _fsubp   ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1621 {  /* DE EC */     _fsubp   ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1622 {  /* DE ED */     _fsubp   ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1623 {  /* DE EE */     _fsubp   ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1624 {  /* DE EF */     _fsubp   ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1625
1626 {  /* DE F0 */     _fdivrp  ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1627 {  /* DE F1 */     _fdivrp  ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1628 {  /* DE F2 */     _fdivrp  ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1629 {  /* DE F3 */     _fdivrp  ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1630 {  /* DE F4 */     _fdivrp  ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1631 {  /* DE F5 */     _fdivrp  ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1632 {  /* DE F6 */     _fdivrp  ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1633 {  /* DE F7 */     _fdivrp  ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       },
1634
1635 {  /* DE F8 */     _fdivp   ,2  ,_ST0,_ST ,0   ,0 ,0, DIS_COPROC       },
1636 {  /* DE F9 */     _fdivp   ,2  ,_ST1,_ST ,0   ,0 ,0, DIS_COPROC       },
1637 {  /* DE FA */     _fdivp   ,2  ,_ST2,_ST ,0   ,0 ,0, DIS_COPROC       },
1638 {  /* DE FB */     _fdivp   ,2  ,_ST3,_ST ,0   ,0 ,0, DIS_COPROC       },
1639 {  /* DE FC */     _fdivp   ,2  ,_ST4,_ST ,0   ,0 ,0, DIS_COPROC       },
1640 {  /* DE FD */     _fdivp   ,2  ,_ST5,_ST ,0   ,0 ,0, DIS_COPROC       },
1641 {  /* DE FE */     _fdivp   ,2  ,_ST6,_ST ,0   ,0 ,0, DIS_COPROC       },
1642 {  /* DE FF */     _fdivp   ,2  ,_ST7,_ST ,0   ,0 ,0, DIS_COPROC       }},
1643 /*----------------------------------------------------*/
1644 {{ /* DF C0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1645 {  /* DF C1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1646 {  /* DF C2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1647 {  /* DF C3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1648 {  /* DF C4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1649 {  /* DF C5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1650 {  /* DF C6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1651 {  /* DF C7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1652
1653 {  /* DF C8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1654 {  /* DF C9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1655 {  /* DF CA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1656 {  /* DF CB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1657 {  /* DF CC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1658 {  /* DF CD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1659 {  /* DF CE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1660 {  /* DF CF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1661
1662 {  /* DF D0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1663 {  /* DF D1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1664 {  /* DF D2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1665 {  /* DF D3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1666 {  /* DF D4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1667 {  /* DF D5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1668 {  /* DF D6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1669 {  /* DF D7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1670
1671 {  /* DF D8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1672 {  /* DF D9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1673 {  /* DF DA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1674 {  /* DF DB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1675 {  /* DF DC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1676 {  /* DF DD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1677 {  /* DF DE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1678 {  /* DF DF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1679
1680 {  /* DF E0 */     _fstsw   ,1  ,_AX ,0   ,0   ,0 ,0, DIS_COPROC       },
1681 {  /* DF E1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1682 {  /* DF E2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1683 {  /* DF E3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1684 {  /* DF E4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1685 {  /* DF E5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1686 {  /* DF E6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1687 {  /* DF E7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1688
1689 {  /* DF E8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1690 {  /* DF E9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1691 {  /* DF EA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1692 {  /* DF EB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1693 {  /* DF EC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1694 {  /* DF ED */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1695 {  /* DF EE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1696 {  /* DF EF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1697
1698 {  /* DF F0 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1699 {  /* DF F1 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1700 {  /* DF F2 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1701 {  /* DF F3 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1702 {  /* DF F4 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1703 {  /* DF F5 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1704 {  /* DF F6 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1705 {  /* DF F7 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1706
1707 {  /* DF F8 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1708 {  /* DF F9 */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1709 {  /* DF FA */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1710 {  /* DF FB */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1711 {  /* DF FC */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1712 {  /* DF FD */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1713 {  /* DF FE */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      },
1714 {  /* DF FF */     _NDEF    ,0  ,0   ,0   ,0   ,0 ,0, DIS_SPECIAL      }}
1715 };
1716
1717 /******************************************************************************
1718 *
1719 *   Generic messages used by the disassembler
1720 *
1721 ******************************************************************************/
1722 char *sBytePtr  = "BYTE PTR ";
1723 char *sWordPtr  = "WORD PTR ";
1724 char *sDwordPtr = "DWORD PTR ";
1725 char *sFwordPtr = "FWORD PTR ";
1726 char *sQwordPtr = "QWORD PTR ";
1727
1728 /******************************************************************************
1729 *
1730 *   Different register messages used by the disassembler
1731 *
1732 ******************************************************************************/
1733 char *sGenReg16_32[ 2 ][ 8 ] = {
1734 { "AX","CX","DX","BX","SP","BP","SI","DI" },
1735 { "EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI" }
1736 };
1737
1738 char *sSeg[ 8 ] = {
1739 "ES","CS","SS","DS","FS","GS","?","?"
1740 };
1741
1742 char *sSegOverride[ 8 ] = {
1743 "", "ES:","CS:","SS:","DS:","FS:","GS:","?:"
1744 };
1745
1746 char *sSegOverrideDefaultES[ 8 ] = {
1747 "ES:", "ES:","CS:","SS:","DS:","FS:","GS:","?:"
1748 };
1749
1750 char *sSegOverrideDefaultDS[ 8 ] = {
1751 "DS:", "ES:","CS:","SS:","DS:","FS:","GS:","?:"
1752 };
1753
1754 char *sScale[ 4 ] = {
1755 "",  "2*",  "4*",  "8*"
1756 };
1757
1758 char *sAdr1[ 2 ][ 8 ] = {
1759 { "BX+SI","BX+DI","BP+SI","BP+DI","SI","DI","BP","BX" },
1760 { "EAX","ECX","EDX","EBX","?","EBP","ESI","EDI" }
1761 };
1762
1763 char *sRegs1[ 2 ][ 2 ][ 8 ] = {
1764 {{ "AL","CL","DL","BL","AH","CH","DH","BH" },
1765  { "AX","CX","DX","BX","SP","BP","SI","DI" } },
1766 {{ "AL","CL","DL","BL","AH","CH","DH","BH" },
1767  { "EAX","ECX","EDX","EBX","ESP","EBP","ESI","EDI" } }
1768 };
1769
1770 char *sRegs2[] = {
1771 "DX",  "AL",  "AH",  "BL",  "BH",  "CL",  "CH",  "DL",  "DH",  "CS",  "DS",  "ES",  "SS",  "FS",  "GS"
1772 };
1773
1774 char *sControl[ 8 ] = {
1775 "CR0","CR1","CR2","CR3","CR4","?","?","?"
1776 };
1777
1778 char *sDebug[ 8 ] = {
1779 "DR0","DR1","DR2","DR3","DR4","DR5","DR6","DR7"
1780 };
1781
1782 char *sTest[ 8 ] = {
1783 "?","?","?","?","?","?","TR6","TR7"
1784 };
1785
1786 char *sYptr[ 2 ] = {
1787 "[DI]",  "[EDI]"
1788 };
1789
1790 char *sXptr[ 2 ] = {
1791 "[SI]",  "[ESI]"
1792 };
1793
1794 char *sRep[ 4 ] = {
1795 "", "REP ", "REPNZ ", "?"
1796 };
1797
1798 char *sST[ 9 ] = {
1799 "ST(0)","ST(1)","ST(2)","ST(3)","ST(4)","ST(5)","ST(6)","ST(7)","ST"
1800 };
1801
1802