420 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			420 lines
		
	
	
	
		
			12 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
 | |
|  * See the copyright notice in the ACK home directory, in the file "Copyright".
 | |
|  */
 | |
| #define RCSID3 "$Id$"
 | |
| 
 | |
| /*
 | |
|  * INTEL 80386 keywords
 | |
|  *
 | |
|  * No system registers for now ...
 | |
|  */
 | |
| 
 | |
| 0,	USE16,		0,		".use16",
 | |
| 0,	USE32,		0,		".use32",
 | |
| 0,	R32,		0,		"ax",
 | |
| 0,	R32,		1,		"cx",
 | |
| 0,	R32,		2,		"dx",
 | |
| 0,	R32,		3,		"bx",
 | |
| 0,	R32,		4,		"sp",
 | |
| 0,	R32,		5,		"bp",
 | |
| 0,	R32,		6,		"si",
 | |
| 0,	R32,		7,		"di",
 | |
| 0,	R32,		0,		"eax",
 | |
| 0,	R32,		1,		"ecx",
 | |
| 0,	R32,		2,		"edx",
 | |
| 0,	R32,		3,		"ebx",
 | |
| 0,	R32,		4,		"esp",
 | |
| 0,	R32,		5,		"ebp",
 | |
| 0,	R32,		6,		"esi",
 | |
| 0,	R32,		7,		"edi",
 | |
| 0,	R8,		0,		"al",
 | |
| 0,	R8,		1,		"cl",
 | |
| 0,	R8,		2,		"dl",
 | |
| 0,	R8,		3,		"bl",
 | |
| 0,	R8,		4,		"ah",
 | |
| 0,	R8,		5,		"ch",
 | |
| 0,	R8,		6,		"dh",
 | |
| 0,	R8,		7,		"bh",
 | |
| 0,	RSEG,		0,		"es",
 | |
| 0,	RSEG,		1,		"cs",
 | |
| 0,	RSEG,		2,		"ss",
 | |
| 0,	RSEG,		3,		"ds",
 | |
| 0,	RSEG,		4,		"fs",
 | |
| 0,	RSEG,		5,		"gs",
 | |
| 0,	RSYSCR,		0,		"cr0",
 | |
| 0,	RSYSCR,		2,		"cr2",
 | |
| 0,	RSYSCR,		3,		"cr3",
 | |
| 0,	RSYSDR,		0,		"dr0",
 | |
| 0,	RSYSDR,		1,		"dr1",
 | |
| 0,	RSYSDR,		2,		"dr2",
 | |
| 0,	RSYSDR,		3,		"dr3",
 | |
| 0,	RSYSDR,		6,		"dr6",
 | |
| 0,	RSYSDR,		7,		"dr7",
 | |
| 0,	RSYSTR,		3,		"tr3",	/* i486 */
 | |
| 0,	RSYSTR,		4,		"tr4",	/* i486 */
 | |
| 0,	RSYSTR,		5,		"tr5",	/* i486 */
 | |
| 0,	RSYSTR,		6,		"tr6",
 | |
| 0,	RSYSTR,		7,		"tr7",
 | |
| 0,	ADDOP,		000,		"addb",
 | |
| 0,	ADDOP,		001,		"add",
 | |
| 0,	ADDOP,		010,		"orb",
 | |
| 0,	ADDOP,		011,		"or",
 | |
| 0,	ADDOP,		020,		"adcb",
 | |
| 0,	ADDOP,		021,		"adc",
 | |
| 0,	ADDOP,		030,		"sbbb",
 | |
| 0,	ADDOP,		031,		"sbb",
 | |
| 0,	ADDOP,		040,		"andb",
 | |
| 0,	ADDOP,		041,		"and",
 | |
| 0,	ADDOP,		050,		"subb",
 | |
| 0,	ADDOP,		051,		"sub",
 | |
| 0,	ADDOP,		060,		"xorb",
 | |
| 0,	ADDOP,		061,		"xor",
 | |
| 0,	ADDOP,		070,		"cmpb",
 | |
| 0,	ADDOP,		071,		"cmp",
 | |
| 0,	BITTEST,	04,		"bt",
 | |
