
;--- This file was generated by mktables.exe.

;--- Operand type lists.
;--- They were read from file INSTR.KEY.

oplists label byte
	opl	;void - for instructions without operands
	opl OP_ALL+OP_AX, OP_ALL+OP_IMM ;idx=1
	opl OP_ALL+OP_RM, OP_ALL+OP_IMM ;idx=2
	opl OP_1632+OP_RM, OP_IMMS8	;idx=3
	opl OP_ALL+OP_RM, OP_ALL+OP_R	;idx=4
	opl OP_ALL+OP_R, OP_ALL+OP_RM	;idx=5
	opl OP_16+OP_RM, OP_16+OP_R	;idx=6
	opl OP_1632+OP_R, OP_1632+OP_M	;idx=7
	opl OP_1632+OP_R, OP_1632+OP_RM ;idx=8
	opl OP_32+OP_R_ADD	;idx=9
	opl OP_1632+OP_RM, OP_1632+OP_R ;idx=10
	opl OP_1632+OP_RM, OP_IMM8	;idx=11
	opl OP_REL1632	;idx=12
	opl OP_FARIMM	;idx=13
	opl OP_FARMEM	;idx=14
	opl OP_M64	;idx=15
	opl OP_ALL+OP_RM	;idx=16
	opl OP_1632+OP_R_ADD	;idx=17
	opl OP_16+OP_IMM, OP_IMM8	;idx=18
	opl OP_MFLOAT	;idx=19
	opl OP_MDOUBLE	;idx=20
	opl OP_ST, OP_STI	;idx=21
	opl OP_STI, OP_ST	;idx=22
	opl OP_1CHK, OP_STI, OP_ST	;idx=23
	opl OP_32+OP_M	;idx=24
	opl OP_16+OP_M	;idx=25
	opl OP_M80	;idx=26
	opl OP_STI	;idx=27
	opl OP_1CHK, OP_STI	;idx=28
	opl OP_MXX	;idx=29
	opl OP_16+OP_AX ;idx=30
	opl OP_1632+OP_R, OP_1632+OP_RM, OP_IMMS8	;idx=31
	opl OP_1632+OP_R_MOD, OP_1632+OP_R, OP_IMMS8	;idx=32
	opl OP_1632+OP_R, OP_1632+OP_RM, OP_1632+OP_IMM ;idx=33
	opl OP_1632+OP_R_MOD, OP_1632+OP_R, OP_1632+OP_IMM	;idx=34
	opl OP_ALL+OP_AX, OP_IMM8	;idx=35
	opl OP_ALL+OP_AX, OP_DX ;idx=36
	opl OP_3	;idx=37
	opl OP_IMM8	;idx=38
	opl OP_REL8	;idx=39
	opl OP_1632+OP_RM	;idx=40
	opl OP_16+OP_RM ;idx=41
	opl OP_1632+OP_RM, OP_SEGREG	;idx=42
	opl OP_SEGREG, OP_1632+OP_RM	;idx=43
	opl OP_ALL+OP_AX, OP_ALL+OP_MOFFS	;idx=44
	opl OP_ALL+OP_MOFFS, OP_ALL+OP_AX	;idx=45
	opl OP_8+OP_R_ADD, OP_8+OP_IMM	;idx=46
	opl OP_1632+OP_R_ADD, OP_1632+OP_IMM	;idx=47
	opl OP_1632+OP_R, OP_SHOSIZ, OP_8+OP_RM ;idx=48
	opl OP_1632+OP_R, OP_SHOSIZ, OP_16+OP_RM	;idx=49
	opl OP_IMM8, OP_ALL+OP_AX	;idx=50
	opl OP_DX, OP_ALL+OP_AX ;idx=51
	opl OP_1632+OP_M	;idx=52
	opl OP_1632+OP_IMM	;idx=53
	opl OP_IMMS8	;idx=54
	opl OP_ALL+OP_RM, OP_1	;idx=55
	opl OP_ALL+OP_RM, OP_CL ;idx=56
	opl OP_ALL+OP_RM, OP_IMM8	;idx=57
	opl OP_16+OP_IMM	;idx=58
	opl OP_8+OP_RM	;idx=59
	opl OP_1632+OP_RM, OP_1632+OP_R, OP_IMM8	;idx=60
	opl OP_1632+OP_RM, OP_1632+OP_R, OP_CL	;idx=61
	opl OP_1632+OP_AX, OP_1632+OP_R_ADD	;idx=62
	opl OP_1632+OP_R_ADD, OP_1632+OP_AX	;idx=63
	opl OP_ES	;idx=64
	opl OP_CS	;idx=65
	opl OP_SS	;idx=66
	opl OP_DS	;idx=67
	opl OP_FS	;idx=68
	opl OP_GS	;idx=69
	opl OP_32+OP_R_MOD, OP_CR	;idx=70
	opl OP_CR, OP_32+OP_R_MOD	;idx=71
	opl OP_32+OP_R_MOD, OP_DR	;idx=72
	opl OP_DR, OP_32+OP_R_MOD	;idx=73
	opl OP_32+OP_R_MOD, OP_TR	;idx=74
	opl OP_TR, OP_32+OP_R_MOD	;idx=75
if MMXSUPP
	opl OP_MMX, OP_32+OP_RM
	opl OP_32+OP_RM, OP_MMX
	opl OP_MMX, OP_64+OP_RM
	opl OP_64+OP_RM, OP_MMX
endif

ASMMOD	EQU opidx

;--- Assembler: data on groups.
;--- If HiByte == 01, it's a "0F-prefix" group.

agroups label word
	dw 083h ;0
	dw 080h ;1
	dw 1BAh ;2
	dw 0FFh ;3
	dw 1C7h ;4
	dw 0FEh ;5
	dw 0F6h ;6
	dw 101h ;7
	dw 100h ;8
	dw 0C6h ;9
	dw 08Fh ;10
	dw 0D0h ;11
	dw 0D2h ;12
	dw 0C0h ;13

;--- List of assembler mnemonics and data.
;--- variant's 1. argument (=a):
;---   if a < 0x100: one byte opcode.
;---   if a >= 0x100 && a < 0x200: two byte "0F"-opcode.
;---   if a >= 0x200 && a < 0x240: fp instruction.
;---   if a >= 0x240: refers to agroups [macro AGRP() is used].
;--- variant's 2. argument is index into array opindex.

