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

OPTYPES_BASE	EQU 0Ch

;--- 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, ofs=Dh
	opl OP_ALL+OP_RM, OP_ALL+OP_IMM	; idx=2, ofs=10h
	opl OP_1632+OP_RM, OP_IMMS8	; idx=3, ofs=13h
	opl OP_ALL+OP_RM, OP_ALL+OP_R	; idx=4, ofs=16h
	opl OP_ALL+OP_R, OP_ALL+OP_RM	; idx=5, ofs=19h
	opl OP_16+OP_RM, OP_16+OP_R	; idx=6, ofs=1Ch
	opl OP_1632+OP_R, OP_FAR_M, OP_1632+OP_M	; idx=7, ofs=1Fh
	opl OP_1632+OP_R, OP_1632+OP_RM	; idx=8, ofs=23h
	opl OP_32+OP_R_ADD	; idx=9, ofs=26h
	opl OP_1632+OP_RM, OP_1632+OP_R	; idx=10, ofs=28h
	opl OP_1632+OP_RM, OP_IMM8	; idx=11, ofs=2Bh
	opl OP_NEAR, OP_REL1632	; idx=12, ofs=2Eh
	opl OP_FAR, OP_FARIMM	; idx=13, ofs=31h
	opl OP_FAR_REQUIRED, OP_FAR_M, OP_1632_DEFAULT+OP_M	; idx=14, ofs=34h
	opl OP_M64	; idx=15, ofs=38h
	opl OP_ALL+OP_RM	; idx=16, ofs=3Ah
	opl OP_1632+OP_R_ADD	; idx=17, ofs=3Ch
	opl OP_16+OP_IMM, OP_IMM8	; idx=18, ofs=3Eh
	opl OP_MFLOAT	; idx=19, ofs=41h
	opl OP_MDOUBLE	; idx=20, ofs=43h
	opl OP_ST, OP_STI	; idx=21, ofs=45h
	opl OP_STI, OP_ST	; idx=22, ofs=48h
	opl OP_1CHK, OP_STI, OP_ST	; idx=23, ofs=4Bh
	opl OP_32+OP_M	; idx=24, ofs=4Fh
	opl OP_16+OP_M	; idx=25, ofs=51h
	opl OP_M80	; idx=26, ofs=53h
	opl OP_STI	; idx=27, ofs=55h
	opl OP_1CHK, OP_STI	; idx=28, ofs=57h
	opl OP_MXX	; idx=29, ofs=5Ah
	opl OP_16+OP_AX	; idx=30, ofs=5Ch
	opl OP_1632+OP_R, OP_1632+OP_RM, OP_IMMS8	; idx=31, ofs=5Eh
	opl OP_1632+OP_R_MOD, OP_1632+OP_R, OP_IMMS8	; idx=32, ofs=62h
	opl OP_1632+OP_R, OP_1632+OP_RM, OP_1632+OP_IMM	; idx=33, ofs=66h
	opl OP_1632+OP_R_MOD, OP_1632+OP_R, OP_1632+OP_IMM	; idx=34, ofs=6Ah
	opl OP_ALL+OP_AX, OP_IMM8	; idx=35, ofs=6Eh
	opl OP_ALL+OP_AX, OP_DX	; idx=36, ofs=71h
	opl OP_3	; idx=37, ofs=74h
	opl OP_IMM8	; idx=38, ofs=76h
	opl OP_SHORT, OP_REL8	; idx=39, ofs=78h
	opl OP_1632+OP_RM	; idx=40, ofs=7Bh
	opl OP_16+OP_RM	; idx=41, ofs=7Dh
	opl OP_1632+OP_RM, OP_SEGREG	; idx=42, ofs=7Fh
	opl OP_SEGREG, OP_1632+OP_RM	; idx=43, ofs=82h
	opl OP_ALL+OP_AX, OP_ALL+OP_MOFFS	; idx=44, ofs=85h
	opl OP_ALL+OP_MOFFS, OP_ALL+OP_AX	; idx=45, ofs=88h
	opl OP_8+OP_R_ADD, OP_8+OP_IMM	; idx=46, ofs=8Bh
	opl OP_1632+OP_R_ADD, OP_1632+OP_IMM	; idx=47, ofs=8Eh
	opl OP_1632+OP_R, OP_SHOSIZ, OP_8+OP_RM	; idx=48, ofs=91h
	opl OP_1632+OP_R, OP_SHOSIZ, OP_16+OP_RM	; idx=49, ofs=95h
	opl OP_IMM8, OP_ALL+OP_AX	; idx=50, ofs=99h
	opl OP_DX, OP_ALL+OP_AX	; idx=51, ofs=9Ch
	opl OP_SHOSIZ, OP_1632_DEFAULT+OP_IMM	; idx=52, ofs=9Fh
	opl OP_SHOSIZ, OP_IMMS8	; idx=53, ofs=A2h
	opl OP_ALL+OP_RM, OP_1	; idx=54, ofs=A5h
	opl OP_ALL+OP_RM, OP_CL	; idx=55, ofs=A8h
	opl OP_ALL+OP_RM, OP_IMM8	; idx=56, ofs=ABh
	opl OP_16+OP_IMM	; idx=57, ofs=AEh
	opl OP_8+OP_RM	; idx=58, ofs=B0h
	opl OP_1632+OP_RM, OP_1632+OP_R, OP_IMM8	; idx=59, ofs=B2h
	opl OP_1632+OP_RM, OP_1632+OP_R, OP_CL	; idx=60, ofs=B6h
	opl OP_1632+OP_AX, OP_1632+OP_R_ADD	; idx=61, ofs=BAh
	opl OP_1632+OP_R_ADD, OP_1632+OP_AX	; idx=62, ofs=BDh
	opl OP_ES	; idx=63, ofs=C0h
	opl OP_CS	; idx=64, ofs=C2h
	opl OP_SS	; idx=65, ofs=C4h
	opl OP_DS	; idx=66, ofs=C6h
	opl OP_FS	; idx=67, ofs=C8h
	opl OP_GS	; idx=68, ofs=CAh
	opl OP_32+OP_R_MOD, OP_CR	; idx=69, ofs=CCh
	opl OP_CR, OP_32+OP_R_MOD	; idx=70, ofs=CFh
	opl OP_32+OP_R_MOD, OP_DR	; idx=71, ofs=D2h
	opl OP_DR, OP_32+OP_R_MOD	; idx=72, ofs=D5h
	opl OP_32+OP_R_MOD, OP_TR	; idx=73, ofs=D8h
	opl OP_TR, OP_32+OP_R_MOD	; idx=74, ofs=DBh
	opl OP_MMX, OP_32+OP_RM	; idx=75, ofs=DEh
	opl OP_32+OP_RM, OP_MMX	; idx=76, ofs=E1h
	opl OP_MMX, OP_64+OP_RM	; idx=77, ofs=E4h
	opl OP_64+OP_RM, OP_MMX	; idx=78, ofs=E7h
	opl OP_MMX_MOD, OP_IMM8	; idx=79, ofs=EAh
	opl OP_1632+OP_R, OP_MXX	; idx=80, ofs=EDh
	opl OP_8+OP_RM, OP_8+OP_IMM	; idx=81, ofs=F0h
	opl OP_NEAR, OP_1632_DEFAULT+OP_RM	; idx=82, ofs=F3h
	opl OP_1632+OP_R, OP_DOUBLE_M, OP_1632+OP_M	; idx=83, ofs=F6h

ASMMOD	EQU opidx

;--- Assembler: data on groups.
;--- If > 100h, it's a "0F-prefix" group.

	align 2, db 0
agroups label word
	dw 0FEh	; 0
	dw 083h	; 1
	dw 080h	; 2
	dw 082h	; 3
	dw 1BAh	; 4
	dw 0FFh	; 5
	dw 1C7h	; 6
	dw 0F6h	; 7
	dw 101h	; 8
	dw 100h	; 9
	dw 0C6h	; 10
	dw 171h	; 11
	dw 172h	; 12
	dw 173h	; 13
	dw 08Fh	; 14
	dw 0D0h	; 15
	dw 0D2h	; 16
	dw 0C0h	; 17