| 0,	BITTEST,	05,		"bts",
 | |
| 0,	BITTEST,	06,		"btr",
 | |
| 0,	BITTEST,	07,		"btc",
 | |
| 0,	CALFOP,		030+(0232<<8),	"callf",
 | |
| 0,	CALFOP,		050+(0352<<8),	"jmpf",
 | |
| 0,	CALLOP,		020+(0350<<8),	"call",
 | |
| 0,	CALLOP,		040+(0351<<8),	"jmp",
 | |
| 0,	ENTER,		0310,		"enter",
 | |
| 0,	EXTEND,		0267,		"movzx",
 | |
| 0,	EXTEND,		0266,		"movzxb",
 | |
| 0,	EXTEND,		0277,		"movsx",
 | |
| 0,	EXTEND,		0276,		"movsxb",
 | |
| 0,	EXTOP,		0002,		"lar",
 | |
| 0,	EXTOP,		0003,		"lsl",
 | |
| 0,	EXTOP,		0274,		"bsf",
 | |
| 0,	EXTOP,		0275,		"bsr",
 | |
| 0,	EXTOP1,		0000,		"sldt",
 | |
| 0,	EXTOP1,		0001,		"sgdt",
 | |
| 0,	EXTOP1,		0010,		"str",
 | |
| 0,	EXTOP1,		0011,		"sidt",
 | |
| 0,	EXTOP1,		0020,		"lldt",
 | |
| 0,	EXTOP1,		0021,		"lgdt",
 | |
| 0,	EXTOP1,		0030,		"ltr",
 | |
| 0,	EXTOP1,		0031,		"lidt",
 | |
| 0,	EXTOP1,		0040,		"verr",
 | |
| 0,	EXTOP1,		0041,		"smsw",
 | |
| 0,	EXTOP1,		0050,		"verw",
 | |
| 0,	EXTOP1,		0061,		"lmsw",
 | |
| 0,	IMUL,		00,		"imul",
 | |
| 0,	IMULB,		050,		"imulb",
 | |
| 0,	INCOP,		000,		"incb",
 | |
| 0,	INCOP,		001,		"inc",
 | |
| 0,	INCOP,		010,		"decb",
 | |
| 0,	INCOP,		011,		"dec",
 | |
| 0,	INT,		0,		"int",
 | |
| 0,	IOOP,		0344,		"inb",
 | |
| 0,	IOOP,		0345,		"in",
 | |
| 0,	IOOP,		0346,		"outb",
 | |
| 0,	IOOP,		0347,		"out",
 | |
| 0,	JOP,		0340,		"loopne",
 | |
| 0,	JOP,		0340,		"loopnz",
 | |
| 0,	JOP,		0341,		"loope",
 | |
| 0,	JOP,		0341,		"loopz",
 | |
| 0,	JOP,		0342,		"loop",
 | |
| 0,	JOP,		0343,		"jcxz",
 | |
| 0,	JOP,		0343,		"jecxz",
 | |
| 0,	JOP2,		0000,		"jo",
 | |
| 0,	JOP2,		0001,		"jno",
 | |
| 0,	JOP2,		0002,		"jb",
 | |
| 0,	JOP2,		0002,		"jc",
 | |
| 0,	JOP2,		0002,		"jnae",
 | |
| 0,	JOP2,		0003,		"jae",
 | |
| 0,	JOP2,		0003,		"jnb",
 | |
| 0,	JOP2,		0003,		"jnc",
 | |
| 0,	JOP2,		0004,		"je",
 | |
| 0,	JOP2,		0004,		"jz",
 | |
| 0,	JOP2,		0005,		"jne",
 | |
| 0,	JOP2,		0005,		"jnz",
 | |
| 0,	JOP2,		0006,		"jbe",
 | |
| 0,	JOP2,		0006,		"jna",
 | |
| 0,	JOP2,		0007,		"ja",
 | |
| 0,	JOP2,		0007,		"jnbe",
 | |
| 0,	JOP2,		0010,		"js",
 | |
| 0,	JOP2,		0011,		"jns",
 | |
| 0,	JOP2,		0012,		"jp",
 | |
| 0,	JOP2,		0012,		"jpe",
 | |