mnlist label byte
	mne AAA
	 variant 037h, 0
	 endvariant
	mne AAD, ASM_AAX
	 variant 0d5h, 38
	 endvariant
	mne AAM, ASM_AAX
	 variant 0d4h, 38
	 endvariant
	mne AAS
	 variant 03fh, 0
	 endvariant
	mne ADC
	 variant AGRP(0,2), 3, ASM_LOCKABLE
	 variant 014h, 1
	 variant AGRP(1,2), 2, ASM_LOCKABLE
	 variant 010h, 4, ASM_LOCKABLE
	 variant 012h, 5
	 endvariant
	mne ADD
	 variant AGRP(0,0), 3, ASM_LOCKABLE
	 variant 004h, 1
	 variant AGRP(1,0), 2, ASM_LOCKABLE
	 variant 000h, 4, ASM_LOCKABLE
	 variant 002h, 5
	 endvariant
	mne AND
	 variant AGRP(0,4), 3, ASM_LOCKABLE
	 variant 024h, 1
	 variant AGRP(1,4), 2, ASM_LOCKABLE
	 variant 020h, 4, ASM_LOCKABLE
	 variant 022h, 5
	 endvariant
	mne ARPL
	 variant 063h, 6, , ASM_MACH2
	 endvariant
	mne BOUND
	 variant 062h, 7, , ASM_MACH1
	 endvariant
	mne BSF
	 variant 1bch, 8, , ASM_MACH3
	 endvariant
	mne BSR
	 variant 1bdh, 8, , ASM_MACH3
	 endvariant
	mne BSWAP, ASM_D32
	 variant 1c8h, 9, , ASM_MACH4
	 endvariant
	mne BT
	 variant 1a3h, 10, , ASM_MACH3
	 variant AGRP(2,4), 11, , ASM_MACH3
	 endvariant
	mne BTC
	 variant 1bbh, 10, ASM_LOCKABLE, ASM_MACH3
	 variant AGRP(2,7), 11, ASM_LOCKABLE, ASM_MACH3
	 endvariant
	mne BTR
	 variant 1b3h, 10, ASM_LOCKABLE, ASM_MACH3
	 variant AGRP(2,6), 11, ASM_LOCKABLE, ASM_MACH3
	 endvariant
	mne BTS
	 variant 1abh, 10, ASM_LOCKABLE, ASM_MACH3
	 variant AGRP(2,5), 11, ASM_LOCKABLE, ASM_MACH3
	 endvariant
	mne CALL
	 variant 0e8h, 12
	 variant AGRP(3,2), 40
	 variant AGRP(3,3), 14
	 variant 09ah, 13
	 endvariant
	mne CBW, ASM_D16
	mne CWDE, ASM_D32
	 variant 098h, 0
	 endvariant
	mne CLC
	 variant 0f8h, 0
	 endvariant
	mne CLD
	 variant 0fch, 0
	 endvariant
	mne CLI
	 variant 0fah, 0
	 endvariant
	mne CLTS
	 variant 106h, 0, , ASM_MACH2
	 endvariant
	mne CMC
	 variant 0f5h, 0
	 endvariant
	mne CMOVA
	 variant 147h, 8, , ASM_MACH6
	 endvariant
	mne CMOVAE
	 variant 143h, 8, , ASM_MACH6
	 endvariant
	mne CMOVB
	 variant 142h, 8, , ASM_MACH6
	 endvariant
	mne CMOVBE
	 variant 146h, 8, , ASM_MACH6
	 endvariant
	mne CMOVC
	 variant 142h, 8, , ASM_MACH6
	 endvariant
	mne CMOVE
	 variant 144h, 8, , ASM_MACH6
	 endvariant
	mne CMOVG
	 variant 14fh, 8, , ASM_MACH6
	 endvariant
	mne CMOVGE
	 variant 14dh, 8, , ASM_MACH6
	 endvariant
	mne CMOVL
	 variant 14ch, 8, , ASM_MACH6
	 endvariant
	mne CMOVLE
	 variant 14eh, 8, , ASM_MACH6
	 endvariant
	mne CMOVNA
	 variant 146h, 8, , ASM_MACH6
	 endvariant
	mne CMOVNAE
	 variant 142h, 8, , ASM_MACH6
	 endvariant
	mne CMOVNB
	 variant 143h, 8, , ASM_MACH6
	 endvariant
	mne CMOVNBE
	 variant 147h, 8, , ASM_MACH6
	 endvariant
	mne CMOVNC
	 variant 143h, 8, , ASM_MACH6
	 endvariant
	mne CMOVNE
	 variant 145h, 8, , ASM_MACH6
	 endvariant
	mne CMOVNG
	 variant 14eh, 8, , ASM_MACH6
	 endvariant
	mne CMOVNGE
	 variant 14ch, 8, , ASM_MACH6
	 endvariant
	mne CMOVNL
	 variant 14dh, 8, , ASM_MACH6
	 endvariant
	mne CMOVNLE
	 variant 14fh, 8, , ASM_MACH6
	 endvariant
	mne CMOVNO
	 variant 141h, 8, , ASM_MACH6
	 endvariant
	mne CMOVNP
	 variant 14bh, 8, , ASM_MACH6
	 endvariant
	mne CMOVNS
	 variant 149h, 8, , ASM_MACH6
	 endvariant
	mne CMOVNZ
	 variant 145h, 8, , ASM_MACH6
	 endvariant
	mne CMOVO
	 variant 140h, 8, , ASM_MACH6
	 endvariant
	mne CMOVP
	 variant 14ah, 8, , ASM_MACH6
	 endvariant
	mne CMOVPE
	 variant 14ah, 8, , ASM_MACH6
	 endvariant
	mne CMOVPO
	 variant 14bh, 8, , ASM_MACH6
	 endvariant
	mne CMOVS
	 variant 148h, 8, , ASM_MACH6
	 endvariant
	mne CMOVZ
	 variant 144h, 8, , ASM_MACH6
	 endvariant
	mne CMP
	 variant AGRP(0,7), 3
	 variant 03ch, 1
	 variant AGRP(1,7), 2
	 variant 038h, 4
	 variant 03ah, 5
	 endvariant
	mne CMPSB
	 variant 0a6h, 0
	 endvariant
	mne CMPSW, ASM_D16
	mne CMPSD, ASM_D32
	 variant 0a7h, 0
	 endvariant
	mne CMPXCHG
	 variant 1b0h, 4, ASM_LOCKABLE, ASM_MACH4
	 endvariant
	mne CMPXCHG8B
	 variant AGRP(4,1), 15, , ASM_MACH5
	 endvariant
	mne CPUID
	 variant 1a2h, 0, , ASM_MACH5
	 endvariant
	mne CWD, ASM_D16
	mne CDQ, ASM_D32
	 variant 099h, 0
	 endvariant
	mne DAA
	 variant 027h, 0
	 endvariant
	mne DAS
	 variant 02fh, 0
	 endvariant
	mne DB, ASM_DB
	mne DD, ASM_DD
	mne DEC
	 variant 048h, 17
	 variant AGRP(5,1), 16, ASM_LOCKABLE
	 endvariant
	mne DIV
	 variant AGRP(6,6), 16
	 endvariant
	mne DW, ASM_DW
	mne ENTER
	 variant 0c8h, 18, , ASM_MACH1
	 endvariant
	mne F2XM1
	 fpvariant 0d9h, 0, 0f0h
	 endvariant
	mne FABS
	 fpvariant 0d9h, 0, 0e1h
	 endvariant
	mne FADD
	 variant 200h, 19
	 variant 204h, 20
	 fpvariant 0d8h, 21, 0c0h
	 fpvariant 0dch, 22, 0c0h
	 endvariant
	mne FADDP
	 fpvariant 0deh, 23, 0c0h
	 fpvariant 0deh, 0, 0c1h
	 endvariant
	mne FBLD
	 variant 227h, 26
	 endvariant
	mne FBSTP
	 variant 237h, 26
	 endvariant
	mne FCHS
	 fpvariant 0d9h, 0, 0e0h
	 endvariant
	mne FCLEX, ASM_WAIT
	mne FNCLEX
	 fpvariant 0dbh, 0, 0e2h
	 endvariant
	mne FCMOVB
	 fpvariant 0dah, 21, 0c0h, , ASM_MACH6
	 endvariant
	mne FCMOVBE
	 fpvariant 0dah, 21, 0d0h, , ASM_MACH6
	 endvariant
	mne FCMOVE
	 fpvariant 0dah, 21, 0c8h, , ASM_MACH6
	 endvariant
	mne FCMOVNB
	 fpvariant 0dbh, 21, 0c0h, , ASM_MACH6
	 endvariant
	mne FCMOVNBE
	 fpvariant 0dbh, 21, 0d0h, , ASM_MACH6
	 endvariant
	mne FCMOVNE
	 fpvariant 0dbh, 21, 0c8h, , ASM_MACH6
	 endvariant
	mne FCMOVNU
	 fpvariant 0dbh, 21, 0d8h, , ASM_MACH6
	 endvariant
	mne FCMOVU
	 fpvariant 0dah, 21, 0d8h, , ASM_MACH6
	 endvariant
	mne FCOM
	 variant 210h, 19
	 variant 214h, 20
	 fpvariant 0d8h, 28, 0d0h
	 fpvariant 0d8h, 0, 0d1h
	 endvariant
	mne FCOMI
	 fpvariant 0dbh, 28, 0f0h, , ASM_MACH6
	 fpvariant 0dbh, 0, 0f1h, , ASM_MACH6
	 endvariant
	mne FCOMIP
	 fpvariant 0dfh, 28, 0f0h, , ASM_MACH6
	 fpvariant 0dfh, 0, 0f1h, , ASM_MACH6
	 endvariant
	mne FCOMP
	 variant 218h, 19
	 variant 21ch, 20
	 fpvariant 0d8h, 28, 0d8h
	 fpvariant 0d8h, 0, 0d9h
	 endvariant
	mne FCOMPP
	 fpvariant 0deh, 0, 0d9h
	 endvariant
	mne FCOS
	 fpvariant 0d9h, 0, 0ffh, , ASM_MACH3
	 endvariant
	mne FDECSTP
	 fpvariant 0d9h, 0, 0f6h
	 endvariant
	mne FDISI, ASM_WAIT
	mne FNDISI
	 fpvariant 0dbh, 0, 0e1h
	 endvariant
	mne FDIV
	 variant 230h, 19
	 variant 234h, 20
	 fpvariant 0d8h, 21, 0f0h
	 fpvariant 0dch, 22, 0f8h
	 endvariant
	mne FDIVP
	 fpvariant 0deh, 23, 0f8h
	 fpvariant 0deh, 0, 0f9h
	 endvariant
	mne FDIVR
	 variant 238h, 19
	 variant 23ch, 20
	 fpvariant 0d8h, 21, 0f8h
	 fpvariant 0dch, 22, 0f0h
	 endvariant
	mne FDIVRP
	 fpvariant 0deh, 23, 0f0h
	 fpvariant 0deh, 0, 0f1h
	 endvariant
	mne FENI, ASM_WAIT
	mne FNENI
	 fpvariant 0dbh, 0, 0e0h
	 endvariant
	mne FFREE
	 fpvariant 0ddh, 27, 0c0h
	 endvariant
	mne FFREEP
	 fpvariant 0dfh, 27, 0c0h
	 endvariant
	mne FIADD
	 variant 202h, 24
	 variant 206h, 25
	 endvariant
	mne FICOM
	 variant 212h, 24
	 variant 216h, 25
	 endvariant
	mne FICOMP
	 variant 21ah, 24
	 variant 21eh, 25
	 endvariant
	mne FIDIV
	 variant 232h, 24
	 variant 236h, 25
	 endvariant
	mne FIDIVR
	 variant 23ah, 24
	 variant 23eh, 25
	 endvariant
	mne FILD
	 variant 203h, 24
	 variant 207h, 25
	 variant 22fh, 15
	 endvariant
	mne FIMUL
	 variant 20ah, 24
	 variant 20eh, 25
	 endvariant
	mne FINCSTP
	 fpvariant 0d9h, 0, 0f7h
	 endvariant
	mne FINIT, ASM_WAIT
	mne FNINIT
	 fpvariant 0dbh, 0, 0e3h
	 endvariant
	mne FIST
	 variant 213h, 24
	 variant 217h, 25
	 endvariant
	mne FISTP
	 variant 21bh, 24
	 variant 21fh, 25
	 variant 23fh, 15
	 endvariant
	mne FISUB
	 variant 222h, 24
	 variant 226h, 25
	 endvariant
	mne FISUBR
	 variant 22ah, 24
	 variant 22eh, 25
	 endvariant
	mne FLD
	 variant 201h, 19
	 variant 205h, 20
	 variant 22bh, 26
	 fpvariant 0d9h, 27, 0c0h
	 endvariant
	mne FLD1
	 fpvariant 0d9h, 0, 0e8h
	 endvariant
	mne FLDL2T
	 fpvariant 0d9h, 0, 0e9h
	 endvariant
	mne FLDL2E
	 fpvariant 0d9h, 0, 0eah
	 endvariant
	mne FLDPI
	 fpvariant 0d9h, 0, 0ebh
	 endvariant
	mne FLDLG2
	 fpvariant 0d9h, 0, 0ech
	 endvariant
	mne FLDLN2
	 fpvariant 0d9h, 0, 0edh
	 endvariant
	mne FLDZ
	 fpvariant 0d9h, 0, 0eeh
	 endvariant
	mne FLDCW
	 variant 229h, 25
	 endvariant
	mne FLDENV
	 variant 221h, 29
	 endvariant
	mne FLDENVW, ASM_D16
	mne FLDENVD, ASM_D32
	 variant 221h, 29
	 endvariant
	mne FMUL
	 variant 208h, 19
	 variant 20ch, 20
	 fpvariant 0d8h, 21, 0c8h
	 fpvariant 0dch, 22, 0c8h
	 endvariant
	mne FMULP
	 fpvariant 0deh, 23, 0c8h
	 fpvariant 0deh, 0, 0c9h
	 endvariant
	mne FNOP
	 fpvariant 0d9h, 0, 0d0h
	 endvariant
	mne FPATAN
	 fpvariant 0d9h, 0, 0f3h
	 endvariant
	mne FPREM
	 fpvariant 0d9h, 0, 0f8h
	 endvariant
	mne FPREM1
	 fpvariant 0d9h, 0, 0f5h, , ASM_MACH3
	 endvariant
	mne FPTAN
	 fpvariant 0d9h, 0, 0f2h
	 endvariant
	mne FRNDINT
	 fpvariant 0d9h, 0, 0fch
	 endvariant
	mne FRSTOR
	 variant 225h, 29
	 endvariant
	mne FRSTORW, ASM_D16
	mne FRSTORD, ASM_D32
	 variant 225h, 29
	 endvariant
	mne FSAVE, ASM_WAIT
	mne FNSAVE
	 variant 235h, 29
	 endvariant
	mne FSAVEW, ASM_D16
	mne FSAVED, ASM_D32
	 variant 235h, 29
	 endvariant
	mne FSCALE
	 fpvariant 0d9h, 0, 0fdh
	 endvariant
	mne FSETPM
	 fpvariant 0dbh, 0, 0e4h, , ASM_MACH2
	 endvariant
	mne FSIN
	 fpvariant 0d9h, 0, 0feh, , ASM_MACH3
	 endvariant
	mne FSINCOS
	 fpvariant 0d9h, 0, 0fbh, , ASM_MACH3
	 endvariant
	mne FSQRT
	 fpvariant 0d9h, 0, 0fah
	 endvariant
	mne FST
	 variant 211h, 19
	 variant 215h, 20
	 fpvariant 0ddh, 27, 0d0h
	 endvariant
	mne FSTP
	 variant 219h, 19
	 variant 21dh, 20
	 variant 23bh, 26
	 fpvariant 0ddh, 27, 0d8h
	 endvariant
	mne FSTCW, ASM_WAIT
	mne FNSTCW
	 variant 239h, 25
	 endvariant
	mne FSTENV, ASM_WAIT
	mne FNSTENV
	 variant 231h, 29
	 endvariant
	mne FSTENVW, ASM_D16
	mne FSTENVD, ASM_D32
	 variant 231h, 29
	 endvariant
	mne FSTSW, ASM_WAIT
	mne FNSTSW
	 fpvariant 0dfh, 30, 0e0h, , ASM_MACH2
	 variant 23dh, 25
	 endvariant
	mne FSUB
	 variant 220h, 19
	 variant 224h, 20
	 fpvariant 0d8h, 21, 0e0h
	 fpvariant 0dch, 22, 0e8h
	 endvariant
	mne FSUBP
	 fpvariant 0deh, 23, 0e8h
	 fpvariant 0deh, 0, 0e9h
	 endvariant
	mne FSUBR
	 variant 228h, 19
	 variant 22ch, 20
	 fpvariant 0d8h, 21, 0e8h
	 fpvariant 0dch, 22, 0e0h
	 endvariant
	mne FSUBRP
	 fpvariant 0deh, 23, 0e0h
	 fpvariant 0deh, 0, 0e1h
	 endvariant
	mne FTST
	 fpvariant 0d9h, 0, 0e4h
	 endvariant
	mne FUCOM
	 fpvariant 0ddh, 28, 0e0h, , ASM_MACH3
	 fpvariant 0ddh, 0, 0e1h, , ASM_MACH3
	 endvariant
	mne FUCOMI
	 fpvariant 0dbh, 28, 0e8h, , ASM_MACH6
	 fpvariant 0dbh, 0, 0e9h, , ASM_MACH6
	 endvariant
	mne FUCOMIP
	 fpvariant 0dfh, 28, 0e8h, , ASM_MACH6
	 fpvariant 0dfh, 0, 0e9h, , ASM_MACH6
	 endvariant
	mne FUCOMP
	 fpvariant 0ddh, 28, 0e8h, , ASM_MACH3
	 fpvariant 0ddh, 0, 0e9h, , ASM_MACH3
	 endvariant
	mne FUCOMPP
	 fpvariant 0dah, 0, 0e9h, , ASM_MACH3
	 endvariant
	mne FWAIT
	 variant 09bh, 0
	 endvariant
	mne FXAM
	 fpvariant 0d9h, 0, 0e5h
	 endvariant
	mne FXCH
	 fpvariant 0d9h, 28, 0c8h
	 fpvariant 0d9h, 0, 0c9h
	 endvariant
	mne FXTRACT
	 fpvariant 0d9h, 0, 0f4h
	 endvariant
	mne FYL2X
	 fpvariant 0d9h, 0, 0f1h
	 endvariant
	mne FYL2XP1
	 fpvariant 0d9h, 0, 0f9h
	 endvariant
	mne HLT
	 variant 0f4h, 0
	 endvariant
	mne IDIV
	 variant AGRP(6,7), 16
	 endvariant
	mne IMUL
	 variant AGRP(6,5), 16
	 variant 1afh, 8, , ASM_MACH3
	 variant 06bh, 31, , ASM_MACH1
	 variant 06bh, 32, , ASM_MACH1
	 variant 069h, 33, , ASM_MACH1
	 variant 069h, 34, , ASM_MACH1
	 endvariant
	mne IN
	 variant 0e4h, 35
	 variant 0ech, 36
	 endvariant
	mne INC
	 variant 040h, 17
	 variant AGRP(5,0), 16, ASM_LOCKABLE
	 endvariant
	mne INSB
	 variant 06ch, 0, , ASM_MACH1
	 endvariant
	mne INSW, ASM_D16
	mne INSD, ASM_D32
	 variant 06dh, 0, , ASM_MACH1
	 endvariant
	mne INT
	 variant 0cch, 37
	 variant 0cdh, 38
	 endvariant
	mne INT1
	 variant 0f1h, 0, , ASM_MACH3
	 endvariant
	mne INTO
	 variant 0ceh, 0
	 endvariant
	mne INVD
	 variant 108h, 0, , ASM_MACH4
	 endvariant
	mne INVLPG
	 variant AGRP(7,7), 29, , ASM_MACH4
	 endvariant
	mne IRET, ASM_D16
	mne IRETD, ASM_D32
	 variant 0cfh, 0
	 endvariant
	mne JA
	 variant 077h, 39
	 variant 187h, 12, , ASM_MACH3
	 endvariant
	mne JAE
	 variant 073h, 39
	 variant 183h, 12, , ASM_MACH3
	 endvariant
	mne JB
	 variant 072h, 39
	 variant 182h, 12, , ASM_MACH3
	 endvariant
	mne JBE
	 variant 076h, 39
	 variant 186h, 12, , ASM_MACH3
	 endvariant
	mne JC
	 variant 072h, 39
	 variant 182h, 12, , ASM_MACH3
	 endvariant
	mne JCXZ, ASM_D16
	mne JECXZ, ASM_D32
	 variant 0e3h, 39
	 endvariant
	mne JE
	 variant 074h, 39
	 variant 184h, 12, , ASM_MACH3
	 endvariant
	mne JG
	 variant 07fh, 39
	 variant 18fh, 12, , ASM_MACH3
	 endvariant
	mne JGE
	 variant 07dh, 39
	 variant 18dh, 12, , ASM_MACH3
	 endvariant
	mne JL
	 variant 07ch, 39
	 variant 18ch, 12, , ASM_MACH3
	 endvariant
	mne JLE
	 variant 07eh, 39
	 variant 18eh, 12, , ASM_MACH3
	 endvariant
	mne JNA
	 variant 076h, 39
	 variant 186h, 12, , ASM_MACH3
	 endvariant
	mne JNAE
	 variant 072h, 39
	 variant 182h, 12, , ASM_MACH3
	 endvariant
	mne JNB
	 variant 073h, 39
	 variant 183h, 12, , ASM_MACH3
	 endvariant
	mne JNBE
	 variant 077h, 39
	 variant 187h, 12, , ASM_MACH3
	 endvariant
	mne JNC
	 variant 073h, 39
	 variant 183h, 12, , ASM_MACH3
	 endvariant
	mne JNE
	 variant 075h, 39
	 variant 185h, 12, , ASM_MACH3
	 endvariant
	mne JNG
	 variant 07eh, 39
	 variant 18eh, 12, , ASM_MACH3
	 endvariant
	mne JNGE
	 variant 07ch, 39
	 variant 18ch, 12, , ASM_MACH3
	 endvariant
	mne JNL
	 variant 07dh, 39
	 variant 18dh, 12, , ASM_MACH3
	 endvariant
	mne JNLE
	 variant 07fh, 39
	 variant 18fh, 12, , ASM_MACH3
	 endvariant
	mne JNO
	 variant 071h, 39
	 variant 181h, 12, , ASM_MACH3
	 endvariant
	mne JNP
	 variant 07bh, 39
	 variant 18bh, 12, , ASM_MACH3
	 endvariant
	mne JNS
	 variant 079h, 39
	 variant 189h, 12, , ASM_MACH3
	 endvariant
	mne JNZ
	 variant 075h, 39
	 variant 185h, 12, , ASM_MACH3
	 endvariant
	mne JO
	 variant 070h, 39
	 variant 180h, 12, , ASM_MACH3
	 endvariant
	mne JP
	 variant 07ah, 39
	 variant 18ah, 12, , ASM_MACH3
	 endvariant
	mne JPE
	 variant 07ah, 39
	 variant 18ah, 12, , ASM_MACH3
	 endvariant
	mne JPO
	 variant 07bh, 39
	 variant 18bh, 12, , ASM_MACH3
	 endvariant
	mne JS
	 variant 078h, 39
	 variant 188h, 12, , ASM_MACH3
	 endvariant
	mne JZ
	 variant 074h, 39
	 variant 184h, 12, , ASM_MACH3
	 endvariant
	mne JMP
	 variant 0ebh, 39
	 variant 0e9h, 12
	 variant AGRP(3,4), 40
	 variant AGRP(3,5), 14
	 variant 0eah, 13
	 endvariant
	mne LAHF
	 variant 09fh, 0
	 endvariant
	mne LAR
	 variant 102h, 8, , ASM_MACH2
	 endvariant
	mne LDS
	 variant 0c5h, 7
	 endvariant
	mne LES
	 variant 0c4h, 7
	 endvariant
	mne LFS
	 variant 1b4h, 7, , ASM_MACH3
	 endvariant
	mne LGS
	 variant 1b5h, 7, , ASM_MACH3
	 endvariant
	mne LSS
	 variant 1b2h, 7, , ASM_MACH3
	 endvariant
	mne LEA
	 variant 08dh, 7
	 endvariant
	mne LEAVE
	 variant 0c9h, 0, , ASM_MACH1
	 endvariant
	mne LGDT
	 variant AGRP(7,2), 29, , ASM_MACH2
	 endvariant
	mne LIDT
	 variant AGRP(7,3), 29, , ASM_MACH2
	 endvariant
	mne LLDT
	 variant AGRP(8,2), 41, , ASM_MACH2
	 endvariant
	mne LMSW
	 variant AGRP(7,6), 41, , ASM_MACH2
	 endvariant
	mne LOADALL
	 variant 105h, 0, , ASM_MACH2
	 endvariant
	mne LOCK, ASM_LOCKREP, 0f0h
	mne LODSB
	 variant 0ach, 0
	 endvariant
	mne LODSW, ASM_D16
	mne LODSD, ASM_D32
	 variant 0adh, 0
	 endvariant
	mne LOOP
	 variant 0e2h, 39
	 endvariant
	mne LOOPW, ASM_D16
	mne LOOPD, ASM_D32
	 variant 0e2h, 39
	 endvariant
	mne LOOPE
	 variant 0e1h, 39
	 endvariant
	mne LOOPEW, ASM_D16
	mne LOOPED, ASM_D32
	 variant 0e1h, 39
	 endvariant
	mne LOOPZ
	 variant 0e1h, 39
	 endvariant
	mne LOOPZW, ASM_D16
	mne LOOPZD, ASM_D32
	 variant 0e1h, 39
	 endvariant
	mne LOOPNE
	 variant 0e0h, 39
	 endvariant
	mne LOOPNEW, ASM_D16
	mne LOOPNED, ASM_D32
	 variant 0e0h, 39
	 endvariant
	mne LOOPNZ
	 variant 0e0h, 39
	 endvariant
	mne LOOPNZW, ASM_D16
	mne LOOPNZD, ASM_D32
	 variant 0e0h, 39
	 endvariant
	mne LSL
	 variant 103h, 8, , ASM_MACH2
	 endvariant
	mne LTR
	 variant AGRP(8,3), 41, , ASM_MACH2
	 endvariant
	mne MOV
	 variant 0a0h, 44
	 variant 0a2h, 45
	 variant 088h, 4
	 variant 08ah, 5
	 variant 08ch, 42
	 variant 08eh, 43
	 variant 0b0h, 46
	 variant 0b8h, 47
	 variant AGRP(9,0), 2
	 variant 120h, 70, , ASM_MACH3
	 variant 122h, 71, , ASM_MACH3
	 variant 121h, 72, , ASM_MACH3
	 variant 123h, 73, , ASM_MACH3
	 variant 124h, 74, , ASM_MACH3
	 variant 126h, 75, , ASM_MACH3
	 endvariant
	mne MOVSB
	 variant 0a4h, 0
	 endvariant
	mne MOVSW, ASM_D16
	mne MOVSD, ASM_D32
	 variant 0a5h, 0
	 endvariant
	mne MOVSX
	 variant 1beh, 48, , ASM_MACH3
	 variant 1bfh, 49, , ASM_MACH3
	 endvariant
	mne MOVZX
	 variant 1b6h, 48, , ASM_MACH3
	 variant 1b7h, 49, , ASM_MACH3
	 endvariant
	mne MUL
	 variant AGRP(6,4), 16
	 endvariant
	mne NEG
	 variant AGRP(6,3), 16, ASM_LOCKABLE
	 endvariant
	mne NOP
	 variant 090h, 0
	 endvariant
	mne NOT
	 variant AGRP(6,2), 16, ASM_LOCKABLE
	 endvariant
	mne OR
	 variant AGRP(0,1), 3, ASM_LOCKABLE
	 variant 00ch, 1
	 variant AGRP(1,1), 2, ASM_LOCKABLE
	 variant 008h, 4, ASM_LOCKABLE
	 variant 00ah, 5
	 endvariant
	mne ORG, ASM_ORG
	mne OUT
	 variant 0e6h, 50
	 variant 0eeh, 51
	 endvariant
	mne OUTSB
	 variant 06eh, 0, , ASM_MACH1
	 endvariant
	mne OUTSW, ASM_D16
	mne OUTSD, ASM_D32
	 variant 06fh, 0, , ASM_MACH1
	 endvariant
	mne POP
	 variant AGRP(10,0), 52
	 variant 058h, 17
	 variant 01fh, 67
	 variant 007h, 64
	 variant 017h, 66
	 variant 1a1h, 68, , ASM_MACH3
	 variant 1a9h, 69, , ASM_MACH3
	 endvariant
	mne POPA, ASM_D16
	mne POPAD, ASM_D32
	 variant 061h, 0, , ASM_MACH1
	 endvariant
	mne POPF, ASM_D16
	mne POPFD, ASM_D32
	 variant 09dh, 0
	 endvariant
	mne PUSH
	 variant 050h, 17
	 variant AGRP(3,6), 40
	 variant 06ah, 54, , ASM_MACH1
	 variant 068h, 53, , ASM_MACH1
	 variant 00eh, 65
	 variant 016h, 66
	 variant 01eh, 67
	 variant 006h, 64
	 variant 1a0h, 68, , ASM_MACH3
	 variant 1a8h, 69, , ASM_MACH3
	 endvariant
	mne PUSHA, ASM_D16
	mne PUSHAD, ASM_D32
	 variant 060h, 0, , ASM_MACH1
	 endvariant
	mne PUSHF, ASM_D16
	mne PUSHFD, ASM_D32
	 variant 09ch, 0
	 endvariant
	mne RCL
	 variant AGRP(11,2), 55
	 variant AGRP(12,2), 56
	 variant AGRP(13,2), 57, , ASM_MACH1
	 endvariant
	mne RCR
	 variant AGRP(11,3), 55
	 variant AGRP(12,3), 56
	 variant AGRP(13,3), 57, , ASM_MACH1
	 endvariant
	mne RDMSR
	 variant 132h, 0, , ASM_MACH5
	 endvariant
	mne RDPMC
	 variant 133h, 0, , ASM_MACH6
	 endvariant
	mne RDTSC
	 variant 131h, 0, , ASM_MACH5
	 endvariant
	mne REP, ASM_LOCKREP, 0f3h
	mne REPE, ASM_LOCKREP, 0f3h
	mne REPZ, ASM_LOCKREP, 0f3h
	mne REPNE, ASM_LOCKREP, 0f2h
	mne REPNZ, ASM_LOCKREP, 0f2h
	mne RET
	 variant 0c3h, 0
	 variant 0c2h, 58
	 endvariant
	mne RETF, ASM_D16
	mne RETFD, ASM_D32
	 variant 0cbh, 0
	 variant 0cah, 58
	 endvariant
	mne ROL
	 variant AGRP(11,0), 55
	 variant AGRP(12,0), 56
	 variant AGRP(13,0), 57, , ASM_MACH1
	 endvariant
	mne ROR
	 variant AGRP(11,1), 55
	 variant AGRP(12,1), 56
	 variant AGRP(13,1), 57, , ASM_MACH1
	 endvariant
	mne RSM
	 variant 1aah, 0, , ASM_MACH5
	 endvariant
	mne SAHF
	 variant 09eh, 0
	 endvariant
	mne SAL
	 variant AGRP(11,4), 55
	 variant AGRP(12,4), 56
	 variant AGRP(13,4), 57, , ASM_MACH1
	 endvariant
	mne SALC
	 variant 0d6h, 0
	 endvariant
	mne SAR
	 variant AGRP(11,7), 55
	 variant AGRP(12,7), 56
	 variant AGRP(13,7), 57, , ASM_MACH1
	 endvariant
	mne SBB
	 variant AGRP(0,3), 3, ASM_LOCKABLE
	 variant 01ch, 1
	 variant AGRP(1,3), 2, ASM_LOCKABLE
	 variant 018h, 4, ASM_LOCKABLE
	 variant 01ah, 5
	 endvariant
	mne SCASB
	 variant 0aeh, 0
	 endvariant
	mne SCASW, ASM_D16
	mne SCASD, ASM_D32
	 variant 0afh, 0
	 endvariant
	mne SETA
	 variant 197h, 59, , ASM_MACH3
	 endvariant
	mne SETAE
	 variant 193h, 59, , ASM_MACH3
	 endvariant
	mne SETB
	 variant 192h, 59, , ASM_MACH3
	 endvariant
	mne SETBE
	 variant 196h, 59, , ASM_MACH3
	 endvariant
	mne SETC
	 variant 192h, 59, , ASM_MACH3
	 endvariant
	mne SETE
	 variant 194h, 59, , ASM_MACH3
	 endvariant
	mne SETG
	 variant 19fh, 59, , ASM_MACH3
	 endvariant
	mne SETGE
	 variant 19dh, 59, , ASM_MACH3
	 endvariant
	mne SETL
	 variant 19ch, 59, , ASM_MACH3
	 endvariant
	mne SETLE
	 variant 19eh, 59, , ASM_MACH3
	 endvariant
	mne SETNA
	 variant 196h, 59, , ASM_MACH3
	 endvariant
	mne SETNAE
	 variant 192h, 59, , ASM_MACH3
	 endvariant
	mne SETNB
	 variant 193h, 59, , ASM_MACH3
	 endvariant
	mne SETNBE
	 variant 197h, 59, , ASM_MACH3
	 endvariant
	mne SETNC
	 variant 193h, 59, , ASM_MACH3
	 endvariant
	mne SETNE
	 variant 195h, 59, , ASM_MACH3
	 endvariant
	mne SETNG
	 variant 19eh, 59, , ASM_MACH3
	 endvariant
	mne SETNGE
	 variant 19ch, 59, , ASM_MACH3
	 endvariant
	mne SETNL
	 variant 19dh, 59, , ASM_MACH3
	 endvariant
	mne SETNLE
	 variant 19fh, 59, , ASM_MACH3
	 endvariant
	mne SETNO
	 variant 191h, 59, , ASM_MACH3
	 endvariant
	mne SETNP
	 variant 19bh, 59, , ASM_MACH3
	 endvariant
	mne SETNS
	 variant 199h, 59, , ASM_MACH3
	 endvariant
	mne SETNZ
	 variant 195h, 59, , ASM_MACH3
	 endvariant
	mne SETO
	 variant 190h, 59, , ASM_MACH3
	 endvariant
	mne SETP
	 variant 19ah, 59, , ASM_MACH3
	 endvariant
	mne SETPE
	 variant 19ah, 59, , ASM_MACH3
	 endvariant
	mne SETPO
	 variant 19bh, 59, , ASM_MACH3
	 endvariant
	mne SETS
	 variant 198h, 59, , ASM_MACH3
	 endvariant
	mne SETZ
	 variant 194h, 59, , ASM_MACH3
	 endvariant
	mne SGDT
	 variant AGRP(7,0), 29, , ASM_MACH2
	 endvariant
	mne SHL
	 variant AGRP(11,4), 55
	 variant AGRP(12,4), 56
	 variant AGRP(13,4), 57, , ASM_MACH1
	 endvariant
	mne SHLD
	 variant 1a4h, 60, , ASM_MACH3
	 variant 1a5h, 61, , ASM_MACH3
	 endvariant
	mne SHR
	 variant AGRP(11,5), 55
	 variant AGRP(12,5), 56
	 variant AGRP(13,5), 57, , ASM_MACH1
	 endvariant
	mne SHRD
	 variant 1ach, 60, , ASM_MACH3
	 variant 1adh, 61, , ASM_MACH3
	 endvariant
	mne SIDT
	 variant AGRP(7,1), 29, , ASM_MACH2
	 endvariant
	mne SLDT
	 variant AGRP(8,0), 41, , ASM_MACH2
	 endvariant
	mne SMSW
	 variant AGRP(7,4), 41, , ASM_MACH2
	 endvariant
	mne STC
	 variant 0f9h, 0
	 endvariant
	mne STD
	 variant 0fdh, 0
	 endvariant
	mne STI
	 variant 0fbh, 0
	 endvariant
	mne STOSB
	 variant 0aah, 0
	 endvariant
	mne STOSW, ASM_D16
	mne STOSD, ASM_D32
	 variant 0abh, 0
	 endvariant
	mne STR
	 variant AGRP(8,1), 41, , ASM_MACH2
	 endvariant
	mne SUB
	 variant AGRP(0,5), 3, ASM_LOCKABLE
	 variant 02ch, 1
	 variant AGRP(1,5), 2, ASM_LOCKABLE
	 variant 028h, 4, ASM_LOCKABLE
	 variant 02ah, 5
	 endvariant
	mne SYSENTER
	 variant 134h, 0, , ASM_MACH6
	 endvariant
	mne SYSEXIT
	 variant 135h, 0, , ASM_MACH6
	 endvariant
	mne TEST
	 variant 0a8h, 1
	 variant AGRP(6,0), 2
	 variant 084h, 4
	 variant 084h, 5
	 endvariant
	mne VERR
	 variant AGRP(8,4), 41, , ASM_MACH2
	 endvariant
	mne VERW
	 variant AGRP(8,5), 41, , ASM_MACH2
	 endvariant
	mne WAIT
	 variant 09bh, 0
	 endvariant
	mne WBINVD
	 variant 109h, 0, , ASM_MACH4
	 endvariant
	mne WRMSR
	 variant 130h, 0, , ASM_MACH5
	 endvariant
	mne XADD
	 variant 1c0h, 4, ASM_LOCKABLE, ASM_MACH4
	 endvariant
	mne XCHG
	 variant 090h, 62
	 variant 090h, 63
	 variant 086h, 4, ASM_LOCKABLE
	 variant 086h, 5, ASM_LOCKABLE
	 endvariant
	mne XLAT
	 variant 0d7h, 0
	 endvariant
	mne XLATB
	 variant 0d7h, 0
	 endvariant
	mne XOR
	 variant AGRP(0,6), 3, ASM_LOCKABLE
	 variant 034h, 1
	 variant AGRP(1,6), 2, ASM_LOCKABLE
	 variant 030h, 4, ASM_LOCKABLE
	 variant 032h, 5
	 endvariant
	mne ES, ASM_SEG, 026h
	mne CS, ASM_SEG, 02eh
	mne SS, ASM_SEG, 036h
	mne DS, ASM_SEG, 03eh
	mne FS, ASM_SEG, 064h
	mne GS, ASM_SEG, 065h
