#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 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, Yiauto, Yrl, Zaut_r, 2, 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 yrl_ml[] ={ Yrl, Yml, Zr_m, 1, 0};uchar yml_mb[] ={ Yrb, Ymb, Zr_m, 1, Ymb, Yrb, Zm_r, 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 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}; 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 }, { ADECB, yincb, Pb, 0xfe,(01) }, { ADECL, yincl, Px, 0x48,0xff,(01) }, { ADECW, yincl, Pe, 0x48,0xff,(01) }, { ADIVB, ydivb, Pb, 0xf6,(06) }, { ADIVL, ydivl, Px, 0xf7,(06) }, { ADIVW, ydivl, Pe, 0xf7,(06) }, { AENTER }, /* botch */ { AGLOBL }, { AGOK }, { AHISTORY }, { AHLT, ynone, Px, 0xf4 }, { AIDIVB, ydivb, Pb, 0xf6,(07) }, { AIDIVL, ydivl, Px, 0xf7,(07) }, { AIDIVW, ydivl, Pe, 0xf7,(07) }, { AIMULB, ydivb, Pb, 0xf6,(05) }, { AIMULL, yimul, Px, 0xf7,(05),0x6b,0x69 }, { AIMULW, yimul, Pe, 0xf7,(05),0x6b,0x69 }, { AINB, yin, Pb, 0xe4,0xec }, { AINL, yin, Px, 0xe5,0xed }, { AINW, yin, Pe, 0xe5,0xed }, { AINCB, yincb, Pb, 0xfe,(00) }, { AINCL, yincl, Px, 0x40,0xff,(00) }, { AINCW, yincl, Pe, 0x40,0xff,(00) }, { AINSB, ynone, Pb, 0x6c }, { AINSL, ynone, Px, 0x6d }, { AINSW, ynone, Pe, 0x6d }, { AINT, yint, Px, 0xcd }, { AINTO, ynone, Px, 0xce }, { AIRETL, ynone, Px, 0xcf }, { AIRETW, ynone, Pe, 0xcf }, { AJCC, yjcond, Px, 0x73,0x83,(00) }, { AJCS, yjcond, Px, 0x72,0x82 }, { AJCXZ, yloop, Px, 0xe3 }, { AJEQ, yjcond, Px, 0x74,0x84 }, { AJGE, yjcond, Px, 0x7d,0x8d }, { AJGT, yjcond, Px, 0x7f,0x8f }, { AJHI, yjcond, Px, 0x77,0x87 }, { AJLE, yjcond, Px, 0x7e,0x8e }, { AJLS, yjcond, Px, 0x76,0x86 }, { AJLT, yjcond, Px, 0x7c,0x8c }, { AJMI, yjcond, Px, 0x78,0x88 }, { AJMP, yjmp, Px, 0xff,(04),0xeb,0xe9 }, { AJNE, yjcond, Px, 0x75,0x85 }, { AJOC, yjcond, Px, 0x71,0x81,(00) }, { AJOS, yjcond, Px, 0x70,0x80,(00) }, { AJPC, yjcond, Px, 0x7b,0x8b }, { AJPL, yjcond, Px, 0x79,0x89 }, { AJPS, yjcond, Px, 0x7a,0x8a }, { ALAHF, ynone, Px, 0x9f }, { ALARL, yml_rl, Pm, 0x02 }, { ALARW, yml_rl, Pq, 0x02 }, { ALEAL, ym_rl, Px, 0x8d }, { ALEAW, ym_rl, Pe, 0x8d }, { ALEAVEL, ynone, Px, 0xc9 }, { ALEAVEW, ynone, Pe, 0xc9 }, { ALOCK, ynone, Px, 0xf0 }, { ALODSB, ynone, Pb, 0xac }, { ALODSL, ynone, Px, 0xad }, { ALODSW, ynone, Pe, 0xad }, { ALONG, ybyte, Px, 4 }, { ALOOP, yloop, Px, 0xe2 }, { ALOOPEQ, yloop, Px, 0xe1 }, { ALOOPNE, yloop, Px, 0xe0 }, { ALSLL, yml_rl, Pm, 0x03 }, { ALSLW, yml_rl, Pq, 0x03 }, { AMOVB, ymovb, Pb, 0x88,0x8a,0xb0,0xc6,(00) }, { AMOVL, ymovl, Px, 0x89,0x8b,0x31,0x83,(04),0xb8,0xc7,(00) }, { AMOVW, ymovl, Pe, 0x89,0x8b,0x31,0x83,(04),0xb8,0xc7,(00) }, { AMOVBLSX, ymb_rl, Pm, 0xbe }, { AMOVBLZX, ymb_rl, Pm, 0xb6 }, { AMOVBWSX, ymb_rl, Pq, 0xbe }, { AMOVBWZX, ymb_rl, Pq, 0xb6 }, { AMOVWLSX, yml_rl, Pm, 0xbf }, { AMOVWLZX, yml_rl, Pm, 0xb7 }, { AMOVSB, ynone, Pb, 0xa4 }, { AMOVSL, ynone, Px, 0xa5 }, { AMOVSW, ynone, Pe, 0xa5 }, { AMULB, ydivb, Pb, 0xf6,(04) }, { AMULL, ydivl, Px, 0xf7,(04) }, { AMULW, ydivl, Pe, 0xf7,(04) }, { ANAME }, { ANEGB, yscond, Px, 0xf6,(03) }, { ANEGL, yscond, Px, 0xf7,(03) }, { ANEGW, yscond, Pe, 0xf7,(03) }, { ANOP, ynop, Px,0,0 }, { ANOTB, yscond, Px, 0xf6,(02) }, { ANOTL, yscond, Px, 0xf7,(02) }, { ANOTW, yscond, Pe, 0xf7,(02) }, { AORB, yxorb, Pb, 0x0c,0x80,(01),0x08,0x0a }, { AORL, yxorl, Px, 0x83,(01),0x0d,0x81,(01),0x09,0x0b }, { AORW, yxorl, Pe, 0x83,(01),0x0d,0x81,(01),0x09,0x0b }, { AOUTB, yin, Pb, 0xe6,0xee }, { AOUTL, yin, Px, 0xe7,0xef }, { AOUTW, yin, Pe, 0xe7,0xef }, { AOUTSB, ynone, Pb, 0x6e }, { AOUTSL, ynone, Px, 0x6f }, { AOUTSW, ynone, Pe, 0x6f }, { APOPAL, ynone, Px, 0x61 }, { APOPAW, ynone, Pe, 0x61 }, { APOPFL, ynone, Px, 0x9d }, { APOPFW, ynone, Pe, 0x9d }, { APOPL, ypopl, Px, 0x58,0x8f,(00) }, { APOPW, ypopl, Pe, 0x58,0x8f,(00) }, { APUSHAL, ynone, Px, 0x60 }, { APUSHAW, ynone, Pe, 0x60 }, { APUSHFL, ynone, Px, 0x9c }, { APUSHFW, ynone, Pe, 0x9c }, { APUSHL, ypushl, Px, 0x50,0xff,(06),0x6a,0x68 }, { APUSHW, ypushl, Pe, 0x50,0xff,(06),0x6a,0x68 }, { ARCLB, yshb, Pb, 0xd0,(02),0xc0,(02),0xd2,(02) }, { ARCLL, yshl, Px, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) }, { ARCLW, yshl, Pe, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) }, { ARCRB, yshb, Pb, 0xd0,(03),0xc0,(03),0xd2,(03) }, { ARCRL, yshl, Px, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) }, { ARCRW, yshl, Pe, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) }, { AREP, ynone, Px, 0xf3 }, { AREPN, ynone, Px, 0xf2 }, { ARET, ynone, Px, 0xc3 }, { AROLB, yshb, Pb, 0xd0,(00),0xc0,(00),0xd2,(00) }, { AROLL, yshl, Px, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) }, { AROLW, yshl, Pe, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) }, { ARORB, yshb, Pb, 0xd0,(01),0xc0,(01),0xd2,(01) }, { ARORL, yshl, Px, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) }, { ARORW, yshl, Pe, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) }, { ASAHF, ynone, Px, 0x9e }, { ASALB, yshb, Pb, 0xd0,(04),0xc0,(04),0xd2,(04) }, { ASALL, yshl, Px, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) }, { ASALW, yshl, Pe, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) }, { ASARB, yshb, Pb, 0xd0,(07),0xc0,(07),0xd2,(07) }, { ASARL, yshl, Px, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) }, { ASARW, yshl, Pe, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) }, { ASBBB, yxorb, Pb, 0x1c,0x80,(03),0x18,0x1a }, { ASBBL, yxorl, Px, 0x83,(03),0x1d,0x81,(03),0x19,0x1b }, { ASBBW, yxorl, Pe, 0x83,(03),0x1d,0x81,(03),0x19,0x1b }, { ASCASB, ynone, Pb, 0xae }, { ASCASL, ynone, Px, 0xaf }, { ASCASW, ynone, Pe, 0xaf }, { ASETCC, yscond, Pm, 0x93,(00) }, { ASETCS, yscond, Pm, 0x92,(00) }, { ASETEQ, yscond, Pm, 0x94,(00) }, { ASETGE, yscond, Pm, 0x9d,(00) }, { ASETGT, yscond, Pm, 0x9f,(00) },Lines 1–500 of 654. Load more
#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 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, Yiauto, Yrl, Zaut_r, 2, 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 yrl_ml[] = { Yrl, Yml, Zr_m, 1, 0 }; uchar yml_mb[] = { Yrb, Ymb, Zr_m, 1, Ymb, Yrb, Zm_r, 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 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 }; 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 }, { ADECB, yincb, Pb, 0xfe,(01) }, { ADECL, yincl, Px, 0x48,0xff,(01) }, { ADECW, yincl, Pe, 0x48,0xff,(01) }, { ADIVB, ydivb, Pb, 0xf6,(06) }, { ADIVL, ydivl, Px, 0xf7,(06) }, { ADIVW, ydivl, Pe, 0xf7,(06) }, { AENTER }, /* botch */ { AGLOBL }, { AGOK }, { AHISTORY }, { AHLT, ynone, Px, 0xf4 }, { AIDIVB, ydivb, Pb, 0xf6,(07) }, { AIDIVL, ydivl, Px, 0xf7,(07) }, { AIDIVW, ydivl, Pe, 0xf7,(07) }, { AIMULB, ydivb, Pb, 0xf6,(05) }, { AIMULL, yimul, Px, 0xf7,(05),0x6b,0x69 }, { AIMULW, yimul, Pe, 0xf7,(05),0x6b,0x69 }, { AINB, yin, Pb, 0xe4,0xec }, { AINL, yin, Px, 0xe5,0xed }, { AINW, yin, Pe, 0xe5,0xed }, { AINCB, yincb, Pb, 0xfe,(00) }, { AINCL, yincl, Px, 0x40,0xff,(00) }, { AINCW, yincl, Pe, 0x40,0xff,(00) }, { AINSB, ynone, Pb, 0x6c }, { AINSL, ynone, Px, 0x6d }, { AINSW, ynone, Pe, 0x6d }, { AINT, yint, Px, 0xcd }, { AINTO, ynone, Px, 0xce }, { AIRETL, ynone, Px, 0xcf }, { AIRETW, ynone, Pe, 0xcf }, { AJCC, yjcond, Px, 0x73,0x83,(00) }, { AJCS, yjcond, Px, 0x72,0x82 }, { AJCXZ, yloop, Px, 0xe3 }, { AJEQ, yjcond, Px, 0x74,0x84 }, { AJGE, yjcond, Px, 0x7d,0x8d }, { AJGT, yjcond, Px, 0x7f,0x8f }, { AJHI, yjcond, Px, 0x77,0x87 }, { AJLE, yjcond, Px, 0x7e,0x8e }, { AJLS, yjcond, Px, 0x76,0x86 }, { AJLT, yjcond, Px, 0x7c,0x8c }, { AJMI, yjcond, Px, 0x78,0x88 }, { AJMP, yjmp, Px, 0xff,(04),0xeb,0xe9 }, { AJNE, yjcond, Px, 0x75,0x85 }, { AJOC, yjcond, Px, 0x71,0x81,(00) }, { AJOS, yjcond, Px, 0x70,0x80,(00) }, { AJPC, yjcond, Px, 0x7b,0x8b }, { AJPL, yjcond, Px, 0x79,0x89 }, { AJPS, yjcond, Px, 0x7a,0x8a }, { ALAHF, ynone, Px, 0x9f }, { ALARL, yml_rl, Pm, 0x02 }, { ALARW, yml_rl, Pq, 0x02 }, { ALEAL, ym_rl, Px, 0x8d }, { ALEAW, ym_rl, Pe, 0x8d }, { ALEAVEL, ynone, Px, 0xc9 }, { ALEAVEW, ynone, Pe, 0xc9 }, { ALOCK, ynone, Px, 0xf0 }, { ALODSB, ynone, Pb, 0xac }, { ALODSL, ynone, Px, 0xad }, { ALODSW, ynone, Pe, 0xad }, { ALONG, ybyte, Px, 4 }, { ALOOP, yloop, Px, 0xe2 }, { ALOOPEQ, yloop, Px, 0xe1 }, { ALOOPNE, yloop, Px, 0xe0 }, { ALSLL, yml_rl, Pm, 0x03 }, { ALSLW, yml_rl, Pq, 0x03 }, { AMOVB, ymovb, Pb, 0x88,0x8a,0xb0,0xc6,(00) }, { AMOVL, ymovl, Px, 0x89,0x8b,0x31,0x83,(04),0xb8,0xc7,(00) }, { AMOVW, ymovl, Pe, 0x89,0x8b,0x31,0x83,(04),0xb8,0xc7,(00) }, { AMOVBLSX, ymb_rl, Pm, 0xbe }, { AMOVBLZX, ymb_rl, Pm, 0xb6 }, { AMOVBWSX, ymb_rl, Pq, 0xbe }, { AMOVBWZX, ymb_rl, Pq, 0xb6 }, { AMOVWLSX, yml_rl, Pm, 0xbf }, { AMOVWLZX, yml_rl, Pm, 0xb7 }, { AMOVSB, ynone, Pb, 0xa4 }, { AMOVSL, ynone, Px, 0xa5 }, { AMOVSW, ynone, Pe, 0xa5 }, { AMULB, ydivb, Pb, 0xf6,(04) }, { AMULL, ydivl, Px, 0xf7,(04) }, { AMULW, ydivl, Pe, 0xf7,(04) }, { ANAME }, { ANEGB, yscond, Px, 0xf6,(03) }, { ANEGL, yscond, Px, 0xf7,(03) }, { ANEGW, yscond, Pe, 0xf7,(03) }, { ANOP, ynop, Px,0,0 }, { ANOTB, yscond, Px, 0xf6,(02) }, { ANOTL, yscond, Px, 0xf7,(02) }, { ANOTW, yscond, Pe, 0xf7,(02) }, { AORB, yxorb, Pb, 0x0c,0x80,(01),0x08,0x0a }, { AORL, yxorl, Px, 0x83,(01),0x0d,0x81,(01),0x09,0x0b }, { AORW, yxorl, Pe, 0x83,(01),0x0d,0x81,(01),0x09,0x0b }, { AOUTB, yin, Pb, 0xe6,0xee }, { AOUTL, yin, Px, 0xe7,0xef }, { AOUTW, yin, Pe, 0xe7,0xef }, { AOUTSB, ynone, Pb, 0x6e }, { AOUTSL, ynone, Px, 0x6f }, { AOUTSW, ynone, Pe, 0x6f }, { APOPAL, ynone, Px, 0x61 }, { APOPAW, ynone, Pe, 0x61 }, { APOPFL, ynone, Px, 0x9d }, { APOPFW, ynone, Pe, 0x9d }, { APOPL, ypopl, Px, 0x58,0x8f,(00) }, { APOPW, ypopl, Pe, 0x58,0x8f,(00) }, { APUSHAL, ynone, Px, 0x60 }, { APUSHAW, ynone, Pe, 0x60 }, { APUSHFL, ynone, Px, 0x9c }, { APUSHFW, ynone, Pe, 0x9c }, { APUSHL, ypushl, Px, 0x50,0xff,(06),0x6a,0x68 }, { APUSHW, ypushl, Pe, 0x50,0xff,(06),0x6a,0x68 }, { ARCLB, yshb, Pb, 0xd0,(02),0xc0,(02),0xd2,(02) }, { ARCLL, yshl, Px, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) }, { ARCLW, yshl, Pe, 0xd1,(02),0xc1,(02),0xd3,(02),0xd3,(02) }, { ARCRB, yshb, Pb, 0xd0,(03),0xc0,(03),0xd2,(03) }, { ARCRL, yshl, Px, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) }, { ARCRW, yshl, Pe, 0xd1,(03),0xc1,(03),0xd3,(03),0xd3,(03) }, { AREP, ynone, Px, 0xf3 }, { AREPN, ynone, Px, 0xf2 }, { ARET, ynone, Px, 0xc3 }, { AROLB, yshb, Pb, 0xd0,(00),0xc0,(00),0xd2,(00) }, { AROLL, yshl, Px, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) }, { AROLW, yshl, Pe, 0xd1,(00),0xc1,(00),0xd3,(00),0xd3,(00) }, { ARORB, yshb, Pb, 0xd0,(01),0xc0,(01),0xd2,(01) }, { ARORL, yshl, Px, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) }, { ARORW, yshl, Pe, 0xd1,(01),0xc1,(01),0xd3,(01),0xd3,(01) }, { ASAHF, ynone, Px, 0x9e }, { ASALB, yshb, Pb, 0xd0,(04),0xc0,(04),0xd2,(04) }, { ASALL, yshl, Px, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) }, { ASALW, yshl, Pe, 0xd1,(04),0xc1,(04),0xd3,(04),0xd3,(04) }, { ASARB, yshb, Pb, 0xd0,(07),0xc0,(07),0xd2,(07) }, { ASARL, yshl, Px, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) }, { ASARW, yshl, Pe, 0xd1,(07),0xc1,(07),0xd3,(07),0xd3,(07) }, { ASBBB, yxorb, Pb, 0x1c,0x80,(03),0x18,0x1a }, { ASBBL, yxorl, Px, 0x83,(03),0x1d,0x81,(03),0x19,0x1b }, { ASBBW, yxorl, Pe, 0x83,(03),0x1d,0x81,(03),0x19,0x1b }, { ASCASB, ynone, Pb, 0xae }, { ASCASL, ynone, Px, 0xaf }, { ASCASW, ynone, Pe, 0xaf }, { ASETCC, yscond, Pm, 0x93,(00) }, { ASETCS, yscond, Pm, 0x92,(00) }, { ASETEQ, yscond, Pm, 0x94,(00) }, { ASETGE, yscond, Pm, 0x9d,(00) }, { ASETGT, yscond, Pm, 0x9f,(00) },