| 0,	JOP2,		0013,		"jnp",
 | |
| 0,	JOP2,		0013,		"jpo",
 | |
| 0,	JOP2,		0014,		"jl",
 | |
| 0,	JOP2,		0014,		"jnge",
 | |
| 0,	JOP2,		0015,		"jge",
 | |
| 0,	JOP2,		0015,		"jnl",
 | |
| 0,	JOP2,		0016,		"jle",
 | |
| 0,	JOP2,		0016,		"jng",
 | |
| 0,	JOP2,		0017,		"jg",
 | |
| 0,	JOP2,		0017,		"jnle",
 | |
| 0,	LEAOP,		0142,		"bound",
 | |
| 0,	LEAOP,		0215,		"lea",
 | |
| 0,	LEAOP,		0304,		"les",
 | |
| 0,	LEAOP,		0305,		"lds",
 | |
| 0,	LEAOP2,		0262,		"lss",
 | |
| 0,	LEAOP2,		0264,		"lfs",
 | |
| 0,	LEAOP2,		0265,		"lgs",
 | |
| 0,	LSHFT,		0244,		"shld",
 | |
| 0,	LSHFT,		0254,		"shrd",
 | |
| 0,	MOV,		0,		"movb",
 | |
| 0,	MOV,		1,		"mov",
 | |
| 0,	NOOP_1,		0140,		"pusha",
 | |
| 0,	NOOP_1,		0140,		"pushad",
 | |
| 0,	NOOP_1,		0141,		"popa",
 | |
| 0,	NOOP_1,		0141,		"popad",
 | |
| 0,	NOOP_1,		0156,		"outsb",
 | |
| 0,	NOOP_1,		0157,		"outs",
 | |
| 0,	NOOP_1,		0220,		"nop",
 | |
| 0,	NOOP_1,		0230,		"cbw",
 | |
| 0,	NOOP_1,		0230,		"cwde", /* same opcode as cbw! */
 | |
| 0,	NOOP_1,		0231,		"cdq",	/* same opcode as cwd! */
 | |
| 0,	NOOP_1,		0231,		"cwd",
 | |
| 0,	NOOP_1,		0233,		"wait",
 | |
| 0,	NOOP_1,		0234,		"pushf",
 | |
| 0,	NOOP_1,		0235,		"popf",
 | |
| 0,	NOOP_1,		0236,		"sahf",
 | |
| 0,	NOOP_1,		0237,		"lahf",
 | |
| 0,	NOOP_1,		0244,		"movsb",
 | |
| 0,	NOOP_1,		0245,		"movs",
 | |
| 0,	NOOP_1,		0246,		"cmpsb",
 | |
| 0,	NOOP_1,		0154,		"insb",
 | |
| 0,	NOOP_1,		0247,		"cmps",
 | |
| 0,	NOOP_1,		0155,		"ins",
 | |
| 0,	NOOP_1,		0252,		"stosb",
 | |
| 0,	NOOP_1,		0253,		"stos",
 | |
| 0,	NOOP_1,		0254,		"lodsb",
 | |
| 0,	NOOP_1,		0255,		"lods",
 | |
| 0,	NOOP_1,		0256,		"scasb",
 | |
| 0,	NOOP_1,		0257,		"scas",
 | |
| 0,	NOOP_1,		0311,		"leave",
 | |
| 0,	NOOP_1,		0316,		"into",
 | |
| 0,	NOOP_1,		0317,		"iret",
 | |
| 0,	NOOP_1,		0317,		"iretd",
 | |
| 0,	NOOP_1,		0327,		"xlat",
 | |
| 0,	NOOP_1,		0364,		"hlt",
 | |
| 0,	NOOP_1,		0365,		"cmc",
 | |
| 0,	NOOP_1,		0370,		"clc",
 | |
| 0,	NOOP_1,		0371,		"stc",
 | |
| 0,	NOOP_1,		0372,		"cli",
 | |
| 0,	NOOP_1,		0373,		"sti",
 | |
| 0,	NOOP_1,		0374,		"cld",
 | |
| 0,	NOOP_1,		0375,		"std",
 | |
| 0,	NOOP_1,		047,		"daa",
 | |