if MMXSUPP
	mne EMMS
	 variant 177h, 0, , ASM_MACH5
	 endvariant
	mne MOVD
	 variant 16eh, 76, , ASM_MACH5
	 variant 17eh, 77, , ASM_MACH5
	 endvariant
	mne MOVQ
	 variant 16fh, 78, , ASM_MACH5
	 variant 17fh, 79, , ASM_MACH5
	 endvariant
endif

end_mnlist label byte

;--- Disassembler: compressed table of the opcode types.
;--- If the item has the format OT(xx), it refers to table 'oplists'.
;--- Otherwise it's an offset for internal table 'disjmp'.

optypes label byte
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(40),OT(40)	; 00 - 07 (main opcode part)
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(41),  002h	; 08 - 0f
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(42),OT(42)	; 10 - 17
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(43),OT(43)	; 18 - 1f
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),  00Ah,OT(00)	; 20 - 27
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),  00Ah,OT(00)	; 28 - 2f
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),  00Ah,OT(00)	; 30 - 37
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),  00Ah,OT(00)	; 38 - 3f
	db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11)	; 40 - 47
	db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11)	; 48 - 4f
	db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11)	; 50 - 57
	db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11)	; 58 - 5f
	db OT(00),OT(00),OT(07),OT(06),  00Ah,	00Ah,  00Ah,  00Ah	; 60 - 67
	db OT(35),OT(21),OT(36),OT(1F),OT(00),OT(00),OT(00),OT(00)	; 68 - 6f
	db OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27)	; 70 - 77
	db OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27)	; 78 - 7f
	db   004h,  004h,  004h,  004h,OT(04),OT(04),OT(05),OT(05)	; 80 - 87
	db OT(04),OT(04),OT(05),OT(05),OT(2A),OT(07),OT(2B),  004h	; 88 - 8f
	db OT(00),OT(3E),OT(3E),OT(3E),OT(3E),OT(3E),OT(3E),OT(3E)	; 90 - 97
	db OT(00),OT(00),OT(0D),OT(00),OT(00),OT(00),OT(00),OT(00)	; 98 - 9f
	db OT(2C),OT(2C),OT(2D),OT(2D),OT(00),OT(00),OT(00),OT(00)	; a0 - a7
	db OT(01),OT(01),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	; a8 - af
	db OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E)	; b0 - b7
	db OT(2F),OT(2F),OT(2F),OT(2F),OT(2F),OT(2F),OT(2F),OT(2F)	; b8 - bf
	db   004h,  004h,OT(3A),OT(00),OT(07),OT(07),  004h,  004h	; c0 - c7
	db OT(12),OT(00),OT(3A),OT(00),OT(25),OT(26),OT(00),OT(00)	; c8 - cf
	db   004h,  004h,  004h,  004h,OT(26),OT(26),OT(00),OT(00)	; d0 - d7
	db   006h,  006h,  006h,  006h,  006h,	006h,  006h,  006h	; d8 - df
	db OT(27),OT(27),OT(27),OT(27),OT(23),OT(23),OT(32),OT(32)	; e0 - e7
	db OT(0C),OT(0C),OT(0D),OT(27),OT(24),OT(24),OT(33),OT(33)	; e8 - ef
	db   00Ah,OT(00),  00Ah,  00Ah,OT(00),OT(00),  004h,  004h	; f0 - f7
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),  004h,  004h	; f8 - ff
	db OT(02),OT(02),OT(02),OT(02),OT(02),OT(02),OT(02),OT(02)	; 100 - 107 (Intel group 1)
	db OT(03),OT(03),OT(03),OT(03),OT(03),OT(03),OT(03),OT(03)	; 108 - 10f
	db OT(37),OT(37),OT(37),OT(37),OT(37),OT(37),OT(37),OT(37)	; 110 - 117 (Intel group 2)
	db OT(38),OT(38),OT(38),OT(38),OT(38),OT(38),OT(38),OT(38)	; 118 - 11f
	db OT(39),OT(39),OT(39),OT(39),OT(39),OT(39),OT(39),OT(39)	; 120 - 127 (Intel group 2a)
	db OT(02),OT(02),OT(10),OT(10),OT(10),OT(10),OT(10),OT(10)	; 128 - 12f (Intel group 3)
	db OT(10),OT(10),OT(28),OT(0E),OT(28),OT(0E),OT(28),  000h	; 130 - 137 (Intel group 5)
	db OT(29),OT(29),OT(29),OT(29),OT(29),OT(29),  000h,  000h	; 138 - 13f (Intel group 6)
	db OT(1D),OT(1D),OT(1D),OT(1D),OT(29),	000h,OT(29),OT(1D)	; 140 - 147 (Intel group 7)
	db OT(13),OT(13),OT(13),OT(13),OT(13),OT(13),OT(13),OT(13)	; 148 - 14f (Coprocessor d8)
	db OT(15),OT(15),OT(1C),OT(1C),OT(15),OT(15),OT(15),OT(15)	; 150 - 157
	db OT(13),  000h,OT(13),OT(13),OT(1D),OT(19),OT(1D),OT(19)	; 158 - 15f (Coprocessor d9)
	db OT(1B),OT(1C),  008h,OT(1B),  008h,	008h,  008h,  008h	; 160 - 167
	db OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18)	; 168 - 16f (Coprocessor da)
	db OT(15),OT(15),OT(15),OT(15),  000h,	008h,  000h,  000h	; 170 - 177
	db OT(18),  000h,OT(18),OT(18),  000h,OT(1A),  000h,OT(1A)	; 178 - 17f (Coprocessor db)
	db OT(15),OT(15),OT(15),OT(15),  008h,OT(1C),OT(1C),  000h	; 180 - 187
	db OT(14),OT(14),OT(14),OT(14),OT(14),OT(14),OT(14),OT(14)	; 188 - 18f (Coprocessor dc)
	db OT(16),OT(16),OT(1C),OT(1C),OT(16),OT(16),OT(16),OT(16)	; 190 - 197
	db OT(14),  000h,OT(14),OT(14),OT(1D),	000h,OT(1D),OT(19)	; 198 - 19f (Coprocessor dd)
	db OT(1B),OT(1C),OT(1B),OT(1B),OT(1C),OT(1C),  000h,  000h	; 1a0 - 1a7
	db OT(19),OT(19),OT(19),OT(19),OT(19),OT(19),OT(19),OT(19)	; 1a8 - 1af (Coprocessor de)
	db OT(17),OT(17),OT(1C),  008h,OT(17),OT(17),OT(17),OT(17)	; 1b0 - 1b7
	db OT(19),  000h,OT(19),OT(19),OT(1A),OT(0F),OT(1A),OT(0F)	; 1b8 - 1bf (Coprocessor df)
	db OT(1B),OT(1C),OT(1B),OT(1B),  008h,OT(1C),OT(1C),  000h	; 1c0 - 1c7
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),  000h	; 1c8 - 1cf (Coprocessor groups)
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	; 1d0 - 1d7
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	; 1d8 - 1df
SPARSE_BASE equ $ - optypes

