
;--- 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 OP_END	; idx=0, ofs=Ch, used=99
	opl OP_ALL+OP_AX, OP_ALL+OP_IMM, OP_END	; idx=1, ofs=Dh, used=18
	opl OP_M_SRC_DST, OP_ALL+OP_RM, OP_ALL+OP_IMM, OP_END	; idx=2, ofs=10h, used=7
	opl OP_M_SRC, OP_ALL+OP_RM, OP_ALL+OP_IMM, OP_END	; idx=3, ofs=14h, used=3
	opl OP_M_DST, OP_ALL+OP_RM, OP_ALL+OP_IMM, OP_END	; idx=4, ofs=18h, used=1
	opl OP_M_SRC_DST, OP_1632+OP_RM, OP_IMMS8_EXTEND, OP_END	; idx=5, ofs=1Ch, used=7
	opl OP_M_SRC, OP_1632+OP_RM, OP_IMMS8_EXTEND, OP_END	; idx=6, ofs=20h, used=1
	opl OP_M_SRC_DST, OP_ALL+OP_RM, OP_ALL+OP_R, OP_END	; idx=7, ofs=24h, used=19
	opl OP_M_SRC, OP_ALL+OP_RM, OP_ALL+OP_R, OP_END	; idx=8, ofs=28h, used=4
	opl OP_M_DST, OP_ALL+OP_RM, OP_ALL+OP_R, OP_END	; idx=9, ofs=2Ch, used=2
	opl OP_ALL+OP_R	; idx=10, ofs=30h, used=19
	opl OP_M_SRC, OP_ALL+OP_RM, OP_END	; idx=11, ofs=31h, used=4 + 19
	opl OP_ALL+OP_R	; idx=12, ofs=34h, used=2
	opl OP_M_SRC_DST, OP_ALL+OP_RM, OP_END	; idx=13, ofs=35h, used=6 + 2
	opl OP_M_SRC_DST, OP_16+OP_RM, OP_16+OP_R, OP_END	; idx=14, ofs=38h, used=1
	opl OP_1632+OP_R, OP_M_SRC, OP_FAR_M, OP_1632+OP_M, OP_END	; idx=15, ofs=3Ch, used=5
	opl OP_1632+OP_R, OP_M_SRC, OP_1632+OP_RM, OP_END	; idx=16, ofs=41h, used=35
	opl OP_32+OP_R_ADD, OP_END	; idx=17, ofs=45h, used=8
	opl OP_M_SRC_DST, OP_1632+OP_RM, OP_1632+OP_R, OP_END	; idx=18, ofs=47h, used=3
	opl OP_M_SRC, OP_1632+OP_RM, OP_1632+OP_R, OP_END	; idx=19, ofs=4Bh, used=1
	opl OP_M_SRC_DST, OP_1632+OP_RM	; idx=20, ofs=4Fh, used=3
	opl OP_IMM8, OP_END	; idx=21, ofs=51h, used=0 + 3
	opl OP_M_SRC, OP_1632+OP_RM, OP_IMM8, OP_END	; idx=22, ofs=53h, used=1
	opl OP_STACK_PUSH	; idx=23, ofs=57h, used=1
	opl OP_NEAR, OP_REL1632, OP_END	; idx=24, ofs=58h, used=31 + 1
	opl OP_STACK_SPECIAL	; idx=25, ofs=5Bh, used=1
	opl OP_FAR, OP_FARIMM, OP_END	; idx=26, ofs=5Ch, used=1 + 1
	opl OP_STACK_SPECIAL	; idx=27, ofs=5Fh, used=1
	opl OP_FAR_REQUIRED, OP_M_SRC, OP_FAR_M, OP_1632_DEFAULT+OP_M, OP_END	; idx=28, ofs=60h, used=1 + 1
	opl OP_M_SRC_DST, OP_M64, OP_END	; idx=29, ofs=65h, used=1
	opl OP_M_SRC, OP_M64, OP_END	; idx=30, ofs=68h, used=1
	opl OP_M_DST, OP_M64, OP_END	; idx=31, ofs=6Bh, used=1
	opl OP_STACK_PUSH	; idx=32, ofs=6Eh, used=8
	opl OP_1632+OP_R_ADD, OP_END	; idx=33, ofs=6Fh, used=16 + 8
	opl OP_STACK_POP, OP_1632+OP_R_ADD, OP_END	; idx=34, ofs=71h, used=8
	opl OP_STACK_PUSH, OP_16+OP_IMM, OP_IMM8, OP_END	; idx=35, ofs=74h, used=1
	opl OP_M_SRC, OP_MFLOAT, OP_END	; idx=36, ofs=78h, used=9
	opl OP_M_DST, OP_MFLOAT, OP_END	; idx=37, ofs=7Bh, used=2
	opl OP_M_SRC, OP_MDOUBLE, OP_END	; idx=38, ofs=7Eh, used=9
	opl OP_M_DST, OP_MDOUBLE, OP_END	; idx=39, ofs=81h, used=2
	opl OP_ST	; idx=40, ofs=84h, used=20
	opl OP_STI, OP_END	; idx=41, ofs=85h, used=4 + 20
	opl OP_1CHK	; idx=42, ofs=87h, used=6
	opl OP_STI, OP_ST, OP_END	; idx=43, ofs=88h, used=6 + 6
	opl OP_M_SRC, OP_32+OP_M, OP_END	; idx=44, ofs=8Bh, used=9
	opl OP_M_DST, OP_32+OP_M, OP_END	; idx=45, ofs=8Eh, used=2
	opl OP_M_SRC, OP_16+OP_M, OP_END	; idx=46, ofs=91h, used=10
	opl OP_M_DST, OP_16+OP_M, OP_END	; idx=47, ofs=94h, used=4
	opl OP_M_SRC, OP_M80, OP_END	; idx=48, ofs=97h, used=2
	opl OP_M_DST, OP_M80, OP_END	; idx=49, ofs=9Ah, used=2
	opl OP_1CHK, OP_STI, OP_END	; idx=50, ofs=9Dh, used=9
	opl OP_M_SRC	; idx=51, ofs=A0h, used=4
	opl OP_MXX, OP_END	; idx=52, ofs=A1h, used=1 + 4
	opl OP_M_DST, OP_MXX, OP_END	; idx=53, ofs=A3h, used=4
	opl OP_16+OP_AX, OP_END	; idx=54, ofs=A6h, used=1
	opl OP_1632+OP_R, OP_M_SRC, OP_1632+OP_RM, OP_IMMS8, OP_END	; idx=55, ofs=A8h, used=1
	opl OP_1632+OP_R_MOD, OP_1632+OP_R, OP_IMMS8, OP_END	; idx=56, ofs=ADh, used=1
	opl OP_1632+OP_R, OP_M_SRC, OP_1632+OP_RM, OP_1632+OP_IMM, OP_END	; idx=57, ofs=B1h, used=1
	opl OP_1632+OP_R_MOD, OP_1632+OP_R, OP_1632+OP_IMM, OP_END	; idx=58, ofs=B6h, used=1
	opl OP_ALL+OP_AX, OP_IMM8, OP_END	; idx=59, ofs=BAh, used=2
	opl OP_ALL+OP_AX, OP_DX, OP_END	; idx=60, ofs=BDh, used=2
	opl OP_STACK_SPECIAL, OP_3, OP_END	; idx=61, ofs=C0h, used=1
	opl OP_IMM8_OPTIONAL, OP_END	; idx=62, ofs=C3h, used=2
	opl OP_SHORT, OP_REL8, OP_END	; idx=63, ofs=C5h, used=42
	opl OP_STACK_PUSH, OP_M_SRC, OP_1632+OP_RM, OP_END	; idx=64, ofs=C8h, used=1
	opl OP_M_DST, OP_16+OP_RM, OP_END	; idx=65, ofs=CCh, used=1
	opl OP_M_ALWAYS_16, OP_M_DST, OP_1632+OP_RM, OP_SEGREG, OP_END	; idx=66, ofs=CFh, used=1
	opl OP_M_ALWAYS_16, OP_SEGREG, OP_M_SRC, OP_1632+OP_RM, OP_END	; idx=67, ofs=D4h, used=1
	opl OP_ALL+OP_AX, OP_M_SRC, OP_ALL+OP_MOFFS, OP_END	; idx=68, ofs=D9h, used=2
	opl OP_M_DST, OP_ALL+OP_MOFFS, OP_ALL+OP_AX, OP_END	; idx=69, ofs=DDh, used=2
	opl OP_8+OP_R_ADD, OP_8+OP_IMM, OP_END	; idx=70, ofs=E1h, used=8
	opl OP_1632+OP_R_ADD, OP_1632+OP_IMM, OP_END	; idx=71, ofs=E4h, used=8
	opl OP_1632+OP_R, OP_SHOSIZ, OP_M_SRC, OP_8+OP_RM, OP_END	; idx=72, ofs=E7h, used=2
	opl OP_1632+OP_R, OP_SHOSIZ	; idx=73, ofs=ECh, used=2
	opl OP_M_SRC, OP_16+OP_RM, OP_END	; idx=74, ofs=EEh, used=5 + 2
	opl OP_IMM8, OP_ALL+OP_AX, OP_END	; idx=75, ofs=F1h, used=2
	opl OP_DX, OP_ALL+OP_AX, OP_END	; idx=76, ofs=F4h, used=2
	opl OP_STACK_POP	; idx=77, ofs=F7h, used=1
	opl OP_M_DST, OP_1632+OP_RM, OP_END	; idx=78, ofs=F8h, used=2 + 1
	opl OP_STACK_PUSH, OP_SHOSIZ, OP_1632_DEFAULT+OP_IMM, OP_END	; idx=79, ofs=FBh, used=2
	opl OP_STACK_PUSH, OP_SHOSIZ, OP_IMMS8, OP_END	; idx=80, ofs=FFh, used=2
	opl OP_M_SRC_DST, OP_ALL+OP_RM, OP_1, OP_END	; idx=81, ofs=103h, used=9
	opl OP_M_SRC_DST, OP_ALL+OP_RM, OP_CL, OP_END	; idx=82, ofs=107h, used=9
	opl OP_M_SRC_DST, OP_ALL+OP_RM, OP_IMM8, OP_END	; idx=83, ofs=10Bh, used=9
	opl OP_STACK_POP	; idx=84, ofs=10Fh, used=2
	opl OP_16+OP_IMM, OP_END	; idx=85, ofs=110h, used=1 + 2
	opl OP_STACK_SPECIAL, OP_16+OP_IMM, OP_END	; idx=86, ofs=112h, used=1
	opl OP_M_DST, OP_8+OP_RM, OP_END	; idx=87, ofs=115h, used=30
	opl OP_M_SRC_DST, OP_1632+OP_RM, OP_1632+OP_R, OP_IMM8, OP_END	; idx=88, ofs=118h, used=2
	opl OP_M_SRC_DST, OP_1632+OP_RM, OP_1632+OP_R, OP_CL, OP_END	; idx=89, ofs=11Dh, used=2
	opl OP_1632+OP_AX, OP_1632+OP_R_ADD, OP_END	; idx=90, ofs=122h, used=7
	opl OP_1632+OP_R_ADD, OP_1632+OP_AX, OP_END	; idx=91, ofs=125h, used=1
	opl OP_STACK_PUSH	; idx=92, ofs=128h, used=1
	opl OP_ES, OP_END	; idx=93, ofs=129h, used=1 + 1
	opl OP_STACK_PUSH	; idx=94, ofs=12Bh, used=1
	opl OP_CS, OP_END	; idx=95, ofs=12Ch, used=1 + 1
	opl OP_STACK_PUSH	; idx=96, ofs=12Eh, used=1
	opl OP_SS, OP_END	; idx=97, ofs=12Fh, used=1 + 1
	opl OP_STACK_PUSH	; idx=98, ofs=131h, used=1
	opl OP_DS, OP_END	; idx=99, ofs=132h, used=1 + 1
	opl OP_STACK_PUSH	; idx=100, ofs=134h, used=1
	opl OP_FS, OP_END	; idx=101, ofs=135h, used=1 + 1
	opl OP_STACK_PUSH	; idx=102, ofs=137h, used=1
	opl OP_GS, OP_END	; idx=103, ofs=138h, used=1 + 1
	opl OP_STACK_POP, OP_ES, OP_END	; idx=104, ofs=13Ah, used=1
	opl OP_STACK_POP, OP_SS, OP_END	; idx=105, ofs=13Dh, used=1
	opl OP_STACK_POP, OP_DS, OP_END	; idx=106, ofs=140h, used=1
	opl OP_STACK_POP, OP_FS, OP_END	; idx=107, ofs=143h, used=1
	opl OP_STACK_POP, OP_GS, OP_END	; idx=108, ofs=146h, used=1
	opl OP_32+OP_R_MOD, OP_CR, OP_END	; idx=109, ofs=149h, used=1
	opl OP_CR, OP_32+OP_R_MOD, OP_END	; idx=110, ofs=14Ch, used=1
	opl OP_32+OP_R_MOD, OP_DR, OP_END	; idx=111, ofs=14Fh, used=1
	opl OP_DR, OP_32+OP_R_MOD, OP_END	; idx=112, ofs=152h, used=1
	opl OP_32+OP_R_MOD, OP_TR, OP_END	; idx=113, ofs=155h, used=1
	opl OP_TR, OP_32+OP_R_MOD, OP_END	; idx=114, ofs=158h, used=1
	opl OP_MMX, OP_M_SRC, OP_32+OP_RM, OP_END	; idx=115, ofs=15Bh, used=1
	opl OP_M_DST, OP_32+OP_RM, OP_MMX, OP_END	; idx=116, ofs=15Fh, used=1
	opl OP_MMX, OP_M_SRC, OP_64+OP_RM, OP_END	; idx=117, ofs=163h, used=45
	opl OP_M_DST, OP_64+OP_RM, OP_MMX, OP_END	; idx=118, ofs=167h, used=1
	opl OP_MMX_MOD, OP_IMM8, OP_END	; idx=119, ofs=16Bh, used=8
	opl OP_1632+OP_R, OP_MXX, OP_END	; idx=120, ofs=16Eh, used=1
	opl OP_STACK_PUSH	; idx=121, ofs=171h, used=1
	opl OP_NEAR, OP_M_SRC, OP_1632_DEFAULT+OP_RM, OP_END	; idx=122, ofs=172h, used=1 + 1
	opl OP_1632+OP_R, OP_M_SRC, OP_DOUBLE_M, OP_1632+OP_M, OP_END	; idx=123, ofs=176h, used=1
	opl OP_STACK_SPECIAL, OP_IMM8_INT, OP_END	; idx=124, ofs=17Bh, used=1
	opl OP_SHORT, OP_REL8, OP_E_CX, OP_END	; idx=125, ofs=17Eh, used=5
	opl OP_STACK_POP, OP_END	; idx=126, ofs=182h, used=3
	opl OP_STACK_PUSH, OP_END	; idx=127, ofs=184h, used=1
	opl OP_STACK_SPECIAL, OP_END	; idx=128, ofs=186h, used=11

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 1BAh	; 3
	dw 0FFh	; 4
	dw 1C7h	; 5
	dw 0F6h	; 6
	dw 101h	; 7
	dw 100h	; 8
	dw 0C6h	; 9
	dw 171h	; 10
	dw 172h	; 11
	dw 173h	; 12
	dw 08Fh	; 13
	dw 0D0h	; 14
	dw 0D2h	; 15
	dw 0C0h	; 16