| 0,	NOOP_1,		057,		"das",
 | |
| 0,	NOOP_1,		067,		"aaa",
 | |
| 0,	NOOP_1,		077,		"aas",
 | |
| 0,	NOOP_2,		017+(06<<8),	"clts",
 | |
| 0,	NOOP_2,		0324+(012<<8),	"aam",
 | |
| 0,	NOOP_2,		0325+(012<<8),	"aad",
 | |
| 0,	NOTOP,		020,		"notb",
 | |
| 0,	NOTOP,		021,		"not",
 | |
| 0,	NOTOP,		030,		"negb",
 | |
| 0,	NOTOP,		031,		"neg",
 | |
| 0,	NOTOP,		040,		"mulb",
 | |
| 0,	NOTOP,		041,		"mul",
 | |
| 0,	NOTOP,		060,		"divb",
 | |
| 0,	NOTOP,		061,		"div",
 | |
| 0,	NOTOP,		070,		"idivb",
 | |
| 0,	NOTOP,		071,		"idiv",
 | |
| 0,	PREFIX,		0144,		"fseg",
 | |
| 0,	PREFIX,		0145,		"gseg",
 | |
| 0,	OTOGGLE,	0146,		"o16",	/* operand size toggle */
 | |
| 0,	OTOGGLE,	0346,		"o32",	/* operand size toggle */
 | |
| 0,	ATOGGLE,	0147,		"a16",	/* address size toggle */
 | |
| 0,	ATOGGLE,	0347,		"a32",	/* address size toggle */
 | |
| 0,	PREFIX,		0360,		"lock",
 | |
| 0,	PREFIX,		0362,		"repne",
 | |
| 0,	PREFIX,		0362,		"repnz",
 | |
| 0,	PREFIX,		0363,		"rep",
 | |
| 0,	PREFIX,		0363,		"repe",
 | |
| 0,	PREFIX,		0363,		"repz",
 | |
| 0,	PREFIX,		046,		"eseg",
 | |
| 0,	PREFIX,		056,		"cseg",
 | |
| 0,	PREFIX,		066,		"sseg",
 | |
| 0,	PREFIX,		076,		"dseg",
 | |
| 0,	PUSHOP,		0,		"push",
 | |
| 0,	PUSHOP,		1,		"pop",
 | |
| 0,	RET,		0303,		"ret",
 | |
| 0,	RET,		0313,		"retf",
 | |
| 0,	ROLOP,		000,		"rolb",
 | |
| 0,	ROLOP,		001,		"rol",
 | |
| 0,	ROLOP,		010,		"rorb",
 | |
| 0,	ROLOP,		011,		"ror",
 | |
| 0,	ROLOP,		020,		"rclb",
 | |
| 0,	ROLOP,		021,		"rcl",
 | |
| 0,	ROLOP,		030,		"rcrb",
 | |
| 0,	ROLOP,		031,		"rcr",
 | |
| 0,	ROLOP,		040,		"salb",
 | |
| 0,	ROLOP,		040,		"shlb",
 | |
| 0,	ROLOP,		041,		"sal",
 | |
| 0,	ROLOP,		041,		"shl",
 | |
| 0,	ROLOP,		050,		"shrb",
 | |
| 0,	ROLOP,		051,		"shr",
 | |
| 0,	ROLOP,		070,		"sarb",
 | |
| 0,	ROLOP,		071,		"sar",
 | |
| 0,	SETCC,		0000,		"seto",
 | |
| 0,	SETCC,		0001,		"setno",
 | |
| 0,	SETCC,		0002,		"setb",
 | |
| 0,	SETCC,		0002,		"setnae",
 | |
| 0,	SETCC,		0003,		"setae",
 | |
| 0,	SETCC,		0003,		"setnb",
 | |
| 0,	SETCC,		0004,		"sete",
 | |
| 0,	SETCC,		0004,		"setz",
 | |
| 0,	SETCC,		0005,		"setne",
 | |
| 0,	SETCC,		0005,		"setnz",
 | |
| 0,	SETCC,		0006,		"setbe",
 | |
| 0,	SETCC,		0006,		"setna",
 | |
| 0,	SETCC,		0007,		"seta",
 | |