;--- 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 near
mnsuffix

	mne A32, ASM_SPECIAL	; ofs=0h
	mne A16, ASM_SPECIAL	; ofs=2h
	mne O32, ASM_SPECIAL	; ofs=4h
	mne O16, ASM_SPECIAL	; ofs=6h
	mne BOXCB	; ofs=8h
	 variant AGRP(0,7), 57
	 endvariant
	mne AAA	; ofs=Bh
	 variant 037h, 0
	 endvariant
	mne AAD, ASM_SPECIAL	; ofs=Eh
	 variant 0D5h, 38
	 endvariant
	mne AAM, ASM_SPECIAL	; ofs=12h
	 variant 0D4h, 38
	 endvariant
	mne AAS	; ofs=16h
	 variant 03Fh, 0
	 endvariant
	mne ADC	; ofs=19h
	 variant AGRP(1,2), 3, ASM_LOCKABLE
	 variant 014h, 1
	 variant AGRP(2,2), 2, ASM_LOCKABLE
	 variant 010h, 4, ASM_LOCKABLE
	 variant 012h, 5
	 endvariant
	mne ADD	; ofs=27h
	 variant AGRP(1,0), 3, ASM_LOCKABLE
	 variant 004h, 1
	 variant AGRP(2,0), 2, ASM_LOCKABLE
	 variant 000h, 4, ASM_LOCKABLE
	 variant 002h, 5
	 endvariant
	mne AND	; ofs=35h
	 variant AGRP(1,4), 3, ASM_LOCKABLE
	 variant 024h, 1
	 variant AGRP(2,4), 2, ASM_LOCKABLE
	 variant 020h, 4, ASM_LOCKABLE
	 variant 022h, 5
	 endvariant
	mne ARPL	; ofs=43h
	 variant 063h, 6, ASM_MACH2
	 endvariant
	mne BOUND	; ofs=47h
	 variant 062h, 83, ASM_MACH1
	 endvariant
	mne BSF	; ofs=4Bh
	 variant 1BCh, 8, ASM_MACH3
	 endvariant
	mne BSR	; ofs=4Fh
	 variant 1BDh, 8, ASM_MACH3
	 endvariant
	mne BSWAP, ASM_D32	; ofs=53h
	 variant 1C8h, 9, ASM_MACH4
	 endvariant
	mne BT	; ofs=58h
	 variant 1A3h, 10, ASM_MACH3
	 variant AGRP(4,4), 11, ASM_MACH3
	 endvariant
	mne BTC	; ofs=5Fh
	 variant 1BBh, 10, ASM_LOCKABLE, ASM_MACH3
	 variant AGRP(4,7), 11, ASM_LOCKABLE, ASM_MACH3
	 endvariant
	mne BTR	; ofs=68h
	 variant 1B3h, 10, ASM_LOCKABLE, ASM_MACH3
	 variant AGRP(4,6), 11, ASM_LOCKABLE, ASM_MACH3
	 endvariant
	mne BTS	; ofs=71h
	 variant 1ABh, 10, ASM_LOCKABLE, ASM_MACH3
	 variant AGRP(4,5), 11, ASM_LOCKABLE, ASM_MACH3
	 endvariant
	mne CALL	; ofs=7Ah
	 variant 0E8h, 12
	 variant AGRP(5,2), 82
	 variant AGRP(5,3), 14
	 variant 09Ah, 13
	 endvariant
	mne CBW, ASM_D16	; ofs=83h
	mne CWDE, ASM_D32	; ofs=84h
	 variant 098h, 0
	 endvariant
	mne CLC	; ofs=88h
	 variant 0F8h, 0
	 endvariant
	mne CLD	; ofs=8Bh
	 variant 0FCh, 0
	 endvariant
	mne CLI	; ofs=8Eh
	 variant 0FAh, 0
	 endvariant
	mne CLTS	; ofs=91h
	 variant 106h, 0, ASM_MACH2
	 endvariant
	mne CMC	; ofs=95h
	 variant 0F5h, 0
	 endvariant
	mne CMOVA	; ofs=98h
	 variant 147h, 8, ASM_MACH6
	 endvariant
	mne CMOVAE	; ofs=9Ch
	 variant 143h, 8, ASM_MACH6
	 endvariant
	mne CMOVB	; ofs=A0h
	 variant 142h, 8, ASM_MACH6
	 endvariant
	mne CMOVBE	; ofs=A4h
	 variant 146h, 8, ASM_MACH6
	 endvariant
	mne CMOVC	; ofs=A8h
	 variant 142h, 8, ASM_MACH6
	 endvariant
	mne CMOVE	; ofs=ACh
	 variant 144h, 8, ASM_MACH6
	 endvariant
	mne CMOVG	; ofs=B0h
	 variant 14Fh, 8, ASM_MACH6
	 endvariant
	mne CMOVGE	; ofs=B4h
	 variant 14Dh, 8, ASM_MACH6
	 endvariant
	mne CMOVL	; ofs=B8h
	 variant 14Ch, 8, ASM_MACH6
	 endvariant
	mne CMOVLE	; ofs=BCh
	 variant 14Eh, 8, ASM_MACH6
	 endvariant
	mne CMOVNA	; ofs=C0h
	 variant 146h, 8, ASM_MACH6
	 endvariant
	mne CMOVNAE	; ofs=C4h
	 variant 142h, 8, ASM_MACH6
	 endvariant
	mne CMOVNB	; ofs=C8h
	 variant 143h, 8, ASM_MACH6
	 endvariant
	mne CMOVNBE	; ofs=CCh
	 variant 147h, 8, ASM_MACH6
	 endvariant
	mne CMOVNC	; ofs=D0h
	 variant 143h, 8, ASM_MACH6
	 endvariant
	mne CMOVNE	; ofs=D4h
	 variant 145h, 8, ASM_MACH6
	 endvariant
	mne CMOVNG	; ofs=D8h
	 variant 14Eh, 8, ASM_MACH6
	 endvariant
	mne CMOVNGE	; ofs=DCh
	 variant 14Ch, 8, ASM_MACH6
	 endvariant
	mne CMOVNL	; ofs=E0h
	 variant 14Dh, 8, ASM_MACH6
	 endvariant
	mne CMOVNLE	; ofs=E4h
	 variant 14Fh, 8, ASM_MACH6
	 endvariant
	mne CMOVNO	; ofs=E8h
	 variant 141h, 8, ASM_MACH6
	 endvariant
	mne CMOVNP	; ofs=ECh
	 variant 14Bh, 8, ASM_MACH6
	 endvariant
	mne CMOVNS	; ofs=F0h
	 variant 149h, 8, ASM_MACH6
	 endvariant
	mne CMOVNZ	; ofs=F4h
	 variant 145h, 8, ASM_MACH6
	 endvariant
	mne CMOVO	; ofs=F8h
	 variant 140h, 8, ASM_MACH6
	 endvariant
	mne CMOVP	; ofs=FCh
	 variant 14Ah, 8, ASM_MACH6
	 endvariant
	mne CMOVPE	; ofs=100h
	 variant 14Ah, 8, ASM_MACH6
	 endvariant
	mne CMOVPO	; ofs=104h
	 variant 14Bh, 8, ASM_MACH6
	 endvariant
	mne CMOVS	; ofs=108h
	 variant 148h, 8, ASM_MACH6
	 endvariant
	mne CMOVZ	; ofs=10Ch
	 variant 144h, 8, ASM_MACH6
	 endvariant
	mne CMP	; ofs=110h
	 variant AGRP(1,7), 3
	 variant 03Ch, 1
	 variant AGRP(2,7), 2
	 variant 038h, 4
	 variant 03Ah, 5
	 endvariant
	mne CMPSB	; ofs=11Bh
	 variant 0A6h, 0
	 endvariant
	mne CMPXCHG	; ofs=121h
	 variant 1B0h, 4, ASM_LOCKABLE, ASM_MACH4
	 endvariant
	mne CMPXCHG8B	; ofs=126h
	 variant AGRP(6,1), 15, ASM_MACH5
	 endvariant
	mne CPUID	; ofs=12Ah
	 variant 1A2h, 0, ASM_MACH5
	 endvariant
	mne CWD, ASM_D16	; ofs=12Eh
	mne CDQ, ASM_D32	; ofs=12Fh
	 variant 099h, 0
	 endvariant
	mne DAA	; ofs=133h
	 variant 027h, 0
	 endvariant
	mne DAS	; ofs=136h
	 variant 02Fh, 0
	 endvariant
	mne DB, ASM_SPECIAL	; ofs=139h
	mne DD, ASM_SPECIAL	; ofs=13Bh
	mne DEC	; ofs=13Dh
	 variant 048h, 17
	 variant AGRP(0,1), 16, ASM_LOCKABLE
	 endvariant
	mne DIV	; ofs=143h
	 variant AGRP(7,6), 16
	 endvariant
	mne DW, ASM_SPECIAL	; ofs=146h
	mne EMMS	; ofs=148h
	 variant 177h, 0, ASM_MACH5
	 endvariant
	mne F2XM1	; ofs=150h
	 fpvariant 0D9h, 0, 0F0h
	 endvariant
	mne FABS	; ofs=154h
	 fpvariant 0D9h, 0, 0E1h
	 endvariant
	mne FADD	; ofs=158h
	 variant 200h, 19
	 variant 204h, 20
	 fpvariant 0D8h, 21, 0C0h
	 fpvariant 0DCh, 22, 0C0h
	 endvariant
	mne FADDP	; ofs=163h
	 fpvariant 0DEh, 23, 0C0h
	 fpvariant 0DEh, 0, 0C1h
	 endvariant
	mne FIADD	; ofs=16Ah
	 variant 202h, 24
	 variant 206h, 25
	 endvariant
	mne FBLD	; ofs=16Fh
	 variant 227h, 26
	 endvariant
	mne FBSTP	; ofs=172h
	 variant 237h, 26
	 endvariant
	mne FCHS	; ofs=175h
	 fpvariant 0D9h, 0, 0E0h
	 endvariant
	mne FCLEX, ASM_WAIT	; ofs=179h
	mne FNCLEX	; ofs=17Ah
	 fpvariant 0DBh, 0, 0E2h
	 endvariant
	mne FCMOVA	; ofs=17Eh
	 fpvariant 0DBh, 21, 0D0h, ASM_MACH6
	 endvariant
	mne FCMOVAE	; ofs=183h
	 fpvariant 0DBh, 21, 0C0h, ASM_MACH6
	 endvariant
	mne FCMOVB	; ofs=188h
	 fpvariant 0DAh, 21, 0C0h, ASM_MACH6
	 endvariant
	mne FCMOVBE	; ofs=18Dh
	 fpvariant 0DAh, 21, 0D0h, ASM_MACH6
	 endvariant
	mne FCMOVE	; ofs=192h
	 fpvariant 0DAh, 21, 0C8h, ASM_MACH6
	 endvariant
	mne FCMOVNA	; ofs=197h
	 fpvariant 0DAh, 21, 0D0h, ASM_MACH6
	 endvariant
	mne FCMOVNAE	; ofs=19Ch
	 fpvariant 0DAh, 21, 0C0h, ASM_MACH6
	 endvariant
	mne FCMOVNB	; ofs=1A1h
	 fpvariant 0DBh, 21, 0C0h, ASM_MACH6
	 endvariant
	mne FCMOVNBE	; ofs=1A6h
	 fpvariant 0DBh, 21, 0D0h, ASM_MACH6
	 endvariant
	mne FCMOVNE	; ofs=1ABh
	 fpvariant 0DBh, 21, 0C8h, ASM_MACH6
	 endvariant
	mne FCMOVNU	; ofs=1B0h
	 fpvariant 0DBh, 21, 0D8h, ASM_MACH6
	 endvariant
	mne FCMOVNZ	; ofs=1B5h
	 fpvariant 0DBh, 21, 0C8h, ASM_MACH6
	 endvariant
	mne FCMOVU	; ofs=1BAh
	 fpvariant 0DAh, 21, 0D8h, ASM_MACH6
	 endvariant
	mne FCMOVZ	; ofs=1BFh
	 fpvariant 0DAh, 21, 0C8h, ASM_MACH6
	 endvariant
	mne FCOM	; ofs=1C4h
	 variant 210h, 19
	 variant 214h, 20
	 fpvariant 0D8h, 28, 0D0h
	 fpvariant 0D8h, 0, 0D1h
	 endvariant
	mne FCOMI	; ofs=1CFh
	 fpvariant 0DBh, 28, 0F0h, ASM_MACH6
	 fpvariant 0DBh, 0, 0F1h, ASM_MACH6
	 endvariant
	mne FCOMIP	; ofs=1D8h
	 fpvariant 0DFh, 28, 0F0h, ASM_MACH6
	 fpvariant 0DFh, 0, 0F1h, ASM_MACH6
	 endvariant
	mne FCOMP	; ofs=1E1h
	 variant 218h, 19
	 variant 21Ch, 20
	 fpvariant 0D8h, 28, 0D8h
	 fpvariant 0D8h, 0, 0D9h
	 endvariant
	mne FCOMPP	; ofs=1ECh
	 fpvariant 0DEh, 0, 0D9h
	 endvariant
	mne FCOS	; ofs=1F0h
	 fpvariant 0D9h, 0, 0FFh, ASM_MACH3
	 endvariant
	mne FDECSTP	; ofs=1F5h
	 fpvariant 0D9h, 0, 0F6h
	 endvariant
	mne FDISI, ASM_WAIT	; ofs=1F9h
	mne FNDISI	; ofs=1FAh
	 fpvariant 0DBh, 0, 0E1h
	 endvariant
	mne FDIV	; ofs=1FEh
	 variant 230h, 19
	 variant 234h, 20
	 fpvariant 0D8h, 21, 0F0h
	 fpvariant 0DCh, 22, 0F8h
	 endvariant
	mne FDIVP	; ofs=209h
	 fpvariant 0DEh, 23, 0F8h
	 fpvariant 0DEh, 0, 0F9h
	 endvariant
	mne FIDIV	; ofs=210h
	 variant 232h, 24
	 variant 236h, 25
	 endvariant
	mne FDIVR	; ofs=215h
	 variant 238h, 19
	 variant 23Ch, 20
	 fpvariant 0D8h, 21, 0F8h
	 fpvariant 0DCh, 22, 0F0h
	 endvariant
	mne FDIVRP	; ofs=220h
	 fpvariant 0DEh, 23, 0F0h
	 fpvariant 0DEh, 0, 0F1h
	 endvariant
	mne FIDIVR	; ofs=227h
	 variant 23Ah, 24
	 variant 23Eh, 25
	 endvariant
	mne FENI, ASM_WAIT	; ofs=22Ch
	mne FNENI	; ofs=22Dh
	 fpvariant 0DBh, 0, 0E0h
	 endvariant
	mne FFREE	; ofs=231h
	 fpvariant 0DDh, 27, 0C0h
	 endvariant
	mne FICOM	; ofs=235h
	 variant 212h, 24
	 variant 216h, 25
	 endvariant
	mne FICOMP	; ofs=23Ah
	 variant 21Ah, 24
	 variant 21Eh, 25
	 endvariant
	mne FILD	; ofs=23Fh
	 variant 203h, 24
	 variant 207h, 25
	 variant 22Fh, 15
	 endvariant
	mne FINCSTP	; ofs=246h
	 fpvariant 0D9h, 0, 0F7h
	 endvariant
	mne FINIT, ASM_WAIT	; ofs=24Ah
	mne FNINIT	; ofs=24Bh
	 fpvariant 0DBh, 0, 0E3h
	 endvariant
	mne FIST	; ofs=24Fh
	 variant 213h, 24
	 variant 217h, 25
	 endvariant
	mne FISTP	; ofs=254h
	 variant 21Bh, 24
	 variant 21Fh, 25
	 variant 23Fh, 15
	 endvariant
	mne FLD	; ofs=25Bh
	 variant 201h, 19
	 variant 205h, 20
	 variant 22Bh, 26
	 fpvariant 0D9h, 27, 0C0h
	 endvariant
	mne FLD1	; ofs=265h
	 fpvariant 0D9h, 0, 0E8h
	 endvariant
	mne FLDL2T	; ofs=269h
	 fpvariant 0D9h, 0, 0E9h
	 endvariant
	mne FLDL2E	; ofs=26Dh
	 fpvariant 0D9h, 0, 0EAh
	 endvariant
	mne FLDPI	; ofs=271h
	 fpvariant 0D9h, 0, 0EBh
	 endvariant
	mne FLDLG2	; ofs=275h
	 fpvariant 0D9h, 0, 0ECh
	 endvariant
	mne FLDLN2	; ofs=279h
	 fpvariant 0D9h, 0, 0EDh
	 endvariant
	mne FLDZ	; ofs=27Dh
	 fpvariant 0D9h, 0, 0EEh
	 endvariant
	mne FLDCW, ASM_WAIT	; ofs=281h
	mne FNLDCW	; ofs=282h
	 variant 229h, 25
	 endvariant
	mne FMUL	; ofs=288h
	 variant 208h, 19
	 variant 20Ch, 20
	 fpvariant 0D8h, 21, 0C8h
	 fpvariant 0DCh, 22, 0C8h
	 endvariant
	mne FMULP	; ofs=293h
	 fpvariant 0DEh, 23, 0C8h
	 fpvariant 0DEh, 0, 0C9h
	 endvariant
	mne FIMUL	; ofs=29Ah
	 variant 20Ah, 24
	 variant 20Eh, 25
	 endvariant
	mne FNOP	; ofs=29Fh
	 fpvariant 0D9h, 0, 0D0h
	 endvariant
	mne FPATAN	; ofs=2A3h
	 fpvariant 0D9h, 0, 0F3h
	 endvariant
	mne FPREM	; ofs=2A7h
	 fpvariant 0D9h, 0, 0F8h
	 endvariant
	mne FPREM1	; ofs=2ABh
	 fpvariant 0D9h, 0, 0F5h, ASM_MACH3
	 endvariant
	mne FPTAN	; ofs=2B0h
	 fpvariant 0D9h, 0, 0F2h
	 endvariant
	mne FRNDINT	; ofs=2B4h
	 fpvariant 0D9h, 0, 0FCh
	 endvariant
	mne FSCALE	; ofs=2BFh
	 fpvariant 0D9h, 0, 0FDh
	 endvariant
	mne FSETPM, ASM_WAIT	; ofs=2C3h
	mne FNSETPM	; ofs=2C4h
	 fpvariant 0DBh, 0, 0E4h, ASM_MACH2
	 endvariant
	mne FSIN	; ofs=2C9h
	 fpvariant 0D9h, 0, 0FEh, ASM_MACH3
	 endvariant
	mne FSINCOS	; ofs=2CEh
	 fpvariant 0D9h, 0, 0FBh, ASM_MACH3
	 endvariant
	mne FSQRT	; ofs=2D3h
	 fpvariant 0D9h, 0, 0FAh
	 endvariant
	mne FST	; ofs=2D7h
	 variant 211h, 19
	 variant 215h, 20
	 fpvariant 0DDh, 27, 0D0h
	 endvariant
	mne FSTP	; ofs=2DFh
	 variant 219h, 19
	 variant 21Dh, 20
	 variant 23Bh, 26
	 fpvariant 0DDh, 27, 0D8h
	 endvariant
	mne FSTCW, ASM_WAIT	; ofs=2E9h
	mne FNSTCW	; ofs=2EAh
	 variant 239h, 25
	 endvariant
	mne FSTSW, ASM_WAIT	; ofs=2F1h
	mne FNSTSW	; ofs=2F2h
	 fpvariant 0DFh, 30, 0E0h
	 variant 23Dh, 25
	 endvariant
	mne FSUB	; ofs=2F8h
	 variant 220h, 19
	 variant 224h, 20
	 fpvariant 0D8h, 21, 0E0h
	 fpvariant 0DCh, 22, 0E8h
	 endvariant
	mne FSUBP	; ofs=303h
	 fpvariant 0DEh, 23, 0E8h
	 fpvariant 0DEh, 0, 0E9h
	 endvariant
	mne FISUB	; ofs=30Ah
	 variant 222h, 24
	 variant 226h, 25
	 endvariant
	mne FSUBR	; ofs=30Fh
	 variant 228h, 19
	 variant 22Ch, 20
	 fpvariant 0D8h, 21, 0E8h
	 fpvariant 0DCh, 22, 0E0h
	 endvariant
	mne FSUBRP	; ofs=31Ah
	 fpvariant 0DEh, 23, 0E0h
	 fpvariant 0DEh, 0, 0E1h
	 endvariant
	mne FISUBR	; ofs=321h
	 variant 22Ah, 24
	 variant 22Eh, 25
	 endvariant
	mne FTST	; ofs=326h
	 fpvariant 0D9h, 0, 0E4h
	 endvariant
	mne FUCOM	; ofs=32Ah
	 fpvariant 0DDh, 28, 0E0h, ASM_MACH3
	 fpvariant 0DDh, 0, 0E1h, ASM_MACH3
	 endvariant
	mne FUCOMI	; ofs=333h
	 fpvariant 0DBh, 28, 0E8h, ASM_MACH6
	 fpvariant 0DBh, 0, 0E9h, ASM_MACH6
	 endvariant
	mne FUCOMIP	; ofs=33Ch
	 fpvariant 0DFh, 28, 0E8h, ASM_MACH6
	 fpvariant 0DFh, 0, 0E9h, ASM_MACH6
	 endvariant
	mne FUCOMP	; ofs=345h
	 fpvariant 0DDh, 28, 0E8h, ASM_MACH3
	 fpvariant 0DDh, 0, 0E9h, ASM_MACH3
	 endvariant
	mne FUCOMPP	; ofs=34Eh
	 fpvariant 0DAh, 0, 0E9h, ASM_MACH3
	 endvariant
	mne FWAIT	; ofs=353h
	 variant 09Bh, 0
	 endvariant
	mne FXAM	; ofs=356h
	 fpvariant 0D9h, 0, 0E5h
	 endvariant
	mne FXCH	; ofs=35Ah
	 fpvariant 0D9h, 28, 0C8h
	 fpvariant 0D9h, 0, 0C9h
	 endvariant
	mne FXTRACT	; ofs=361h
	 fpvariant 0D9h, 0, 0F4h
	 endvariant
	mne FYL2X	; ofs=365h
	 fpvariant 0D9h, 0, 0F1h
	 endvariant
	mne FYL2XP1	; ofs=369h
	 fpvariant 0D9h, 0, 0F9h
	 endvariant
	mne HLT	; ofs=36Dh
	 variant 0F4h, 0
	 endvariant
	mne IDIV	; ofs=370h
	 variant AGRP(7,7), 16
	 endvariant
	mne IMUL	; ofs=373h
	 variant AGRP(7,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	; ofs=385h
	 variant 0E4h, 35
	 variant 0ECh, 36
	 endvariant
	mne INC	; ofs=38Ah
	 variant 040h, 17
	 variant AGRP(0,0), 16, ASM_LOCKABLE
	 endvariant
	mne INSB	; ofs=390h
	 variant 06Ch, 0, ASM_MACH1
	 endvariant
	mne INT	; ofs=398h
	 variant 0CCh, 37
	 variant 0CDh, 38
	 endvariant
	mne INT1	; ofs=39Dh
	 variant 0F1h, 0, ASM_MACH6
	 endvariant
	mne INT01	; ofs=3A1h
	 variant 0F1h, 0, ASM_MACH6
	 endvariant
	mne ICEBP	; ofs=3A5h
	 variant 0F1h, 0, ASM_MACH6
	 endvariant
	mne INT3	; ofs=3A9h
	 variant 0CCh, 0
	 endvariant
	mne INT03	; ofs=3ACh
	 variant 0CCh, 0
	 endvariant
	mne INTO	; ofs=3AFh
	 variant 0CEh, 0
	 endvariant
	mne INVD	; ofs=3B2h
	 variant 108h, 0, ASM_MACH4
	 endvariant
	mne INVLPG	; ofs=3B6h
	 variant AGRP(8,7), 29, ASM_MACH4
	 endvariant
	mne JA	; ofs=3BDh
	 variant 077h, 39
	 variant 187h, 12, ASM_MACH3
	 endvariant
	mne JAE	; ofs=3C3h
	 variant 073h, 39
	 variant 183h, 12, ASM_MACH3
	 endvariant
	mne JB	; ofs=3C9h
	 variant 072h, 39
	 variant 182h, 12, ASM_MACH3
	 endvariant
	mne JBE	; ofs=3CFh
	 variant 076h, 39
	 variant 186h, 12, ASM_MACH3
	 endvariant
	mne JC	; ofs=3D5h
	 variant 072h, 39
	 variant 182h, 12, ASM_MACH3
	 endvariant
	mne JCXZ, ASM_D16	; ofs=3DBh
	mne JECXZ, ASM_D32	; ofs=3DCh
	 variant 0E3h, 39
	 endvariant
	mne JE	; ofs=3E0h
	 variant 074h, 39
	 variant 184h, 12, ASM_MACH3
	 endvariant
	mne JG	; ofs=3E6h
	 variant 07Fh, 39
	 variant 18Fh, 12, ASM_MACH3
	 endvariant
	mne JGE	; ofs=3ECh
	 variant 07Dh, 39
	 variant 18Dh, 12, ASM_MACH3
	 endvariant
	mne JL	; ofs=3F2h
	 variant 07Ch, 39
	 variant 18Ch, 12, ASM_MACH3
	 endvariant
	mne JLE	; ofs=3F8h
	 variant 07Eh, 39
	 variant 18Eh, 12, ASM_MACH3
	 endvariant
	mne JNA	; ofs=3FEh
	 variant 076h, 39
	 variant 186h, 12, ASM_MACH3
	 endvariant
	mne JNAE	; ofs=404h
	 variant 072h, 39
	 variant 182h, 12, ASM_MACH3
	 endvariant
	mne JNB	; ofs=40Ah
	 variant 073h, 39
	 variant 183h, 12, ASM_MACH3
	 endvariant
	mne JNBE	; ofs=410h
	 variant 077h, 39
	 variant 187h, 12, ASM_MACH3
	 endvariant
	mne JNC	; ofs=416h
	 variant 073h, 39
	 variant 183h, 12, ASM_MACH3
	 endvariant
	mne JNE	; ofs=41Ch
	 variant 075h, 39
	 variant 185h, 12, ASM_MACH3
	 endvariant
	mne JNG	; ofs=422h
	 variant 07Eh, 39
	 variant 18Eh, 12, ASM_MACH3
	 endvariant
	mne JNGE	; ofs=428h
	 variant 07Ch, 39
	 variant 18Ch, 12, ASM_MACH3
	 endvariant
	mne JNL	; ofs=42Eh
	 variant 07Dh, 39
	 variant 18Dh, 12, ASM_MACH3
	 endvariant
	mne JNLE	; ofs=434h
	 variant 07Fh, 39
	 variant 18Fh, 12, ASM_MACH3
	 endvariant
	mne JNO	; ofs=43Ah
	 variant 071h, 39
	 variant 181h, 12, ASM_MACH3
	 endvariant
	mne JNP	; ofs=440h
	 variant 07Bh, 39
	 variant 18Bh, 12, ASM_MACH3
	 endvariant
	mne JNS	; ofs=446h
	 variant 079h, 39
	 variant 189h, 12, ASM_MACH3
	 endvariant
	mne JNZ	; ofs=44Ch
	 variant 075h, 39
	 variant 185h, 12, ASM_MACH3
	 endvariant
	mne JO	; ofs=452h
	 variant 070h, 39
	 variant 180h, 12, ASM_MACH3
	 endvariant
	mne JP	; ofs=458h
	 variant 07Ah, 39
	 variant 18Ah, 12, ASM_MACH3
	 endvariant
	mne JPE	; ofs=45Eh
	 variant 07Ah, 39
	 variant 18Ah, 12, ASM_MACH3
	 endvariant
	mne JPO	; ofs=464h
	 variant 07Bh, 39
	 variant 18Bh, 12, ASM_MACH3
	 endvariant
	mne JS	; ofs=46Ah
	 variant 078h, 39
	 variant 188h, 12, ASM_MACH3
	 endvariant
	mne JZ	; ofs=470h
	 variant 074h, 39
	 variant 184h, 12, ASM_MACH3
	 endvariant
	mne JMP	; ofs=476h
	 variant 0EBh, 39
	 variant 0E9h, 12
	 variant AGRP(5,4), 82
	 variant AGRP(5,5), 14
	 variant 0EAh, 13
	 endvariant
	mne LAHF	; ofs=481h
	 variant 09Fh, 0
	 endvariant
	mne LAR	; ofs=484h
	 variant 102h, 8, ASM_MACH2
	 endvariant
	mne LDS	; ofs=488h
	 variant 0C5h, 7
	 endvariant
	mne LSS	; ofs=48Bh
	 variant 1B2h, 7, ASM_MACH3
	 endvariant
	mne LES	; ofs=48Fh
	 variant 0C4h, 7
	 endvariant
	mne LFS	; ofs=492h
	 variant 1B4h, 7, ASM_MACH3
	 endvariant
	mne LGS	; ofs=496h
	 variant 1B5h, 7, ASM_MACH3
	 endvariant
	mne LEA	; ofs=49Ah
	 variant 08Dh, 80
	 endvariant
	mne LGDT	; ofs=4A1h
	 variant AGRP(8,2), 29, ASM_MACH2
	 endvariant
	mne LIDT	; ofs=4A5h
	 variant AGRP(8,3), 29, ASM_MACH2
	 endvariant
	mne LLDT	; ofs=4A9h
	 variant AGRP(9,2), 41, ASM_MACH2
	 endvariant
	mne LMSW	; ofs=4ADh
	 variant AGRP(8,6), 41, ASM_MACH2
	 endvariant
	mne LOCK, ASM_SPECIAL, 0F0h	; ofs=4B1h
	mne LODSB	; ofs=4B3h
	 variant 0ACh, 0
	 endvariant
	mne LSL	; ofs=4C8h
	 variant 103h, 8, ASM_MACH2
	 endvariant
	mne LTR	; ofs=4CCh
	 variant AGRP(9,3), 41, ASM_MACH2
	 endvariant
	mne MOV	; ofs=4D0h
	 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(10,0), 2
	 variant 120h, 69, ASM_MACH3
	 variant 122h, 70, ASM_MACH3
	 variant 121h, 71, ASM_MACH3
	 variant 123h, 72, ASM_MACH3
	 variant 124h, 73, ASM_MACH3
	 variant 126h, 74, ASM_MACH3
	 endvariant
	mne MOVD	; ofs=4F5h
	 variant 16Eh, 75, ASM_MACH5
	 variant 17Eh, 76, ASM_MACH5
	 endvariant
	mne MOVQ	; ofs=4FCh
	 variant 16Fh, 77, ASM_MACH5
	 variant 17Fh, 78, ASM_MACH5
	 endvariant
	mne PACKSSDW	; ofs=503h
	 variant 16Bh, 77, ASM_MACH5
	 endvariant
	mne PACKSSWB	; ofs=507h
	 variant 163h, 77, ASM_MACH5
	 endvariant
	mne PACKUSWB	; ofs=50Bh
	 variant 167h, 77, ASM_MACH5
	 endvariant
	mne PADDB	; ofs=50Fh
	 variant 1FCh, 77, ASM_MACH5
	 endvariant
	mne PADDW	; ofs=513h
	 variant 1FDh, 77, ASM_MACH5
	 endvariant
	mne PADDD	; ofs=517h
	 variant 1FEh, 77, ASM_MACH5
	 endvariant
	mne PADDSB	; ofs=51Bh
	 variant 1ECh, 77, ASM_MACH5
	 endvariant
	mne PADDSW	; ofs=51Fh
	 variant 1EDh, 77, ASM_MACH5
	 endvariant
	mne PADDUSB	; ofs=523h
	 variant 1DCh, 77, ASM_MACH5
	 endvariant
	mne PADDUSW	; ofs=527h
	 variant 1DDh, 77, ASM_MACH5
	 endvariant
	mne PAND	; ofs=52Bh
	 variant 1DBh, 77, ASM_MACH5
	 endvariant
	mne PANDN	; ofs=52Fh
	 variant 1DFh, 77, ASM_MACH5
	 endvariant
	mne PCMPEQB	; ofs=533h
	 variant 174h, 77, ASM_MACH5
	 endvariant
	mne PCMPEQW	; ofs=537h
	 variant 175h, 77, ASM_MACH5
	 endvariant
	mne PCMPEQD	; ofs=53Bh
	 variant 176h, 77, ASM_MACH5
	 endvariant
	mne PCMPGTB	; ofs=53Fh
	 variant 164h, 77, ASM_MACH5
	 endvariant
	mne PCMPGTW	; ofs=543h
	 variant 165h, 77, ASM_MACH5
	 endvariant
	mne PCMPGTD	; ofs=547h
	 variant 166h, 77, ASM_MACH5
	 endvariant
	mne PMADDWD	; ofs=54Bh
	 variant 1F5h, 77, ASM_MACH5
	 endvariant
	mne PMULHW	; ofs=54Fh
	 variant 1E5h, 77, ASM_MACH5
	 endvariant
	mne PMULLW	; ofs=553h
	 variant 1D5h, 77, ASM_MACH5
	 endvariant
	mne POR	; ofs=557h
	 variant 1EBh, 77, ASM_MACH5
	 endvariant
	mne PSLLW	; ofs=55Bh
	 variant 1F1h, 77, ASM_MACH5
	 variant AGRP(11,6), 79, ASM_MACH5
	 endvariant
	mne PSLLD	; ofs=562h
	 variant 1F2h, 77, ASM_MACH5
	 variant AGRP(12,6), 79, ASM_MACH5
	 endvariant
	mne PSLLQ	; ofs=569h
	 variant 1F3h, 77, ASM_MACH5
	 variant AGRP(13,6), 79, ASM_MACH5
	 endvariant
	mne PSRAW	; ofs=570h
	 variant 1E1h, 77, ASM_MACH5
	 variant AGRP(11,4), 79, ASM_MACH5
	 endvariant
	mne PSRAD	; ofs=577h
	 variant 1E2h, 77, ASM_MACH5
	 variant AGRP(12,4), 79, ASM_MACH5
	 endvariant
	mne PSRLW	; ofs=57Eh
	 variant 1D1h, 77, ASM_MACH5
	 variant AGRP(11,2), 79, ASM_MACH5
	 endvariant
	mne PSRLD	; ofs=585h
	 variant 1D2h, 77, ASM_MACH5
	 variant AGRP(12,2), 79, ASM_MACH5
	 endvariant
	mne PSRLQ	; ofs=58Ch
	 variant 1D3h, 77, ASM_MACH5
	 variant AGRP(13,2), 79, ASM_MACH5
	 endvariant
	mne PSUBB	; ofs=593h
	 variant 1F8h, 77, ASM_MACH5
	 endvariant
	mne PSUBW	; ofs=597h
	 variant 1F9h, 77, ASM_MACH5
	 endvariant
	mne PSUBD	; ofs=59Bh
	 variant 1FAh, 77, ASM_MACH5
	 endvariant
	mne PSUBSB	; ofs=59Fh
	 variant 1E8h, 77, ASM_MACH5
	 endvariant
	mne PSUBSW	; ofs=5A3h
	 variant 1E9h, 77, ASM_MACH5
	 endvariant
	mne PSUBUSB	; ofs=5A7h
	 variant 1D8h, 77, ASM_MACH5
	 endvariant
	mne PSUBUSW	; ofs=5ABh
	 variant 1D9h, 77, ASM_MACH5
	 endvariant
	mne PUNPCKHBW	; ofs=5AFh
	 variant 168h, 77, ASM_MACH5
	 endvariant
	mne PUNPCKHWD	; ofs=5B3h
	 variant 169h, 77, ASM_MACH5
	 endvariant
	mne PUNPCKHDQ	; ofs=5B7h
	 variant 16Ah, 77, ASM_MACH5
	 endvariant
	mne PUNPCKLBW	; ofs=5BBh
	 variant 160h, 77, ASM_MACH5
	 endvariant
	mne PUNPCKLWD	; ofs=5BFh
	 variant 161h, 77, ASM_MACH5
	 endvariant
	mne PUNPCKLDQ	; ofs=5C3h
	 variant 162h, 77, ASM_MACH5
	 endvariant
	mne PXOR	; ofs=5C7h
	 variant 1EFh, 77, ASM_MACH5
	 endvariant
	mne MOVSB	; ofs=5CBh
	 variant 0A4h, 0
	 endvariant
	mne MOVSX	; ofs=5D1h
	 variant 1BEh, 48, ASM_MACH3
	 variant 1BFh, 49, ASM_MACH3
	 endvariant
	mne MOVZX	; ofs=5D8h
	 variant 1B6h, 48, ASM_MACH3
	 variant 1B7h, 49, ASM_MACH3
	 endvariant
	mne MUL	; ofs=5DFh
	 variant AGRP(7,4), 16
	 endvariant
	mne NEG	; ofs=5E2h
	 variant AGRP(7,3), 16, ASM_LOCKABLE
	 endvariant
	mne NOP	; ofs=5E6h
	 variant 090h, 0
	 endvariant
	mne NOT	; ofs=5E9h
	 variant AGRP(7,2), 16, ASM_LOCKABLE
	 endvariant
	mne OR	; ofs=5EDh
	 variant AGRP(1,1), 3, ASM_LOCKABLE
	 variant 00Ch, 1
	 variant AGRP(2,1), 2, ASM_LOCKABLE
	 variant 008h, 4, ASM_LOCKABLE
	 variant 00Ah, 5
	 endvariant
	mne ORG, ASM_SPECIAL	; ofs=5FBh
	mne OUT	; ofs=5FDh
	 variant 0E6h, 50
	 variant 0EEh, 51
	 endvariant
	mne OUTSB	; ofs=602h
	 variant 06Eh, 0, ASM_MACH1
	 endvariant
	mne POP	; ofs=60Ah
	 variant 058h, 17
	 variant AGRP(14,0), 40
	 variant 01Fh, 66
	 variant 007h, 63
	 variant 017h, 65
	 variant 1A1h, 67, ASM_MACH3
	 variant 1A9h, 68, ASM_MACH3
	 endvariant
	mne PUSH	; ofs=622h
	 variant 050h, 17
	 variant AGRP(5,6), 40
	 variant 06Ah, 53, ASM_MACH1
	 variant 068h, 52, ASM_MACH1
	 variant 00Eh, 64
	 variant 016h, 65
	 variant 01Eh, 66
	 variant 006h, 63
	 variant 1A0h, 67, ASM_MACH3
	 variant 1A8h, 68, ASM_MACH3
	 endvariant
	mne RCL	; ofs=649h
	 variant AGRP(15,2), 54
	 variant AGRP(16,2), 55
	 variant AGRP(17,2), 56, ASM_MACH1
	 endvariant
	mne RCR	; ofs=651h
	 variant AGRP(15,3), 54
	 variant AGRP(16,3), 55
	 variant AGRP(17,3), 56, ASM_MACH1
	 endvariant
	mne ROL	; ofs=659h
	 variant AGRP(15,0), 54
	 variant AGRP(16,0), 55
	 variant AGRP(17,0), 56, ASM_MACH1
	 endvariant
	mne ROR	; ofs=661h
	 variant AGRP(15,1), 54
	 variant AGRP(16,1), 55
	 variant AGRP(17,1), 56, ASM_MACH1
	 endvariant
	mne RDMSR	; ofs=669h
	 variant 132h, 0, ASM_MACH5
	 endvariant
	mne RDTSC	; ofs=66Dh
	 variant 131h, 0, ASM_MACH5
	 endvariant
	mne REP, ASM_SPECIAL, 0F3h	; ofs=671h
	mne REPZ, ASM_SPECIAL, 0F3h	; ofs=673h
	mne REPNZ, ASM_SPECIAL, 0F2h	; ofs=675h
	mne REPE, ASM_SPECIAL, 0F3h	; ofs=677h
	mne REPNE, ASM_SPECIAL, 0F2h	; ofs=679h
	mne RSM	; ofs=68Ah
	 variant 1AAh, 0, ASM_MACH5
	 endvariant
	mne SAHF	; ofs=68Eh
	 variant 09Eh, 0
	 endvariant
	mne SAL	; ofs=691h
	 variant AGRP(15,4), 54
	 variant AGRP(16,4), 55
	 variant AGRP(17,4), 56, ASM_MACH1
	 endvariant
	mne SAR	; ofs=699h
	 variant AGRP(15,7), 54
	 variant AGRP(16,7), 55
	 variant AGRP(17,7), 56, ASM_MACH1
	 endvariant
	mne SEG	; ofs=6A1h
	 variant 026h, 63
	 variant 02Eh, 64
	 variant 036h, 65
	 variant 03Eh, 66
	 variant 064h, 67
	 variant 065h, 68
	 endvariant
	mne ES, ASM_SPECIAL, 026h	; ofs=6AEh
	mne CS, ASM_SPECIAL, 02Eh	; ofs=6B0h
	mne SS, ASM_SPECIAL, 036h	; ofs=6B2h
	mne DS, ASM_SPECIAL, 03Eh	; ofs=6B4h
	mne FS, ASM_SPECIAL, 064h	; ofs=6B6h
	mne GS, ASM_SPECIAL, 065h	; ofs=6B8h
	mne SHL	; ofs=6BAh
	 variant AGRP(15,4), 54
	 variant AGRP(16,4), 55
	 variant AGRP(17,4), 56, ASM_MACH1
	 endvariant
	mne SHR	; ofs=6C2h
	 variant AGRP(15,5), 54
	 variant AGRP(16,5), 55
	 variant AGRP(17,5), 56, ASM_MACH1
	 endvariant
	mne SBB	; ofs=6CAh
	 variant AGRP(1,3), 3, ASM_LOCKABLE
	 variant 01Ch, 1
	 variant AGRP(2,3), 2, ASM_LOCKABLE
	 variant 018h, 4, ASM_LOCKABLE
	 variant 01Ah, 5
	 endvariant
	mne SCASB	; ofs=6D8h
	 variant 0AEh, 0
	 endvariant
	mne SETA	; ofs=6DEh
	 variant 197h, 58, ASM_MACH3
	 endvariant
	mne SETAE	; ofs=6E2h
	 variant 193h, 58, ASM_MACH3
	 endvariant
	mne SETB	; ofs=6E6h
	 variant 192h, 58, ASM_MACH3
	 endvariant
	mne SETBE	; ofs=6EAh
	 variant 196h, 58, ASM_MACH3
	 endvariant
	mne SETC	; ofs=6EEh
	 variant 192h, 58, ASM_MACH3
	 endvariant
	mne SETE	; ofs=6F2h
	 variant 194h, 58, ASM_MACH3
	 endvariant
	mne SETG	; ofs=6F6h
	 variant 19Fh, 58, ASM_MACH3
	 endvariant
	mne SETGE	; ofs=6FAh
	 variant 19Dh, 58, ASM_MACH3
	 endvariant
	mne SETL	; ofs=6FEh
	 variant 19Ch, 58, ASM_MACH3
	 endvariant
	mne SETLE	; ofs=702h
	 variant 19Eh, 58, ASM_MACH3
	 endvariant
	mne SETNA	; ofs=706h
	 variant 196h, 58, ASM_MACH3
	 endvariant
	mne SETNAE	; ofs=70Ah
	 variant 192h, 58, ASM_MACH3
	 endvariant
	mne SETNB	; ofs=70Eh
	 variant 193h, 58, ASM_MACH3
	 endvariant
	mne SETNBE	; ofs=712h
	 variant 197h, 58, ASM_MACH3
	 endvariant
	mne SETNC	; ofs=716h
	 variant 193h, 58, ASM_MACH3
	 endvariant
	mne SETNE	; ofs=71Ah
	 variant 195h, 58, ASM_MACH3
	 endvariant
	mne SETNG	; ofs=71Eh
	 variant 19Eh, 58, ASM_MACH3
	 endvariant
	mne SETNGE	; ofs=722h
	 variant 19Ch, 58, ASM_MACH3
	 endvariant
	mne SETNL	; ofs=726h
	 variant 19Dh, 58, ASM_MACH3
	 endvariant
	mne SETNLE	; ofs=72Ah
	 variant 19Fh, 58, ASM_MACH3
	 endvariant
	mne SETNO	; ofs=72Eh
	 variant 191h, 58, ASM_MACH3
	 endvariant
	mne SETNP	; ofs=732h
	 variant 19Bh, 58, ASM_MACH3
	 endvariant
	mne SETNS	; ofs=736h
	 variant 199h, 58, ASM_MACH3
	 endvariant
	mne SETNZ	; ofs=73Ah
	 variant 195h, 58, ASM_MACH3
	 endvariant
	mne SETO	; ofs=73Eh
	 variant 190h, 58, ASM_MACH3
	 endvariant
	mne SETP	; ofs=742h
	 variant 19Ah, 58, ASM_MACH3
	 endvariant
	mne SETPE	; ofs=746h
	 variant 19Ah, 58, ASM_MACH3
	 endvariant
	mne SETPO	; ofs=74Ah
	 variant 19Bh, 58, ASM_MACH3
	 endvariant
	mne SETS	; ofs=74Eh
	 variant 198h, 58, ASM_MACH3
	 endvariant
	mne SETZ	; ofs=752h
	 variant 194h, 58, ASM_MACH3
	 endvariant
	mne SGDT	; ofs=756h
	 variant AGRP(8,0), 29, ASM_MACH2
	 endvariant
	mne SIDT	; ofs=75Ah
	 variant AGRP(8,1), 29, ASM_MACH2
	 endvariant
	mne SHLD	; ofs=75Eh
	 variant 1A4h, 59, ASM_MACH3
	 variant 1A5h, 60, ASM_MACH3
	 endvariant
	mne SHRD	; ofs=765h
	 variant 1ACh, 59, ASM_MACH3
	 variant 1ADh, 60, ASM_MACH3
	 endvariant
	mne SLDT	; ofs=76Ch
	 variant AGRP(9,0), 40, ASM_MACH2
	 endvariant
	mne SMSW	; ofs=770h
	 variant AGRP(8,4), 40, ASM_MACH2
	 endvariant
	mne STC	; ofs=774h
	 variant 0F9h, 0
	 endvariant
	mne STD	; ofs=777h
	 variant 0FDh, 0
	 endvariant
	mne STI	; ofs=77Ah
	 variant 0FBh, 0
	 endvariant
	mne STOSB	; ofs=77Dh
	 variant 0AAh, 0
	 endvariant
	mne STR	; ofs=783h
	 variant AGRP(9,1), 41, ASM_MACH2
	 endvariant
	mne SUB	; ofs=787h
	 variant AGRP(1,5), 3, ASM_LOCKABLE
	 variant 02Ch, 1
	 variant AGRP(2,5), 2, ASM_LOCKABLE
	 variant 028h, 4, ASM_LOCKABLE
	 variant 02Ah, 5
	 endvariant
	mne SALC	; ofs=795h
	 variant 0D6h, 0, ASM_MACH2
	 endvariant
	mne SETALC	; ofs=799h
	 variant 0D6h, 0, ASM_MACH2
	 endvariant
	mne TEST	; ofs=79Dh
	 variant 0A8h, 1
	 variant AGRP(7,0), 2
	 variant 084h, 4
	 variant 084h, 5
	 endvariant
	mne UD0	; ofs=7A6h
	 variant 1FFh, 0, ASM_MACH1
	 endvariant
	mne UD1	; ofs=7AAh
	 variant 1B9h, 0, ASM_MACH1
	 endvariant
	mne UD2	; ofs=7AEh
	 variant 10Bh, 0, ASM_MACH1
	 endvariant
	mne VERR	; ofs=7B2h
	 variant AGRP(9,4), 41, ASM_MACH2
	 endvariant
	mne VERW	; ofs=7B6h
	 variant AGRP(9,5), 41, ASM_MACH2
	 endvariant
	mne WAIT	; ofs=7BAh
	 variant 09Bh, 0
	 endvariant
	mne WBINVD	; ofs=7BDh
	 variant 109h, 0, ASM_MACH4
	 endvariant
	mne WRMSR	; ofs=7C1h
	 variant 130h, 0, ASM_MACH5
	 endvariant
	mne XADD	; ofs=7C5h
	 variant 1C0h, 4, ASM_LOCKABLE, ASM_MACH4
	 endvariant
	mne XCHG	; ofs=7CAh
	 variant 090h, 61
	 variant 090h, 62
	 variant 086h, 4, ASM_LOCKABLE
	 variant 086h, 5, ASM_LOCKABLE
	 endvariant
	mne XLAT	; ofs=7D5h
	 variant 0D7h, 0
	 endvariant
	mne XLATB	; ofs=7D8h
	 variant 0D7h, 0
	 endvariant
	mne XOR	; ofs=7DBh
	 variant AGRP(1,6), 3, ASM_LOCKABLE
	 variant 034h, 1
	 variant AGRP(2,6), 2, ASM_LOCKABLE
	 variant 030h, 4, ASM_LOCKABLE
	 variant 032h, 5
	 endvariant

; The following mnemonics allow an address size suffix
; but do not require it.

mnlist_a_suffix_allowed label near
mnsuffix _ASA

	mne LOOP	; ofs=4B9h
	 variant 0E2h, 39
	 endvariant
	mne LOOPZ	; ofs=4BCh
	 variant 0E1h, 39
	 endvariant
	mne LOOPE	; ofs=4BFh
	 variant 0E1h, 39
	 endvariant
	mne LOOPNZ	; ofs=4C2h
	 variant 0E0h, 39
	 endvariant
	mne LOOPNE	; ofs=4C5h
	 variant 0E0h, 39
	 endvariant

; The following mnemonics allow an operand size suffix
; but do not require it.

mnlist_o_suffix_allowed label near
mnsuffix _OSA

	mne ENTER	; ofs=14Ch
	 variant 0C8h, 18, ASM_MACH1
	 endvariant
	mne FLDENV	; ofs=285h
	 variant 221h, 29
	 endvariant
	mne FRSTOR	; ofs=2B8h
	 variant 225h, 29
	 endvariant
	mne FSAVE, ASM_WAIT	; ofs=2BBh
	mne FNSAVE	; ofs=2BCh
	 variant 235h, 29
	 endvariant
	mne FSTENV, ASM_WAIT	; ofs=2EDh
	mne FNSTENV	; ofs=2EEh
	 variant 231h, 29
	 endvariant
	mne IRET	; ofs=3BAh
	 variant 0CFh, 0
	 endvariant
	mne LEAVE	; ofs=49Dh
	 variant 0C9h, 0, ASM_MACH1
	 endvariant
	mne POPA	; ofs=61Bh
	 variant 061h, 0, ASM_MACH1
	 endvariant
	mne POPF	; ofs=61Fh
	 variant 09Dh, 0
	 endvariant
	mne PUSH	; ofs=63Bh
	 variant 06Ah, 53, ASM_MACH1
	 variant 068h, 52, ASM_MACH1
	 endvariant
	mne PUSHA	; ofs=642h
	 variant 060h, 0, ASM_MACH1
	 endvariant
	mne PUSHF	; ofs=646h
	 variant 09Ch, 0
	 endvariant
	mne RETN	; ofs=67Bh
	 variant 0C3h, 0
	 variant 0C2h, 57
	 endvariant
	mne RET	; ofs=680h
	 variant 0C3h, 0
	 variant 0C2h, 57
	 endvariant
	mne RETF	; ofs=685h
	 variant 0CBh, 0
	 variant 0CAh, 57
	 endvariant

; The following mnemonics require an operand size suffix.

mnlist_o_suffix_required label near
mnsuffix _OSR

	mne CMPS	; ofs=11Eh
	 variant 0A7h, 0
	 endvariant
	mne INS	; ofs=394h
	 variant 06Dh, 0, ASM_MACH1
	 endvariant
	mne LODS	; ofs=4B6h
	 variant 0ADh, 0
	 endvariant
	mne MOVS	; ofs=5CEh
	 variant 0A5h, 0
	 endvariant
	mne OUTS	; ofs=606h
	 variant 06Fh, 0, ASM_MACH1
	 endvariant
	mne SCAS	; ofs=6DBh
	 variant 0AFh, 0
	 endvariant
	mne STOS	; ofs=780h
	 variant 0ABh, 0
	 endvariant

end_mnlist label near

;--- 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'.

	align 8, db 0
optypes label byte
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(3F),OT(3F)	; 00 - 07 (main opcode part)
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(40),  002h	; 08 - 0F
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(41),OT(41)	; 10 - 17
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(42),OT(42)	; 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(53),OT(06),  00Ah,  00Ah,  00Ah,  00Ah	; 60 - 67
	db OT(34),OT(21),OT(35),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(50),OT(2B),  004h	; 88 - 8F
	db OT(00),OT(3D),OT(3D),OT(3D),OT(3D),OT(3D),OT(3D),OT(3D)	; 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(39),OT(00),OT(07),OT(07),  004h,  004h	; C0 - C7
	db OT(12),OT(00),OT(39),OT(00),OT(00),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(36),OT(36),OT(36),OT(36),OT(36),OT(36),OT(36),OT(36)	; 110 - 117 (Intel group 2)
	db OT(37),OT(37),OT(37),OT(37),OT(37),OT(37),OT(37),OT(37)	; 118 - 11F
	db OT(38),OT(38),OT(38),OT(38),OT(38),OT(38),OT(38),OT(38)	; 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(52),OT(0E),OT(52),OT(0E),OT(28),  000h	; 130 - 137 (Intel group 5)
	db OT(28),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(28),  000h,OT(29),OT(1D)	; 140 - 147 (Intel group 7)
	db OT(51),OT(51),OT(51),OT(51),OT(51),OT(51),OT(51),OT(51)	; 148 - 14F
	db OT(13),OT(13),OT(13),OT(13),OT(13),OT(13),OT(13),OT(13)	; 150 - 157 (Coprocessor d8)
	db OT(15),OT(15),OT(1C),OT(1C),OT(15),OT(15),OT(15),OT(15)	; 158 - 15F
	db OT(13),  000h,OT(13),OT(13),OT(1D),OT(19),OT(1D),OT(19)	; 160 - 167 (Coprocessor d9)
	db OT(1B),OT(1C),  008h,  000h,  008h,  008h,  008h,  008h	; 168 - 16F
	db OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18)	; 170 - 177 (Coprocessor da)
	db OT(15),OT(15),OT(15),OT(15),  000h,  008h,  000h,  000h	; 178 - 17F
	db OT(18),  000h,OT(18),OT(18),  000h,OT(1A),  000h,OT(1A)	; 180 - 187 (Coprocessor db)
	db OT(15),OT(15),OT(15),OT(15),  008h,OT(1C),OT(1C),  000h	; 188 - 18F
	db OT(14),OT(14),OT(14),OT(14),OT(14),OT(14),OT(14),OT(14)	; 190 - 197 (Coprocessor dc)
	db OT(16),OT(16),  000h,  000h,OT(16),OT(16),OT(16),OT(16)	; 198 - 19F
	db OT(14),  000h,OT(14),OT(14),OT(1D),  000h,OT(1D),OT(19)	; 1A0 - 1A7 (Coprocessor dd)
	db OT(1B),  000h,OT(1B),OT(1B),OT(1C),OT(1C),  000h,  000h	; 1A8 - 1AF
	db OT(19),OT(19),OT(19),OT(19),OT(19),OT(19),OT(19),OT(19)	; 1B0 - 1B7 (Coprocessor de)
	db OT(17),OT(17),  000h,  008h,OT(17),OT(17),OT(17),OT(17)	; 1B8 - 1BF
	db OT(19),  000h,OT(19),OT(19),OT(1A),OT(0F),OT(1A),OT(0F)	; 1C0 - 1C7 (Coprocessor df)
	db   000h,  000h,  000h,  000h,  008h,OT(1C),OT(1C),  000h	; 1C8 - 1CF
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),  000h	; 1D0 - 1D7 (Coprocessor groups)
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	; 1D8 - 1DF
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	; 1E0 - 1E7
;--- 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(45),OT(47),OT(46),OT(48),OT(49),OT(4A),OT(00)	; 08
	db OT(00),OT(00),OT(08),OT(08),OT(08),OT(08),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(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D)	; 20
	db OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4B),OT(4D)	; 28
	db   004h,  004h,  004h,OT(4D),OT(4D),OT(4D),OT(00),OT(4C)	; 30
	db OT(4E),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C)	; 38
	db OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C)	; 40
	db OT(0C),OT(3A),OT(3A),OT(3A),OT(3A),OT(3A),OT(3A),OT(3A)	; 48
	db OT(3A),OT(3A),OT(3A),OT(3A),OT(3A),OT(3A),OT(3A),OT(3A)	; 50
	db OT(3A),OT(43),OT(43),OT(00),OT(0A),OT(3B),OT(3C),OT(44)	; 58
	db OT(44),OT(00),OT(0A),OT(3B),OT(3C),OT(08),OT(04),OT(04)	; 60
	db OT(07),OT(0A),OT(07),OT(07),OT(30),OT(31),OT(00),  004h	; 68
	db OT(0A),OT(08),OT(08),OT(30),OT(31),OT(04),OT(04),  004h	; 70
	db OT(09),OT(09),OT(09),OT(09),OT(09),OT(09),OT(09),OT(09)	; 78
	db OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D)	; 80
	db OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D)	; 88
	db OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(4D)	; 90
	db OT(4D),OT(4D),OT(4D),OT(4D),OT(4D),OT(00),OT(10),OT(10)	; 98
	db OT(39),OT(0B),OT(0B),OT(0B),OT(0B),OT(0F),OT(28),OT(02)	; A0
	db OT(4F),OT(4F),OT(4F),OT(4F),OT(4F),OT(4F),OT(4F),OT(4F)	; A8
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	; B0
	db OT(00),OT(00),OT(00),OT(00),OT(1E)

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