;--- 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), 85
	 endvariant
	mne AAA	; ofs=Ch
	 variant 037h, 0
	 endvariant
	mne AAD, ASM_SPECIAL	; ofs=Fh
	 variant 0D5h, 62
	 endvariant
	mne AAM, ASM_SPECIAL	; ofs=13h
	 variant 0D4h, 62
	 endvariant
	mne AAS	; ofs=17h
	 variant 03Fh, 0
	 endvariant
	mne ADC	; ofs=1Ah
	 variant AGRP(1,2), 5, ASM_LOCKABLE
	 variant 014h, 1
	 variant AGRP(2,2), 2, ASM_LOCKABLE
	 variant 010h, 7, ASM_LOCKABLE
	 variant 012h, 10
	 endvariant
	mne ADD	; ofs=2Ah
	 variant AGRP(1,0), 5, ASM_LOCKABLE
	 variant 004h, 1
	 variant AGRP(2,0), 2, ASM_LOCKABLE
	 variant 000h, 7, ASM_LOCKABLE
	 variant 002h, 10
	 endvariant
	mne AND	; ofs=3Ah
	 variant AGRP(1,4), 5, ASM_LOCKABLE
	 variant 024h, 1
	 variant AGRP(2,4), 2, ASM_LOCKABLE
	 variant 020h, 7, ASM_LOCKABLE
	 variant 022h, 10
	 endvariant
	mne ARPL	; ofs=4Ah
	 variant 063h, 14, ASM_MACH2
	 endvariant
	mne BOUND	; ofs=4Eh
	 variant 062h, 123, ASM_MACH1
	 endvariant
	mne BSF	; ofs=52h
	 variant 1BCh, 16, ASM_MACH3
	 endvariant
	mne BSR	; ofs=56h
	 variant 1BDh, 16, ASM_MACH3
	 endvariant
	mne BSWAP, ASM_D32	; ofs=5Ah
	 variant 1C8h, 17, ASM_MACH4
	 endvariant
	mne BT	; ofs=5Fh
	 variant 1A3h, 19, ASM_MACH3
	 variant AGRP(3,4), 22, ASM_MACH3
	 endvariant
	mne BTC	; ofs=67h
	 variant 1BBh, 18, ASM_LOCKABLE, ASM_MACH3
	 variant AGRP(3,7), 20, ASM_LOCKABLE, ASM_MACH3
	 endvariant
	mne BTR	; ofs=71h
	 variant 1B3h, 18, ASM_LOCKABLE, ASM_MACH3
	 variant AGRP(3,6), 20, ASM_LOCKABLE, ASM_MACH3
	 endvariant
	mne BTS	; ofs=7Bh
	 variant 1ABh, 18, ASM_LOCKABLE, ASM_MACH3
	 variant AGRP(3,5), 20, ASM_LOCKABLE, ASM_MACH3
	 endvariant
	mne CALL	; ofs=85h
	 variant 0E8h, 23
	 variant AGRP(4,2), 121
	 variant AGRP(4,3), 27
	 variant 09Ah, 25
	 endvariant
	mne CBW, ASM_D16	; ofs=90h
	mne CWDE, ASM_D32	; ofs=91h
	 variant 098h, 0
	 endvariant
	mne CLC	; ofs=95h
	 variant 0F8h, 0
	 endvariant
	mne CLD	; ofs=98h
	 variant 0FCh, 0
	 endvariant
	mne CLI	; ofs=9Bh
	 variant 0FAh, 0
	 endvariant
	mne CLTS	; ofs=9Eh
	 variant 106h, 0, ASM_MACH2
	 endvariant
	mne CMC	; ofs=A2h
	 variant 0F5h, 0
	 endvariant
	mne CMOVA	; ofs=A5h
	 variant 147h, 16, ASM_MACH6
	 endvariant
	mne CMOVAE	; ofs=A9h
	 variant 143h, 16, ASM_MACH6
	 endvariant
	mne CMOVB	; ofs=ADh
	 variant 142h, 16, ASM_MACH6
	 endvariant
	mne CMOVBE	; ofs=B1h
	 variant 146h, 16, ASM_MACH6
	 endvariant
	mne CMOVC	; ofs=B5h
	 variant 142h, 16, ASM_MACH6
	 endvariant
	mne CMOVE	; ofs=B9h
	 variant 144h, 16, ASM_MACH6
	 endvariant
	mne CMOVG	; ofs=BDh
	 variant 14Fh, 16, ASM_MACH6
	 endvariant
	mne CMOVGE	; ofs=C1h
	 variant 14Dh, 16, ASM_MACH6
	 endvariant
	mne CMOVL	; ofs=C5h
	 variant 14Ch, 16, ASM_MACH6
	 endvariant
	mne CMOVLE	; ofs=C9h
	 variant 14Eh, 16, ASM_MACH6
	 endvariant
	mne CMOVNA	; ofs=CDh
	 variant 146h, 16, ASM_MACH6
	 endvariant
	mne CMOVNAE	; ofs=D1h
	 variant 142h, 16, ASM_MACH6
	 endvariant
	mne CMOVNB	; ofs=D5h
	 variant 143h, 16, ASM_MACH6
	 endvariant
	mne CMOVNBE	; ofs=D9h
	 variant 147h, 16, ASM_MACH6
	 endvariant
	mne CMOVNC	; ofs=DDh
	 variant 143h, 16, ASM_MACH6
	 endvariant
	mne CMOVNE	; ofs=E1h
	 variant 145h, 16, ASM_MACH6
	 endvariant
	mne CMOVNG	; ofs=E5h
	 variant 14Eh, 16, ASM_MACH6
	 endvariant
	mne CMOVNGE	; ofs=E9h
	 variant 14Ch, 16, ASM_MACH6
	 endvariant
	mne CMOVNL	; ofs=EDh
	 variant 14Dh, 16, ASM_MACH6
	 endvariant
	mne CMOVNLE	; ofs=F1h
	 variant 14Fh, 16, ASM_MACH6
	 endvariant
	mne CMOVNO	; ofs=F5h
	 variant 141h, 16, ASM_MACH6
	 endvariant
	mne CMOVNP	; ofs=F9h
	 variant 14Bh, 16, ASM_MACH6
	 endvariant
	mne CMOVNS	; ofs=FDh
	 variant 149h, 16, ASM_MACH6
	 endvariant
	mne CMOVNZ	; ofs=101h
	 variant 145h, 16, ASM_MACH6
	 endvariant
	mne CMOVO	; ofs=105h
	 variant 140h, 16, ASM_MACH6
	 endvariant
	mne CMOVP	; ofs=109h
	 variant 14Ah, 16, ASM_MACH6
	 endvariant
	mne CMOVPE	; ofs=10Dh
	 variant 14Ah, 16, ASM_MACH6
	 endvariant
	mne CMOVPO	; ofs=111h
	 variant 14Bh, 16, ASM_MACH6
	 endvariant
	mne CMOVS	; ofs=115h
	 variant 148h, 16, ASM_MACH6
	 endvariant
	mne CMOVZ	; ofs=119h
	 variant 144h, 16, ASM_MACH6
	 endvariant
	mne CMP	; ofs=11Dh
	 variant AGRP(1,7), 6
	 variant 03Ch, 1
	 variant AGRP(2,7), 3
	 variant 038h, 8
	 variant 03Ah, 10
	 endvariant
	mne CMPSB	; ofs=12Ah
	 variant 0A6h, 0
	 endvariant
	mne CMPXCHG	; ofs=130h
	 variant 1B0h, 7, ASM_LOCKABLE, ASM_MACH4
	 endvariant
	mne CMPXCHG8B	; ofs=135h
	 variant AGRP(5,1), 29, ASM_MACH5
	 endvariant
	mne CPUID	; ofs=13Ah
	 variant 1A2h, 0, ASM_MACH5
	 endvariant
	mne CWD, ASM_D16	; ofs=13Eh
	mne CDQ, ASM_D32	; ofs=13Fh
	 variant 099h, 0
	 endvariant
	mne DAA	; ofs=143h
	 variant 027h, 0
	 endvariant
	mne DAS	; ofs=146h
	 variant 02Fh, 0
	 endvariant
	mne DB, ASM_SPECIAL	; ofs=149h
	mne DD, ASM_SPECIAL	; ofs=14Bh
	mne DEC	; ofs=14Dh
	 variant 048h, 33
	 variant AGRP(0,1), 13, ASM_LOCKABLE
	 endvariant
	mne DIV	; ofs=154h
	 variant AGRP(6,6), 11
	 endvariant
	mne DW, ASM_SPECIAL	; ofs=158h
	mne EMMS	; ofs=15Ah
	 variant 177h, 0, ASM_MACH5
	 endvariant
	mne F2XM1	; ofs=162h
	 fpvariant 0D9h, 0, 0F0h
	 endvariant
	mne FABS	; ofs=166h
	 fpvariant 0D9h, 0, 0E1h
	 endvariant
	mne FADD	; ofs=16Ah
	 variant 200h, 36
	 variant 204h, 38
	 fpvariant 0D8h, 40, 0C0h
	 fpvariant 0DCh, 43, 0C0h
	 endvariant
	mne FADDP	; ofs=177h
	 fpvariant 0DEh, 42, 0C0h
	 fpvariant 0DEh, 0, 0C1h
	 endvariant
	mne FIADD	; ofs=17Eh
	 variant 202h, 44
	 variant 206h, 46
	 endvariant
	mne FBLD	; ofs=185h
	 variant 227h, 48
	 endvariant
	mne FBSTP	; ofs=189h
	 variant 237h, 49
	 endvariant
	mne FCHS	; ofs=18Dh
	 fpvariant 0D9h, 0, 0E0h
	 endvariant
	mne FCLEX, ASM_WAIT	; ofs=191h
	mne FNCLEX	; ofs=192h
	 fpvariant 0DBh, 0, 0E2h
	 endvariant
	mne FCMOVA	; ofs=196h
	 fpvariant 0DBh, 40, 0D0h, ASM_MACH6
	 endvariant
	mne FCMOVAE	; ofs=19Bh
	 fpvariant 0DBh, 40, 0C0h, ASM_MACH6
	 endvariant
	mne FCMOVB	; ofs=1A0h
	 fpvariant 0DAh, 40, 0C0h, ASM_MACH6
	 endvariant
	mne FCMOVBE	; ofs=1A5h
	 fpvariant 0DAh, 40, 0D0h, ASM_MACH6
	 endvariant
	mne FCMOVE	; ofs=1AAh
	 fpvariant 0DAh, 40, 0C8h, ASM_MACH6
	 endvariant
	mne FCMOVNA	; ofs=1AFh
	 fpvariant 0DAh, 40, 0D0h, ASM_MACH6
	 endvariant
	mne FCMOVNAE	; ofs=1B4h
	 fpvariant 0DAh, 40, 0C0h, ASM_MACH6
	 endvariant
	mne FCMOVNB	; ofs=1B9h
	 fpvariant 0DBh, 40, 0C0h, ASM_MACH6
	 endvariant
	mne FCMOVNBE	; ofs=1BEh
	 fpvariant 0DBh, 40, 0D0h, ASM_MACH6
	 endvariant
	mne FCMOVNE	; ofs=1C3h
	 fpvariant 0DBh, 40, 0C8h, ASM_MACH6
	 endvariant
	mne FCMOVNU	; ofs=1C8h
	 fpvariant 0DBh, 40, 0D8h, ASM_MACH6
	 endvariant
	mne FCMOVNZ	; ofs=1CDh
	 fpvariant 0DBh, 40, 0C8h, ASM_MACH6
	 endvariant
	mne FCMOVU	; ofs=1D2h
	 fpvariant 0DAh, 40, 0D8h, ASM_MACH6
	 endvariant
	mne FCMOVZ	; ofs=1D7h
	 fpvariant 0DAh, 40, 0C8h, ASM_MACH6
	 endvariant
	mne FCOM	; ofs=1DCh
	 variant 210h, 36
	 variant 214h, 38
	 fpvariant 0D8h, 50, 0D0h
	 fpvariant 0D8h, 0, 0D1h
	 endvariant
	mne FCOMI	; ofs=1E9h
	 fpvariant 0DBh, 50, 0F0h, ASM_MACH6
	 fpvariant 0DBh, 0, 0F1h, ASM_MACH6
	 endvariant
	mne FCOMIP	; ofs=1F2h
	 fpvariant 0DFh, 50, 0F0h, ASM_MACH6
	 fpvariant 0DFh, 0, 0F1h, ASM_MACH6
	 endvariant
	mne FCOMP	; ofs=1FBh
	 variant 218h, 36
	 variant 21Ch, 38
	 fpvariant 0D8h, 50, 0D8h
	 fpvariant 0D8h, 0, 0D9h
	 endvariant
	mne FCOMPP	; ofs=208h
	 fpvariant 0DEh, 0, 0D9h
	 endvariant
	mne FCOS	; ofs=20Ch
	 fpvariant 0D9h, 0, 0FFh, ASM_MACH3
	 endvariant
	mne FDECSTP	; ofs=211h
	 fpvariant 0D9h, 0, 0F6h
	 endvariant
	mne FDISI, ASM_WAIT	; ofs=215h
	mne FNDISI	; ofs=216h
	 fpvariant 0DBh, 0, 0E1h
	 endvariant
	mne FDIV	; ofs=21Ah
	 variant 230h, 36
	 variant 234h, 38
	 fpvariant 0D8h, 40, 0F0h
	 fpvariant 0DCh, 43, 0F8h
	 endvariant
	mne FDIVP	; ofs=227h
	 fpvariant 0DEh, 42, 0F8h
	 fpvariant 0DEh, 0, 0F9h
	 endvariant
	mne FIDIV	; ofs=22Eh
	 variant 232h, 44
	 variant 236h, 46
	 endvariant
	mne FDIVR	; ofs=235h
	 variant 238h, 36
	 variant 23Ch, 38
	 fpvariant 0D8h, 40, 0F8h
	 fpvariant 0DCh, 43, 0F0h
	 endvariant
	mne FDIVRP	; ofs=242h
	 fpvariant 0DEh, 42, 0F0h
	 fpvariant 0DEh, 0, 0F1h
	 endvariant
	mne FIDIVR	; ofs=249h
	 variant 23Ah, 44
	 variant 23Eh, 46
	 endvariant
	mne FENI, ASM_WAIT	; ofs=250h
	mne FNENI	; ofs=251h
	 fpvariant 0DBh, 0, 0E0h
	 endvariant
	mne FFREE	; ofs=255h
	 fpvariant 0DDh, 41, 0C0h
	 endvariant
	mne FICOM	; ofs=259h
	 variant 212h, 44
	 variant 216h, 46
	 endvariant
	mne FICOMP	; ofs=260h
	 variant 21Ah, 44
	 variant 21Eh, 46
	 endvariant
	mne FILD	; ofs=267h
	 variant 203h, 44
	 variant 207h, 46
	 variant 22Fh, 30
	 endvariant
	mne FINCSTP	; ofs=271h
	 fpvariant 0D9h, 0, 0F7h
	 endvariant
	mne FINIT, ASM_WAIT	; ofs=275h
	mne FNINIT	; ofs=276h
	 fpvariant 0DBh, 0, 0E3h
	 endvariant
	mne FIST	; ofs=27Ah
	 variant 213h, 45
	 variant 217h, 47
	 endvariant
	mne FISTP	; ofs=281h
	 variant 21Bh, 45
	 variant 21Fh, 47
	 variant 23Fh, 31
	 endvariant
	mne FLD	; ofs=28Bh
	 variant 201h, 36
	 variant 205h, 38
	 variant 22Bh, 48
	 fpvariant 0D9h, 41, 0C0h
	 endvariant
	mne FLD1	; ofs=298h
	 fpvariant 0D9h, 0, 0E8h
	 endvariant
	mne FLDL2T	; ofs=29Ch
	 fpvariant 0D9h, 0, 0E9h
	 endvariant
	mne FLDL2E	; ofs=2A0h
	 fpvariant 0D9h, 0, 0EAh
	 endvariant
	mne FLDPI	; ofs=2A4h
	 fpvariant 0D9h, 0, 0EBh
	 endvariant
	mne FLDLG2	; ofs=2A8h
	 fpvariant 0D9h, 0, 0ECh
	 endvariant
	mne FLDLN2	; ofs=2ACh
	 fpvariant 0D9h, 0, 0EDh
	 endvariant
	mne FLDZ	; ofs=2B0h
	 fpvariant 0D9h, 0, 0EEh
	 endvariant
	mne FLDCW, ASM_WAIT	; ofs=2B4h
	mne FNLDCW	; ofs=2B5h
	 variant 229h, 46
	 endvariant
	mne FMUL	; ofs=2BDh
	 variant 208h, 36
	 variant 20Ch, 38
	 fpvariant 0D8h, 40, 0C8h
	 fpvariant 0DCh, 43, 0C8h
	 endvariant
	mne FMULP	; ofs=2CAh
	 fpvariant 0DEh, 42, 0C8h
	 fpvariant 0DEh, 0, 0C9h
	 endvariant
	mne FIMUL	; ofs=2D1h
	 variant 20Ah, 44
	 variant 20Eh, 46
	 endvariant
	mne FNOP	; ofs=2D8h
	 fpvariant 0D9h, 0, 0D0h
	 endvariant
	mne FPATAN	; ofs=2DCh
	 fpvariant 0D9h, 0, 0F3h
	 endvariant
	mne FPREM	; ofs=2E0h
	 fpvariant 0D9h, 0, 0F8h
	 endvariant
	mne FPREM1	; ofs=2E4h
	 fpvariant 0D9h, 0, 0F5h, ASM_MACH3
	 endvariant
	mne FPTAN	; ofs=2E9h
	 fpvariant 0D9h, 0, 0F2h
	 endvariant
	mne FRNDINT	; ofs=2EDh
	 fpvariant 0D9h, 0, 0FCh
	 endvariant
	mne FSCALE	; ofs=2FAh
	 fpvariant 0D9h, 0, 0FDh
	 endvariant
	mne FSETPM, ASM_WAIT	; ofs=2FEh
	mne FNSETPM	; ofs=2FFh
	 fpvariant 0DBh, 0, 0E4h, ASM_MACH2
	 endvariant
	mne FSIN	; ofs=304h
	 fpvariant 0D9h, 0, 0FEh, ASM_MACH3
	 endvariant
	mne FSINCOS	; ofs=309h
	 fpvariant 0D9h, 0, 0FBh, ASM_MACH3
	 endvariant
	mne FSQRT	; ofs=30Eh
	 fpvariant 0D9h, 0, 0FAh
	 endvariant
	mne FST	; ofs=312h
	 variant 211h, 37
	 variant 215h, 39
	 fpvariant 0DDh, 41, 0D0h
	 endvariant
	mne FSTP	; ofs=31Ch
	 variant 219h, 37
	 variant 21Dh, 39
	 variant 23Bh, 49
	 fpvariant 0DDh, 41, 0D8h
	 endvariant
	mne FSTCW, ASM_WAIT	; ofs=329h
	mne FNSTCW	; ofs=32Ah
	 variant 239h, 47
	 endvariant
	mne FSTSW, ASM_WAIT	; ofs=333h
	mne FNSTSW	; ofs=334h
	 fpvariant 0DFh, 54, 0E0h
	 variant 23Dh, 47
	 endvariant
	mne FSUB	; ofs=33Bh
	 variant 220h, 36
	 variant 224h, 38
	 fpvariant 0D8h, 40, 0E0h
	 fpvariant 0DCh, 43, 0E8h
	 endvariant
	mne FSUBP	; ofs=348h
	 fpvariant 0DEh, 42, 0E8h
	 fpvariant 0DEh, 0, 0E9h
	 endvariant
	mne FISUB	; ofs=34Fh
	 variant 222h, 44
	 variant 226h, 46
	 endvariant
	mne FSUBR	; ofs=356h
	 variant 228h, 36
	 variant 22Ch, 38
	 fpvariant 0D8h, 40, 0E8h
	 fpvariant 0DCh, 43, 0E0h
	 endvariant
	mne FSUBRP	; ofs=363h
	 fpvariant 0DEh, 42, 0E0h
	 fpvariant 0DEh, 0, 0E1h
	 endvariant
	mne FISUBR	; ofs=36Ah
	 variant 22Ah, 44
	 variant 22Eh, 46
	 endvariant
	mne FTST	; ofs=371h
	 fpvariant 0D9h, 0, 0E4h
	 endvariant
	mne FUCOM	; ofs=375h
	 fpvariant 0DDh, 50, 0E0h, ASM_MACH3
	 fpvariant 0DDh, 0, 0E1h, ASM_MACH3
	 endvariant
	mne FUCOMI	; ofs=37Eh
	 fpvariant 0DBh, 50, 0E8h, ASM_MACH6
	 fpvariant 0DBh, 0, 0E9h, ASM_MACH6
	 endvariant
	mne FUCOMIP	; ofs=387h
	 fpvariant 0DFh, 50, 0E8h, ASM_MACH6
	 fpvariant 0DFh, 0, 0E9h, ASM_MACH6
	 endvariant
	mne FUCOMP	; ofs=390h
	 fpvariant 0DDh, 50, 0E8h, ASM_MACH3
	 fpvariant 0DDh, 0, 0E9h, ASM_MACH3
	 endvariant
	mne FUCOMPP	; ofs=399h
	 fpvariant 0DAh, 0, 0E9h, ASM_MACH3
	 endvariant
	mne FWAIT	; ofs=39Eh
	 variant 09Bh, 0
	 endvariant
	mne FXAM	; ofs=3A1h
	 fpvariant 0D9h, 0, 0E5h
	 endvariant
	mne FXCH	; ofs=3A5h
	 fpvariant 0D9h, 50, 0C8h
	 fpvariant 0D9h, 0, 0C9h
	 endvariant
	mne FXTRACT	; ofs=3ACh
	 fpvariant 0D9h, 0, 0F4h
	 endvariant
	mne FYL2X	; ofs=3B0h
	 fpvariant 0D9h, 0, 0F1h
	 endvariant
	mne FYL2XP1	; ofs=3B4h
	 fpvariant 0D9h, 0, 0F9h
	 endvariant
	mne HLT	; ofs=3B8h
	 variant 0F4h, 0
	 endvariant
	mne IDIV	; ofs=3BBh
	 variant AGRP(6,7), 11
	 endvariant
	mne IMUL	; ofs=3BFh
	 variant AGRP(6,5), 11
	 variant 1AFh, 16, ASM_MACH3
	 variant 06Bh, 55, ASM_MACH1
	 variant 06Bh, 56, ASM_MACH1
	 variant 069h, 57, ASM_MACH1
	 variant 069h, 58, ASM_MACH1
	 endvariant
	mne IN	; ofs=3D2h
	 variant 0E4h, 59
	 variant 0ECh, 60
	 endvariant
	mne INC	; ofs=3D7h
	 variant 040h, 33
	 variant AGRP(0,0), 13, ASM_LOCKABLE
	 endvariant
	mne INSB	; ofs=3DEh
	 variant 06Ch, 0, ASM_MACH1
	 endvariant
	mne INT	; ofs=3E6h
	 variant 0CCh, 61
	 variant 0CDh, 124
	 endvariant
	mne INT1	; ofs=3EBh
	 variant 0F1h, 128, ASM_MACH6
	 endvariant
	mne INT01	; ofs=3EFh
	 variant 0F1h, 128, ASM_MACH6
	 endvariant
	mne ICEBP	; ofs=3F3h
	 variant 0F1h, 128, ASM_MACH6
	 endvariant
	mne INT3	; ofs=3F7h
	 variant 0CCh, 128
	 endvariant
	mne INT03	; ofs=3FAh
	 variant 0CCh, 128
	 endvariant
	mne INTO	; ofs=3FDh
	 variant 0CEh, 128
	 endvariant
	mne INVD	; ofs=400h
	 variant 108h, 0, ASM_MACH4
	 endvariant
	mne INVLPG	; ofs=404h
	 variant AGRP(7,7), 52, ASM_MACH4
	 endvariant
	mne JA	; ofs=40Ch
	 variant 077h, 63
	 variant 187h, 24, ASM_MACH3
	 endvariant
	mne JAE	; ofs=412h
	 variant 073h, 63
	 variant 183h, 24, ASM_MACH3
	 endvariant
	mne JB	; ofs=418h
	 variant 072h, 63
	 variant 182h, 24, ASM_MACH3
	 endvariant
	mne JBE	; ofs=41Eh
	 variant 076h, 63
	 variant 186h, 24, ASM_MACH3
	 endvariant
	mne JC	; ofs=424h
	 variant 072h, 63
	 variant 182h, 24, ASM_MACH3
	 endvariant
	mne JCXZ, ASM_D16	; ofs=42Ah
	mne JECXZ, ASM_D32	; ofs=42Bh
	 variant 0E3h, 63
	 endvariant
	mne JE	; ofs=42Fh
	 variant 074h, 63
	 variant 184h, 24, ASM_MACH3
	 endvariant
	mne JG	; ofs=435h
	 variant 07Fh, 63
	 variant 18Fh, 24, ASM_MACH3
	 endvariant
	mne JGE	; ofs=43Bh
	 variant 07Dh, 63
	 variant 18Dh, 24, ASM_MACH3
	 endvariant
	mne JL	; ofs=441h
	 variant 07Ch, 63
	 variant 18Ch, 24, ASM_MACH3
	 endvariant
	mne JLE	; ofs=447h
	 variant 07Eh, 63
	 variant 18Eh, 24, ASM_MACH3
	 endvariant
	mne JNA	; ofs=44Dh
	 variant 076h, 63
	 variant 186h, 24, ASM_MACH3
	 endvariant
	mne JNAE	; ofs=453h
	 variant 072h, 63
	 variant 182h, 24, ASM_MACH3
	 endvariant
	mne JNB	; ofs=459h
	 variant 073h, 63
	 variant 183h, 24, ASM_MACH3
	 endvariant
	mne JNBE	; ofs=45Fh
	 variant 077h, 63
	 variant 187h, 24, ASM_MACH3
	 endvariant
	mne JNC	; ofs=465h
	 variant 073h, 63
	 variant 183h, 24, ASM_MACH3
	 endvariant
	mne JNE	; ofs=46Bh
	 variant 075h, 63
	 variant 185h, 24, ASM_MACH3
	 endvariant
	mne JNG	; ofs=471h
	 variant 07Eh, 63
	 variant 18Eh, 24, ASM_MACH3
	 endvariant
	mne JNGE	; ofs=477h
	 variant 07Ch, 63
	 variant 18Ch, 24, ASM_MACH3
	 endvariant
	mne JNL	; ofs=47Dh
	 variant 07Dh, 63
	 variant 18Dh, 24, ASM_MACH3
	 endvariant
	mne JNLE	; ofs=483h
	 variant 07Fh, 63
	 variant 18Fh, 24, ASM_MACH3
	 endvariant
	mne JNO	; ofs=489h
	 variant 071h, 63
	 variant 181h, 24, ASM_MACH3
	 endvariant
	mne JNP	; ofs=48Fh
	 variant 07Bh, 63
	 variant 18Bh, 24, ASM_MACH3
	 endvariant
	mne JNS	; ofs=495h
	 variant 079h, 63
	 variant 189h, 24, ASM_MACH3
	 endvariant
	mne JNZ	; ofs=49Bh
	 variant 075h, 63
	 variant 185h, 24, ASM_MACH3
	 endvariant
	mne JO	; ofs=4A1h
	 variant 070h, 63
	 variant 180h, 24, ASM_MACH3
	 endvariant
	mne JP	; ofs=4A7h
	 variant 07Ah, 63
	 variant 18Ah, 24, ASM_MACH3
	 endvariant
	mne JPE	; ofs=4ADh
	 variant 07Ah, 63
	 variant 18Ah, 24, ASM_MACH3
	 endvariant
	mne JPO	; ofs=4B3h
	 variant 07Bh, 63
	 variant 18Bh, 24, ASM_MACH3
	 endvariant
	mne JS	; ofs=4B9h
	 variant 078h, 63
	 variant 188h, 24, ASM_MACH3
	 endvariant
	mne JZ	; ofs=4BFh
	 variant 074h, 63
	 variant 184h, 24, ASM_MACH3
	 endvariant
	mne JMP	; ofs=4C5h
	 variant 0EBh, 63
	 variant 0E9h, 24
	 variant AGRP(4,4), 122
	 variant AGRP(4,5), 28
	 variant 0EAh, 26
	 endvariant
	mne LAHF	; ofs=4D2h
	 variant 09Fh, 0
	 endvariant
	mne LAR	; ofs=4D5h
	 variant 102h, 16, ASM_MACH2
	 endvariant
	mne LDS	; ofs=4D9h
	 variant 0C5h, 15
	 endvariant
	mne LSS	; ofs=4DCh
	 variant 1B2h, 15, ASM_MACH3
	 endvariant
	mne LES	; ofs=4E0h
	 variant 0C4h, 15
	 endvariant
	mne LFS	; ofs=4E3h
	 variant 1B4h, 15, ASM_MACH3
	 endvariant
	mne LGS	; ofs=4E7h
	 variant 1B5h, 15, ASM_MACH3
	 endvariant
	mne LEA	; ofs=4EBh
	 variant 08Dh, 120
	 endvariant
	mne LGDT	; ofs=4F2h
	 variant AGRP(7,2), 51, ASM_MACH2
	 endvariant
	mne LIDT	; ofs=4F7h
	 variant AGRP(7,3), 51, ASM_MACH2
	 endvariant
	mne LLDT	; ofs=4FCh
	 variant AGRP(8,2), 74, ASM_MACH2
	 endvariant
	mne LMSW	; ofs=501h
	 variant AGRP(7,6), 74, ASM_MACH2
	 endvariant
	mne LOCK, ASM_SPECIAL, 0F0h	; ofs=506h
	mne LODSB	; ofs=508h
	 variant 0ACh, 0
	 endvariant
	mne LOOP	; ofs=51Dh
	 variant 0E2h, 125
	 variant 0E2h, 63
	 endvariant
	mne LOOPZ	; ofs=522h
	 variant 0E1h, 125
	 variant 0E1h, 63
	 endvariant
	mne LOOPE	; ofs=527h
	 variant 0E1h, 125
	 variant 0E1h, 63
	 endvariant
	mne LOOPNZ	; ofs=52Ch
	 variant 0E0h, 125
	 variant 0E0h, 63
	 endvariant
	mne LOOPNE	; ofs=531h
	 variant 0E0h, 125
	 variant 0E0h, 63
	 endvariant
	mne LSL	; ofs=536h
	 variant 103h, 16, ASM_MACH2
	 endvariant
	mne LTR	; ofs=53Ah
	 variant AGRP(8,3), 74, ASM_MACH2
	 endvariant
	mne MOV	; ofs=53Fh
	 variant 0A0h, 68
	 variant 0A2h, 69
	 variant 088h, 9
	 variant 08Ah, 10
	 variant 08Ch, 66
	 variant 08Eh, 67
	 variant 0B0h, 70
	 variant 0B8h, 71
	 variant AGRP(9,0), 4
	 variant 120h, 109, ASM_MACH3
	 variant 122h, 110, ASM_MACH3
	 variant 121h, 111, ASM_MACH3
	 variant 123h, 112, ASM_MACH3
	 variant 124h, 113, ASM_MACH3
	 variant 126h, 114, ASM_MACH3
	 endvariant
	mne MOVD	; ofs=565h
	 variant 16Eh, 115, ASM_MACH5
	 variant 17Eh, 116, ASM_MACH5
	 endvariant
	mne MOVQ	; ofs=56Ch
	 variant 16Fh, 117, ASM_MACH5
	 variant 17Fh, 118, ASM_MACH5
	 endvariant
	mne PACKSSDW	; ofs=573h
	 variant 16Bh, 117, ASM_MACH5
	 endvariant
	mne PACKSSWB	; ofs=577h
	 variant 163h, 117, ASM_MACH5
	 endvariant
	mne PACKUSWB	; ofs=57Bh
	 variant 167h, 117, ASM_MACH5
	 endvariant
	mne PADDB	; ofs=57Fh
	 variant 1FCh, 117, ASM_MACH5
	 endvariant
	mne PADDW	; ofs=584h
	 variant 1FDh, 117, ASM_MACH5
	 endvariant
	mne PADDD	; ofs=589h
	 variant 1FEh, 117, ASM_MACH5
	 endvariant
	mne PADDSB	; ofs=58Eh
	 variant 1ECh, 117, ASM_MACH5
	 endvariant
	mne PADDSW	; ofs=593h
	 variant 1EDh, 117, ASM_MACH5
	 endvariant
	mne PADDUSB	; ofs=598h
	 variant 1DCh, 117, ASM_MACH5
	 endvariant
	mne PADDUSW	; ofs=59Ch
	 variant 1DDh, 117, ASM_MACH5
	 endvariant
	mne PAND	; ofs=5A0h
	 variant 1DBh, 117, ASM_MACH5
	 endvariant
	mne PANDN	; ofs=5A4h
	 variant 1DFh, 117, ASM_MACH5
	 endvariant
	mne PCMPEQB	; ofs=5A8h
	 variant 174h, 117, ASM_MACH5
	 endvariant
	mne PCMPEQW	; ofs=5ACh
	 variant 175h, 117, ASM_MACH5
	 endvariant
	mne PCMPEQD	; ofs=5B0h
	 variant 176h, 117, ASM_MACH5
	 endvariant
	mne PCMPGTB	; ofs=5B4h
	 variant 164h, 117, ASM_MACH5
	 endvariant
	mne PCMPGTW	; ofs=5B8h
	 variant 165h, 117, ASM_MACH5
	 endvariant
	mne PCMPGTD	; ofs=5BCh
	 variant 166h, 117, ASM_MACH5
	 endvariant
	mne PMADDWD	; ofs=5C0h
	 variant 1F5h, 117, ASM_MACH5
	 endvariant
	mne PMULHW	; ofs=5C5h
	 variant 1E5h, 117, ASM_MACH5
	 endvariant
	mne PMULLW	; ofs=5CAh
	 variant 1D5h, 117, ASM_MACH5
	 endvariant
	mne POR	; ofs=5CEh
	 variant 1EBh, 117, ASM_MACH5
	 endvariant
	mne PSLLW	; ofs=5D3h
	 variant 1F1h, 117, ASM_MACH5
	 variant AGRP(10,6), 119, ASM_MACH5
	 endvariant
	mne PSLLD	; ofs=5DCh
	 variant 1F2h, 117, ASM_MACH5
	 variant AGRP(11,6), 119, ASM_MACH5
	 endvariant
	mne PSLLQ	; ofs=5E5h
	 variant 1F3h, 117, ASM_MACH5
	 variant AGRP(12,6), 119, ASM_MACH5
	 endvariant
	mne PSRAW	; ofs=5EEh
	 variant 1E1h, 117, ASM_MACH5
	 variant AGRP(10,4), 119, ASM_MACH5
	 endvariant
	mne PSRAD	; ofs=5F6h
	 variant 1E2h, 117, ASM_MACH5
	 variant AGRP(11,4), 119, ASM_MACH5
	 endvariant
	mne PSRLW	; ofs=5FEh
	 variant 1D1h, 117, ASM_MACH5
	 variant AGRP(10,2), 119, ASM_MACH5
	 endvariant
	mne PSRLD	; ofs=606h
	 variant 1D2h, 117, ASM_MACH5
	 variant AGRP(11,2), 119, ASM_MACH5
	 endvariant
	mne PSRLQ	; ofs=60Eh
	 variant 1D3h, 117, ASM_MACH5
	 variant AGRP(12,2), 119, ASM_MACH5
	 endvariant
	mne PSUBB	; ofs=616h
	 variant 1F8h, 117, ASM_MACH5
	 endvariant
	mne PSUBW	; ofs=61Bh
	 variant 1F9h, 117, ASM_MACH5
	 endvariant
	mne PSUBD	; ofs=620h
	 variant 1FAh, 117, ASM_MACH5
	 endvariant
	mne PSUBSB	; ofs=625h
	 variant 1E8h, 117, ASM_MACH5
	 endvariant
	mne PSUBSW	; ofs=62Ah
	 variant 1E9h, 117, ASM_MACH5
	 endvariant
	mne PSUBUSB	; ofs=62Fh
	 variant 1D8h, 117, ASM_MACH5
	 endvariant
	mne PSUBUSW	; ofs=633h
	 variant 1D9h, 117, ASM_MACH5
	 endvariant
	mne PUNPCKHBW	; ofs=637h
	 variant 168h, 117, ASM_MACH5
	 endvariant
	mne PUNPCKHWD	; ofs=63Bh
	 variant 169h, 117, ASM_MACH5
	 endvariant
	mne PUNPCKHDQ	; ofs=63Fh
	 variant 16Ah, 117, ASM_MACH5
	 endvariant
	mne PUNPCKLBW	; ofs=643h
	 variant 160h, 117, ASM_MACH5
	 endvariant
	mne PUNPCKLWD	; ofs=647h
	 variant 161h, 117, ASM_MACH5
	 endvariant
	mne PUNPCKLDQ	; ofs=64Bh
	 variant 162h, 117, ASM_MACH5
	 endvariant
	mne PXOR	; ofs=64Fh
	 variant 1EFh, 117, ASM_MACH5
	 endvariant
	mne MOVSB	; ofs=654h
	 variant 0A4h, 0
	 endvariant
	mne MOVSX	; ofs=65Ah
	 variant 1BEh, 72, ASM_MACH3
	 variant 1BFh, 73, ASM_MACH3
	 endvariant
	mne MOVZX	; ofs=661h
	 variant 1B6h, 72, ASM_MACH3
	 variant 1B7h, 73, ASM_MACH3
	 endvariant
	mne MUL	; ofs=668h
	 variant AGRP(6,4), 11
	 endvariant
	mne NEG	; ofs=66Ch
	 variant AGRP(6,3), 13, ASM_LOCKABLE
	 endvariant
	mne NOP	; ofs=671h
	 variant 090h, 0
	 endvariant
	mne NOT	; ofs=674h
	 variant AGRP(6,2), 13, ASM_LOCKABLE
	 endvariant
	mne OR	; ofs=679h
	 variant AGRP(1,1), 5, ASM_LOCKABLE
	 variant 00Ch, 1
	 variant AGRP(2,1), 2, ASM_LOCKABLE
	 variant 008h, 7, ASM_LOCKABLE
	 variant 00Ah, 10
	 endvariant
	mne ORG, ASM_SPECIAL	; ofs=689h
	mne OUT	; ofs=68Bh
	 variant 0E6h, 75
	 variant 0EEh, 76
	 endvariant
	mne OUTSB	; ofs=690h
	 variant 06Eh, 0, ASM_MACH1
	 endvariant
	mne POP	; ofs=698h
	 variant 058h, 34
	 variant AGRP(13,0), 77
	 variant 01Fh, 106
	 variant 007h, 104
	 variant 017h, 105
	 variant 1A1h, 107, ASM_MACH3
	 variant 1A9h, 108, ASM_MACH3
	 endvariant
	mne PUSH	; ofs=6B1h
	 variant 050h, 32
	 variant AGRP(4,6), 64
	 variant 06Ah, 80, ASM_MACH1
	 variant 068h, 79, ASM_MACH1
	 variant 00Eh, 94
	 variant 016h, 96
	 variant 01Eh, 98
	 variant 006h, 92
	 variant 1A0h, 100, ASM_MACH3
	 variant 1A8h, 102, ASM_MACH3
	 endvariant
	mne RCL	; ofs=6D9h
	 variant AGRP(14,2), 81
	 variant AGRP(15,2), 82
	 variant AGRP(16,2), 83, ASM_MACH1
	 endvariant
	mne RCR	; ofs=6E4h
	 variant AGRP(14,3), 81
	 variant AGRP(15,3), 82
	 variant AGRP(16,3), 83, ASM_MACH1
	 endvariant
	mne ROL	; ofs=6EFh
	 variant AGRP(14,0), 81
	 variant AGRP(15,0), 82
	 variant AGRP(16,0), 83, ASM_MACH1
	 endvariant
	mne ROR	; ofs=6FAh
	 variant AGRP(14,1), 81
	 variant AGRP(15,1), 82
	 variant AGRP(16,1), 83, ASM_MACH1
	 endvariant
	mne RDMSR	; ofs=705h
	 variant 132h, 0, ASM_MACH5
	 endvariant
	mne RDTSC	; ofs=709h
	 variant 131h, 0, ASM_MACH5
	 endvariant
	mne REP, ASM_SPECIAL, 0F3h	; ofs=70Dh
	mne REPZ, ASM_SPECIAL, 0F3h	; ofs=70Fh
	mne REPNZ, ASM_SPECIAL, 0F2h	; ofs=711h
	mne REPE, ASM_SPECIAL, 0F3h	; ofs=713h
	mne REPNE, ASM_SPECIAL, 0F2h	; ofs=715h
	mne RSM	; ofs=726h
	 variant 1AAh, 0, ASM_MACH5
	 endvariant
	mne SAHF	; ofs=72Ah
	 variant 09Eh, 0
	 endvariant
	mne SAL	; ofs=72Dh
	 variant AGRP(14,4), 81
	 variant AGRP(15,4), 82
	 variant AGRP(16,4), 83, ASM_MACH1
	 endvariant
	mne SAR	; ofs=738h
	 variant AGRP(14,7), 81
	 variant AGRP(15,7), 82
	 variant AGRP(16,7), 83, ASM_MACH1
	 endvariant
	mne SEG	; ofs=743h
	 variant 026h, 93
	 variant 02Eh, 95
	 variant 036h, 97
	 variant 03Eh, 99
	 variant 064h, 101
	 variant 065h, 103
	 endvariant
	mne ES, ASM_SPECIAL, 026h	; ofs=750h
	mne CS, ASM_SPECIAL, 02Eh	; ofs=752h
	mne SS, ASM_SPECIAL, 036h	; ofs=754h
	mne DS, ASM_SPECIAL, 03Eh	; ofs=756h
	mne FS, ASM_SPECIAL, 064h	; ofs=758h
	mne GS, ASM_SPECIAL, 065h	; ofs=75Ah
	mne SHL	; ofs=75Ch
	 variant AGRP(14,4), 81
	 variant AGRP(15,4), 82
	 variant AGRP(16,4), 83, ASM_MACH1
	 endvariant
	mne SHR	; ofs=767h
	 variant AGRP(14,5), 81
	 variant AGRP(15,5), 82
	 variant AGRP(16,5), 83, ASM_MACH1
	 endvariant
	mne SBB	; ofs=772h
	 variant AGRP(1,3), 5, ASM_LOCKABLE
	 variant 01Ch, 1
	 variant AGRP(2,3), 2, ASM_LOCKABLE
	 variant 018h, 7, ASM_LOCKABLE
	 variant 01Ah, 10
	 endvariant
	mne SCASB	; ofs=782h
	 variant 0AEh, 0
	 endvariant
	mne SETA	; ofs=788h
	 variant 197h, 87, ASM_MACH3
	 endvariant
	mne SETAE	; ofs=78Ch
	 variant 193h, 87, ASM_MACH3
	 endvariant
	mne SETB	; ofs=790h
	 variant 192h, 87, ASM_MACH3
	 endvariant
	mne SETBE	; ofs=794h
	 variant 196h, 87, ASM_MACH3
	 endvariant
	mne SETC	; ofs=798h
	 variant 192h, 87, ASM_MACH3
	 endvariant
	mne SETE	; ofs=79Ch
	 variant 194h, 87, ASM_MACH3
	 endvariant
	mne SETG	; ofs=7A0h
	 variant 19Fh, 87, ASM_MACH3
	 endvariant
	mne SETGE	; ofs=7A4h
	 variant 19Dh, 87, ASM_MACH3
	 endvariant
	mne SETL	; ofs=7A8h
	 variant 19Ch, 87, ASM_MACH3
	 endvariant
	mne SETLE	; ofs=7ACh
	 variant 19Eh, 87, ASM_MACH3
	 endvariant
	mne SETNA	; ofs=7B0h
	 variant 196h, 87, ASM_MACH3
	 endvariant
	mne SETNAE	; ofs=7B4h
	 variant 192h, 87, ASM_MACH3
	 endvariant
	mne SETNB	; ofs=7B8h
	 variant 193h, 87, ASM_MACH3
	 endvariant
	mne SETNBE	; ofs=7BCh
	 variant 197h, 87, ASM_MACH3
	 endvariant
	mne SETNC	; ofs=7C0h
	 variant 193h, 87, ASM_MACH3
	 endvariant
	mne SETNE	; ofs=7C4h
	 variant 195h, 87, ASM_MACH3
	 endvariant
	mne SETNG	; ofs=7C8h
	 variant 19Eh, 87, ASM_MACH3
	 endvariant
	mne SETNGE	; ofs=7CCh
	 variant 19Ch, 87, ASM_MACH3
	 endvariant
	mne SETNL	; ofs=7D0h
	 variant 19Dh, 87, ASM_MACH3
	 endvariant
	mne SETNLE	; ofs=7D4h
	 variant 19Fh, 87, ASM_MACH3
	 endvariant
	mne SETNO	; ofs=7D8h
	 variant 191h, 87, ASM_MACH3
	 endvariant
	mne SETNP	; ofs=7DCh
	 variant 19Bh, 87, ASM_MACH3
	 endvariant
	mne SETNS	; ofs=7E0h
	 variant 199h, 87, ASM_MACH3
	 endvariant
	mne SETNZ	; ofs=7E4h
	 variant 195h, 87, ASM_MACH3
	 endvariant
	mne SETO	; ofs=7E8h
	 variant 190h, 87, ASM_MACH3
	 endvariant
	mne SETP	; ofs=7ECh
	 variant 19Ah, 87, ASM_MACH3
	 endvariant
	mne SETPE	; ofs=7F0h
	 variant 19Ah, 87, ASM_MACH3
	 endvariant
	mne SETPO	; ofs=7F4h
	 variant 19Bh, 87, ASM_MACH3
	 endvariant
	mne SETS	; ofs=7F8h
	 variant 198h, 87, ASM_MACH3
	 endvariant
	mne SETZ	; ofs=7FCh
	 variant 194h, 87, ASM_MACH3
	 endvariant
	mne SGDT	; ofs=800h
	 variant AGRP(7,0), 53, ASM_MACH2
	 endvariant
	mne SIDT	; ofs=805h
	 variant AGRP(7,1), 53, ASM_MACH2
	 endvariant
	mne SHLD	; ofs=80Ah
	 variant 1A4h, 88, ASM_MACH3
	 variant 1A5h, 89, ASM_MACH3
	 endvariant
	mne SHRD	; ofs=811h
	 variant 1ACh, 88, ASM_MACH3
	 variant 1ADh, 89, ASM_MACH3
	 endvariant
	mne SLDT	; ofs=818h
	 variant AGRP(8,0), 78, ASM_MACH2
	 endvariant
	mne SMSW	; ofs=81Dh
	 variant AGRP(7,4), 78, ASM_MACH2
	 endvariant
	mne STC	; ofs=822h
	 variant 0F9h, 0
	 endvariant
	mne STD	; ofs=825h
	 variant 0FDh, 0
	 endvariant
	mne STI	; ofs=828h
	 variant 0FBh, 0
	 endvariant
	mne STOSB	; ofs=82Bh
	 variant 0AAh, 0
	 endvariant
	mne STR	; ofs=831h
	 variant AGRP(8,1), 65, ASM_MACH2
	 endvariant
	mne SUB	; ofs=836h
	 variant AGRP(1,5), 5, ASM_LOCKABLE
	 variant 02Ch, 1
	 variant AGRP(2,5), 2, ASM_LOCKABLE
	 variant 028h, 7, ASM_LOCKABLE
	 variant 02Ah, 10
	 endvariant
	mne SALC	; ofs=846h
	 variant 0D6h, 0, ASM_MACH2
	 endvariant
	mne SETALC	; ofs=84Ah
	 variant 0D6h, 0, ASM_MACH2
	 endvariant
	mne TEST	; ofs=84Eh
	 variant 0A8h, 1
	 variant AGRP(6,0), 3
	 variant 084h, 8
	 variant 084h, 10
	 endvariant
	mne UD0	; ofs=858h
	 variant 1FFh, 0, ASM_MACH1
	 endvariant
	mne UD1	; ofs=85Dh
	 variant 1B9h, 0, ASM_MACH1
	 endvariant
	mne UD2	; ofs=861h
	 variant 10Bh, 0, ASM_MACH1
	 endvariant
	mne VERR	; ofs=865h
	 variant AGRP(8,4), 74, ASM_MACH2
	 endvariant
	mne VERW	; ofs=86Ah
	 variant AGRP(8,5), 74, ASM_MACH2
	 endvariant
	mne WAIT	; ofs=86Fh
	 variant 09Bh, 0
	 endvariant
	mne WBINVD	; ofs=872h
	 variant 109h, 0, ASM_MACH4
	 endvariant
	mne WRMSR	; ofs=876h
	 variant 130h, 0, ASM_MACH5
	 endvariant
	mne XADD	; ofs=87Ah
	 variant 1C0h, 7, ASM_LOCKABLE, ASM_MACH4
	 endvariant
	mne XCHG	; ofs=87Fh
	 variant 090h, 90
	 variant 090h, 91
	 variant 086h, 7, ASM_LOCKABLE
	 variant 086h, 12, ASM_LOCKABLE
	 endvariant
	mne XLAT	; ofs=88Ah
	 variant 0D7h, 0
	 endvariant
	mne XLATB	; ofs=88Dh
	 variant 0D7h, 0
	 endvariant
	mne XOR	; ofs=890h
	 variant AGRP(1,6), 5, ASM_LOCKABLE
	 variant 034h, 1
	 variant AGRP(2,6), 2, ASM_LOCKABLE
	 variant 030h, 7, ASM_LOCKABLE
	 variant 032h, 10
	 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=50Eh
	 variant 0E2h, 63
	 endvariant
	mne LOOPZ	; ofs=511h
	 variant 0E1h, 63
	 endvariant
	mne LOOPE	; ofs=514h
	 variant 0E1h, 63
	 endvariant
	mne LOOPNZ	; ofs=517h
	 variant 0E0h, 63
	 endvariant
	mne LOOPNE	; ofs=51Ah
	 variant 0E0h, 63
	 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=15Eh
	 variant 0C8h, 35, ASM_MACH1
	 endvariant
	mne FLDENV	; ofs=2B9h
	 variant 221h, 51
	 endvariant
	mne FRSTOR	; ofs=2F1h
	 variant 225h, 51
	 endvariant
	mne FSAVE, ASM_WAIT	; ofs=2F5h
	mne FNSAVE	; ofs=2F6h
	 variant 235h, 53
	 endvariant
	mne FSTENV, ASM_WAIT	; ofs=32Eh
	mne FNSTENV	; ofs=32Fh
	 variant 231h, 53
	 endvariant
	mne IRET	; ofs=409h
	 variant 0CFh, 128
	 endvariant
	mne LEAVE	; ofs=4EEh
	 variant 0C9h, 128, ASM_MACH1
	 endvariant
	mne POPA	; ofs=6AAh
	 variant 061h, 128, ASM_MACH1
	 endvariant
	mne POPF	; ofs=6AEh
	 variant 09Dh, 126
	 endvariant
	mne PUSH	; ofs=6CBh
	 variant 06Ah, 80, ASM_MACH1
	 variant 068h, 79, ASM_MACH1
	 endvariant
	mne PUSHA	; ofs=6D2h
	 variant 060h, 128, ASM_MACH1
	 endvariant
	mne PUSHF	; ofs=6D6h
	 variant 09Ch, 127
	 endvariant
	mne RETN	; ofs=717h
	 variant 0C3h, 126
	 variant 0C2h, 84
	 endvariant
	mne RET	; ofs=71Ch
	 variant 0C3h, 126
	 variant 0C2h, 84
	 endvariant
	mne RETF	; ofs=721h
	 variant 0CBh, 128
	 variant 0CAh, 86
	 endvariant