;--- The rest of these are squeezed.
	db	0,  004h,  004h,OT(08),OT(08),OT(00),OT(00),OT(00)	;00
	db OT(00),OT(00),OT(46),OT(48),OT(47),OT(49),OT(4A),OT(4B)	;08
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(08),OT(08)	;10
	db OT(08),OT(08),OT(08),OT(08),OT(08),OT(08),OT(08),OT(08)	;18
	db OT(08),OT(08),OT(08),OT(08),OT(08),OT(08),OT(0C),OT(0C)	;20
	db OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C)	;28
	db OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(3B),OT(3B)	;30
	db OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B)	;38
	db OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(44),OT(44)	;40
	db OT(00),OT(0A),OT(3C),OT(3D),OT(45),OT(45),OT(00),OT(0A)	;48
	db OT(3C),OT(3D),OT(08),OT(04),OT(04),OT(07),OT(0A),OT(07)	;50
	db OT(07),OT(30),OT(31),  004h,OT(0A),OT(08),OT(08),OT(30)	;58
	db OT(31),OT(04),OT(04),  004h,OT(09),OT(09),OT(09),OT(09)	;60
	db OT(09),OT(09),OT(09),OT(09),OT(10),OT(10),OT(0B),OT(0B)	;68
	db OT(0B),OT(0B),OT(0F),OT(34),OT(02),OT(00),OT(00),OT(00)	;70
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	;78
	db OT(00),OT(1E)