;--- 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.

	align 2, db 0
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, 01E8h	; 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_OSA, P186 + MN_POPA_OSA, P186 + MN_BOUND, P286 + MN_ARPL	; 60
	dw  P386 + 0401h, P386 + 0501h, P386 + 0010h, P386 + 0020h	; 64
	dw  P186 + MN_PUSH_OSA, P186 + MN_IMUL, P186 + MN_PUSH_OSA, P186 + MN_IMUL	; 68
	dw  P186 + MN_INSB, P186 + MN_INS_OSR, P186 + MN_OUTSB, P186 + MN_OUTS_OSR	; 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, 0148h, 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, 0300h	; 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_OSA, MN_POPF_OSA, MN_SAHF, MN_LAHF	; 9C
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; A0
	dw  MN_MOVSB, MN_MOVS_OSR, MN_CMPSB, MN_CMPS_OSR	; A4
	dw  MN_TEST, MN_TEST, MN_STOSB, MN_STOS_OSR	; A8
	dw  MN_LODSB, MN_LODS_OSR, MN_SCASB, MN_SCAS_OSR	; 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_RETN_OSA, MN_RETN_OSA	; C0
	dw  MN_LES, MN_LDS, 0308h, 0308h	; C4
	dw  P186 + MN_ENTER_OSA, P186 + MN_LEAVE_OSA, MN_RETF_OSA, MN_RETF_OSA	; C8
	dw  MN_INT3, MN_INT, MN_INTO, MN_IRET_OSA	; CC
	dw  0110h, 0110h, 0118h, 0118h	; D0
	dw  MN_AAM, MN_AAD, P286 + MN_SETALC, MN_XLATB	; D4
	dw  0150h, 0160h, 0170h, 0180h	; D8
	dw  0190h, 01A0h, 01B0h, 01C0h	; DC
	dw  MN_LOOPNZ_ASA, MN_LOOPZ_ASA, MN_LOOP_ASA, 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, P686 + 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, 02E8h, 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_SHL, MN_SAR	; 114
	dw  MN_ROL, MN_ROR, MN_RCL, MN_RCR	; 118
	dw  MN_SHL, MN_SHR, MN_SHL, 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_SHL, 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_ADD, MN_OR, MN_ADC, MN_SBB	; 148
	dw  MN_AND, MN_SUB, MN_XOR, MN_CMP	; 14C
	dw  MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP	; 150
	dw  MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR	; 154
	dw  MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP	; 158
	dw  MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR	; 15C
	dw  MN_FLD, 0000h, MN_FST, MN_FSTP	; 160
	dw  MN_FLDENV_OSA, MN_FNLDCW, MN_FNSTENV_OSA, MN_FNSTCW	; 164
	dw  MN_FLD, MN_FXCH, 0328h, 0000h	; 168
	dw  0330h, 01D0h, 01D8h, 01E0h	; 16C
	dw  MN_FIADD, MN_FIMUL, MN_FICOM, MN_FICOMP	; 170
	dw  MN_FISUB, MN_FISUBR, MN_FIDIV, MN_FIDIVR	; 174
	dw  P686 + MN_FCMOVB, P686 + MN_FCMOVE, P686 + MN_FCMOVBE, P686 + MN_FCMOVU	; 178
	dw  0000h, 0338h, 0000h, 0000h	; 17C
	dw  MN_FILD, 0000h, MN_FIST, MN_FISTP	; 180
	dw  0000h, MN_FLD, 0000h, MN_FSTP	; 184
	dw  P686 + MN_FCMOVNB, P686 + MN_FCMOVNE, P686 + MN_FCMOVNBE, P686 + MN_FCMOVNU	; 188
	dw  0340h, P686 + MN_FUCOMI, P686 + MN_FCOMI, 0000h	; 18C
	dw  MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP	; 190
	dw  MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR	; 194
	dw  MN_FADD, MN_FMUL, 0000h, 0000h	; 198
	dw  MN_FSUBR, MN_FSUB, MN_FDIVR, MN_FDIV	; 19C
	dw  MN_FLD, 0000h, MN_FST, MN_FSTP	; 1A0
	dw  MN_FRSTOR_OSA, 0000h, MN_FNSAVE_OSA, MN_FNSTSW	; 1A4
	dw  MN_FFREE, 0000h, MN_FST, MN_FSTP	; 1A8
	dw  P386 + MN_FUCOM, P386 + MN_FUCOMP, 0000h, 0000h	; 1AC
	dw  MN_FIADD, MN_FIMUL, MN_FICOM, MN_FICOMP	; 1B0
	dw  MN_FISUB, MN_FISUBR, MN_FIDIV, MN_FIDIVR	; 1B4
	dw  MN_FADDP, MN_FMULP, 0000h, 0348h	; 1B8
	dw  MN_FSUBRP, MN_FSUBP, MN_FDIVRP, MN_FDIVP	; 1BC
	dw  MN_FILD, 0000h, MN_FIST, MN_FISTP	; 1C0
	dw  MN_FBLD, MN_FILD, MN_FBSTP, MN_FISTP	; 1C4
	dw  0000h, 0000h, 0000h, 0000h	; 1C8
	dw  0350h, P686 + MN_FUCOMIP, P686 + MN_FCOMIP, 0000h	; 1CC
	dw  MN_FLD1, MN_FLDL2T, MN_FLDL2E, MN_FLDPI	; 1D0
	dw  MN_FLDLG2, MN_FLDLN2, MN_FLDZ, 0000h	; 1D4
	dw  MN_F2XM1, MN_FYL2X, MN_FPTAN, MN_FPATAN	; 1D8
	dw  MN_FXTRACT, P386 + MN_FPREM1, MN_FDECSTP, MN_FINCSTP	; 1DC
	dw  MN_FPREM, MN_FYL2XP1, MN_FSQRT, P386 + MN_FSINCOS	; 1E0
	dw  MN_FRNDINT, MN_FSCALE, P386 + MN_FSIN, P386 + MN_FCOS	; 1E4