; The following mnemonics require an operand size suffix.

mnlist_o_suffix_required label near
mnsuffix _OSR

	mne CMPS	; ofs=12Dh
	 variant 0A7h, 0
	 endvariant
	mne INS	; ofs=3E2h
	 variant 06Dh, 0, ASM_MACH1
	 endvariant
	mne LODS	; ofs=50Bh
	 variant 0ADh, 0
	 endvariant
	mne MOVS	; ofs=657h
	 variant 0A5h, 0
	 endvariant
	mne OUTS	; ofs=694h
	 variant 06Fh, 0, ASM_MACH1
	 endvariant
	mne SCAS	; ofs=785h
	 variant 0AFh, 0
	 endvariant
	mne STOS	; ofs=82Eh
	 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(07),OT(07),OT(0A),OT(0A),OT(01),OT(01),OT(5C),OT(68)	; 00 - 07 (main opcode part)
	db OT(07),OT(07),OT(0A),OT(0A),OT(01),OT(01),OT(5E),  002h	; 08 - 0F
	db OT(07),OT(07),OT(0A),OT(0A),OT(01),OT(01),OT(60),OT(69)	; 10 - 17
	db OT(07),OT(07),OT(0A),OT(0A),OT(01),OT(01),OT(62),OT(6A)	; 18 - 1F
	db OT(07),OT(07),OT(0A),OT(0A),OT(01),OT(01),  00Ah,OT(00)	; 20 - 27
	db OT(07),OT(07),OT(0A),OT(0A),OT(01),OT(01),  00Ah,OT(00)	; 28 - 2F
	db OT(07),OT(07),OT(0A),OT(0A),OT(01),OT(01),  00Ah,OT(00)	; 30 - 37
	db OT(08),OT(08),OT(0A),OT(0A),OT(01),OT(01),  00Ah,OT(00)	; 38 - 3F
	db OT(21),OT(21),OT(21),OT(21),OT(21),OT(21),OT(21),OT(21)	; 40 - 47
	db OT(21),OT(21),OT(21),OT(21),OT(21),OT(21),OT(21),OT(21)	; 48 - 4F
	db OT(20),OT(20),OT(20),OT(20),OT(20),OT(20),OT(20),OT(20)	; 50 - 57
	db OT(22),OT(22),OT(22),OT(22),OT(22),OT(22),OT(22),OT(22)	; 58 - 5F
	db OT(80),OT(80),OT(7B),OT(0E),  00Ah,  00Ah,  00Ah,  00Ah	; 60 - 67
	db OT(4F),OT(39),OT(50),OT(37),OT(00),OT(00),OT(00),OT(00)	; 68 - 6F
	db OT(3F),OT(3F),OT(3F),OT(3F),OT(3F),OT(3F),OT(3F),OT(3F)	; 70 - 77
	db OT(3F),OT(3F),OT(3F),OT(3F),OT(3F),OT(3F),OT(3F),OT(3F)	; 78 - 7F
	db   004h,  004h,  004h,  004h,OT(08),OT(08),OT(0C),OT(0C)	; 80 - 87
	db OT(09),OT(09),OT(0A),OT(0A),OT(42),OT(78),OT(43),  004h	; 88 - 8F
	db OT(00),OT(5A),OT(5A),OT(5A),OT(5A),OT(5A),OT(5A),OT(5A)	; 90 - 97
	db OT(00),OT(00),OT(19),OT(00),OT(7F),OT(7E),OT(00),OT(00)	; 98 - 9F
	db OT(44),OT(44),OT(45),OT(45),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(46),OT(46),OT(46),OT(46),OT(46),OT(46),OT(46),OT(46)	; B0 - B7
	db OT(47),OT(47),OT(47),OT(47),OT(47),OT(47),OT(47),OT(47)	; B8 - BF
	db   004h,  004h,OT(54),OT(7E),OT(0F),OT(0F),  004h,  004h	; C0 - C7
	db OT(23),OT(80),OT(56),OT(80),OT(80),OT(7C),OT(80),OT(80)	; C8 - CF
	db   004h,  004h,  004h,  004h,OT(3E),OT(3E),OT(00),OT(00)	; D0 - D7
	db   006h,  006h,  006h,  006h,  006h,  006h,  006h,  006h	; D8 - DF
	db OT(3F),OT(3F),OT(3F),OT(3F),OT(3B),OT(3B),OT(4B),OT(4B)	; E0 - E7
	db OT(17),OT(18),OT(1A),OT(3F),OT(3C),OT(3C),OT(4C),OT(4C)	; E8 - EF
	db   00Ah,OT(80),  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(03)	; 100 - 107 (Intel group 1)
	db OT(05),OT(05),OT(05),OT(05),OT(05),OT(05),OT(05),OT(06)	; 108 - 10F
	db OT(51),OT(51),OT(51),OT(51),OT(51),OT(51),OT(51),OT(51)	; 110 - 117 (Intel group 2)
	db OT(52),OT(52),OT(52),OT(52),OT(52),OT(52),OT(52),OT(52)	; 118 - 11F
	db OT(53),OT(53),OT(53),OT(53),OT(53),OT(53),OT(53),OT(53)	; 120 - 127 (Intel group 2a)
	db OT(03),OT(03),OT(0D),OT(0D),OT(0B),OT(0B),OT(0B),OT(0B)	; 128 - 12F (Intel group 3)
	db OT(0D),OT(0D),OT(79),OT(1B),OT(7A),OT(1C),OT(40),  000h	; 130 - 137 (Intel group 5)
	db OT(4E),OT(41),OT(4A),OT(4A),OT(4A),OT(4A),  000h,  000h	; 138 - 13F (Intel group 6)
	db OT(35),OT(35),OT(33),OT(33),OT(4E),  000h,OT(4A),OT(34)	; 140 - 147 (Intel group 7)
	db OT(24),OT(24),OT(24),OT(24),OT(24),OT(24),OT(24),OT(24)	; 148 - 14F (Coprocessor d8)
	db OT(28),OT(28),OT(32),OT(32),OT(28),OT(28),OT(28),OT(28)	; 150 - 157
	db OT(24),  000h,OT(25),OT(25),OT(33),OT(2E),OT(35),OT(2F)	; 158 - 15F (Coprocessor d9)
	db OT(29),OT(32),  008h,  000h,  008h,  008h,  008h,  008h	; 160 - 167
	db OT(2C),OT(2C),OT(2C),OT(2C),OT(2C),OT(2C),OT(2C),OT(2C)	; 168 - 16F (Coprocessor da)
	db OT(28),OT(28),OT(28),OT(28),  000h,  008h,  000h,  000h	; 170 - 177
	db OT(2C),  000h,OT(2D),OT(2D),  000h,OT(30),  000h,OT(31)	; 178 - 17F (Coprocessor db)
	db OT(28),OT(28),OT(28),OT(28),  008h,OT(32),OT(32),  000h	; 180 - 187
	db OT(26),OT(26),OT(26),OT(26),OT(26),OT(26),OT(26),OT(26)	; 188 - 18F (Coprocessor dc)
	db OT(2B),OT(2B),  000h,  000h,OT(2B),OT(2B),OT(2B),OT(2B)	; 190 - 197
	db OT(26),  000h,OT(27),OT(27),OT(33),  000h,OT(35),OT(2F)	; 198 - 19F (Coprocessor dd)
	db OT(29),  000h,OT(29),OT(29),OT(32),OT(32),  000h,  000h	; 1A0 - 1A7
	db OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E)	; 1A8 - 1AF (Coprocessor de)
	db OT(2A),OT(2A),  000h,  008h,OT(2A),OT(2A),OT(2A),OT(2A)	; 1B0 - 1B7
	db OT(2E),  000h,OT(2F),OT(2F),OT(30),OT(1E),OT(31),OT(1F)	; 1B8 - 1BF (Coprocessor df)
	db   000h,  000h,  000h,  000h,  008h,OT(32),OT(32),  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