if MMXSUPP
	db OT(4C),OT(4E),OT(00),OT(4D),OT(4F)
endif

P186	equ 1000h
P286	equ 2000h
P386	equ 3000h
P486	equ 4000h
P586	equ 5000h
P686	equ 6000h

	align 2

;--- Disassembler: compressed table of additional information.
;--- Bits 0-11 usually are the offset of the mnemonics table.
;--- Bits 12-15 are the cpu which introduced this opcode.

opinfo label word
	dw  MN_ADD, MN_ADD, MN_ADD, MN_ADD	; 00
	dw  MN_ADD, MN_ADD, MN_PUSH, MN_POP	; 04
	dw  MN_OR, MN_OR, MN_OR, MN_OR	; 08
	dw  MN_OR, MN_OR, MN_PUSH, 01e0h	; 0c
	dw  MN_ADC, MN_ADC, MN_ADC, MN_ADC	; 10
	dw  MN_ADC, MN_ADC, MN_PUSH, MN_POP	; 14
	dw  MN_SBB, MN_SBB, MN_SBB, MN_SBB	; 18
	dw  MN_SBB, MN_SBB, MN_PUSH, MN_POP	; 1c
	dw  MN_AND, MN_AND, MN_AND, MN_AND	; 20
	dw  MN_AND, MN_AND, 0001h, MN_DAA	; 24
	dw  MN_SUB, MN_SUB, MN_SUB, MN_SUB	; 28
	dw  MN_SUB, MN_SUB, 0101h, MN_DAS	; 2c
	dw  MN_XOR, MN_XOR, MN_XOR, MN_XOR	; 30
	dw  MN_XOR, MN_XOR, 0201h, MN_AAA	; 34
	dw  MN_CMP, MN_CMP, MN_CMP, MN_CMP	; 38
	dw  MN_CMP, MN_CMP, 0301h, MN_AAS	; 3c
	dw  MN_INC, MN_INC, MN_INC, MN_INC	; 40
	dw  MN_INC, MN_INC, MN_INC, MN_INC	; 44
	dw  MN_DEC, MN_DEC, MN_DEC, MN_DEC	; 48
	dw  MN_DEC, MN_DEC, MN_DEC, MN_DEC	; 4c
	dw  MN_PUSH, MN_PUSH, MN_PUSH, MN_PUSH	; 50
	dw  MN_PUSH, MN_PUSH, MN_PUSH, MN_PUSH	; 54
	dw  MN_POP, MN_POP, MN_POP, MN_POP	; 58
	dw  MN_POP, MN_POP, MN_POP, MN_POP	; 5c
	dw  P186 + MN_PUSHA, P186 + MN_POPA, P186 + MN_BOUND, P286 + MN_ARPL	; 60
	dw  P386 + 0401h, P386 + 0501h, P386 + 0010h, P386 + 0020h	; 64
	dw  P186 + MN_PUSH, P186 + MN_IMUL, P186 + MN_PUSH, P186 + MN_IMUL	; 68
	dw  P186 + MN_INSB, P186 + MN_INSW, P186 + MN_OUTSB, P186 + MN_OUTSW	; 6c
	dw  MN_JO, MN_JNO, MN_JB, MN_JAE	; 70
	dw  MN_JZ, MN_JNZ, MN_JBE, MN_JA	; 74
	dw  MN_JS, MN_JNS, MN_JPE, MN_JPO	; 78
	dw  MN_JL, MN_JGE, MN_JLE, MN_JG	; 7c
	dw  0100h, 0100h, 0100h, 0108h	; 80
	dw  MN_TEST, MN_TEST, MN_XCHG, MN_XCHG	; 84
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; 88
	dw  MN_MOV, MN_LEA, MN_MOV, 02f8h	; 8c
	dw  MN_NOP, MN_XCHG, MN_XCHG, MN_XCHG	; 90
	dw  MN_XCHG, MN_XCHG, MN_XCHG, MN_XCHG	; 94
	dw  MN_CBW, MN_CWD, MN_CALL, MN_WAIT	; 98
	dw  MN_PUSHF, MN_POPF, MN_SAHF, MN_LAHF ; 9c
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; a0
	dw  MN_MOVSB, MN_MOVSW, MN_CMPSB, MN_CMPSW	; a4
	dw  MN_TEST, MN_TEST, MN_STOSB, MN_STOSW	; a8
	dw  MN_LODSB, MN_LODSW, MN_SCASB, MN_SCASW	; ac
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; b0
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; b4
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; b8
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; bc
	dw  0120h, 0120h, MN_RET, MN_RET	; c0
	dw  MN_LES, MN_LDS, 0300h, 0300h	; c4
	dw  P186 + MN_ENTER, P186 + MN_LEAVE, MN_RETF, MN_RETF	; c8
	dw  MN_INT, MN_INT, MN_INTO, MN_IRET	; cc
	dw  0110h, 0110h, 0118h, 0118h	; d0
	dw  MN_AAM, MN_AAD, MN_SALC, MN_XLATB	; d4
	dw  0148h, 0158h, 0168h, 0178h	; d8
	dw  0188h, 0198h, 01a8h, 01b8h	; dc
	dw  MN_LOOPNZW, MN_LOOPZW, MN_LOOPW, MN_JCXZ	; e0
	dw  MN_IN, MN_IN, MN_OUT, MN_OUT	; e4
	dw  MN_CALL, MN_JMP, MN_JMP, MN_JMP	; e8
	dw  MN_IN, MN_IN, MN_OUT, MN_OUT	; ec
	dw  0008h, P386 + MN_INT1, 0002h, 0006h ; f0
	dw  MN_HLT, MN_CMC, 0128h, 0128h	; f4
	dw  MN_CLC, MN_STC, MN_CLI, MN_STI	; f8
	dw  MN_CLD, MN_STD, 02e0h, 0130h	; fc
	dw  MN_ADD, MN_OR, MN_ADC, MN_SBB	; 100
	dw  MN_AND, MN_SUB, MN_XOR, MN_CMP	; 104
	dw  MN_ADD, MN_OR, MN_ADC, MN_SBB	; 108
	dw  MN_AND, MN_SUB, MN_XOR, MN_CMP	; 10c
	dw  MN_ROL, MN_ROR, MN_RCL, MN_RCR	; 110
	dw  MN_SHL, MN_SHR, MN_SAL, MN_SAR	; 114
	dw  MN_ROL, MN_ROR, MN_RCL, MN_RCR	; 118
	dw  MN_SHL, MN_SHR, MN_SAL, MN_SAR	; 11c
	dw  P186 + MN_ROL, P186 + MN_ROR, P186 + MN_RCL, P186 + MN_RCR	; 120
	dw  P186 + MN_SHL, P186 + MN_SHR, P186 + MN_SAL, P186 + MN_SAR	; 124
	dw  MN_TEST, MN_TEST, MN_NOT, MN_NEG	; 128
	dw  MN_MUL, MN_IMUL, MN_DIV, MN_IDIV	; 12c
	dw  MN_INC, MN_DEC, MN_CALL, MN_CALL	; 130
	dw  MN_JMP, MN_JMP, MN_PUSH, 0000h	; 134
	dw  P286 + MN_SLDT, P286 + MN_STR, P286 + MN_LLDT, P286 + MN_LTR	; 138
	dw  P286 + MN_VERR, P286 + MN_VERW, 0000h, 0000h	; 13c
	dw  P286 + MN_SGDT, P286 + MN_SIDT, P286 + MN_LGDT, P286 + MN_LIDT	; 140
	dw  P286 + MN_SMSW, 0000h, P286 + MN_LMSW, P486 + MN_INVLPG	; 144
	dw  MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP ; 148
	dw  MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR	; 14c
	dw  MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP ; 150
	dw  MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR	; 154
	dw  MN_FLD, 0000h, MN_FST, MN_FSTP	; 158
	dw  MN_FLDENV, MN_FLDCW, MN_FNSTENV, MN_FNSTCW	; 15c
	dw  MN_FLD, MN_FXCH, 0308h, MN_FSTP	; 160
	dw  0310h, 01c8h, 01d0h, 01d8h	; 164
	dw  MN_FIADD, MN_FIMUL, MN_FICOM, MN_FICOMP	; 168
	dw  MN_FISUB, MN_FISUBR, MN_FIDIV, MN_FIDIVR	; 16c
	dw  P686 + MN_FCMOVB, P686 + MN_FCMOVE, P686 + MN_FCMOVBE, P686 + MN_FCMOVU	; 170
	dw  0000h, 0318h, 0000h, 0000h	; 174
	dw  MN_FILD, 0000h, MN_FIST, MN_FISTP	; 178
	dw  0000h, MN_FLD, 0000h, MN_FSTP	; 17c
	dw  P686 + MN_FCMOVNB, P686 + MN_FCMOVNE, P686 + MN_FCMOVNBE, P686 + MN_FCMOVNU ; 180
	dw  0320h, P686 + MN_FUCOMI, P686 + MN_FCOMI, 0000h	; 184
	dw  MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP ; 188
	dw  MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR	; 18c
	dw  MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP ; 190
	dw  MN_FSUBR, MN_FSUB, MN_FDIVR, MN_FDIV	; 194
	dw  MN_FLD, 0000h, MN_FST, MN_FSTP	; 198
	dw  MN_FRSTOR, 0000h, MN_FNSAVE, MN_FNSTSW	; 19c
	dw  MN_FFREE, MN_FXCH, MN_FST, MN_FSTP	; 1a0
	dw  P386 + MN_FUCOM, P386 + MN_FUCOMP, 0000h, 0000h	; 1a4
	dw  MN_FIADD, MN_FIMUL, MN_FICOM, MN_FICOMP	; 1a8
	dw  MN_FISUB, MN_FISUBR, MN_FIDIV, MN_FIDIVR	; 1ac
	dw  MN_FADDP, MN_FMULP, MN_FCOMP, 0328h ; 1b0
	dw  MN_FSUBRP, MN_FSUBP, MN_FDIVRP, MN_FDIVP	; 1b4
	dw  MN_FILD, 0000h, MN_FIST, MN_FISTP	; 1b8
	dw  MN_FBLD, MN_FILD, MN_FBSTP, MN_FISTP	; 1bc
	dw  MN_FFREEP, MN_FXCH, MN_FSTP, MN_FSTP	; 1c0
	dw  0330h, P686 + MN_FUCOMIP, P686 + MN_FCOMIP, 0000h	; 1c4
	dw  MN_FLD1, MN_FLDL2T, MN_FLDL2E, MN_FLDPI	; 1c8
	dw  MN_FLDLG2, MN_FLDLN2, MN_FLDZ, 0000h	; 1cc
	dw  MN_F2XM1, MN_FYL2X, MN_FPTAN, MN_FPATAN	; 1d0
	dw  MN_FXTRACT, P386 + MN_FPREM1, MN_FDECSTP, MN_FINCSTP	; 1d4
	dw  MN_FPREM, MN_FYL2XP1, MN_FSQRT, P386 + MN_FSINCOS	; 1d8
	dw  MN_FRNDINT, MN_FSCALE, P386 + MN_FSIN, P386 + MN_FCOS	; 1dc