;--- The rest of these are squeezed.
	dw  0, 0138h, 0140h, P286 + MN_LAR	; 00
	dw  P286 + MN_LSL, P286 + MN_CLTS, P486 + MN_INVD, P486 + MN_WBINVD	; 04
	dw  P186 + MN_UD2, P386 + MN_MOV, P386 + MN_MOV, P386 + MN_MOV	; 08
	dw  P386 + MN_MOV, P386 + MN_MOV, P386 + MN_MOV, P586 + MN_WRMSR	; 0C
	dw  P586 + MN_RDTSC, P586 + MN_RDMSR, P686 + MN_CMOVO, P686 + MN_CMOVNO	; 10
	dw  P686 + MN_CMOVB, P686 + MN_CMOVAE, P686 + MN_CMOVZ, P686 + MN_CMOVNZ	; 14
	dw  P686 + MN_CMOVBE, P686 + MN_CMOVA, P686 + MN_CMOVS, P686 + MN_CMOVNS	; 18
	dw  P686 + MN_CMOVPE, P686 + MN_CMOVPO, P686 + MN_CMOVL, P686 + MN_CMOVGE	; 1C
	dw  P686 + MN_CMOVLE, P686 + MN_CMOVG, P586 + MN_PUNPCKLBW, P586 + MN_PUNPCKLWD	; 20
	dw  P586 + MN_PUNPCKLDQ, P586 + MN_PACKSSWB, P586 + MN_PCMPGTB, P586 + MN_PCMPGTW	; 24
	dw  P586 + MN_PCMPGTD, P586 + MN_PACKUSWB, P586 + MN_PUNPCKHBW, P586 + MN_PUNPCKHWD	; 28
	dw  P586 + MN_PUNPCKHDQ, P586 + MN_PACKSSDW, P586 + MN_MOVD, P586 + MN_MOVQ	; 2C
	dw  0310h, 0318h, 0320h, P586 + MN_PCMPEQB	; 30
	dw  P586 + MN_PCMPEQW, P586 + MN_PCMPEQD, P586 + MN_EMMS, P586 + MN_MOVD	; 34
	dw  P586 + MN_MOVQ, P386 + MN_JO, P386 + MN_JNO, P386 + MN_JB	; 38
	dw  P386 + MN_JAE, P386 + MN_JZ, P386 + MN_JNZ, P386 + MN_JBE	; 3C
	dw  P386 + MN_JA, P386 + MN_JS, P386 + MN_JNS, P386 + MN_JPE	; 40
	dw  P386 + MN_JPO, P386 + MN_JL, P386 + MN_JGE, P386 + MN_JLE	; 44
	dw  P386 + MN_JG, P386 + MN_SETO, P386 + MN_SETNO, P386 + MN_SETB	; 48
	dw  P386 + MN_SETAE, P386 + MN_SETZ, P386 + MN_SETNZ, P386 + MN_SETBE	; 4C
	dw  P386 + MN_SETA, P386 + MN_SETS, P386 + MN_SETNS, P386 + MN_SETPE	; 50
	dw  P386 + MN_SETPO, P386 + MN_SETL, P386 + MN_SETGE, P386 + MN_SETLE	; 54
	dw  P386 + MN_SETG, P386 + MN_PUSH, P386 + MN_POP, P586 + MN_CPUID	; 58
	dw  P386 + MN_BT, P386 + MN_SHLD, P386 + MN_SHLD, P386 + MN_PUSH	; 5C
	dw  P386 + MN_POP, P586 + MN_RSM, P386 + MN_BTS, P386 + MN_SHRD	; 60
	dw  P386 + MN_SHRD, P386 + MN_IMUL, P486 + MN_CMPXCHG, P486 + MN_CMPXCHG	; 64
	dw  P386 + MN_LSS, P386 + MN_BTR, P386 + MN_LFS, P386 + MN_LGS	; 68
	dw  P386 + MN_MOVZX, P386 + MN_MOVZX, P186 + MN_UD1, 02F0h	; 6C
	dw  P386 + MN_BTC, P386 + MN_BSF, P386 + MN_BSR, P386 + MN_MOVSX	; 70
	dw  P386 + MN_MOVSX, P486 + MN_XADD, P486 + MN_XADD, 02F8h	; 74
	dw  P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP	; 78
	dw  P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP	; 7C
	dw  P586 + MN_PSRLW, P586 + MN_PSRLD, P586 + MN_PSRLQ, P586 + MN_PMULLW	; 80
	dw  P586 + MN_PSUBUSB, P586 + MN_PSUBUSW, P586 + MN_PAND, P586 + MN_PADDUSB	; 84
	dw  P586 + MN_PADDUSW, P586 + MN_PANDN, P586 + MN_PSRAW, P586 + MN_PSRAD	; 88
	dw  P586 + MN_PMULHW, P586 + MN_PSUBSB, P586 + MN_PSUBSW, P586 + MN_POR	; 8C
	dw  P586 + MN_PADDSB, P586 + MN_PADDSW, P586 + MN_PXOR, P586 + MN_PSLLW	; 90
	dw  P586 + MN_PSLLD, P586 + MN_PSLLQ, P586 + MN_PMADDWD, P586 + MN_PSUBB	; 94
	dw  P586 + MN_PSUBW, P586 + MN_PSUBD, P586 + MN_PADDB, P586 + MN_PADDW	; 98
	dw  P586 + MN_PADDD, P186 + MN_UD0, MN_INC, MN_DEC	; 9C
	dw  MN_BOXCB, P386 + MN_BT, P386 + MN_BTS, P386 + MN_BTR	; A0
	dw  P386 + MN_BTC, P586 + MN_CMPXCHG8B, MN_POP, MN_MOV	; A4
	dw  P586 + MN_PSRLW, P586 + MN_PSRAW, P586 + MN_PSLLW, P586 + MN_PSRLD	; A8
	dw  P586 + MN_PSRAD, P586 + MN_PSLLD, P586 + MN_PSRLQ, P586 + MN_PSLLQ	; AC
	dw  MN_FNOP, MN_FCHS, MN_FABS, MN_FTST	; B0
	dw  MN_FXAM, P386 + MN_FUCOMPP, MN_FNENI, MN_FNDISI	; B4
	dw  MN_FNCLEX, MN_FNINIT, P286 + MN_FNSETPM, MN_FCOMPP	; B8
	dw  MN_FNSTSW