;--- The rest of these are squeezed.
	db      0,  004h,  004h,OT(10),OT(10),OT(00),OT(00),OT(00)	; 00
	db OT(00),OT(6D),OT(6F),OT(6E),OT(70),OT(71),OT(72),OT(00)	; 08
	db OT(00),OT(00),OT(10),OT(10),OT(10),OT(10),OT(10),OT(10)	; 10
	db OT(10),OT(10),OT(10),OT(10),OT(10),OT(10),OT(10),OT(10)	; 18
	db OT(10),OT(10),OT(75),OT(75),OT(75),OT(75),OT(75),OT(75)	; 20
	db OT(75),OT(75),OT(75),OT(75),OT(75),OT(75),OT(73),OT(75)	; 28
	db   004h,  004h,  004h,OT(75),OT(75),OT(75),OT(00),OT(74)	; 30
	db OT(76),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18)	; 38
	db OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18)	; 40
	db OT(18),OT(57),OT(57),OT(57),OT(57),OT(57),OT(57),OT(57)	; 48
	db OT(57),OT(57),OT(57),OT(57),OT(57),OT(57),OT(57),OT(57)	; 50
	db OT(57),OT(64),OT(6B),OT(00),OT(13),OT(58),OT(59),OT(66)	; 58
	db OT(6C),OT(00),OT(12),OT(58),OT(59),OT(10),OT(07),OT(07)	; 60
	db OT(0F),OT(12),OT(0F),OT(0F),OT(48),OT(49),OT(00),  004h	; 68
	db OT(12),OT(10),OT(10),OT(48),OT(49),OT(07),OT(07),  004h	; 70
	db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11)	; 78
	db OT(75),OT(75),OT(75),OT(75),OT(75),OT(75),OT(75),OT(75)	; 80
	db OT(75),OT(75),OT(75),OT(75),OT(75),OT(75),OT(75),OT(75)	; 88
	db OT(75),OT(75),OT(75),OT(75),OT(75),OT(75),OT(75),OT(75)	; 90
	db OT(75),OT(75),OT(75),OT(75),OT(75),OT(00),OT(0D),OT(0D)	; 98
	db OT(55),OT(16),OT(14),OT(14),OT(14),OT(1D),OT(4D),OT(04)	; A0
	db OT(77),OT(77),OT(77),OT(77),OT(77),OT(77),OT(77),OT(77)	; 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(36)

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, 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_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, 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_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, 0300h, 0300h	; 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  0148h, 0158h, 0168h, 0178h	; D8
	dw  0188h, 0198h, 01A8h, 01B8h	; 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, 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_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_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_OSA, MN_FNLDCW, MN_FNSTENV_OSA, MN_FNSTCW	; 15C
	dw  MN_FLD, MN_FXCH, 0320h, 0000h	; 160
	dw  0328h, 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, 0330h, 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  0338h, 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, 0000h, 0000h	; 190
	dw  MN_FSUBR, MN_FSUB, MN_FDIVR, MN_FDIV	; 194
	dw  MN_FLD, 0000h, MN_FST, MN_FSTP	; 198
	dw  MN_FRSTOR_OSA, 0000h, MN_FNSAVE_OSA, MN_FNSTSW	; 19C
	dw  MN_FFREE, 0000h, 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, 0000h, 0340h	; 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  0000h, 0000h, 0000h, 0000h	; 1C0
	dw  0348h, 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_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  0308h, 0310h, 0318h, 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, 02E8h	; 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, 02F0h	; 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	; 1E0
	db   6,  7,  0,  8,  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   9, 10, 11, 12, 13,  0, 14,  0	; 200
	db   0,  0,  0,  0,  0,  0,  0,  0	; 208
	db  15, 16, 17,  0,  0,  0,  0,  0	; 210
	db   0,  0,  0,  0,  0,  0,  0,  0	; 218
	db  18, 19, 20, 21, 22, 23, 24, 25	; 220
	db  26, 27, 28, 29, 30, 31, 32, 33	; 228
	db   0,  0,  0,  0,  0,  0,  0,  0	; 230
	db   0,  0,  0,  0,  0,  0,  0,  0	; 238
	db  34, 35, 36, 37, 38, 39, 40, 41	; 240
	db  42, 43, 44, 45,  0,  0, 46, 47	; 248
	db   0, 48, 49, 50, 51, 52, 53, 54	; 250
	db   0,  0,  0,  0,  0,  0, 55, 56	; 258
	db  57, 58, 59, 60, 61, 62, 63, 64	; 260
	db  65, 66, 67, 68, 69, 70, 71, 72	; 268
	db  73, 74, 75, 76, 77, 78, 79, 80	; 270
	db  81, 82, 83, 84, 85, 86, 87, 88	; 278
	db  89, 90, 91, 92, 93, 94,  0,  0	; 280
	db  95, 96, 97, 98, 99,100,  0,101	; 288
	db 102,103,104,105,106,107,108,109	; 290
	db   0,110,111,112,113,114,115,116	; 298
	db 117,118,  0,  0,  0,  0,  0,119	; 2A0
	db 120,121,122,123,124,125,126,127	; 2A8
	db   0,128,129,130,  0,131,  0,  0	; 2B0
	db 132,133,  0,134,135,136,  0,137	; 2B8
	db   0,138,139,  0,  0,140,  0,  0	; 2C0
	db 141,142,  0,143,144,145,  0,146	; 2C8
	db   0,147,148,149,  0,150,  0,  0	; 2D0
	db 151,152,153,  0,154,155,156,157	; 2D8
	db 158,159,  0,  0,  0,  0,  0,160	; 2E0
	db   0,  0,  0,  0,161,162,163,164	; 2E8
	db   0,165,  0,  0,  0,  0,  0,  0	; 2F0
	db 166,  0,  0,  0,  0,  0,  0,  0	; 2F8
	db 167,  0,  0,  0,  0,  0,  0,  0	; 300
	db   0,  0,168,  0,169,  0,170,  0	; 308
	db   0,  0,171,  0,172,  0,173,  0	; 310
	db   0,  0,174,  0,  0,  0,175,  0	; 318
	db 176,  0,  0,  0,  0,  0,  0,  0	; 320
	db 177,178,  0,  0,179,180,  0,  0	; 328
	db   0,181,  0,  0,  0,  0,  0,  0	; 330
	db 182,183,184,185,186,  0,  0,  0	; 338
	db   0,187,  0,  0,  0,  0,  0,  0	; 340
	db 188,  0,  0,  0,  0,  0,  0,  0	; 348

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

	align 2, db 0
wtab1 label word
	dw 033Ah,0339h,0338h,033Bh,015Dh,019Eh,033Ch,015Fh
	dw 015Eh,0348h,019Fh
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,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

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

SPARSE_BASE	equ 01E0h
SFPGROUP3	equ 0338h
GROUP7		equ 0130h
SGROUP4		equ 02F8h