;--- The rest of these are squeezed.
	dw  0, 0138h, 0140h, P286 + MN_LAR	;00
	dw  P286 + MN_LSL, P286 + MN_LOADALL, P286 + MN_CLTS, P386 + MN_LOADALL ;04
	dw  P486 + MN_INVD, P486 + MN_WBINVD, P386 + MN_MOV, P386 + MN_MOV	;08
	dw  P386 + MN_MOV, P386 + MN_MOV, P386 + MN_MOV, P386 + MN_MOV	;0C
	dw  P586 + MN_WRMSR, P586 + MN_RDTSC, P586 + MN_RDMSR, P686 + MN_RDPMC	;10
	dw  P686 + MN_SYSENTER, P686 + MN_SYSEXIT, P686 + MN_CMOVO, P686 + MN_CMOVNO	;14
	dw  P686 + MN_CMOVB, P686 + MN_CMOVAE, P686 + MN_CMOVZ, P686 + MN_CMOVNZ	;18
	dw  P686 + MN_CMOVBE, P686 + MN_CMOVA, P686 + MN_CMOVS, P686 + MN_CMOVNS	;1C
	dw  P686 + MN_CMOVPE, P686 + MN_CMOVPO, P686 + MN_CMOVL, P686 + MN_CMOVGE	;20
	dw  P686 + MN_CMOVLE, P686 + MN_CMOVG, P386 + MN_JO, P386 + MN_JNO	;24
	dw  P386 + MN_JB, P386 + MN_JAE, P386 + MN_JZ, P386 + MN_JNZ	;28
	dw  P386 + MN_JBE, P386 + MN_JA, P386 + MN_JS, P386 + MN_JNS	;2C
	dw  P386 + MN_JPE, P386 + MN_JPO, P386 + MN_JL, P386 + MN_JGE	;30
	dw  P386 + MN_JLE, P386 + MN_JG, P386 + MN_SETO, P386 + MN_SETNO	;34
	dw  P386 + MN_SETB, P386 + MN_SETAE, P386 + MN_SETZ, P386 + MN_SETNZ	;38
	dw  P386 + MN_SETBE, P386 + MN_SETA, P386 + MN_SETS, P386 + MN_SETNS	;3C
	dw  P386 + MN_SETPE, P386 + MN_SETPO, P386 + MN_SETL, P386 + MN_SETGE	;40
	dw  P386 + MN_SETLE, P386 + MN_SETG, P386 + MN_PUSH, P386 + MN_POP	;44
	dw  P586 + MN_CPUID, P386 + MN_BT, P386 + MN_SHLD, P386 + MN_SHLD	;48
	dw  P386 + MN_PUSH, P386 + MN_POP, P586 + MN_RSM, P386 + MN_BTS ;4C
	dw  P386 + MN_SHRD, P386 + MN_SHRD, P386 + MN_IMUL, P486 + MN_CMPXCHG	;50
	dw  P486 + MN_CMPXCHG, P386 + MN_LSS, P386 + MN_BTR, P386 + MN_LFS	;54
	dw  P386 + MN_LGS, P386 + MN_MOVZX, P386 + MN_MOVZX, 02e8h	;58
	dw  P386 + MN_BTC, P386 + MN_BSF, P386 + MN_BSR, P386 + MN_MOVSX	;5C
	dw  P386 + MN_MOVSX, P486 + MN_XADD, P486 + MN_XADD, 02f0h	;60
	dw  P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP	;64
	dw  P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP	;68
	dw  MN_INC, MN_DEC, P386 + MN_BT, P386 + MN_BTS ;6C
	dw  P386 + MN_BTR, P386 + MN_BTC, P586 + MN_CMPXCHG8B, MN_POP	;70
	dw  MN_MOV, MN_FNOP, MN_FCHS, MN_FABS	;74
	dw  MN_FTST, MN_FXAM, P386 + MN_FUCOMPP, MN_FNENI	;78
	dw  MN_FNDISI, MN_FNCLEX, MN_FNINIT, P286 + MN_FSETPM	;7C
	dw  MN_FCOMPP, P286 + MN_FNSTSW
