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"},
 | |
| 
 |