| 0,	SETCC,		0007,		"setnbe",
 | |
| 0,	SETCC,		0010,		"sets",
 | |
| 0,	SETCC,		0011,		"setns",
 | |
| 0,	SETCC,		0012,		"setp",
 | |
| 0,	SETCC,		0012,		"setpe",
 | |
| 0,	SETCC,		0013,		"setnp",
 | |
| 0,	SETCC,		0013,		"setpo",
 | |
| 0,	SETCC,		0014,		"setl",
 | |
| 0,	SETCC,		0014,		"setnge",
 | |
| 0,	SETCC,		0015,		"setge",
 | |
| 0,	SETCC,		0015,		"setnl",
 | |
| 0,	SETCC,		0016,		"setle",
 | |
| 0,	SETCC,		0016,		"setng",
 | |
| 0,	SETCC,		0017,		"setg",
 | |
| 0,	SETCC,		0017,		"setnle",
 | |
| 0,	TEST,		0,		"testb",
 | |
| 0,	TEST,		1,		"test",
 | |
| 0,	XCHG,		0,		"xchgb",
 | |
| 0,	XCHG,		1,		"xchg",
 | |
| 0,	ARPLOP,		0143,		"arpl",
 | |
| 
 | |
| /* Intel 80[23]87 coprocessor keywords */
 | |
| 
 | |
| 0,	ST,		0,			"st",
 | |
| 
 | |
| 0,	FNOOP,		FESC+1+(0xF0<<8),	"f2xm1",
 | |
| 0,	FNOOP,		FESC+1+(0xE1<<8),	"fabs",
 | |
| 0,	FNOOP,		FESC+1+(0xE0<<8),	"fchs",
 | |
| 0,	FNOOP,		FESC+3+(0xE2<<8),	"fclex",
 | |
| 0,	FNOOP,		FESC+6+(0xD9<<8),	"fcompp",
 | |
| 0,	FNOOP,		FESC+2+(0xE9<<8),	"fucompp",
 | |
| 0,	FNOOP,		FESC+1+(0xF6<<8),	"fdecstp",
 | |
| 0,	FNOOP,		FESC+3+(0xE1<<8),	"fdisi",
 | |
| 0,	FNOOP,		FESC+3+(0xE0<<8),	"feni",
 | |
| 0,	FNOOP,		FESC+1+(0xF7<<8),	"fincstp",
 | |
| 0,	FNOOP,		FESC+3+(0xE3<<8),	"finit",
 | |
| 0,	FNOOP,		FESC+1+(0xE8<<8),	"fld1",
 | |
| 0,	FNOOP,		FESC+1+(0xEA<<8),	"fldl2e",
 | |
| 0,	FNOOP,		FESC+1+(0xE9<<8),	"fldl2t",
 | |
| 0,	FNOOP,		FESC+1+(0xEC<<8),	"fldlg2",
 | |
| 0,	FNOOP,		FESC+1+(0xED<<8),	"fldln2",
 | |
| 0,	FNOOP,		FESC+1+(0xEB<<8),	"fldpi",
 | |
| 0,	FNOOP,		FESC+1+(0xEE<<8),	"fldz",
 | |
| 0,	FNOOP,		FESC+1+(0xD0<<8),	"fnop",
 | |
| 0,	FNOOP,		FESC+1+(0xF3<<8),	"fpatan",
 | |
| 0,	FNOOP,		FESC+1+(0xFF<<8),	"fcos",
 | |
| 0,	FNOOP,		FESC+1+(0xFE<<8),	"fsin",
 | |
| 0,	FNOOP,		FESC+1+(0xFB<<8),	"fsincos",
 | |
| 0,	FNOOP,		FESC+1+(0xF8<<8),	"fprem",
 | |
| 0,	FNOOP,		FESC+1+(0xF5<<8),	"fprem1",
 | |
| 0,	FNOOP,		FESC+1+(0xF2<<8),	"fptan",
 | |
| 0,	FNOOP,		FESC+1+(0xFC<<8),	"frndint",
 | |
| 0,	FNOOP,		FESC+1+(0xFD<<8),	"fscale",
 | |