if MMXSUPP
	dw  P586 + MN_MOVD, P586 + MN_MOVQ, P586 + MN_EMMS, P586 + MN_MOVD
	dw  P586 + MN_MOVQ
endif

;--- Disassembler: table converts unsqueezed numbers to squeezed.
;--- 1E0-2DF are extended opcodes (0F xx).

sqztab label byte
	db   1,  2,  3,  4,  0,  5,  6,  7	;1E0
	db   8,  9,  0,  0,  0,  0,  0,  0	;1E8
	db   0,  0,  0,  0,  0,  0,  0,  0	;1F0
	db   0,  0,  0,  0,  0,  0,  0,  0	;1F8
	db  10, 11, 12, 13, 14,  0, 15,  0	;200
	db   0,  0,  0,  0,  0,  0,  0,  0	;208
	db  16, 17, 18, 19, 20, 21,  0,  0	;210
	db   0,  0,  0,  0,  0,  0,  0,  0	;218
	db  22, 23, 24, 25, 26, 27, 28, 29	;220
	db  30, 31, 32, 33, 34, 35, 36, 37	;228
	db   0,  0,  0,  0,  0,  0,  0,  0	;230
	db   0,  0,  0,  0,  0,  0,  0,  0	;238
	db   0,  0,  0,  0,  0,  0,  0,  0	;240