;--- Disassembler: table converts unsqueezed numbers to squeezed.

	align 8, db 0
sqztab label byte
	db   1,  2,  3,  4,  0,  0,  5,  0	; 1E8
	db   6,  7,  0,  8,  0,  0,  0,  0	; 1F0
	db   0,  0,  0,  0,  0,  0,  0,  0	; 1F8
	db   0,  0,  0,  0,  0,  0,  0,  0	; 200
	db   9, 10, 11, 12, 13,  0, 14,  0	; 208
	db   0,  0,  0,  0,  0,  0,  0,  0	; 210
	db  15, 16, 17,  0,  0,  0,  0,  0	; 218
	db   0,  0,  0,  0,  0,  0,  0,  0	; 220
	db  18, 19, 20, 21, 22, 23, 24, 25	; 228
	db  26, 27, 28, 29, 30, 31, 32, 33	; 230
	db   0,  0,  0,  0,  0,  0,  0,  0	; 238
	db   0,  0,  0,  0,  0,  0,  0,  0	; 240
	db  34, 35, 36, 37, 38, 39, 40, 41	; 248
	db  42, 43, 44, 45,  0,  0, 46, 47	; 250
	db   0, 48, 49, 50, 51, 52, 53, 54	; 258
	db   0,  0,  0,  0,  0,  0, 55, 56	; 260
	db  57, 58, 59, 60, 61, 62, 63, 64	; 268
	db  65, 66, 67, 68, 69, 70, 71, 72	; 270
	db  73, 74, 75, 76, 77, 78, 79, 80	; 278
	db  81, 82, 83, 84, 85, 86, 87, 88	; 280
	db  89, 90, 91, 92, 93, 94,  0,  0	; 288
	db  95, 96, 97, 98, 99,100,  0,101	; 290
	db 102,103,104,105,106,107,108,109	; 298
	db   0,110,111,112,113,114,115,116	; 2A0
	db 117,118,  0,  0,  0,  0,  0,119	; 2A8
	db 120,121,122,123,124,125,126,127	; 2B0
	db   0,128,129,130,  0,131,  0,  0	; 2B8
	db 132,133,  0,134,135,136,  0,137	; 2C0
	db   0,138,139,  0,  0,140,  0,  0	; 2C8
	db 141,142,  0,143,144,145,  0,146	; 2D0
	db   0,147,148,149,  0,150,  0,  0	; 2D8
	db 151,152,153,  0,154,155,156,157	; 2E0
	db 158,159,  0,  0,  0,  0,  0,160	; 2E8
	db   0,  0,  0,  0,161,162,163,164	; 2F0
	db   0,165,  0,  0,  0,  0,  0,  0	; 2F8
	db 166,  0,  0,  0,  0,  0,  0,  0	; 300
	db 167,  0,  0,  0,  0,  0,  0,  0	; 308
	db   0,  0,168,  0,169,  0,170,  0	; 310
	db   0,  0,171,  0,172,  0,173,  0	; 318
	db   0,  0,174,  0,  0,  0,175,  0	; 320
	db 176,  0,  0,  0,  0,  0,  0,  0	; 328
	db 177,178,  0,  0,179,180,  0,  0	; 330
	db   0,181,  0,  0,  0,  0,  0,  0	; 338
	db 182,183,184,185,186,  0,  0,  0	; 340
	db   0,187,  0,  0,  0,  0,  0,  0	; 348
	db 188,  0,  0,  0,  0,  0,  0,  0	; 350

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

	align 2, db 0