| 0,	FNOOP,		FESC+1+(0xFA<<8),	"fsqrt",
 | |
| 0,	FNOOP,		FESC+1+(0xE4<<8),	"ftst",
 | |
| 0,	FNOOP,		FESC+1+(0xE5<<8),	"fxam",
 | |
| 0,	FNOOP,		FESC+1+(0xF4<<8),	"fxtract",
 | |
| 0,	FNOOP,		FESC+1+(0xF1<<8),	"fyl2x",
 | |
| 0,	FNOOP,		FESC+1+(0xF9<<8),	"fyl2xp1",
 | |
| 
 | |
| 0,	FMEM,		FESC+6+(0<<11),		"fiadds",
 | |
| 0,	FMEM,		FESC+2+(0<<11),		"fiaddl",
 | |
| 0,	FMEM,		FESC+0+(0<<11),		"fadds",
 | |
| 0,	FMEM,		FESC+4+(0<<11),		"faddd",
 | |
| 0,	FMEM,		FESC+7+(4<<11),		"fbld",
 | |
| 0,	FMEM,		FESC+7+(6<<11),		"fbstp",
 | |
| 0,	FMEM,		FESC+6+(2<<11),		"ficoms",
 | |
| 0,	FMEM,		FESC+2+(2<<11),		"ficoml",
 | |
| 0,	FMEM,		FESC+0+(2<<11),		"fcoms",
 | |
| 0,	FMEM,		FESC+4+(2<<11),		"fcomd",
 | |
| 0,	FMEM,		FESC+6+(3<<11),		"ficomps",
 | |
| 0,	FMEM,		FESC+2+(3<<11),		"ficompl",
 | |
| 0,	FMEM,		FESC+0+(3<<11),		"fcomps",
 | |
| 0,	FMEM,		FESC+4+(3<<11),		"fcompd",
 | |
| 0,	FMEM,		FESC+6+(6<<11),		"fidivs",
 | |
| 0,	FMEM,		FESC+2+(6<<11),		"fidivl",
 | |
| 0,	FMEM,		FESC+0+(6<<11),		"fdivs",
 | |
| 0,	FMEM,		FESC+4+(6<<11),		"fdivd",
 | |
| 0,	FMEM,		FESC+6+(7<<11),		"fidivrs",
 | |
| 0,	FMEM,		FESC+2+(7<<11),		"fidivrl",
 | |
| 0,	FMEM,		FESC+0+(7<<11),		"fdivrs",
 | |
| 0,	FMEM,		FESC+4+(7<<11),		"fdivrd",
 | |
| 0,	FMEM,		FESC+7+(5<<11),		"fildq",
 | |
| 0,	FMEM,		FESC+7+(0<<11),		"filds",
 | |
| 0,	FMEM,		FESC+3+(0<<11),		"fildl",
 | |
| 0,	FMEM,		FESC+1+(0<<11),		"flds",
 | |
| 0,	FMEM,		FESC+5+(0<<11),		"fldd",
 | |
| 0,	FMEM,		FESC+3+(5<<11),		"fldx",
 | |
| 0,	FMEM,		FESC+1+(5<<11),		"fldcw",
 | |
| 0,	FMEM,		FESC+1+(4<<11),		"fldenv",
 | |
| 0,	FMEM,		FESC+6+(1<<11),		"fimuls",
 | |
| 0,	FMEM,		FESC+2+(1<<11),		"fimull",
 | |
| 0,	FMEM,		FESC+0+(1<<11),		"fmuls",
 | |
| 0,	FMEM,		FESC+4+(1<<11),		"fmuld",
 | |
| 0,	FMEM,		FESC+5+(4<<11),		"frstor",
 | |
| 0,	FMEM,		FESC+5+(6<<11),		"fsave",
 | |
| 0,	FMEM,		FESC+7+(2<<11),		"fists",
 | |
| 0,	FMEM,		FESC+3+(2<<11),		"fistl",
 | |
| 0,	FMEM,		FESC+1+(2<<11),		"fsts",
 | |
| 0,	FMEM,		FESC+5+(2<<11),		"fstd",
 | |
| 0,	FMEM,		FESC+7+(7<<11),		"fistpq",
 | |
