apply same optimization to disasm as well

This commit is contained in:
Stanislav Shwartsman 2013-10-10 21:00:26 +00:00
parent 46e36b463b
commit 582bf84bae
5 changed files with 579 additions and 753 deletions

View File

@ -395,10 +395,9 @@ static const BxOpcodeInfo_t BxOpcodeGroupAVX256_0f7f[3] = {
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0fc6[3] = {
/* 66 */ { 0, BX_IA_VSHUFPD_VpdHpdWpdIb },
/* F3 */ { 0, BX_IA_ERROR },
/* F2 */ { 0, BX_IA_ERROR }
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0fc6[2] = {
/* -- */ { 0, BX_IA_VSHUFPS_VpsHpsWpsIb },
/* 66 */ { 0, BX_IA_VSHUFPD_VpdHpdWpdIb }
};
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0fd0[3] = {
@ -906,8 +905,8 @@ static const BxOpcodeInfo_t BxOpcodeTableAVX[256*3*2] = {
/* C4 /1 */ { 0, BX_IA_ERROR },
/* C5 /0 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V128_VPEXTRW_GdUdqIb },
/* C5 /1 */ { 0, BX_IA_ERROR },
/* C6 /0 */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_VSHUFPS_VpsHpsWpsIb, BxOpcodeGroupAVX_0fc6 },
/* C6 /1 */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_VSHUFPS_VpsHpsWpsIb, BxOpcodeGroupAVX_0fc6 },
/* C6 /0 */ { BxPrefixSSE2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeGroupAVX_0fc6 },
/* C6 /1 */ { BxPrefixSSE2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeGroupAVX_0fc6 },
/* C7 /0 */ { 0, BX_IA_ERROR },
/* C7 /1 */ { 0, BX_IA_ERROR },
/* C8 /0 */ { 0, BX_IA_ERROR },

View File

@ -301,6 +301,17 @@ x86_insn disassembler::decode(bx_bool is_32, bx_bool is_64, bx_address cs_base,
entry = &(OPCODE_TABLE(entry)[sse_prefix]);
break;
case _GRPSSE2:
sse_opcode = 1;
/* For SSE opcodes, look into another 2 entries table
with the opcode prefixes (NONE, 0x66)
SSE prefixes 0xF2 and 0xF3 are not allowed */
if (sse_prefix > SSE_PREFIX_66)
entry = &(BxDisasmGroupSSE_ERR[sse_prefix]);
else
entry = &(OPCODE_TABLE(entry)[sse_prefix]);
break;
case _SPLIT11B:
entry = &(OPCODE_TABLE(entry)[insn.mod != 3]); /* REG/MEM */
break;

View File

@ -32,13 +32,15 @@
#define _GRPSSEF2 7
#define _GRPSSEF3 8
#define _GRPSSENONE 9
#define _GRPRM 10
#define _GRP3BOP 11
#define _GRP64B 12
#define _GRPVEXW 13
#define _GRPSSE2 10
#define _GRPRM 11
#define _GRP3BOP 12
#define _GRP64B 13
#define _GRPVEXW 14
/* ************************************************************************ */
#define GRPSSE(n) _GRPSSE, BxDisasmGroupSSE_##n
#define GRPSSE2(n) _GRPSSE2, BxDisasmGroupSSE_##n
#define GRPAVX(n) _GRPSSE, BxDisasmGroupAVX_##n
#define GRPN(n) _GROUPN, BxDisasmGroup##n
#define GRPRM(n) _GRPRM, BxDisasmGroupRm##n

View File

@ -609,11 +609,11 @@ static BxDisasmOpcodeTable_t BxDisasmGroupG11Eq[8] = {
static BxDisasmOpcodeTable_t BxDisasmGroupG12[8] = {
/* 0 */ { 0, &Ia_Invalid },
/* 1 */ { 0, &Ia_Invalid },
/* 2 */ { GRPSSE(G1202) },
/* 2 */ { GRPSSE2(G1202) },
/* 3 */ { 0, &Ia_Invalid },
/* 4 */ { GRPSSE(G1204) },
/* 4 */ { GRPSSE2(G1204) },
/* 5 */ { 0, &Ia_Invalid },
/* 6 */ { GRPSSE(G1206) },
/* 6 */ { GRPSSE2(G1206) },
/* 7 */ { 0, &Ia_Invalid }
};
@ -621,11 +621,11 @@ static BxDisasmOpcodeTable_t BxDisasmGroupG12[8] = {
static BxDisasmOpcodeTable_t BxDisasmGroupG13[8] = {
/* 0 */ { 0, &Ia_Invalid },
/* 1 */ { 0, &Ia_Invalid },
/* 2 */ { GRPSSE(G1302) },
/* 2 */ { GRPSSE2(G1302) },
/* 3 */ { 0, &Ia_Invalid },
/* 4 */ { GRPSSE(G1304) },
/* 4 */ { GRPSSE2(G1304) },
/* 5 */ { 0, &Ia_Invalid },
/* 6 */ { GRPSSE(G1306) },
/* 6 */ { GRPSSE2(G1306) },
/* 7 */ { 0, &Ia_Invalid }
};
@ -633,11 +633,11 @@ static BxDisasmOpcodeTable_t BxDisasmGroupG13[8] = {
static BxDisasmOpcodeTable_t BxDisasmGroupG14[8] = {
/* 0 */ { 0, &Ia_Invalid },
/* 1 */ { 0, &Ia_Invalid },
/* 2 */ { GRPSSE(G1402) },
/* 2 */ { GRPSSE2(G1402) },
/* 3 */ { GRPSSE66(Ia_psrldq_Udq_Ib) },
/* 4 */ { 0, &Ia_Invalid },
/* 5 */ { 0, &Ia_Invalid },
/* 6 */ { GRPSSE(G1406) },
/* 6 */ { GRPSSE2(G1406) },
/* 7 */ { GRPSSE66(Ia_pslldq_Udq_Ib) }
};
@ -965,8 +965,8 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes16[256*2] = {
/* 0F 11 */ { GRPSSE(0f11) },
/* 0F 12 */ { GRPSSE(0f12) },
/* 0F 13 */ { GRPSSE(0f13) },
/* 0F 14 */ { GRPSSE(0f14) },
/* 0F 15 */ { GRPSSE(0f15) },
/* 0F 14 */ { GRPSSE2(0f14) },
/* 0F 15 */ { GRPSSE2(0f15) },
/* 0F 16 */ { GRPSSE(0f16) },
/* 0F 17 */ { GRPSSE(0f17) },
/* 0F 18 */ { GRPN(G16) },
@ -985,14 +985,14 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes16[256*2] = {
/* 0F 25 */ { 0, &Ia_Invalid },
/* 0F 26 */ { 0, &Ia_Invalid },
/* 0F 27 */ { 0, &Ia_Invalid },
/* 0F 28 */ { GRPSSE(0f28) },
/* 0F 29 */ { GRPSSE(0f29) },
/* 0F 28 */ { GRPSSE2(0f28) },
/* 0F 29 */ { GRPSSE2(0f29) },
/* 0F 2A */ { GRPSSE(0f2a) },
/* 0F 2B */ { GRPSSE(0f2b) },
/* 0F 2C */ { GRPSSE(0f2c) },
/* 0F 2D */ { GRPSSE(0f2d) },
/* 0F 2E */ { GRPSSE(0f2e) },
/* 0F 2F */ { GRPSSE(0f2f) },
/* 0F 2E */ { GRPSSE2(0f2e) },
/* 0F 2F */ { GRPSSE2(0f2f) },
/* 0F 30 */ { 0, &Ia_wrmsr },
/* 0F 31 */ { 0, &Ia_rdtsc },
/* 0F 32 */ { 0, &Ia_rdmsr },
@ -1025,7 +1025,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes16[256*2] = {
/* 0F 4D */ { 0, &Ia_cmovnlw_Gw_Ew },
/* 0F 4E */ { 0, &Ia_cmovngw_Gw_Ew },
/* 0F 4F */ { 0, &Ia_cmovgw_Gw_Ew },
/* 0F 50 */ { GRPSSE(0f50) },
/* 0F 50 */ { GRPSSE2(0f50) },
/* 0F 51 */ { GRPSSE(0f51) },
/* 0F 52 */ { GRPSSE(0f52) },
/* 0F 53 */ { GRPSSE(0f53) },
@ -1041,29 +1041,29 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes16[256*2] = {
/* 0F 5D */ { GRPSSE(0f5d) },
/* 0F 5E */ { GRPSSE(0f5e) },
/* 0F 5F */ { GRPSSE(0f5f) },
/* 0F 60 */ { GRPSSE(0f60) },
/* 0F 61 */ { GRPSSE(0f61) },
/* 0F 62 */ { GRPSSE(0f62) },
/* 0F 63 */ { GRPSSE(0f63) },
/* 0F 64 */ { GRPSSE(0f64) },
/* 0F 65 */ { GRPSSE(0f65) },
/* 0F 66 */ { GRPSSE(0f66) },
/* 0F 67 */ { GRPSSE(0f67) },
/* 0F 68 */ { GRPSSE(0f68) },
/* 0F 69 */ { GRPSSE(0f69) },
/* 0F 6A */ { GRPSSE(0f6a) },
/* 0F 6B */ { GRPSSE(0f6b) },
/* 0F 60 */ { GRPSSE2(0f60) },
/* 0F 61 */ { GRPSSE2(0f61) },
/* 0F 62 */ { GRPSSE2(0f62) },
/* 0F 63 */ { GRPSSE2(0f63) },
/* 0F 64 */ { GRPSSE2(0f64) },
/* 0F 65 */ { GRPSSE2(0f65) },
/* 0F 66 */ { GRPSSE2(0f66) },
/* 0F 67 */ { GRPSSE2(0f67) },
/* 0F 68 */ { GRPSSE2(0f68) },
/* 0F 69 */ { GRPSSE2(0f69) },
/* 0F 6A */ { GRPSSE2(0f6a) },
/* 0F 6B */ { GRPSSE2(0f6b) },
/* 0F 6C */ { GRPSSE66(Ia_punpcklqdq_Vdq_Wdq) },
/* 0F 6D */ { GRPSSE66(Ia_punpckhqdq_Vdq_Wdq) },
/* 0F 6E */ { GRPSSE(0f6e) },
/* 0F 6E */ { GRPSSE2(0f6e) },
/* 0F 6F */ { GRPSSE(0f6f) },
/* 0F 70 */ { GRPSSE(0f70) },
/* 0F 71 */ { GRPN(G12) },
/* 0F 72 */ { GRPN(G13) },
/* 0F 73 */ { GRPN(G14) },
/* 0F 74 */ { GRPSSE(0f74) },
/* 0F 75 */ { GRPSSE(0f75) },
/* 0F 76 */ { GRPSSE(0f76) },
/* 0F 71 */ { GRPN(G12) },
/* 0F 72 */ { GRPN(G13) },
/* 0F 73 */ { GRPN(G14) },
/* 0F 74 */ { GRPSSE2(0f74) },
/* 0F 75 */ { GRPSSE2(0f75) },
/* 0F 76 */ { GRPSSE2(0f76) },
/* 0F 77 */ { 0, &Ia_emms },
/* 0F 78 */ { GRPSSE(0f78) }, // VMX
/* 0F 79 */ { GRPSSE(0f79) }, // VMX
@ -1154,52 +1154,52 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes16[256*2] = {
/* 0F CE */ { 0, &Ia_bswapw_RX },
/* 0F CF */ { 0, &Ia_bswapw_RX },
/* 0F D0 */ { GRPSSE(0fd0) },
/* 0F D1 */ { GRPSSE(0fd1) },
/* 0F D2 */ { GRPSSE(0fd2) },
/* 0F D3 */ { GRPSSE(0fd3) },
/* 0F D4 */ { GRPSSE(0fd4) },
/* 0F D5 */ { GRPSSE(0fd5) },
/* 0F D1 */ { GRPSSE2(0fd1) },
/* 0F D2 */ { GRPSSE2(0fd2) },
/* 0F D3 */ { GRPSSE2(0fd3) },
/* 0F D4 */ { GRPSSE2(0fd4) },
/* 0F D5 */ { GRPSSE2(0fd5) },
/* 0F D6 */ { GRPSSE(0fd6) },
/* 0F D7 */ { GRPSSE(0fd7) },
/* 0F D8 */ { GRPSSE(0fd8) },
/* 0F D9 */ { GRPSSE(0fd9) },
/* 0F DA */ { GRPSSE(0fda) },
/* 0F DB */ { GRPSSE(0fdb) },
/* 0F DC */ { GRPSSE(0fdc) },
/* 0F DD */ { GRPSSE(0fdd) },
/* 0F DE */ { GRPSSE(0fde) },
/* 0F DF */ { GRPSSE(0fdf) },
/* 0F E0 */ { GRPSSE(0fe0) },
/* 0F E1 */ { GRPSSE(0fe1) },
/* 0F E2 */ { GRPSSE(0fe2) },
/* 0F E3 */ { GRPSSE(0fe3) },
/* 0F E4 */ { GRPSSE(0fe4) },
/* 0F E5 */ { GRPSSE(0fe5) },
/* 0F D7 */ { GRPSSE2(0fd7) },
/* 0F D8 */ { GRPSSE2(0fd8) },
/* 0F D9 */ { GRPSSE2(0fd9) },
/* 0F DA */ { GRPSSE2(0fda) },
/* 0F DB */ { GRPSSE2(0fdb) },
/* 0F DC */ { GRPSSE2(0fdc) },
/* 0F DD */ { GRPSSE2(0fdd) },
/* 0F DE */ { GRPSSE2(0fde) },
/* 0F DF */ { GRPSSE2(0fdf) },
/* 0F E0 */ { GRPSSE2(0fe0) },
/* 0F E1 */ { GRPSSE2(0fe1) },
/* 0F E2 */ { GRPSSE2(0fe2) },
/* 0F E3 */ { GRPSSE2(0fe3) },
/* 0F E4 */ { GRPSSE2(0fe4) },
/* 0F E5 */ { GRPSSE2(0fe5) },
/* 0F E6 */ { GRPSSE(0fe6) },
/* 0F E7 */ { GRPSSE(0fe7) },
/* 0F E8 */ { GRPSSE(0fe8) },
/* 0F E9 */ { GRPSSE(0fe9) },
/* 0F EA */ { GRPSSE(0fea) },
/* 0F EB */ { GRPSSE(0feb) },
/* 0F EC */ { GRPSSE(0fec) },
/* 0F ED */ { GRPSSE(0fed) },
/* 0F EE */ { GRPSSE(0fee) },
/* 0F EF */ { GRPSSE(0fef) },
/* 0F E7 */ { GRPSSE2(0fe7) },
/* 0F E8 */ { GRPSSE2(0fe8) },
/* 0F E9 */ { GRPSSE2(0fe9) },
/* 0F EA */ { GRPSSE2(0fea) },
/* 0F EB */ { GRPSSE2(0feb) },
/* 0F EC */ { GRPSSE2(0fec) },
/* 0F ED */ { GRPSSE2(0fed) },
/* 0F EE */ { GRPSSE2(0fee) },
/* 0F EF */ { GRPSSE2(0fef) },
/* 0F F0 */ { GRPSSEF2(Ia_lddqu_Vdq_Mdq) },
/* 0F F1 */ { GRPSSE(0ff1) },
/* 0F F2 */ { GRPSSE(0ff2) },
/* 0F F3 */ { GRPSSE(0ff3) },
/* 0F F4 */ { GRPSSE(0ff4) },
/* 0F F5 */ { GRPSSE(0ff5) },
/* 0F F6 */ { GRPSSE(0ff6) },
/* 0F F7 */ { GRPSSE(0ff7) },
/* 0F F8 */ { GRPSSE(0ff8) },
/* 0F F9 */ { GRPSSE(0ff9) },
/* 0F FA */ { GRPSSE(0ffa) },
/* 0F FB */ { GRPSSE(0ffb) },
/* 0F FC */ { GRPSSE(0ffc) },
/* 0F FD */ { GRPSSE(0ffd) },
/* 0F FE */ { GRPSSE(0ffe) },
/* 0F F1 */ { GRPSSE2(0ff1) },
/* 0F F2 */ { GRPSSE2(0ff2) },
/* 0F F3 */ { GRPSSE2(0ff3) },
/* 0F F4 */ { GRPSSE2(0ff4) },
/* 0F F5 */ { GRPSSE2(0ff5) },
/* 0F F6 */ { GRPSSE2(0ff6) },
/* 0F F7 */ { GRPSSE2(0ff7) },
/* 0F F8 */ { GRPSSE2(0ff8) },
/* 0F F9 */ { GRPSSE2(0ff9) },
/* 0F FA */ { GRPSSE2(0ffa) },
/* 0F FB */ { GRPSSE2(0ffb) },
/* 0F FC */ { GRPSSE2(0ffc) },
/* 0F FD */ { GRPSSE2(0ffd) },
/* 0F FE */ { GRPSSE2(0ffe) },
/* 0F FF */ { 0, &Ia_Invalid }
};
@ -1486,8 +1486,8 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes32[256*2] = {
/* 0F 11 */ { GRPSSE(0f11) },
/* 0F 12 */ { GRPSSE(0f12) },
/* 0F 13 */ { GRPSSE(0f13) },
/* 0F 14 */ { GRPSSE(0f14) },
/* 0F 15 */ { GRPSSE(0f15) },
/* 0F 14 */ { GRPSSE2(0f14) },
/* 0F 15 */ { GRPSSE2(0f15) },
/* 0F 16 */ { GRPSSE(0f16) },
/* 0F 17 */ { GRPSSE(0f17) },
/* 0F 18 */ { GRPN(G16) },
@ -1506,14 +1506,14 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes32[256*2] = {
/* 0F 25 */ { 0, &Ia_Invalid },
/* 0F 26 */ { 0, &Ia_Invalid },
/* 0F 27 */ { 0, &Ia_Invalid },
/* 0F 28 */ { GRPSSE(0f28) },
/* 0F 29 */ { GRPSSE(0f29) },
/* 0F 28 */ { GRPSSE2(0f28) },
/* 0F 29 */ { GRPSSE2(0f29) },
/* 0F 2A */ { GRPSSE(0f2a) },
/* 0F 2B */ { GRPSSE(0f2b) },
/* 0F 2C */ { GRPSSE(0f2c) },
/* 0F 2D */ { GRPSSE(0f2d) },
/* 0F 2E */ { GRPSSE(0f2e) },
/* 0F 2F */ { GRPSSE(0f2f) },
/* 0F 2E */ { GRPSSE2(0f2e) },
/* 0F 2F */ { GRPSSE2(0f2f) },
/* 0F 30 */ { 0, &Ia_wrmsr },
/* 0F 31 */ { 0, &Ia_rdtsc },
/* 0F 32 */ { 0, &Ia_rdmsr },
@ -1546,7 +1546,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes32[256*2] = {
/* 0F 4D */ { 0, &Ia_cmovnll_Gd_Ed },
/* 0F 4E */ { 0, &Ia_cmovngl_Gd_Ed },
/* 0F 4F */ { 0, &Ia_cmovgl_Gd_Ed },
/* 0F 50 */ { GRPSSE(0f50) },
/* 0F 50 */ { GRPSSE2(0f50) },
/* 0F 51 */ { GRPSSE(0f51) },
/* 0F 52 */ { GRPSSE(0f52) },
/* 0F 53 */ { GRPSSE(0f53) },
@ -1562,29 +1562,29 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes32[256*2] = {
/* 0F 5D */ { GRPSSE(0f5d) },
/* 0F 5E */ { GRPSSE(0f5e) },
/* 0F 5F */ { GRPSSE(0f5f) },
/* 0F 60 */ { GRPSSE(0f60) },
/* 0F 61 */ { GRPSSE(0f61) },
/* 0F 62 */ { GRPSSE(0f62) },
/* 0F 63 */ { GRPSSE(0f63) },
/* 0F 64 */ { GRPSSE(0f64) },
/* 0F 65 */ { GRPSSE(0f65) },
/* 0F 66 */ { GRPSSE(0f66) },
/* 0F 67 */ { GRPSSE(0f67) },
/* 0F 68 */ { GRPSSE(0f68) },
/* 0F 69 */ { GRPSSE(0f69) },
/* 0F 6A */ { GRPSSE(0f6a) },
/* 0F 6B */ { GRPSSE(0f6b) },
/* 0F 60 */ { GRPSSE2(0f60) },
/* 0F 61 */ { GRPSSE2(0f61) },
/* 0F 62 */ { GRPSSE2(0f62) },
/* 0F 63 */ { GRPSSE2(0f63) },
/* 0F 64 */ { GRPSSE2(0f64) },
/* 0F 65 */ { GRPSSE2(0f65) },
/* 0F 66 */ { GRPSSE2(0f66) },
/* 0F 67 */ { GRPSSE2(0f67) },
/* 0F 68 */ { GRPSSE2(0f68) },
/* 0F 69 */ { GRPSSE2(0f69) },
/* 0F 6A */ { GRPSSE2(0f6a) },
/* 0F 6B */ { GRPSSE2(0f6b) },
/* 0F 6C */ { GRPSSE66(Ia_punpcklqdq_Vdq_Wdq) },
/* 0F 6D */ { GRPSSE66(Ia_punpckhqdq_Vdq_Wdq) },
/* 0F 6E */ { GRPSSE(0f6e) },
/* 0F 6E */ { GRPSSE2(0f6e) },
/* 0F 6F */ { GRPSSE(0f6f) },
/* 0F 70 */ { GRPSSE(0f70) },
/* 0F 71 */ { GRPN(G12) },
/* 0F 72 */ { GRPN(G13) },
/* 0F 73 */ { GRPN(G14) },
/* 0F 74 */ { GRPSSE(0f74) },
/* 0F 75 */ { GRPSSE(0f75) },
/* 0F 76 */ { GRPSSE(0f76) },
/* 0F 71 */ { GRPN(G12) },
/* 0F 72 */ { GRPN(G13) },
/* 0F 73 */ { GRPN(G14) },
/* 0F 74 */ { GRPSSE2(0f74) },
/* 0F 75 */ { GRPSSE2(0f75) },
/* 0F 76 */ { GRPSSE2(0f76) },
/* 0F 77 */ { 0, &Ia_emms },
/* 0F 78 */ { GRPSSE(0f78) }, // VMX
/* 0F 79 */ { GRPSSE(0f79) }, // VMX
@ -1675,52 +1675,52 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes32[256*2] = {
/* 0F CE */ { 0, &Ia_bswapl_ERX },
/* 0F CF */ { 0, &Ia_bswapl_ERX },
/* 0F D0 */ { GRPSSE(0fd0) },
/* 0F D1 */ { GRPSSE(0fd1) },
/* 0F D2 */ { GRPSSE(0fd2) },
/* 0F D3 */ { GRPSSE(0fd3) },
/* 0F D4 */ { GRPSSE(0fd4) },
/* 0F D5 */ { GRPSSE(0fd5) },
/* 0F D1 */ { GRPSSE2(0fd1) },
/* 0F D2 */ { GRPSSE2(0fd2) },
/* 0F D3 */ { GRPSSE2(0fd3) },
/* 0F D4 */ { GRPSSE2(0fd4) },
/* 0F D5 */ { GRPSSE2(0fd5) },
/* 0F D6 */ { GRPSSE(0fd6) },
/* 0F D7 */ { GRPSSE(0fd7) },
/* 0F D8 */ { GRPSSE(0fd8) },
/* 0F D9 */ { GRPSSE(0fd9) },
/* 0F DA */ { GRPSSE(0fda) },
/* 0F DB */ { GRPSSE(0fdb) },
/* 0F DC */ { GRPSSE(0fdc) },
/* 0F DD */ { GRPSSE(0fdd) },
/* 0F DE */ { GRPSSE(0fde) },
/* 0F DF */ { GRPSSE(0fdf) },
/* 0F E0 */ { GRPSSE(0fe0) },
/* 0F E1 */ { GRPSSE(0fe1) },
/* 0F E2 */ { GRPSSE(0fe2) },
/* 0F E3 */ { GRPSSE(0fe3) },
/* 0F E4 */ { GRPSSE(0fe4) },
/* 0F E5 */ { GRPSSE(0fe5) },
/* 0F D7 */ { GRPSSE2(0fd7) },
/* 0F D8 */ { GRPSSE2(0fd8) },
/* 0F D9 */ { GRPSSE2(0fd9) },
/* 0F DA */ { GRPSSE2(0fda) },
/* 0F DB */ { GRPSSE2(0fdb) },
/* 0F DC */ { GRPSSE2(0fdc) },
/* 0F DD */ { GRPSSE2(0fdd) },
/* 0F DE */ { GRPSSE2(0fde) },
/* 0F DF */ { GRPSSE2(0fdf) },
/* 0F E0 */ { GRPSSE2(0fe0) },
/* 0F E1 */ { GRPSSE2(0fe1) },
/* 0F E2 */ { GRPSSE2(0fe2) },
/* 0F E3 */ { GRPSSE2(0fe3) },
/* 0F E4 */ { GRPSSE2(0fe4) },
/* 0F E5 */ { GRPSSE2(0fe5) },
/* 0F E6 */ { GRPSSE(0fe6) },
/* 0F E7 */ { GRPSSE(0fe7) },
/* 0F E8 */ { GRPSSE(0fe8) },
/* 0F E9 */ { GRPSSE(0fe9) },
/* 0F EA */ { GRPSSE(0fea) },
/* 0F EB */ { GRPSSE(0feb) },
/* 0F EC */ { GRPSSE(0fec) },
/* 0F ED */ { GRPSSE(0fed) },
/* 0F EE */ { GRPSSE(0fee) },
/* 0F EF */ { GRPSSE(0fef) },
/* 0F E7 */ { GRPSSE2(0fe7) },
/* 0F E8 */ { GRPSSE2(0fe8) },
/* 0F E9 */ { GRPSSE2(0fe9) },
/* 0F EA */ { GRPSSE2(0fea) },
/* 0F EB */ { GRPSSE2(0feb) },
/* 0F EC */ { GRPSSE2(0fec) },
/* 0F ED */ { GRPSSE2(0fed) },
/* 0F EE */ { GRPSSE2(0fee) },
/* 0F EF */ { GRPSSE2(0fef) },
/* 0F F0 */ { GRPSSEF2(Ia_lddqu_Vdq_Mdq) },
/* 0F F1 */ { GRPSSE(0ff1) },
/* 0F F2 */ { GRPSSE(0ff2) },
/* 0F F3 */ { GRPSSE(0ff3) },
/* 0F F4 */ { GRPSSE(0ff4) },
/* 0F F5 */ { GRPSSE(0ff5) },
/* 0F F6 */ { GRPSSE(0ff6) },
/* 0F F7 */ { GRPSSE(0ff7) },
/* 0F F8 */ { GRPSSE(0ff8) },
/* 0F F9 */ { GRPSSE(0ff9) },
/* 0F FA */ { GRPSSE(0ffa) },
/* 0F FB */ { GRPSSE(0ffb) },
/* 0F FC */ { GRPSSE(0ffc) },
/* 0F FD */ { GRPSSE(0ffd) },
/* 0F FE */ { GRPSSE(0ffe) },
/* 0F F1 */ { GRPSSE2(0ff1) },
/* 0F F2 */ { GRPSSE2(0ff2) },
/* 0F F3 */ { GRPSSE2(0ff3) },
/* 0F F4 */ { GRPSSE2(0ff4) },
/* 0F F5 */ { GRPSSE2(0ff5) },
/* 0F F6 */ { GRPSSE2(0ff6) },
/* 0F F7 */ { GRPSSE2(0ff7) },
/* 0F F8 */ { GRPSSE2(0ff8) },
/* 0F F9 */ { GRPSSE2(0ff9) },
/* 0F FA */ { GRPSSE2(0ffa) },
/* 0F FB */ { GRPSSE2(0ffb) },
/* 0F FC */ { GRPSSE2(0ffc) },
/* 0F FD */ { GRPSSE2(0ffd) },
/* 0F FE */ { GRPSSE2(0ffe) },
/* 0F FF */ { 0, &Ia_Invalid }
};
@ -2007,8 +2007,8 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64w[256*2] = {
/* 0F 11 */ { GRPSSE(0f11) },
/* 0F 12 */ { GRPSSE(0f12) },
/* 0F 13 */ { GRPSSE(0f13) },
/* 0F 14 */ { GRPSSE(0f14) },
/* 0F 15 */ { GRPSSE(0f15) },
/* 0F 14 */ { GRPSSE2(0f14) },
/* 0F 15 */ { GRPSSE2(0f15) },
/* 0F 16 */ { GRPSSE(0f16) },
/* 0F 17 */ { GRPSSE(0f17) },
/* 0F 18 */ { GRPN(G16) },
@ -2027,14 +2027,14 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64w[256*2] = {
/* 0F 25 */ { 0, &Ia_Invalid },
/* 0F 26 */ { 0, &Ia_Invalid },
/* 0F 27 */ { 0, &Ia_Invalid },
/* 0F 28 */ { GRPSSE(0f28) },
/* 0F 29 */ { GRPSSE(0f29) },
/* 0F 28 */ { GRPSSE2(0f28) },
/* 0F 29 */ { GRPSSE2(0f29) },
/* 0F 2A */ { GRPSSE(0f2a) },
/* 0F 2B */ { GRPSSE(0f2b) },
/* 0F 2C */ { GRPSSE(0f2c) },
/* 0F 2D */ { GRPSSE(0f2d) },
/* 0F 2E */ { GRPSSE(0f2e) },
/* 0F 2F */ { GRPSSE(0f2f) },
/* 0F 2E */ { GRPSSE2(0f2e) },
/* 0F 2F */ { GRPSSE2(0f2f) },
/* 0F 30 */ { 0, &Ia_wrmsr },
/* 0F 31 */ { 0, &Ia_rdtsc },
/* 0F 32 */ { 0, &Ia_rdmsr },
@ -2067,7 +2067,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64w[256*2] = {
/* 0F 4D */ { 0, &Ia_cmovnlw_Gw_Ew },
/* 0F 4E */ { 0, &Ia_cmovngw_Gw_Ew },
/* 0F 4F */ { 0, &Ia_cmovgw_Gw_Ew },
/* 0F 50 */ { GRPSSE(0f50) },
/* 0F 50 */ { GRPSSE2(0f50) },
/* 0F 51 */ { GRPSSE(0f51) },
/* 0F 52 */ { GRPSSE(0f52) },
/* 0F 53 */ { GRPSSE(0f53) },
@ -2083,29 +2083,29 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64w[256*2] = {
/* 0F 5D */ { GRPSSE(0f5d) },
/* 0F 5E */ { GRPSSE(0f5e) },
/* 0F 5F */ { GRPSSE(0f5f) },
/* 0F 60 */ { GRPSSE(0f60) },
/* 0F 61 */ { GRPSSE(0f61) },
/* 0F 62 */ { GRPSSE(0f62) },
/* 0F 63 */ { GRPSSE(0f63) },
/* 0F 64 */ { GRPSSE(0f64) },
/* 0F 65 */ { GRPSSE(0f65) },
/* 0F 66 */ { GRPSSE(0f66) },
/* 0F 67 */ { GRPSSE(0f67) },
/* 0F 68 */ { GRPSSE(0f68) },
/* 0F 69 */ { GRPSSE(0f69) },
/* 0F 6A */ { GRPSSE(0f6a) },
/* 0F 6B */ { GRPSSE(0f6b) },
/* 0F 60 */ { GRPSSE2(0f60) },
/* 0F 61 */ { GRPSSE2(0f61) },
/* 0F 62 */ { GRPSSE2(0f62) },
/* 0F 63 */ { GRPSSE2(0f63) },
/* 0F 64 */ { GRPSSE2(0f64) },
/* 0F 65 */ { GRPSSE2(0f65) },
/* 0F 66 */ { GRPSSE2(0f66) },
/* 0F 67 */ { GRPSSE2(0f67) },
/* 0F 68 */ { GRPSSE2(0f68) },
/* 0F 69 */ { GRPSSE2(0f69) },
/* 0F 6A */ { GRPSSE2(0f6a) },
/* 0F 6B */ { GRPSSE2(0f6b) },
/* 0F 6C */ { GRPSSE66(Ia_punpcklqdq_Vdq_Wdq) },
/* 0F 6D */ { GRPSSE66(Ia_punpckhqdq_Vdq_Wdq) },
/* 0F 6E */ { GRPSSE(0f6e) },
/* 0F 6E */ { GRPSSE2(0f6e) },
/* 0F 6F */ { GRPSSE(0f6f) },
/* 0F 70 */ { GRPSSE(0f70) },
/* 0F 71 */ { GRPN(G12) },
/* 0F 72 */ { GRPN(G13) },
/* 0F 73 */ { GRPN(G14) },
/* 0F 74 */ { GRPSSE(0f74) },
/* 0F 75 */ { GRPSSE(0f75) },
/* 0F 76 */ { GRPSSE(0f76) },
/* 0F 71 */ { GRPN(G12) },
/* 0F 72 */ { GRPN(G13) },
/* 0F 73 */ { GRPN(G14) },
/* 0F 74 */ { GRPSSE2(0f74) },
/* 0F 75 */ { GRPSSE2(0f75) },
/* 0F 76 */ { GRPSSE2(0f76) },
/* 0F 77 */ { 0, &Ia_emms },
/* 0F 78 */ { GRPSSE(0f78Q) }, // VMX
/* 0F 79 */ { GRPSSE(0f79Q) }, // VMX
@ -2196,52 +2196,52 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64w[256*2] = {
/* 0F CE */ { 0, &Ia_bswapw_RX },
/* 0F CF */ { 0, &Ia_bswapw_RX },
/* 0F D0 */ { GRPSSE(0fd0) },
/* 0F D1 */ { GRPSSE(0fd1) },
/* 0F D2 */ { GRPSSE(0fd2) },
/* 0F D3 */ { GRPSSE(0fd3) },
/* 0F D4 */ { GRPSSE(0fd4) },
/* 0F D5 */ { GRPSSE(0fd5) },
/* 0F D1 */ { GRPSSE2(0fd1) },
/* 0F D2 */ { GRPSSE2(0fd2) },
/* 0F D3 */ { GRPSSE2(0fd3) },
/* 0F D4 */ { GRPSSE2(0fd4) },
/* 0F D5 */ { GRPSSE2(0fd5) },
/* 0F D6 */ { GRPSSE(0fd6) },
/* 0F D7 */ { GRPSSE(0fd7) },
/* 0F D8 */ { GRPSSE(0fd8) },
/* 0F D9 */ { GRPSSE(0fd9) },
/* 0F DA */ { GRPSSE(0fda) },
/* 0F DB */ { GRPSSE(0fdb) },
/* 0F DC */ { GRPSSE(0fdc) },
/* 0F DD */ { GRPSSE(0fdd) },
/* 0F DE */ { GRPSSE(0fde) },
/* 0F DF */ { GRPSSE(0fdf) },
/* 0F E0 */ { GRPSSE(0fe0) },
/* 0F E1 */ { GRPSSE(0fe1) },
/* 0F E2 */ { GRPSSE(0fe2) },
/* 0F E3 */ { GRPSSE(0fe3) },
/* 0F E4 */ { GRPSSE(0fe4) },
/* 0F E5 */ { GRPSSE(0fe5) },
/* 0F D7 */ { GRPSSE2(0fd7) },
/* 0F D8 */ { GRPSSE2(0fd8) },
/* 0F D9 */ { GRPSSE2(0fd9) },
/* 0F DA */ { GRPSSE2(0fda) },
/* 0F DB */ { GRPSSE2(0fdb) },
/* 0F DC */ { GRPSSE2(0fdc) },
/* 0F DD */ { GRPSSE2(0fdd) },
/* 0F DE */ { GRPSSE2(0fde) },
/* 0F DF */ { GRPSSE2(0fdf) },
/* 0F E0 */ { GRPSSE2(0fe0) },
/* 0F E1 */ { GRPSSE2(0fe1) },
/* 0F E2 */ { GRPSSE2(0fe2) },
/* 0F E3 */ { GRPSSE2(0fe3) },
/* 0F E4 */ { GRPSSE2(0fe4) },
/* 0F E5 */ { GRPSSE2(0fe5) },
/* 0F E6 */ { GRPSSE(0fe6) },
/* 0F E7 */ { GRPSSE(0fe7) },
/* 0F E8 */ { GRPSSE(0fe8) },
/* 0F E9 */ { GRPSSE(0fe9) },
/* 0F EA */ { GRPSSE(0fea) },
/* 0F EB */ { GRPSSE(0feb) },
/* 0F EC */ { GRPSSE(0fec) },
/* 0F ED */ { GRPSSE(0fed) },
/* 0F EE */ { GRPSSE(0fee) },
/* 0F EF */ { GRPSSE(0fef) },
/* 0F E7 */ { GRPSSE2(0fe7) },
/* 0F E8 */ { GRPSSE2(0fe8) },
/* 0F E9 */ { GRPSSE2(0fe9) },
/* 0F EA */ { GRPSSE2(0fea) },
/* 0F EB */ { GRPSSE2(0feb) },
/* 0F EC */ { GRPSSE2(0fec) },
/* 0F ED */ { GRPSSE2(0fed) },
/* 0F EE */ { GRPSSE2(0fee) },
/* 0F EF */ { GRPSSE2(0fef) },
/* 0F F0 */ { GRPSSEF2(Ia_lddqu_Vdq_Mdq) },
/* 0F F1 */ { GRPSSE(0ff1) },
/* 0F F2 */ { GRPSSE(0ff2) },
/* 0F F3 */ { GRPSSE(0ff3) },
/* 0F F4 */ { GRPSSE(0ff4) },
/* 0F F5 */ { GRPSSE(0ff5) },
/* 0F F6 */ { GRPSSE(0ff6) },
/* 0F F7 */ { GRPSSE(0ff7) },
/* 0F F8 */ { GRPSSE(0ff8) },
/* 0F F9 */ { GRPSSE(0ff9) },
/* 0F FA */ { GRPSSE(0ffa) },
/* 0F FB */ { GRPSSE(0ffb) },
/* 0F FC */ { GRPSSE(0ffc) },
/* 0F FD */ { GRPSSE(0ffd) },
/* 0F FE */ { GRPSSE(0ffe) },
/* 0F F1 */ { GRPSSE2(0ff1) },
/* 0F F2 */ { GRPSSE2(0ff2) },
/* 0F F3 */ { GRPSSE2(0ff3) },
/* 0F F4 */ { GRPSSE2(0ff4) },
/* 0F F5 */ { GRPSSE2(0ff5) },
/* 0F F6 */ { GRPSSE2(0ff6) },
/* 0F F7 */ { GRPSSE2(0ff7) },
/* 0F F8 */ { GRPSSE2(0ff8) },
/* 0F F9 */ { GRPSSE2(0ff9) },
/* 0F FA */ { GRPSSE2(0ffa) },
/* 0F FB */ { GRPSSE2(0ffb) },
/* 0F FC */ { GRPSSE2(0ffc) },
/* 0F FD */ { GRPSSE2(0ffd) },
/* 0F FE */ { GRPSSE2(0ffe) },
/* 0F FF */ { 0, &Ia_Invalid }
};
@ -2525,8 +2525,8 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64d[256*2] = {
/* 0F 11 */ { GRPSSE(0f11) },
/* 0F 12 */ { GRPSSE(0f12) },
/* 0F 13 */ { GRPSSE(0f13) },
/* 0F 14 */ { GRPSSE(0f14) },
/* 0F 15 */ { GRPSSE(0f15) },
/* 0F 14 */ { GRPSSE2(0f14) },
/* 0F 15 */ { GRPSSE2(0f15) },
/* 0F 16 */ { GRPSSE(0f16) },
/* 0F 17 */ { GRPSSE(0f17) },
/* 0F 18 */ { GRPN(G16) },
@ -2545,14 +2545,14 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64d[256*2] = {
/* 0F 25 */ { 0, &Ia_Invalid },
/* 0F 26 */ { 0, &Ia_Invalid },
/* 0F 27 */ { 0, &Ia_Invalid },
/* 0F 28 */ { GRPSSE(0f28) },
/* 0F 29 */ { GRPSSE(0f29) },
/* 0F 28 */ { GRPSSE2(0f28) },
/* 0F 29 */ { GRPSSE2(0f29) },
/* 0F 2A */ { GRPSSE(0f2a) },
/* 0F 2B */ { GRPSSE(0f2b) },
/* 0F 2C */ { GRPSSE(0f2c) },
/* 0F 2D */ { GRPSSE(0f2d) },
/* 0F 2E */ { GRPSSE(0f2e) },
/* 0F 2F */ { GRPSSE(0f2f) },
/* 0F 2E */ { GRPSSE2(0f2e) },
/* 0F 2F */ { GRPSSE2(0f2f) },
/* 0F 30 */ { 0, &Ia_wrmsr },
/* 0F 31 */ { 0, &Ia_rdtsc },
/* 0F 32 */ { 0, &Ia_rdmsr },
@ -2585,7 +2585,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64d[256*2] = {
/* 0F 4D */ { 0, &Ia_cmovnll_Gd_Ed },
/* 0F 4E */ { 0, &Ia_cmovngl_Gd_Ed },
/* 0F 4F */ { 0, &Ia_cmovgl_Gd_Ed },
/* 0F 50 */ { GRPSSE(0f50) },
/* 0F 50 */ { GRPSSE2(0f50) },
/* 0F 51 */ { GRPSSE(0f51) },
/* 0F 52 */ { GRPSSE(0f52) },
/* 0F 53 */ { GRPSSE(0f53) },
@ -2601,29 +2601,29 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64d[256*2] = {
/* 0F 5D */ { GRPSSE(0f5d) },
/* 0F 5E */ { GRPSSE(0f5e) },
/* 0F 5F */ { GRPSSE(0f5f) },
/* 0F 60 */ { GRPSSE(0f60) },
/* 0F 61 */ { GRPSSE(0f61) },
/* 0F 62 */ { GRPSSE(0f62) },
/* 0F 63 */ { GRPSSE(0f63) },
/* 0F 64 */ { GRPSSE(0f64) },
/* 0F 65 */ { GRPSSE(0f65) },
/* 0F 66 */ { GRPSSE(0f66) },
/* 0F 67 */ { GRPSSE(0f67) },
/* 0F 68 */ { GRPSSE(0f68) },
/* 0F 69 */ { GRPSSE(0f69) },
/* 0F 6A */ { GRPSSE(0f6a) },
/* 0F 6B */ { GRPSSE(0f6b) },
/* 0F 60 */ { GRPSSE2(0f60) },
/* 0F 61 */ { GRPSSE2(0f61) },
/* 0F 62 */ { GRPSSE2(0f62) },
/* 0F 63 */ { GRPSSE2(0f63) },
/* 0F 64 */ { GRPSSE2(0f64) },
/* 0F 65 */ { GRPSSE2(0f65) },
/* 0F 66 */ { GRPSSE2(0f66) },
/* 0F 67 */ { GRPSSE2(0f67) },
/* 0F 68 */ { GRPSSE2(0f68) },
/* 0F 69 */ { GRPSSE2(0f69) },
/* 0F 6A */ { GRPSSE2(0f6a) },
/* 0F 6B */ { GRPSSE2(0f6b) },
/* 0F 6C */ { GRPSSE66(Ia_punpcklqdq_Vdq_Wdq) },
/* 0F 6D */ { GRPSSE66(Ia_punpckhqdq_Vdq_Wdq) },
/* 0F 6E */ { GRPSSE(0f6e) },
/* 0F 6E */ { GRPSSE2(0f6e) },
/* 0F 6F */ { GRPSSE(0f6f) },
/* 0F 70 */ { GRPSSE(0f70) },
/* 0F 71 */ { GRPN(G12) },
/* 0F 72 */ { GRPN(G13) },
/* 0F 73 */ { GRPN(G14) },
/* 0F 74 */ { GRPSSE(0f74) },
/* 0F 75 */ { GRPSSE(0f75) },
/* 0F 76 */ { GRPSSE(0f76) },
/* 0F 71 */ { GRPN(G12) },
/* 0F 72 */ { GRPN(G13) },
/* 0F 73 */ { GRPN(G14) },
/* 0F 74 */ { GRPSSE2(0f74) },
/* 0F 75 */ { GRPSSE2(0f75) },
/* 0F 76 */ { GRPSSE2(0f76) },
/* 0F 77 */ { 0, &Ia_emms },
/* 0F 78 */ { GRPSSE(0f78Q) }, // VMX
/* 0F 79 */ { GRPSSE(0f79Q) }, // VMX
@ -2714,52 +2714,52 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64d[256*2] = {
/* 0F CE */ { 0, &Ia_bswapl_ERX },
/* 0F CF */ { 0, &Ia_bswapl_ERX },
/* 0F D0 */ { GRPSSE(0fd0) },
/* 0F D1 */ { GRPSSE(0fd1) },
/* 0F D2 */ { GRPSSE(0fd2) },
/* 0F D3 */ { GRPSSE(0fd3) },
/* 0F D4 */ { GRPSSE(0fd4) },
/* 0F D5 */ { GRPSSE(0fd5) },
/* 0F D1 */ { GRPSSE2(0fd1) },
/* 0F D2 */ { GRPSSE2(0fd2) },
/* 0F D3 */ { GRPSSE2(0fd3) },
/* 0F D4 */ { GRPSSE2(0fd4) },
/* 0F D5 */ { GRPSSE2(0fd5) },
/* 0F D6 */ { GRPSSE(0fd6) },
/* 0F D7 */ { GRPSSE(0fd7) },
/* 0F D8 */ { GRPSSE(0fd8) },
/* 0F D9 */ { GRPSSE(0fd9) },
/* 0F DA */ { GRPSSE(0fda) },
/* 0F DB */ { GRPSSE(0fdb) },
/* 0F DC */ { GRPSSE(0fdc) },
/* 0F DD */ { GRPSSE(0fdd) },
/* 0F DE */ { GRPSSE(0fde) },
/* 0F DF */ { GRPSSE(0fdf) },
/* 0F E0 */ { GRPSSE(0fe0) },
/* 0F E1 */ { GRPSSE(0fe1) },
/* 0F E2 */ { GRPSSE(0fe2) },
/* 0F E3 */ { GRPSSE(0fe3) },
/* 0F E4 */ { GRPSSE(0fe4) },
/* 0F E5 */ { GRPSSE(0fe5) },
/* 0F D7 */ { GRPSSE2(0fd7) },
/* 0F D8 */ { GRPSSE2(0fd8) },
/* 0F D9 */ { GRPSSE2(0fd9) },
/* 0F DA */ { GRPSSE2(0fda) },
/* 0F DB */ { GRPSSE2(0fdb) },
/* 0F DC */ { GRPSSE2(0fdc) },
/* 0F DD */ { GRPSSE2(0fdd) },
/* 0F DE */ { GRPSSE2(0fde) },
/* 0F DF */ { GRPSSE2(0fdf) },
/* 0F E0 */ { GRPSSE2(0fe0) },
/* 0F E1 */ { GRPSSE2(0fe1) },
/* 0F E2 */ { GRPSSE2(0fe2) },
/* 0F E3 */ { GRPSSE2(0fe3) },
/* 0F E4 */ { GRPSSE2(0fe4) },
/* 0F E5 */ { GRPSSE2(0fe5) },
/* 0F E6 */ { GRPSSE(0fe6) },
/* 0F E7 */ { GRPSSE(0fe7) },
/* 0F E8 */ { GRPSSE(0fe8) },
/* 0F E9 */ { GRPSSE(0fe9) },
/* 0F EA */ { GRPSSE(0fea) },
/* 0F EB */ { GRPSSE(0feb) },
/* 0F EC */ { GRPSSE(0fec) },
/* 0F ED */ { GRPSSE(0fed) },
/* 0F EE */ { GRPSSE(0fee) },
/* 0F EF */ { GRPSSE(0fef) },
/* 0F E7 */ { GRPSSE2(0fe7) },
/* 0F E8 */ { GRPSSE2(0fe8) },
/* 0F E9 */ { GRPSSE2(0fe9) },
/* 0F EA */ { GRPSSE2(0fea) },
/* 0F EB */ { GRPSSE2(0feb) },
/* 0F EC */ { GRPSSE2(0fec) },
/* 0F ED */ { GRPSSE2(0fed) },
/* 0F EE */ { GRPSSE2(0fee) },
/* 0F EF */ { GRPSSE2(0fef) },
/* 0F F0 */ { GRPSSEF2(Ia_lddqu_Vdq_Mdq) },
/* 0F F1 */ { GRPSSE(0ff1) },
/* 0F F2 */ { GRPSSE(0ff2) },
/* 0F F3 */ { GRPSSE(0ff3) },
/* 0F F4 */ { GRPSSE(0ff4) },
/* 0F F5 */ { GRPSSE(0ff5) },
/* 0F F6 */ { GRPSSE(0ff6) },
/* 0F F7 */ { GRPSSE(0ff7) },
/* 0F F8 */ { GRPSSE(0ff8) },
/* 0F F9 */ { GRPSSE(0ff9) },
/* 0F FA */ { GRPSSE(0ffa) },
/* 0F FB */ { GRPSSE(0ffb) },
/* 0F FC */ { GRPSSE(0ffc) },
/* 0F FD */ { GRPSSE(0ffd) },
/* 0F FE */ { GRPSSE(0ffe) },
/* 0F F1 */ { GRPSSE2(0ff1) },
/* 0F F2 */ { GRPSSE2(0ff2) },
/* 0F F3 */ { GRPSSE2(0ff3) },
/* 0F F4 */ { GRPSSE2(0ff4) },
/* 0F F5 */ { GRPSSE2(0ff5) },
/* 0F F6 */ { GRPSSE2(0ff6) },
/* 0F F7 */ { GRPSSE2(0ff7) },
/* 0F F8 */ { GRPSSE2(0ff8) },
/* 0F F9 */ { GRPSSE2(0ff9) },
/* 0F FA */ { GRPSSE2(0ffa) },
/* 0F FB */ { GRPSSE2(0ffb) },
/* 0F FC */ { GRPSSE2(0ffc) },
/* 0F FD */ { GRPSSE2(0ffd) },
/* 0F FE */ { GRPSSE2(0ffe) },
/* 0F FF */ { 0, &Ia_Invalid }
};
@ -3043,8 +3043,8 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64q[256*2] = {
/* 0F 11 */ { GRPSSE(0f11) },
/* 0F 12 */ { GRPSSE(0f12) },
/* 0F 13 */ { GRPSSE(0f13) },
/* 0F 14 */ { GRPSSE(0f14) },
/* 0F 15 */ { GRPSSE(0f15) },
/* 0F 14 */ { GRPSSE2(0f14) },
/* 0F 15 */ { GRPSSE2(0f15) },
/* 0F 16 */ { GRPSSE(0f16) },
/* 0F 17 */ { GRPSSE(0f17) },
/* 0F 18 */ { GRPN(G16) },
@ -3063,14 +3063,14 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64q[256*2] = {
/* 0F 25 */ { 0, &Ia_Invalid },
/* 0F 26 */ { 0, &Ia_Invalid },
/* 0F 27 */ { 0, &Ia_Invalid },
/* 0F 28 */ { GRPSSE(0f28) },
/* 0F 29 */ { GRPSSE(0f29) },
/* 0F 28 */ { GRPSSE2(0f28) },
/* 0F 29 */ { GRPSSE2(0f29) },
/* 0F 2A */ { GRPSSE(0f2a) },
/* 0F 2B */ { GRPSSE(0f2b) },
/* 0F 2C */ { GRPSSE(0f2c) },
/* 0F 2D */ { GRPSSE(0f2d) },
/* 0F 2E */ { GRPSSE(0f2e) },
/* 0F 2F */ { GRPSSE(0f2f) },
/* 0F 2E */ { GRPSSE2(0f2e) },
/* 0F 2F */ { GRPSSE2(0f2f) },
/* 0F 30 */ { 0, &Ia_wrmsr },
/* 0F 31 */ { 0, &Ia_rdtsc },
/* 0F 32 */ { 0, &Ia_rdmsr },
@ -3103,7 +3103,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64q[256*2] = {
/* 0F 4D */ { 0, &Ia_cmovnlq_Gq_Eq },
/* 0F 4E */ { 0, &Ia_cmovngq_Gq_Eq },
/* 0F 4F */ { 0, &Ia_cmovgq_Gq_Eq },
/* 0F 50 */ { GRPSSE(0f50) },
/* 0F 50 */ { GRPSSE2(0f50) },
/* 0F 51 */ { GRPSSE(0f51) },
/* 0F 52 */ { GRPSSE(0f52) },
/* 0F 53 */ { GRPSSE(0f53) },
@ -3119,29 +3119,29 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64q[256*2] = {
/* 0F 5D */ { GRPSSE(0f5d) },
/* 0F 5E */ { GRPSSE(0f5e) },
/* 0F 5F */ { GRPSSE(0f5f) },
/* 0F 60 */ { GRPSSE(0f60) },
/* 0F 61 */ { GRPSSE(0f61) },
/* 0F 62 */ { GRPSSE(0f62) },
/* 0F 63 */ { GRPSSE(0f63) },
/* 0F 64 */ { GRPSSE(0f64) },
/* 0F 65 */ { GRPSSE(0f65) },
/* 0F 66 */ { GRPSSE(0f66) },
/* 0F 67 */ { GRPSSE(0f67) },
/* 0F 68 */ { GRPSSE(0f68) },
/* 0F 69 */ { GRPSSE(0f69) },
/* 0F 6A */ { GRPSSE(0f6a) },
/* 0F 6B */ { GRPSSE(0f6b) },
/* 0F 60 */ { GRPSSE2(0f60) },
/* 0F 61 */ { GRPSSE2(0f61) },
/* 0F 62 */ { GRPSSE2(0f62) },
/* 0F 63 */ { GRPSSE2(0f63) },
/* 0F 64 */ { GRPSSE2(0f64) },
/* 0F 65 */ { GRPSSE2(0f65) },
/* 0F 66 */ { GRPSSE2(0f66) },
/* 0F 67 */ { GRPSSE2(0f67) },
/* 0F 68 */ { GRPSSE2(0f68) },
/* 0F 69 */ { GRPSSE2(0f69) },
/* 0F 6A */ { GRPSSE2(0f6a) },
/* 0F 6B */ { GRPSSE2(0f6b) },
/* 0F 6C */ { GRPSSE66(Ia_punpcklqdq_Vdq_Wdq) },
/* 0F 6D */ { GRPSSE66(Ia_punpckhqdq_Vdq_Wdq) },
/* 0F 6E */ { GRPSSE(0f6eQ) },
/* 0F 6E */ { GRPSSE2(0f6eQ) },
/* 0F 6F */ { GRPSSE(0f6f) },
/* 0F 70 */ { GRPSSE(0f70) },
/* 0F 71 */ { GRPN(G12) },
/* 0F 72 */ { GRPN(G13) },
/* 0F 73 */ { GRPN(G14) },
/* 0F 74 */ { GRPSSE(0f74) },
/* 0F 75 */ { GRPSSE(0f75) },
/* 0F 76 */ { GRPSSE(0f76) },
/* 0F 71 */ { GRPN(G12) },
/* 0F 72 */ { GRPN(G13) },
/* 0F 73 */ { GRPN(G14) },
/* 0F 74 */ { GRPSSE2(0f74) },
/* 0F 75 */ { GRPSSE2(0f75) },
/* 0F 76 */ { GRPSSE2(0f76) },
/* 0F 77 */ { 0, &Ia_emms },
/* 0F 78 */ { GRPSSE(0f78Q) }, // VMX
/* 0F 79 */ { GRPSSE(0f79Q) }, // VMX
@ -3232,51 +3232,51 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64q[256*2] = {
/* 0F CE */ { 0, &Ia_bswapq_RRX },
/* 0F CF */ { 0, &Ia_bswapq_RRX },
/* 0F D0 */ { GRPSSE(0fd0) },
/* 0F D1 */ { GRPSSE(0fd1) },
/* 0F D2 */ { GRPSSE(0fd2) },
/* 0F D3 */ { GRPSSE(0fd3) },
/* 0F D4 */ { GRPSSE(0fd4) },
/* 0F D5 */ { GRPSSE(0fd5) },
/* 0F D1 */ { GRPSSE2(0fd1) },
/* 0F D2 */ { GRPSSE2(0fd2) },
/* 0F D3 */ { GRPSSE2(0fd3) },
/* 0F D4 */ { GRPSSE2(0fd4) },
/* 0F D5 */ { GRPSSE2(0fd5) },
/* 0F D6 */ { GRPSSE(0fd6) },
/* 0F D7 */ { GRPSSE(0fd7) },
/* 0F D8 */ { GRPSSE(0fd8) },
/* 0F D9 */ { GRPSSE(0fd9) },
/* 0F DA */ { GRPSSE(0fda) },
/* 0F DB */ { GRPSSE(0fdb) },
/* 0F DC */ { GRPSSE(0fdc) },
/* 0F DD */ { GRPSSE(0fdd) },
/* 0F DE */ { GRPSSE(0fde) },
/* 0F DF */ { GRPSSE(0fdf) },
/* 0F E0 */ { GRPSSE(0fe0) },
/* 0F E1 */ { GRPSSE(0fe1) },
/* 0F E2 */ { GRPSSE(0fe2) },
/* 0F E3 */ { GRPSSE(0fe3) },
/* 0F E4 */ { GRPSSE(0fe4) },
/* 0F E5 */ { GRPSSE(0fe5) },
/* 0F D7 */ { GRPSSE2(0fd7) },
/* 0F D8 */ { GRPSSE2(0fd8) },
/* 0F D9 */ { GRPSSE2(0fd9) },
/* 0F DA */ { GRPSSE2(0fda) },
/* 0F DB */ { GRPSSE2(0fdb) },
/* 0F DC */ { GRPSSE2(0fdc) },
/* 0F DD */ { GRPSSE2(0fdd) },
/* 0F DE */ { GRPSSE2(0fde) },
/* 0F DF */ { GRPSSE2(0fdf) },
/* 0F E0 */ { GRPSSE2(0fe0) },
/* 0F E1 */ { GRPSSE2(0fe1) },
/* 0F E2 */ { GRPSSE2(0fe2) },
/* 0F E3 */ { GRPSSE2(0fe3) },
/* 0F E4 */ { GRPSSE2(0fe4) },
/* 0F E5 */ { GRPSSE2(0fe5) },
/* 0F E6 */ { GRPSSE(0fe6) },
/* 0F E7 */ { GRPSSE(0fe7) },
/* 0F E8 */ { GRPSSE(0fe8) },
/* 0F E9 */ { GRPSSE(0fe9) },
/* 0F EA */ { GRPSSE(0fea) },
/* 0F EB */ { GRPSSE(0feb) },
/* 0F EC */ { GRPSSE(0fec) },
/* 0F ED */ { GRPSSE(0fed) },
/* 0F EE */ { GRPSSE(0fee) },
/* 0F EF */ { GRPSSE(0fef) },
/* 0F E7 */ { GRPSSE2(0fe7) },
/* 0F E8 */ { GRPSSE2(0fe8) },
/* 0F E9 */ { GRPSSE2(0fe9) },
/* 0F EA */ { GRPSSE2(0fea) },
/* 0F EB */ { GRPSSE2(0feb) },
/* 0F EC */ { GRPSSE2(0fec) },
/* 0F ED */ { GRPSSE2(0fed) },
/* 0F EE */ { GRPSSE2(0fee) },
/* 0F EF */ { GRPSSE2(0fef) },
/* 0F F0 */ { GRPSSEF2(Ia_lddqu_Vdq_Mdq) },
/* 0F F1 */ { GRPSSE(0ff1) },
/* 0F F2 */ { GRPSSE(0ff2) },
/* 0F F3 */ { GRPSSE(0ff3) },
/* 0F F4 */ { GRPSSE(0ff4) },
/* 0F F5 */ { GRPSSE(0ff5) },
/* 0F F6 */ { GRPSSE(0ff6) },
/* 0F F7 */ { GRPSSE(0ff7) },
/* 0F F8 */ { GRPSSE(0ff8) },
/* 0F F9 */ { GRPSSE(0ff9) },
/* 0F FA */ { GRPSSE(0ffa) },
/* 0F FB */ { GRPSSE(0ffb) },
/* 0F FC */ { GRPSSE(0ffc) },
/* 0F FD */ { GRPSSE(0ffd) },
/* 0F FE */ { GRPSSE(0ffe) },
/* 0F F1 */ { GRPSSE2(0ff1) },
/* 0F F2 */ { GRPSSE2(0ff2) },
/* 0F F3 */ { GRPSSE2(0ff3) },
/* 0F F4 */ { GRPSSE2(0ff4) },
/* 0F F5 */ { GRPSSE2(0ff5) },
/* 0F F6 */ { GRPSSE2(0ff6) },
/* 0F F7 */ { GRPSSE2(0ff7) },
/* 0F F8 */ { GRPSSE2(0ff8) },
/* 0F F9 */ { GRPSSE2(0ff9) },
/* 0F FA */ { GRPSSE2(0ffa) },
/* 0F FB */ { GRPSSE2(0ffb) },
/* 0F FC */ { GRPSSE2(0ffc) },
/* 0F FD */ { GRPSSE2(0ffd) },
/* 0F FE */ { GRPSSE2(0ffe) },
/* 0F FF */ { 0, &Ia_Invalid }
};

View File

@ -64,18 +64,14 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f13[4] = {
/* F2 */ { 0, &Ia_Invalid }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f14[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f14[2] = {
/* -- */ { 0, &Ia_unpcklps_Vps_Wps },
/* 66 */ { 0, &Ia_unpcklpd_Vpd_Wpd },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_unpcklpd_Vpd_Wpd }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f15[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f15[2] = {
/* -- */ { 0, &Ia_unpckhps_Vps_Wps },
/* 66 */ { 0, &Ia_unpckhpd_Vpd_Wpd },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_unpckhpd_Vpd_Wpd }
};
static BxDisasmOpcodeTable_t BxDisasmGroupModMOVLHPS[2] = {
@ -97,18 +93,14 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f17[4] = {
/* F2 */ { 0, &Ia_Invalid }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f28[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f28[2] = {
/* -- */ { 0, &Ia_movaps_Vps_Wps },
/* 66 */ { 0, &Ia_movapd_Vpd_Wpd },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_movapd_Vpd_Wpd }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f29[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f29[2] = {
/* -- */ { 0, &Ia_movaps_Wps_Vps },
/* 66 */ { 0, &Ia_movapd_Wpd_Vpd },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_movapd_Wpd_Vpd }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2a[4] = {
@ -139,25 +131,19 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2d[4] = {
/* F2 */ { 0, &Ia_cvtsd2si_Gy_Wsd }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2e[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2e[2] = {
/* -- */ { 0, &Ia_ucomiss_Vss_Wss },
/* 66 */ { 0, &Ia_ucomisd_Vsd_Wsd },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_ucomisd_Vsd_Wsd }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2f[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f2f[2] = {
/* -- */ { 0, &Ia_comiss_Vss_Wss },
/* 66 */ { 0, &Ia_comisd_Vsd_Wsd },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_comisd_Vsd_Wsd }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f50[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f50[2] = {
/* -- */ { 0, &Ia_movmskps_Gd_Ups },
/* 66 */ { 0, &Ia_movmskpd_Gd_Upd },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_movmskpd_Gd_Upd }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f51[4] = {
@ -265,102 +251,74 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f5f[4] = {
/* F2 */ { 0, &Ia_maxsd_Vsd_Wsd }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f60[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f60[2] = {
/* -- */ { 0, &Ia_punpcklbw_Pq_Qd },
/* 66 */ { 0, &Ia_punpcklbw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_punpcklbw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f61[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f61[2] = {
/* -- */ { 0, &Ia_punpcklwd_Pq_Qd },
/* 66 */ { 0, &Ia_punpcklwd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_punpcklwd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f62[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f62[2] = {
/* -- */ { 0, &Ia_punpckldq_Pq_Qd },
/* 66 */ { 0, &Ia_punpckldq_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_punpckldq_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f63[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f63[2] = {
/* -- */ { 0, &Ia_packsswb_Pq_Qq },
/* 66 */ { 0, &Ia_packsswb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_packsswb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f64[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f64[2] = {
/* -- */ { 0, &Ia_pcmpgtb_Pq_Qq },
/* 66 */ { 0, &Ia_pcmpgtb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pcmpgtb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f65[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f65[2] = {
/* -- */ { 0, &Ia_pcmpgtw_Pq_Qq },
/* 66 */ { 0, &Ia_pcmpgtw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pcmpgtw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f66[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f66[2] = {
/* -- */ { 0, &Ia_pcmpgtd_Pq_Qq },
/* 66 */ { 0, &Ia_pcmpgtd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pcmpgtd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f67[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f67[2] = {
/* -- */ { 0, &Ia_packuswb_Pq_Qq },
/* 66 */ { 0, &Ia_packuswb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_packuswb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f68[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f68[2] = {
/* -- */ { 0, &Ia_punpckhbw_Pq_Qq },
/* 66 */ { 0, &Ia_punpckhbw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_punpckhbw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f69[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f69[2] = {
/* -- */ { 0, &Ia_punpckhwd_Pq_Qq },
/* 66 */ { 0, &Ia_punpckhwd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_punpckhwd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6a[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6a[2] = {
/* -- */ { 0, &Ia_punpckhdq_Pq_Qq },
/* 66 */ { 0, &Ia_punpckhdq_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_punpckhdq_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6b[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6b[2] = {
/* -- */ { 0, &Ia_packssdw_Pq_Qq },
/* 66 */ { 0, &Ia_packssdw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_packssdw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6e[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6e[2] = {
/* -- */ { 0, &Ia_movd_Pq_Ed },
/* 66 */ { 0, &Ia_movd_Vdq_Ed },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_movd_Vdq_Ed }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6eQ[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6eQ[2] = {
/* -- */ { 0, &Ia_movq_Pq_Eq },
/* 66 */ { 0, &Ia_movq_Vdq_Eq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_movq_Vdq_Eq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f6f[4] = {
@ -377,25 +335,19 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f70[4] = {
/* F2 */ { 0, &Ia_pshuflw_Vdq_Wdq_Ib }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f74[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f74[2] = {
/* -- */ { 0, &Ia_pcmpeqb_Pq_Qq },
/* 66 */ { 0, &Ia_pcmpeqb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pcmpeqb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f75[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f75[2] = {
/* -- */ { 0, &Ia_pcmpeqw_Pq_Qq },
/* 66 */ { 0, &Ia_pcmpeqw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pcmpeqw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f76[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f76[2] = {
/* -- */ { 0, &Ia_pcmpeqd_Pq_Qq },
/* 66 */ { 0, &Ia_pcmpeqd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pcmpeqd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE4A_G17[8] = {
@ -507,39 +459,29 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd0[4] = {
/* F3 */ { 0, &Ia_addsubps_Vps_Wps },
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd1[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd1[2] = {
/* -- */ { 0, &Ia_psrlw_Pq_Qq },
/* 66 */ { 0, &Ia_psrlw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psrlw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd2[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd2[2] = {
/* -- */ { 0, &Ia_psrld_Pq_Qq },
/* 66 */ { 0, &Ia_psrld_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psrld_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd3[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd3[2] = {
/* -- */ { 0, &Ia_psrlq_Pq_Qq },
/* 66 */ { 0, &Ia_psrlq_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psrlq_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd4[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd4[2] = {
/* -- */ { 0, &Ia_paddq_Pq_Qq },
/* 66 */ { 0, &Ia_paddq_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_paddq_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd5[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd5[2] = {
/* -- */ { 0, &Ia_pmullw_Pq_Qq },
/* 66 */ { 0, &Ia_pmullw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pmullw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd6[4] = {
@ -549,109 +491,79 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd6[4] = {
/* F2 */ { 0, &Ia_movdq2q_Pq_Udq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd7[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd7[2] = {
/* -- */ { 0, &Ia_pmovmskb_Gd_Nq },
/* 66 */ { 0, &Ia_pmovmskb_Gd_Udq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pmovmskb_Gd_Udq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd8[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd8[2] = {
/* -- */ { 0, &Ia_psubusb_Pq_Qq },
/* 66 */ { 0, &Ia_psubusb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psubusb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd9[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fd9[2] = {
/* -- */ { 0, &Ia_psubusw_Pq_Qq },
/* 66 */ { 0, &Ia_psubusw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psubusw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fda[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fda[2] = {
/* -- */ { 0, &Ia_pminub_Pq_Qq },
/* 66 */ { 0, &Ia_pminub_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pminub_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdb[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdb[2] = {
/* -- */ { 0, &Ia_pand_Pq_Qq },
/* 66 */ { 0, &Ia_pand_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pand_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdc[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdc[2] = {
/* -- */ { 0, &Ia_paddusb_Pq_Qq },
/* 66 */ { 0, &Ia_paddusb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_paddusb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdd[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdd[2] = {
/* -- */ { 0, &Ia_paddusw_Pq_Qq },
/* 66 */ { 0, &Ia_paddusw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_paddusw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fde[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fde[2] = {
/* -- */ { 0, &Ia_pmaxub_Pq_Qq },
/* 66 */ { 0, &Ia_pmaxub_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pmaxub_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdf[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fdf[2] = {
/* -- */ { 0, &Ia_pandn_Pq_Qq },
/* 66 */ { 0, &Ia_pandn_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pandn_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe0[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe0[2] = {
/* -- */ { 0, &Ia_pavgb_Pq_Qq },
/* 66 */ { 0, &Ia_pavgb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pavgb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe1[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe1[2] = {
/* -- */ { 0, &Ia_psraw_Pq_Qq },
/* 66 */ { 0, &Ia_psraw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psraw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe2[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe2[2] = {
/* -- */ { 0, &Ia_psrad_Pq_Qq },
/* 66 */ { 0, &Ia_psrad_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psrad_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe3[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe3[2] = {
/* -- */ { 0, &Ia_pavgw_Pq_Qq },
/* 66 */ { 0, &Ia_pavgw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pavgw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe4[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe4[2] = {
/* -- */ { 0, &Ia_pmulhuw_Pq_Qq },
/* 66 */ { 0, &Ia_pmulhuw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pmulhuw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe5[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe5[2] = {
/* -- */ { 0, &Ia_pmulhw_Pq_Qq },
/* 66 */ { 0, &Ia_pmulhw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pmulhw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe6[4] = {
@ -661,326 +573,234 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe6[4] = {
/* F2 */ { 0, &Ia_cvtpd2dq_Vq_Wpd }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe7[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe7[2] = {
/* -- */ { 0, &Ia_movntq_Mq_Pq },
/* 66 */ { 0, &Ia_movntdq_Mdq_Vdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_movntdq_Mdq_Vdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe8[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe8[2] = {
/* -- */ { 0, &Ia_psubsb_Pq_Qq },
/* 66 */ { 0, &Ia_psubsb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psubsb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe9[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fe9[2] = {
/* -- */ { 0, &Ia_psubsw_Pq_Qq },
/* 66 */ { 0, &Ia_psubsw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psubsw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fea[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fea[2] = {
/* -- */ { 0, &Ia_pminsw_Pq_Qq },
/* 66 */ { 0, &Ia_pminsw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pminsw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0feb[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0feb[2] = {
/* -- */ { 0, &Ia_por_Pq_Qq },
/* 66 */ { 0, &Ia_por_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_por_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fec[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fec[2] = {
/* -- */ { 0, &Ia_paddsb_Pq_Qq },
/* 66 */ { 0, &Ia_paddsb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_paddsb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fed[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fed[2] = {
/* -- */ { 0, &Ia_paddsw_Pq_Qq },
/* 66 */ { 0, &Ia_paddsw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_paddsw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fee[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fee[2] = {
/* -- */ { 0, &Ia_pmaxsw_Pq_Qq },
/* 66 */ { 0, &Ia_pmaxsw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pmaxsw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fef[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fef[2] = {
/* -- */ { 0, &Ia_pxor_Pq_Qq },
/* 66 */ { 0, &Ia_pxor_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pxor_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff1[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff1[2] = {
/* -- */ { 0, &Ia_psllw_Pq_Qq },
/* 66 */ { 0, &Ia_psllw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psllw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff2[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff2[2] = {
/* -- */ { 0, &Ia_pslld_Pq_Qq },
/* 66 */ { 0, &Ia_pslld_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pslld_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff3[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff3[2] = {
/* -- */ { 0, &Ia_psllq_Pq_Qq },
/* 66 */ { 0, &Ia_psllq_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psllq_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff4[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff4[2] = {
/* -- */ { 0, &Ia_pmuludq_Pq_Qq },
/* 66 */ { 0, &Ia_pmuludq_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pmuludq_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff5[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff5[2] = {
/* -- */ { 0, &Ia_pmaddwd_Pq_Qq },
/* 66 */ { 0, &Ia_pmaddwd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pmaddwd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff6[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff6[2] = {
/* -- */ { 0, &Ia_psadbw_Pq_Qq },
/* 66 */ { 0, &Ia_psadbw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psadbw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff7[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff7[2] = {
/* -- */ { 0, &Ia_maskmovq_Pq_Nq },
/* 66 */ { 0, &Ia_maskmovdqu_Vdq_Udq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_maskmovdqu_Vdq_Udq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff8[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff8[2] = {
/* -- */ { 0, &Ia_psubb_Pq_Qq },
/* 66 */ { 0, &Ia_psubb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psubb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff9[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ff9[2] = {
/* -- */ { 0, &Ia_psubw_Pq_Qq },
/* 66 */ { 0, &Ia_psubw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psubw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffa[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffa[2] = {
/* -- */ { 0, &Ia_psubd_Pq_Qq },
/* 66 */ { 0, &Ia_psubd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psubd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffb[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffb[2] = {
/* -- */ { 0, &Ia_psubq_Pq_Qq },
/* 66 */ { 0, &Ia_psubq_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psubq_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffc[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffc[2] = {
/* -- */ { 0, &Ia_paddb_Pq_Qq },
/* 66 */ { 0, &Ia_paddb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_paddb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffd[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffd[2] = {
/* -- */ { 0, &Ia_paddw_Pq_Qq },
/* 66 */ { 0, &Ia_paddw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_paddw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffe[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0ffe[2] = {
/* -- */ { 0, &Ia_paddd_Pq_Qq },
/* 66 */ { 0, &Ia_paddd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_paddd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1202[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1202[2] = {
/* -- */ { 0, &Ia_psrlw_Nq_Ib },
/* 66 */ { 0, &Ia_psrlw_Udq_Ib },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psrlw_Udq_Ib }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1204[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1204[2] = {
/* -- */ { 0, &Ia_psraw_Nq_Ib },
/* 66 */ { 0, &Ia_psraw_Udq_Ib },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psraw_Udq_Ib }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1206[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1206[2] = {
/* -- */ { 0, &Ia_psllw_Nq_Ib },
/* 66 */ { 0, &Ia_psllw_Udq_Ib },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psllw_Udq_Ib }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1302[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1302[2] = {
/* -- */ { 0, &Ia_psrld_Nq_Ib },
/* 66 */ { 0, &Ia_psrld_Udq_Ib },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psrld_Udq_Ib }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1304[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1304[2] = {
/* -- */ { 0, &Ia_psrad_Nq_Ib },
/* 66 */ { 0, &Ia_psrad_Udq_Ib },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psrad_Udq_Ib }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1306[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1306[2] = {
/* -- */ { 0, &Ia_pslld_Nq_Ib },
/* 66 */ { 0, &Ia_pslld_Udq_Ib },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pslld_Udq_Ib }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1402[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1402[2] = {
/* -- */ { 0, &Ia_psrlq_Nq_Ib },
/* 66 */ { 0, &Ia_psrlq_Udq_Ib },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psrlq_Udq_Ib }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1406[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_G1406[2] = {
/* -- */ { 0, &Ia_psllq_Nq_Ib },
/* 66 */ { 0, &Ia_psllq_Udq_Ib },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psllq_Udq_Ib }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3800[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3800[2] = {
/* -- */ { 0, &Ia_pshufb_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_pshufb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pshufb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3801[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3801[2] = {
/* -- */ { 0, &Ia_phaddw_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_phaddw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_phaddw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3802[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3802[2] = {
/* -- */ { 0, &Ia_phaddd_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_phaddd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_phaddd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3803[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3803[2] = {
/* -- */ { 0, &Ia_phaddsw_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_phaddsw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_phaddsw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3804[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3804[2] = {
/* -- */ { 0, &Ia_pmaddubsw_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_pmaddubsw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pmaddubsw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3805[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3805[2] = {
/* -- */ { 0, &Ia_phsubw_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_phsubw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_phsubw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3806[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3806[2] = {
/* -- */ { 0, &Ia_phsubd_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_phsubd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_phsubd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3807[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3807[2] = {
/* -- */ { 0, &Ia_phsubsw_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_phsubsw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_phsubsw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3808[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3808[2] = {
/* -- */ { 0, &Ia_psignb_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_psignb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psignb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3809[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3809[2] = {
/* -- */ { 0, &Ia_psignw_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_psignw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psignw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f380a[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f380a[2] = {
/* -- */ { 0, &Ia_psignd_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_psignd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_psignd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f380b[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f380b[2] = {
/* -- */ { 0, &Ia_pmulhrsw_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_pmulhrsw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pmulhrsw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381c[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381c[2] = {
/* -- */ { 0, &Ia_pabsb_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_pabsb_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pabsb_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381d[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381d[2] = {
/* -- */ { 0, &Ia_pabsw_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_pabsw_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pabsw_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381e[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381e[2] = {
/* -- */ { 0, &Ia_pabsd_Pq_Qq }, // SSSE3
/* 66 */ { 0, &Ia_pabsd_Vdq_Wdq },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_pabsd_Vdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38f0w[4] = {
@ -1056,11 +876,9 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38f6[4] = {
/* F2 */ { 0, &Ia_Invalid }
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a0f[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a0f[2] = {
/* -- */ { 0, &Ia_palignr_Pq_Qq_Ib }, // SSSE3
/* 66 */ { 0, &Ia_palignr_Vdq_Wdq_Ib },
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { 0, &Ia_palignr_Vdq_Wdq_Ib }
};
static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_pextr[3] = {
@ -1069,11 +887,9 @@ static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_pextr[3] = {
/* 64 */ { 0, &Ia_pextrq_Eq_Vdq_Ib },
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a16[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a16[2] = {
/* -- */ { 0, &Ia_Invalid },
/* 66 */ { GR64BIT(pextr) }, // SSE4
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { GR64BIT(pextr) } // SSE4
};
static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_pinsr[3] = {
@ -1082,11 +898,9 @@ static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_pinsr[3] = {
/* 64 */ { 0, &Ia_pinsrq_Vdq_Eq_Ib },
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a22[4] = {
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a22[2] = {
/* -- */ { 0, &Ia_Invalid },
/* 66 */ { GR64BIT(pinsr) }, // SSE4
/* F3 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid }
/* 66 */ { GR64BIT(pinsr) } // SSE4
};
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fbcw[4] = {
@ -1135,18 +949,18 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fbdq[4] = {
/* 3-byte opcode table (Table A-4, 0F 38) */
static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f38[256] = {
/* 00 */ { GRPSSE(0f3800) },
/* 01 */ { GRPSSE(0f3801) },
/* 02 */ { GRPSSE(0f3802) },
/* 03 */ { GRPSSE(0f3803) },
/* 04 */ { GRPSSE(0f3804) },
/* 05 */ { GRPSSE(0f3805) },
/* 06 */ { GRPSSE(0f3806) },
/* 07 */ { GRPSSE(0f3807) },
/* 08 */ { GRPSSE(0f3808) },
/* 09 */ { GRPSSE(0f3809) },
/* 0A */ { GRPSSE(0f380a) },
/* 0B */ { GRPSSE(0f380b) },
/* 00 */ { GRPSSE2(0f3800) },
/* 01 */ { GRPSSE2(0f3801) },
/* 02 */ { GRPSSE2(0f3802) },
/* 03 */ { GRPSSE2(0f3803) },
/* 04 */ { GRPSSE2(0f3804) },
/* 05 */ { GRPSSE2(0f3805) },
/* 06 */ { GRPSSE2(0f3806) },
/* 07 */ { GRPSSE2(0f3807) },
/* 08 */ { GRPSSE2(0f3808) },
/* 09 */ { GRPSSE2(0f3809) },
/* 0A */ { GRPSSE2(0f380a) },
/* 0B */ { GRPSSE2(0f380b) },
/* 0C */ { 0, &Ia_Invalid },
/* 0D */ { 0, &Ia_Invalid },
/* 0E */ { 0, &Ia_Invalid },
@ -1163,9 +977,9 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f38[256] = {
/* 19 */ { 0, &Ia_Invalid },
/* 1A */ { 0, &Ia_Invalid },
/* 1B */ { 0, &Ia_Invalid },
/* 1C */ { GRPSSE(0f381c) },
/* 1D */ { GRPSSE(0f381d) },
/* 1E */ { GRPSSE(0f381e) },
/* 1C */ { GRPSSE2(0f381c) },
/* 1D */ { GRPSSE2(0f381d) },
/* 1E */ { GRPSSE2(0f381e) },
/* 1F */ { 0, &Ia_Invalid },
/* 20 */ { GRPSSE66(Ia_pmovsxbw_Vdq_Wq) },
/* 21 */ { GRPSSE66(Ia_pmovsxbd_Vdq_Wd) },
@ -1412,14 +1226,14 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f3a[256] = {
/* 0C */ { GRPSSE66(Ia_blendps_Vps_Wps_Ib) },
/* 0D */ { GRPSSE66(Ia_blendpd_Vpd_Wpd_Ib) },
/* 0E */ { GRPSSE66(Ia_pblendw_Vdq_Wdq_Ib) },
/* 0F */ { GRPSSE(0f3a0f) },
/* 0F */ { GRPSSE2(0f3a0f) },
/* 10 */ { 0, &Ia_Invalid },
/* 11 */ { 0, &Ia_Invalid },
/* 12 */ { 0, &Ia_Invalid },
/* 13 */ { 0, &Ia_Invalid },
/* 14 */ { GRPSSE66(Ia_pextrb_Ebd_Vdq_Ib) },
/* 15 */ { GRPSSE66(Ia_pextrw_Ewd_Vdq_Ib) },
/* 16 */ { GRPSSE(0f3a16) },
/* 16 */ { GRPSSE2(0f3a16) },
/* 17 */ { GRPSSE66(Ia_extractps_Ed_Vdq_Ib) },
/* 18 */ { 0, &Ia_Invalid },
/* 19 */ { 0, &Ia_Invalid },
@ -1431,7 +1245,7 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f3a[256] = {
/* 1F */ { 0, &Ia_Invalid },
/* 20 */ { GRPSSE66(Ia_pinsrb_Vdq_Ew_Ib) },
/* 21 */ { GRPSSE66(Ia_insertps_Vps_Wss_Ib) },
/* 22 */ { GRPSSE(0f3a22) },
/* 22 */ { GRPSSE2(0f3a22) },
/* 23 */ { 0, &Ia_Invalid },
/* 24 */ { 0, &Ia_Invalid },
/* 25 */ { 0, &Ia_Invalid },