3 Copyright (c) 2000-2001 Goran Devic
4 Modified (c) 2001 Klaus P. Gerlicher
12 header for disassembler.c
25 17-Mar-2000: Original (Goran Devic)
26 05-Jan-2001: Modified for pICE (Klaus P. Gerlicher)
30 This file may be distributed under the terms of the GNU Public License.
33 There is no segment override for _Ap (look the code)
37 /******************************************************************************
41 ******************************************************************************/
43 #include "disassemblerdefines.h" // Include its own defines
45 /******************************************************************************
47 * Define opcode names as ASCIIZ strings *
49 ******************************************************************************/
138 "LOOPNE", /* 0X057 */
139 "LOOPNZ", /* 0X058 */
166 "PUSHAD", /* 0X073 */
168 "PUSHFD", /* 0X075 */
214 "LOADALL", /* 0X0A3 */
216 "WBINVD", /* 0X0A5 */
224 "SETNBE", /* 0X0AD */
232 "SETNLE", /* 0X0B5 */
238 "CMPXCHG", /* 0X0BB */
241 "INVLPG", /* 0X0BE */
242 "CMPXCHG8B", /* 0X0BF */
243 "JMP FAR", /* 0X0C0 */
249 char* sCoprocNames
[] = {
261 "FCOMPP", /* 0X00B */
263 "FDECSTP", /* 0X00D */
267 "FDIVRP", /* 0X011 */
271 "FICOMP", /* 0X015 */
273 "FIDIVR", /* 0X017 */
276 "FINCSTP", /* 0X01A */
281 "FISUBR", /* 0X01F */
285 "FLDENV", /* 0X023 */
286 "FLDL2E", /* 0X024 */
287 "FLDL2T", /* 0X025 */
288 "FLDLG2", /* 0X026 */
289 "FLDLN2", /* 0X027 */
295 "FPATAN", /* 0X02D */
297 "FPREM1", /* 0X02F */
299 "FRNDINT", /* 0X031 */
300 "FRSTOR", /* 0X032 */
302 "FSCALE", /* 0X034 */
304 "FSINCOS", /* 0X036 */
308 "FSTENV", /* 0X03A */
314 "FSUBRP", /* 0X040 */
317 "FUCOMP", /* 0X043 */
318 "FUCOMPP", /* 0X044 */
321 "FXTRACT", /* 0X047 */
323 "FYL2XP1" /* 0X049 */
327 /******************************************************************************
329 * Table of the first byte of an instruction
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
},
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 },
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 },
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 },
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 },
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 },
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
},
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
},
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
},
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 },
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
},
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 },
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
},
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
},
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
},
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
}
607 /******************************************************************************
609 * Table of the second byte of an instruction where the first byte was FF,
610 * the 2-byte escape code
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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 },
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
},
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
},
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
}
888 /******************************************************************************
890 * Table for Groups codes; groups 1 - 9
892 * (These records have DIS_MODRM implied)
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 }},
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 }},
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 }},
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 }},
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 }},
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 }},
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 }},
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 }},
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 }},
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 }},
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 }},
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
}},
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
}},
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
}},
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
}},
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 }},
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
}}
1051 /******************************************************************************
1053 * Coprocessor instructions have the prefix byte of D8-DF.
1054 * The Coproc1 table defines instructions that have the second byte in the
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
}},
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
}},
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
}},
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
}},
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
}},
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
}},
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
}},
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
}}
1133 /******************************************************************************
1135 * The Coproc2 table defines coprocessor instructions that have the second
1136 * byte in the range C0-FF
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
},
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
}}
1717 /******************************************************************************
1719 * Generic messages used by the disassembler
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 ";
1728 /******************************************************************************
1730 * Different register messages used by the disassembler
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" }
1739 "ES","CS","SS","DS","FS","GS","?","?"
1742 char *sSegOverride
[ 8 ] = {
1743 "", "ES:","CS:","SS:","DS:","FS:","GS:","?:"
1746 char *sSegOverrideDefaultES
[ 8 ] = {
1747 "ES:", "ES:","CS:","SS:","DS:","FS:","GS:","?:"
1750 char *sSegOverrideDefaultDS
[ 8 ] = {
1751 "DS:", "ES:","CS:","SS:","DS:","FS:","GS:","?:"
1754 char *sScale
[ 4 ] = {
1755 "", "2*", "4*", "8*"
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" }
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" } }
1771 "DX", "AL", "AH", "BL", "BH", "CL", "CH", "DL", "DH", "CS", "DS", "ES", "SS", "FS", "GS"
1774 char *sControl
[ 8 ] = {
1775 "CR0","CR1","CR2","CR3","CR4","?","?","?"
1778 char *sDebug
[ 8 ] = {
1779 "DR0","DR1","DR2","DR3","DR4","DR5","DR6","DR7"
1782 char *sTest
[ 8 ] = {
1783 "?","?","?","?","?","?","TR6","TR7"
1786 char *sYptr
[ 2 ] = {
1790 char *sXptr
[ 2 ] = {
1795 "", "REP ", "REPNZ ", "?"
1799 "ST(0)","ST(1)","ST(2)","ST(3)","ST(4)","ST(5)","ST(6)","ST(7)","ST"