| 0,	FMEM,		FESC+7+(3<<11),		"fistps",
 | |
| 0,	FMEM,		FESC+3+(3<<11),		"fistpl",
 | |
| 0,	FMEM,		FESC+1+(3<<11),		"fstps",
 | |
| 0,	FMEM,		FESC+5+(3<<11),		"fstpd",
 | |
| 0,	FMEM,		FESC+3+(7<<11),		"fstpx",
 | |
| 0,	FMEM,		FESC+1+(7<<11),		"fstcw",
 | |
| 0,	FMEM,		FESC+1+(6<<11),		"fstenv",
 | |
| 0,	FMEM_AX,	FESC+5+(7<<11),		"fstsw",
 | |
| 0,	FMEM,		FESC+6+(4<<11),		"fisubs",
 | |
| 0,	FMEM,		FESC+2+(4<<11),		"fisubl",
 | |
| 0,	FMEM,		FESC+0+(4<<11),		"fsubs",
 | |
| 0,	FMEM,		FESC+4+(4<<11),		"fsubd",
 | |
| 0,	FMEM,		FESC+6+(5<<11),		"fisubrs",
 | |
| 0,	FMEM,		FESC+2+(5<<11),		"fisubrl",
 | |
| 0,	FMEM,		FESC+0+(5<<11),		"fsubrs",
 | |
| 0,	FMEM,		FESC+4+(5<<11),		"fsubrd",
 | |
| 
 | |
| 0,	FST_I,		FESC+1+(0xC0<<8),	"fld",
 | |
| 0,	FST_I,		FESC+5+(0xD0<<8),	"fst",
 | |
| 0,	FST_I,		FESC+5+(0xD8<<8),	"fstp",
 | |
| 0,	FST_I,		FESC+1+(0xC8<<8),	"fxch",
 | |
| 0,	FST_I,		FESC+0+(0xD0<<8),	"fcom",
 | |
| 0,	FST_I,		FESC+5+(0xE0<<8),	"fucom",
 | |
| 0,	FST_I,		FESC+0+(0xD8<<8),	"fcomp",
 | |
| 0,	FST_I,		FESC+5+(0xE8<<8),	"fucomp",
 | |
| 0,	FST_I,		FESC+5+(0xC0<<8),	"ffree",
 | |
| 
 | |
| 0,	FST_ST,		FESC+0+(0xC0<<8),	"fadd",
 | |
| 0,	FST_ST,		FESC+2+(0xC0<<8),	"faddp",
 | |
| 0,	FST_ST2,	FESC+0+(0xF0<<8),	"fdiv",
 | |
| 0,	FST_ST2,	FESC+2+(0xF0<<8),	"fdivp",
 | |
| 0,	FST_ST2,	FESC+0+(0xF8<<8),	"fdivr",
 | |
| 0,	FST_ST2,	FESC+2+(0xF8<<8),	"fdivrp",
 | |
| 0,	FST_ST,		FESC+0+(0xC8<<8),	"fmul",
 | |
| 0,	FST_ST,		FESC+2+(0xC8<<8),	"fmulp",
 | |
| 0,	FST_ST2,	FESC+0+(0xE0<<8),	"fsub",
 | |
| 0,	FST_ST2,	FESC+2+(0xE0<<8),	"fsubp",
 | |
| 0,	FST_ST2,	FESC+0+(0xE8<<8),	"fsubr",
 | |
| 0,	FST_ST2,	FESC+2+(0xE8<<8),	"fsubrp",
 | |
| 
 | |
| /* Intel 486 instructions */
 | |
| 0,	EXTOPBW,	0xC0,		"xaddb",
 | |
| 0,	EXTOPBW,	0xC1,		"xadd",
 | |
| 0,	EXTOPBW,	0xB0,		"cmpxchgb",
 | |
| 0,	EXTOPBW,	0xB1,		"cmpxchg",
 | |
| 0,	BSWAP,		0xC8,		"bswap",
 | |
| 0,	NOOP_2,		017+(010<<8),	"invd",
 | |
| 0,	EXTOP1,		071,		"invlpg",
 | |
| 0,	NOOP_2,		017+(011<<8),	"wbinvd",
 | |
| 
 |