if MMXSUPP
	db   0,  0,  0,  0,  0,  0,130,131	;248
	db   0,  0,  0,  0,  0,  0,  0,132	;250
	db   0,  0,  0,  0,  0,  0,133,134	;258
else
	db   0,  0,  0,  0,  0,  0,  0,  0	;248
	db   0,  0,  0,  0,  0,  0,  0,  0	;250
	db   0,  0,  0,  0,  0,  0,  0,  0	;258
endif
	db  38, 39, 40, 41, 42, 43, 44, 45	;260
	db  46, 47, 48, 49, 50, 51, 52, 53	;268
	db  54, 55, 56, 57, 58, 59, 60, 61	;270
	db  62, 63, 64, 65, 66, 67, 68, 69	;278
	db  70, 71, 72, 73, 74, 75,  0,  0	;280
	db  76, 77, 78, 79, 80, 81,  0, 82	;288
	db  83, 84, 85, 86, 87, 88, 89, 90	;290
	db   0,  0, 91, 92, 93, 94, 95, 96	;298
	db  97, 98,  0,  0,  0,  0,  0, 99	;2A0
	db 100,101,102,103,104,105,106,107	;2A8
	db   0,  0,  0,  0,  0,  0,  0,  0	;2B0
	db   0,  0,  0,  0,  0,  0,  0,  0	;2B8
	db   0,  0,  0,  0,  0,  0,  0,  0	;2C0
	db   0,  0,  0,  0,  0,  0,  0,  0	;2C8
	db   0,  0,  0,  0,  0,  0,  0,  0	;2D0
	db   0,  0,  0,  0,  0,  0,  0,  0	;2D8

;--- 5 sparse groups

	db 108,109,  0,  0,  0,  0,  0,  0	;2E0
	db   0,  0,  0,  0,110,111,112,113	;2E8
	db   0,114,  0,  0,  0,  0,  0,  0	;2F0
	db 115,  0,  0,  0,  0,  0,  0,  0	;2F8
	db 116,  0,  0,  0,  0,  0,  0,  0	;300

;--- 6 sparse fpu groups

SFPGROUPS equ SPARSE_BASE + ( $ - sqztab )
	db 117,  0,  0,  0,  0,  0,  0,  0	;308
	db 118,119,  0,  0,120,121,  0,  0	;310
	db   0,122,  0,  0,  0,  0,  0,  0	;318
	db 123,124,125,126,127,  0,  0,  0	;320
	db   0,128,  0,  0,  0,  0,  0,  0	;328
	db 129,  0,  0,  0,  0,  0,  0,  0	;330

;--- Disassembler: table of mnemonics that change in the presence of a WAIT
;--- instruction.

wtab1	dw 0322h,0321h,0320h,0323h,019eh,015fh,015eh,0330h
	dw 019fh
wtab2 label word
	dw MN_FCLEX
	dw MN_FDISI
	dw MN_FENI
	dw MN_FINIT
	dw MN_FSAVE
	dw MN_FSTCW
	dw MN_FSTENV
	dw MN_FSTSW
	dw MN_FSTSW
N_WTAB	equ ($ - wtab2) / 2

;--- Disassembler: table for operands which have a different mnemonic for
;--- their 32 bit versions (66h prefix).

ltabo1	dw 098h,0a7h,099h,015ch,019ch,019eh,015eh,06dh
	dw 0cfh,0adh,0a5h,06fh,061h,09dh,060h,09ch
	dw 0cbh,0cah,0afh,0abh
ltabo2 label word
	dw MN_CWDE
	dw MN_CMPSD
	dw MN_CDQ
	dw MN_FLDENVD
	dw MN_FRSTORD
	dw MN_FSAVED
	dw MN_FSTENVD
	dw MN_INSD
	dw MN_IRETD
	dw MN_LODSD
	dw MN_MOVSD
	dw MN_OUTSD
	dw MN_POPAD
	dw MN_POPFD
	dw MN_PUSHAD
	dw MN_PUSHFD
	dw MN_RETFD
	dw MN_RETFD
	dw MN_SCASD
	dw MN_STOSD
N_LTABO equ ($ - ltabo2) / 2

;--- Disassembler: table for operands which have a different mnemonic for
;--- their 32 bit versions (67h prefix).

ltaba1	dw 0e3h,0e2h,0e1h,0e1h,0e0h,0e0h
ltaba2 label word
	dw MN_JECXZ
	dw MN_LOOPD
	dw MN_LOOPED
	dw MN_LOOPZD
	dw MN_LOOPNED
	dw MN_LOOPNZD
N_LTABA equ ($ - ltaba2) / 2

;--- Disassembler: table of lockable instructions

locktab label word
	dw 010ah,0102h,010h,011h,0108h,0100h,00h,01h
	dw 010ch,0104h,020h,021h,029bh,02efh,0293h,02eeh
	dw 028bh,02edh,0290h,0291h,02e1h,0131h,02e0h,0130h
	dw 012bh,012ah,0109h,0101h,08h,09h,010bh,0103h
	dw 018h,019h,010dh,0105h,028h,029h,02a0h,02a1h
	dw 086h,087h,010eh,0106h,030h,031h
N_LOCK	equ ($ - locktab) / 2
