1021 lines · 24.7 KB · C
RawDownload
#include	"l.h" uchar	ynone[] ={	Ynone,	Ynone,	Zlit,	1,	0};uchar	ytext[] ={	Ymb,	Yi32,	Zpseudo,1,	0};uchar	ynop[] ={	Ynone,	Ynone,	Zpseudo,1,	Ynone,	Yml,	Zpseudo,1,	Ynone,	Yrf,	Zpseudo,1,	Yml,	Ynone,	Zpseudo,1,	Yrf,	Ynone,	Zpseudo,1,	0};uchar	yxorb[] ={	Yi32,	Yal,	Zib_,	1,	Yi32,	Ymb,	Zibo_m,	2,	Yrb,	Ymb,	Zr_m,	1,	Ymb,	Yrb,	Zm_r,	1,	0};uchar	yxorl[] ={	Yi8,	Yml,	Zibo_m,	2,	Yi32,	Yax,	Zil_,	1,	Yi32,	Yml,	Zilo_m,	2,	Yrl,	Yml,	Zr_m,	1,	Yml,	Yrl,	Zm_r,	1,	0};uchar	yaddl[] ={	Yi8,	Yml,	Zibo_m,	2,	Yi32,	Yax,	Zil_,	1,	Yi32,	Yml,	Zilo_m,	2,	Yrl,	Yml,	Zr_m,	1,	Yml,	Yrl,	Zm_r,	1,	0};uchar	yincb[] ={	Ynone,	Ymb,	Zo_m,	2,	0};uchar	yincl[] ={	Ynone,	Yrl,	Z_rp,	1,	Ynone,	Yml,	Zo_m,	2,	0};uchar	ycmpb[] ={	Yal,	Yi32,	Z_ib,	1,	Ymb,	Yi32,	Zm_ibo,	2,	Ymb,	Yrb,	Zm_r,	1,	Yrb,	Ymb,	Zr_m,	1,	0};uchar	ycmpl[] ={	Yml,	Yi8,	Zm_ibo,	2,	Yax,	Yi32,	Z_il,	1,	Yml,	Yi32,	Zm_ilo,	2,	Yml,	Yrl,	Zm_r,	1,	Yrl,	Yml,	Zr_m,	1,	0};uchar	yshb[] ={	Yi1,	Ymb,	Zo_m,	2,	Yi32,	Ymb,	Zibo_m,	2,	Ycx,	Ymb,	Zo_m,	2,	0};uchar	yshl[] ={	Yi1,	Yml,	Zo_m,	2,	Yi32,	Yml,	Zibo_m,	2,	Ycl,	Yml,	Zo_m,	2,	Ycx,	Yml,	Zo_m,	2,	0};uchar	ytestb[] ={	Yi32,	Yal,	Zib_,	1,	Yi32,	Ymb,	Zibo_m,	2,	Yrb,	Ymb,	Zr_m,	1,	Ymb,	Yrb,	Zm_r,	1,	0};uchar	ytestl[] ={	Yi32,	Yax,	Zil_,	1,	Yi32,	Yml,	Zilo_m,	2,	Yrl,	Yml,	Zr_m,	1,	Yml,	Yrl,	Zm_r,	1,	0};uchar	ymovb[] ={	Yrb,	Ymb,	Zr_m,	1,	Ymb,	Yrb,	Zm_r,	1,	Yi32,	Yrb,	Zib_rp,	1,	Yi32,	Ymb,	Zibo_m,	2,	0};uchar	ymovw[] ={	Yrl,	Yml,	Zr_m,	1,	Yml,	Yrl,	Zm_r,	1,	Yi0,	Yrl,	Zclr,	1+2,//	Yi0,	Yml,	Zibo_m,	2,	// shorter but slower AND $0,dst	Yi32,	Yrl,	Zil_rp,	1,	Yi32,	Yml,	Zilo_m,	2,	Yiauto,	Yrl,	Zaut_r,	2,	0};uchar	ymovl[] ={	Yrl,	Yml,	Zr_m,	1,	Yml,	Yrl,	Zm_r,	1,	Yi0,	Yrl,	Zclr,	1+2,//	Yi0,	Yml,	Zibo_m,	2,	// shorter but slower AND $0,dst	Yi32,	Yrl,	Zil_rp,	1,	Yi32,	Yml,	Zilo_m,	2,	Yml,	Yxr,	Zm_r_xm,	2,	// XMM MOVD (32 bit)	Yxr,	Yml,	Zr_m_xm,	2,	// XMM MOVD (32 bit)	Yiauto,	Yrl,	Zaut_r,	2,	0};uchar	ymovq[] ={	Yxr,	Ym,	Zr_m_xm_nr,	2,	// MOVQ xmm store	Yxm,	Yxr,	Zm_r_xm,	2,	// MOVQ xmm load	0};uchar	ymovqq[] ={	Yxm,	Yyr,	Zm_r_xm,	2,	// MOVQQx ymm load	Yyr,	Ym,	Zr_m_xm_nr,	2,	// MOVQQx ymm store	0};uchar	ym_rl[] ={	Ym,	Yrl,	Zm_r,	1,	0};uchar	yrl_m[] ={	Yrl,	Ym,	Zr_m,	1,	0};uchar	ymb_rl[] ={	Ymb,	Yrl,	Zm_r,	1,	0};uchar	yml_rl[] ={	Yml,	Yrl,	Zm_r,	1,	0};uchar	ycrc[] ={	Yml,	Yrl,	Zm_r_xm,	3,	0};uchar	yrl_ml[] ={	Yrl,	Yml,	Zr_m,	1,	0};uchar	yml_mb[] ={	Yrb,	Ymb,	Zr_m,	1,	Ymb,	Yrb,	Zm_r,	1,	0};uchar	yrb_mb[] ={	Yrb,	Ymb,	Zr_m,	1,	0};uchar	yml_ml[] ={	Yrl,	Yml,	Zr_m,	1,	Yml,	Yrl,	Zm_r,	1,	0};uchar	ydivl[] ={	Yml,	Ynone,	Zm_o,	2,	0};uchar	ydivb[] ={	Ymb,	Ynone,	Zm_o,	2,	0};uchar	yimul[] ={	Yml,	Ynone,	Zm_o,	2,	Yi8,	Yrl,	Zib_rr,	1,	Yi32,	Yrl,	Zil_rr,	1,	0};uchar	ybyte[] ={	Yi32,	Ynone,	Zbyte,	1,	0};uchar	yin[] ={	Yi32,	Ynone,	Zib_,	1,	Ynone,	Ynone,	Zlit,	1,	0};uchar	yint[] ={	Yi32,	Ynone,	Zib_,	1,	0};uchar	ypushl[] ={	Yrl,	Ynone,	Zrp_,	1,	Ym,	Ynone,	Zm_o,	2,	Yi8,	Ynone,	Zib_,	1,	Yi32,	Ynone,	Zil_,	1,	0};uchar	ypopl[] ={	Ynone,	Yrl,	Z_rp,	1,	Ynone,	Ym,	Zo_m,	2,	0};uchar	ybswap[] ={	Ynone,	Yrl,	Z_rp,	1,	0,};uchar	yscond[] ={	Ynone,	Ymb,	Zo_m,	2,	0};uchar	yjcond[] ={	Ynone,	Ybr,	Zbr,	1,	0};uchar	yloop[] ={	Ynone,	Ybr,	Zloop,	1,	0};uchar	ycall[] ={	Ynone,	Yml,	Zo_m,	2,	Ynone,	Ybr,	Zcall,	1,	0};uchar	yjmp[] ={	Ynone,	Yml,	Zo_m,	2,	Ynone,	Ybr,	Zjmp,	1,	0}; uchar	yfmvd[] ={	Ym,	Yf0,	Zm_o,	2,	Yf0,	Ym,	Zo_m,	2,	Yrf,	Yf0,	Zm_o,	2,	Yf0,	Yrf,	Zo_m,	2,	0};uchar	yfmvdp[] ={	Yf0,	Ym,	Zo_m,	2,	Yf0,	Yrf,	Zo_m,	2,	0};uchar	yfmvf[] ={	Ym,	Yf0,	Zm_o,	2,	Yf0,	Ym,	Zo_m,	2,	0};uchar	yfmvx[] ={	Ym,	Yf0,	Zm_o,	2,	0};uchar	yfmvp[] ={	Yf0,	Ym,	Zo_m,	2,	0};uchar	yfadd[] ={	Ym,	Yf0,	Zm_o,	2,	Yrf,	Yf0,	Zm_o,	2,	Yf0,	Yrf,	Zo_m,	2,	0};uchar	yfaddp[] ={	Yf0,	Yrf,	Zo_m,	2,	0};uchar	yfxch[] ={	Yf0,	Yrf,	Zo_m,	2,	Yrf,	Yf0,	Zm_o,	2,	0};uchar	ycompp[] ={	Yf0,	Yrf,	Zo_m,	2,	/* botch is really f0,f1 */	0};uchar	ystsw[] ={	Ynone,	Ym,	Zo_m,	2,	Ynone,	Yax,	Zlit,	1,	0};uchar	ystcw[] ={	Ynone,	Ym,	Zo_m,	2,	Ym,	Ynone,	Zm_o,	2,	0};uchar	ysvrs[] ={	Ynone,	Ym,	Zo_m,	2,	Ym,	Ynone,	Zm_o,	2,	0};uchar	ymm[] = {	Yxm,	Yxyr,	Zm_r_xm,	2,	0};uchar	yxm[] = {	Yxm,	Yxr,	Zm_r_xm,	1,	0};uchar	yxcvm1[] = {	Yxm,	Yxr,	Zm_r_xm,	2,	0};uchar	yxcvm2[] ={	Yxm,	Yxr,	Zm_r_xm,	2,	0};uchar	yxmq[] = {	Yxm,	Yxr,	Zm_r_xm,	2,	0};uchar	yxr[] = {	Yxr,	Yxr,	Zm_r_xm,	1,	0};uchar	yxr_ml[] ={	Yxr,	Yml,	Zr_m_xm,	1,	0};uchar	yxcmp[] ={	Yxm,	Yxr, Zm_r_xm,	1,	0};uchar	yxcmpi[] ={	Yxm,	Yxr, Zm_r_i_xm,	2,	0};uchar	yxmov[] ={	Yxm,	Yxr,	Zm_r_xm,	1,	Yxr,	Yxm,	Zr_m_xm,	1,	0};uchar	yxcvfl[] = {	Yxm,	Yrl,	Zm_r_xm,	1,	0};uchar	yxcvlf[] ={	Yml,	Yxr,	Zm_r_xm,	1,	0};uchar	yps[] = {	Yxm,	Yxr,	Zm_r_xm,	2,	Yi8,	Yxr,	Zibo_m_xm,	3,	0};uchar	yxrrl[] ={	Yxr,	Yrl,	Zm_r,	1,	0};uchar	ymrxr[] ={	Yxm,	Yxyr,	Zm_r_xm,	2,	0};uchar	yxshuf[] ={	Yxm,	Yxyr,	Zibm_r,	1,	0};uchar	yxshuf2[] ={	Yxm,	Yxyr,	Zm_r_i_xm,	2,	0};uchar	yextrw[] ={	Yxr,	Yrl,	Zibm_r,	1,	0};uchar	ypsdq[] ={	Yi8,	Yxyr,	Zibo_m,	2,	0};uchar	ymskb[] ={	Yxyr,	Yrl,	Zm_r_xm,	2,	0}; Optab optab[] =/*	as, ytab, andproto, opcode */{	{ AXXX },	{ AAAA,		ynone,	Px, 0x37 },	{ AAAD,		ynone,	Px, 0xd5,0x0a },	{ AAAM,		ynone,	Px, 0xd4,0x0a },	{ AAAS,		ynone,	Px, 0x3f },	{ AADCB,	yxorb,	Pb, 0x14,0x80,(02),0x10,0x10 },	{ AADCL,	yxorl,	Px, 0x83,(02),0x15,0x81,(02),0x11,0x13 },	{ AADCW,	yxorl,	Pe, 0x83,(02),0x15,0x81,(02),0x11,0x13 },	{ AADDB,	yxorb,	Px, 0x04,0x80,(00),0x00,0x02 },	{ AADDL,	yaddl,	Px, 0x83,(00),0x05,0x81,(00),0x01,0x03 },	{ AADDW,	yaddl,	Pe, 0x83,(00),0x05,0x81,(00),0x01,0x03 },	{ AADJSP },	{ AANDB,	yxorb,	Pb, 0x24,0x80,(04),0x20,0x22 },	{ AANDL,	yxorl,	Px, 0x83,(04),0x25,0x81,(04),0x21,0x23 },	{ AANDW,	yxorl,	Pe, 0x83,(04),0x25,0x81,(04),0x21,0x23 },	{ AARPL,	yrl_ml,	Px, 0x63 },	{ ABOUNDL,	yrl_m,	Px, 0x62 },	{ ABOUNDW,	yrl_m,	Pe, 0x62 },	{ ABSFL,	yml_rl,	Pm, 0xbc },	{ ABSFW,	yml_rl,	Pq, 0xbc },	{ ABSRL,	yml_rl,	Pm, 0xbd },	{ ABSRW,	yml_rl,	Pq, 0xbd },	{ ABTL,		yml_rl,	Pm, 0xa3 },	{ ABTW,		yml_rl,	Pq, 0xa3 },	{ ABTCL,	yml_rl,	Pm, 0xbb },	{ ABTCW,	yml_rl,	Pq, 0xbb },	{ ABTRL,	yml_rl,	Pm, 0xb3 },	{ ABTRW,	yml_rl,	Pq, 0xb3 },	{ ABTSL,	yml_rl,	Pm, 0xab },	{ ABTSW,	yml_rl,	Pq, 0xab },	{ ABYTE,	ybyte,	Px, 1 },	{ ACALL,	ycall,	Px, 0xff,(02),0xe8 },	{ ACLC,		ynone,	Px, 0xf8 },	{ ACLD,		ynone,	Px, 0xfc },	{ ACLI,		ynone,	Px, 0xfa },	{ ACLTS,	ynone,	Pm, 0x06 },	{ ACMC,		ynone,	Px, 0xf5 },	{ ACMPB,	ycmpb,	Pb, 0x3c,0x80,(07),0x38,0x3a },	{ ACMPL,	ycmpl,	Px, 0x83,(07),0x3d,0x81,(07),0x39,0x3b },	{ ACMPW,	ycmpl,	Pe, 0x83,(07),0x3d,0x81,(07),0x39,0x3b },	{ ACMPSB,	ynone,	Pb, 0xa6 },	{ ACMPSL,	ynone,	Px, 0xa7 },	{ ACMPSW,	ynone,	Pe, 0xa7 },	{ ADAA,		ynone,	Px, 0x27 },	{ ADAS,		ynone,	Px, 0x2f },	{ ADATA },

Lines 1–500 of 1021.