wtab1 label word
	dw 0342h,0341h,0340h,0343h,0165h,01A6h,0344h,0167h
	dw 0166h,0350h,01A7h
wtab2 label word
	dw MN_FCLEX
	dw MN_FDISI
	dw MN_FENI
	dw MN_FINIT
	dw MN_FLDCW
	dw MN_FSAVE_OSA
	dw MN_FSETPM
	dw MN_FSTCW
	dw MN_FSTENV_OSA
	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).

	align 2, db 0
ltabo1 label word
	dw 098h,099h
ltabo2 label word
	dw MN_CWDE
	dw MN_CDQ
N_LTABO	equ ($ - ltabo2) / 2

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

	align 2, db 0
ltaba1 label word
	dw 0E3h
ltaba2 label word
	dw MN_JECXZ
N_LTABA	equ ($ - ltaba2) / 2

;--- Disassembler: table of lockable instructions

	align 2, db 0
locktab label word
	dw 010Ah,0102h,014Ah,010h,011h,0108h,0100h,0148h
	dw 00h,01h,010Ch,0104h,014Ch,020h,021h,02A3h
	dw 02F7h,029Bh,02F6h,0293h,02F5h,0298h,0299h,02E9h
	dw 0131h,02E8h,0130h,012Bh,012Ah,0109h,0101h,0149h
	dw 08h,09h,010Bh,0103h,014Bh,018h,019h,010Dh
	dw 0105h,014Dh,028h,029h,02A8h,02A9h,086h,087h
	dw 010Eh,0106h,014Eh,030h,031h
N_LOCK	equ ($ - locktab) / 2

;--- Equates used in the assembly-language code.

SPARSE_BASE	equ 01E8h
SFPGROUP3	equ 0340h

