diff --git a/bochs/cpu/cpu.h b/bochs/cpu/cpu.h index d18c0950c..bd1cdeba5 100644 --- a/bochs/cpu/cpu.h +++ b/bochs/cpu/cpu.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: cpu.h,v 1.514 2008-08-27 21:57:40 sshwarts Exp $ +// $Id: cpu.h,v 1.515 2008-08-29 19:23:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -3739,9 +3739,10 @@ IMPLEMENT_EFLAG_SET_ACCESSOR_TF( 8) // Group encoding: 111 #define BxLockable 0x0080 // bit 7 +#define BxArithDstRM 0x0100 // bit 8 #if BX_SUPPORT_TRACE_CACHE - #define BxTraceEnd 0x0100 // bit 8 + #define BxTraceEnd 0x0200 // bit 9 #else #define BxTraceEnd 0 #endif diff --git a/bochs/cpu/data_xfer8.cc b/bochs/cpu/data_xfer8.cc index da6e7d1b0..5c927427c 100644 --- a/bochs/cpu/data_xfer8.cc +++ b/bochs/cpu/data_xfer8.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: data_xfer8.cc,v 1.42 2008-08-08 09:22:47 sshwarts Exp $ +// $Id: data_xfer8.cc,v 1.43 2008-08-29 19:23:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -80,22 +80,18 @@ void BX_CPP_AttrRegparmN(1) BX_CPU_C::MOV_EbIbM(bxInstruction_c *i) void BX_CPP_AttrRegparmN(1) BX_CPU_C::XLAT(bxInstruction_c *i) { - bx_address offset; - #if BX_SUPPORT_X86_64 if (i->as64L()) { - offset = RBX; + AL = read_virtual_byte_64(i->seg(), RBX + AL); } else #endif if (i->as32L()) { - offset = EBX; + AL = read_virtual_byte(i->seg(), (Bit32u) (EBX + AL)); } else { - offset = BX; + AL = read_virtual_byte_32(i->seg(), (Bit16u) (BX + AL)); } - - AL = read_virtual_byte(i->seg(), offset + AL); } void BX_CPP_AttrRegparmN(1) BX_CPU_C::XCHG_EbGbM(bxInstruction_c *i) diff --git a/bochs/cpu/fetchdecode.cc b/bochs/cpu/fetchdecode.cc index 221062773..750f29bdb 100644 --- a/bochs/cpu/fetchdecode.cc +++ b/bochs/cpu/fetchdecode.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fetchdecode.cc,v 1.205 2008-08-27 21:57:40 sshwarts Exp $ +// $Id: fetchdecode.cc,v 1.206 2008-08-29 19:23:00 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -185,7 +185,7 @@ static unsigned sreg_mod1or2_base32[8] = { // table of all Bochs opcodes bxIAOpcodeTable BxOpcodesTable[] = { -#define bx_define_opcode(a, b, c, d ) { b, c, d }, +#define bx_define_opcode(a, b, c) { b, c }, #include "ia_opcodes.h" }; #undef bx_define_opcode @@ -197,64 +197,64 @@ bxIAOpcodeTable BxOpcodesTable[] = { static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { // 512 entries for 16bit mode - /* 00 /wr */ { 0, BX_IA_ADD_EbGbR }, - /* 01 /wr */ { 0, BX_IA_ADD_EwGwR }, + /* 00 /wr */ { BxArithDstRM, BX_IA_ADD_GbEbR }, + /* 01 /wr */ { BxArithDstRM, BX_IA_ADD_GwEwR }, /* 02 /wr */ { 0, BX_IA_ADD_GbEbR }, /* 03 /wr */ { 0, BX_IA_ADD_GwEwR }, /* 04 /wr */ { BxImmediate_Ib, BX_IA_ADD_ALIb }, /* 05 /wr */ { BxImmediate_Iw, BX_IA_ADD_AXIw }, /* 06 /wr */ { 0, BX_IA_PUSH16_ES }, /* 07 /wr */ { 0, BX_IA_POP16_ES }, - /* 08 /wr */ { 0, BX_IA_OR_EbGbR }, - /* 09 /wr */ { 0, BX_IA_OR_EwGwR }, + /* 08 /wr */ { BxArithDstRM, BX_IA_OR_GbEbR }, + /* 09 /wr */ { BxArithDstRM, BX_IA_OR_GwEwR }, /* 0A /wr */ { 0, BX_IA_OR_GbEbR }, /* 0B /wr */ { 0, BX_IA_OR_GwEwR }, /* 0C /wr */ { BxImmediate_Ib, BX_IA_OR_ALIb }, /* 0D /wr */ { BxImmediate_Iw, BX_IA_OR_AXIw }, /* 0E /wr */ { 0, BX_IA_PUSH16_CS }, /* 0F /wr */ { 0, BX_IA_ERROR }, // 2-byte escape - /* 10 /wr */ { 0, BX_IA_ADC_EbGbR }, - /* 11 /wr */ { 0, BX_IA_ADC_EwGwR }, + /* 10 /wr */ { BxArithDstRM, BX_IA_ADC_GbEbR }, + /* 11 /wr */ { BxArithDstRM, BX_IA_ADC_GwEwR }, /* 12 /wr */ { 0, BX_IA_ADC_GbEbR }, /* 13 /wr */ { 0, BX_IA_ADC_GwEwR }, /* 14 /wr */ { BxImmediate_Ib, BX_IA_ADC_ALIb }, /* 15 /wr */ { BxImmediate_Iw, BX_IA_ADC_AXIw }, /* 16 /wr */ { 0, BX_IA_PUSH16_SS }, /* 17 /wr */ { BxTraceEnd, BX_IA_POP16_SS }, // async_event = 1 - /* 18 /wr */ { 0, BX_IA_SBB_EbGbR }, - /* 19 /wr */ { 0, BX_IA_SBB_EwGwR }, + /* 18 /wr */ { BxArithDstRM, BX_IA_SBB_GbEbR }, + /* 19 /wr */ { BxArithDstRM, BX_IA_SBB_GwEwR }, /* 1A /wr */ { 0, BX_IA_SBB_GbEbR }, /* 1B /wr */ { 0, BX_IA_SBB_GwEwR }, /* 1C /wr */ { BxImmediate_Ib, BX_IA_SBB_ALIb }, /* 1D /wr */ { BxImmediate_Iw, BX_IA_SBB_AXIw }, /* 1E /wr */ { 0, BX_IA_PUSH16_DS }, /* 1F /wr */ { 0, BX_IA_POP16_DS }, - /* 20 /wr */ { 0, BX_IA_AND_EbGbR }, - /* 21 /wr */ { 0, BX_IA_AND_EwGwR }, + /* 20 /wr */ { BxArithDstRM, BX_IA_AND_GbEbR }, + /* 21 /wr */ { BxArithDstRM, BX_IA_AND_GwEwR }, /* 22 /wr */ { 0, BX_IA_AND_GbEbR }, /* 23 /wr */ { 0, BX_IA_AND_GwEwR }, /* 24 /wr */ { BxImmediate_Ib, BX_IA_AND_ALIb }, /* 25 /wr */ { BxImmediate_Iw, BX_IA_AND_AXIw }, /* 26 /wr */ { 0, BX_IA_ERROR }, // ES: /* 27 /wr */ { 0, BX_IA_DAA }, - /* 28 /wr */ { 0, BX_IA_SUB_EbGbR }, - /* 29 /wr */ { 0, BX_IA_SUB_EwGwR }, + /* 28 /wr */ { BxArithDstRM, BX_IA_SUB_GbEbR }, + /* 29 /wr */ { BxArithDstRM, BX_IA_SUB_GwEwR }, /* 2A /wr */ { 0, BX_IA_SUB_GbEbR }, /* 2B /wr */ { 0, BX_IA_SUB_GwEwR }, /* 2C /wr */ { BxImmediate_Ib, BX_IA_SUB_ALIb }, /* 2D /wr */ { BxImmediate_Iw, BX_IA_SUB_AXIw }, /* 2E /wr */ { 0, BX_IA_ERROR }, // CS: /* 2F /wr */ { 0, BX_IA_DAS }, - /* 30 /wr */ { 0, BX_IA_XOR_EbGbR }, - /* 31 /wr */ { 0, BX_IA_XOR_EwGwR }, + /* 30 /wr */ { BxArithDstRM, BX_IA_XOR_GbEbR }, + /* 31 /wr */ { BxArithDstRM, BX_IA_XOR_GwEwR }, /* 32 /wr */ { 0, BX_IA_XOR_GbEbR }, /* 33 /wr */ { 0, BX_IA_XOR_GwEwR }, /* 34 /wr */ { BxImmediate_Ib, BX_IA_XOR_ALIb }, /* 35 /wr */ { BxImmediate_Iw, BX_IA_XOR_AXIw }, /* 36 /wr */ { 0, BX_IA_ERROR }, // SS: /* 37 /wr */ { 0, BX_IA_AAA }, - /* 38 /wr */ { 0, BX_IA_CMP_EbGbR }, - /* 39 /wr */ { 0, BX_IA_CMP_EwGwR }, + /* 38 /wr */ { BxArithDstRM, BX_IA_CMP_GbEbR }, + /* 39 /wr */ { BxArithDstRM, BX_IA_CMP_GwEwR }, /* 3A /wr */ { 0, BX_IA_CMP_GbEbR }, /* 3B /wr */ { 0, BX_IA_CMP_GwEwR }, /* 3C /wr */ { BxImmediate_Ib, BX_IA_CMP_ALIb }, @@ -333,8 +333,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 85 /wr */ { 0, BX_IA_TEST_EwGwR }, /* 86 /wr */ { 0, BX_IA_XCHG_EbGbR }, /* 87 /wr */ { 0, BX_IA_XCHG_EwGwR }, - /* 88 /wr */ { 0, BX_IA_MOV_EbGbR }, - /* 89 /wr */ { 0, BX_IA_MOV_EwGwR }, + /* 88 /wr */ { BxArithDstRM, BX_IA_MOV_GbEbR }, + /* 89 /wr */ { BxArithDstRM, BX_IA_MOV_GwEwR }, /* 8A /wr */ { 0, BX_IA_MOV_GbEbR }, /* 8B /wr */ { 0, BX_IA_MOV_GwEwR }, /* 8C /wr */ { 0, BX_IA_MOV_EwSwR }, @@ -499,13 +499,13 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { #else /* 0F 0F /wr */ { 0, BX_IA_ERROR }, #endif - /* 0F 10 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f10 }, - /* 0F 11 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f11 }, - /* 0F 12 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f12 }, + /* 0F 10 /wr */ { BxPrefixSSE, BX_IA_MOVUPS_VpsWps, BxOpcodeGroupSSE_0f10 }, + /* 0F 11 /wr */ { BxPrefixSSE, BX_IA_MOVUPS_WpsVps, BxOpcodeGroupSSE_0f11 }, + /* 0F 12 /wr */ { BxPrefixSSE, BX_IA_MOVLPS_VpsMq, BxOpcodeGroupSSE_0f12 }, /* 0F 13 /wr */ { 0, BX_IA_ERROR }, // MOVLPS/PD SSE group - /* 0F 14 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f14 }, - /* 0F 15 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f15 }, - /* 0F 16 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f16 }, + /* 0F 14 /wr */ { BxPrefixSSE, BX_IA_UNPCKLPS_VpsWdq, BxOpcodeGroupSSE_0f14 }, + /* 0F 15 /wr */ { BxPrefixSSE, BX_IA_UNPCKHPS_VpsWdq, BxOpcodeGroupSSE_0f15 }, + /* 0F 16 /wr */ { BxPrefixSSE, BX_IA_MOVHPS_VpsMq, BxOpcodeGroupSSE_0f16 }, /* 0F 17 /wr */ { 0, BX_IA_ERROR }, // MOHLPS/PD SSE group #if BX_CPU_LEVEL >= 6 /* 0F 18 /wr */ { 0, BX_IA_NOP }, // PREFETCH HINT @@ -534,14 +534,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 0F 25 /wr */ { 0, BX_IA_ERROR }, /* 0F 26 /wr */ { BxTraceEnd, BX_IA_MOV_TdRd }, // not implemented /* 0F 27 /wr */ { 0, BX_IA_ERROR }, - /* 0F 28 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f28 }, - /* 0F 29 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f29 }, - /* 0F 2A /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2a }, + /* 0F 28 /wr */ { BxPrefixSSE, BX_IA_MOVAPS_VpsWps, BxOpcodeGroupSSE_0f28 }, + /* 0F 29 /wr */ { BxPrefixSSE, BX_IA_MOVAPS_WpsVps, BxOpcodeGroupSSE_0f29 }, + /* 0F 2A /wr */ { BxPrefixSSE, BX_IA_CVTPI2PS_VpsQq, BxOpcodeGroupSSE_0f2a }, /* 0F 2B /wr */ { 0, BX_IA_ERROR }, // MOVNTPS/PD/SS/SD - /* 0F 2C /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2c }, - /* 0F 2D /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2d }, - /* 0F 2E /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2e }, - /* 0F 2F /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2f }, + /* 0F 2C /wr */ { BxPrefixSSE, BX_IA_CVTTPS2PI_PqWps, BxOpcodeGroupSSE_0f2c }, + /* 0F 2D /wr */ { BxPrefixSSE, BX_IA_CVTPS2PI_PqWps, BxOpcodeGroupSSE_0f2d }, + /* 0F 2E /wr */ { BxPrefixSSE, BX_IA_UCOMISS_VssWss, BxOpcodeGroupSSE_0f2e }, + /* 0F 2F /wr */ { BxPrefixSSE, BX_IA_COMISS_VpsWps, BxOpcodeGroupSSE_0f2f }, /* 0F 30 /wr */ { 0, BX_IA_WRMSR }, /* 0F 31 /wr */ { 0, BX_IA_RDTSC }, /* 0F 32 /wr */ { 0, BX_IA_RDMSR }, @@ -582,45 +582,45 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 0F 4D /wr */ { 0, BX_IA_CMOVNL_GwEwR }, /* 0F 4E /wr */ { 0, BX_IA_CMOVLE_GwEwR }, /* 0F 4F /wr */ { 0, BX_IA_CMOVNLE_GwEwR }, - /* 0F 50 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f50 }, - /* 0F 51 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f51 }, - /* 0F 52 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f52 }, - /* 0F 53 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f53 }, - /* 0F 54 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f54 }, - /* 0F 55 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f55 }, - /* 0F 56 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f56 }, - /* 0F 57 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f57 }, - /* 0F 58 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f58 }, - /* 0F 59 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f59 }, - /* 0F 5A /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5a }, - /* 0F 5B /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5b }, - /* 0F 5C /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5c }, - /* 0F 5D /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5d }, - /* 0F 5E /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5e }, - /* 0F 5F /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5f }, - /* 0F 60 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f60 }, - /* 0F 61 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f61 }, - /* 0F 62 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f62 }, - /* 0F 63 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f63 }, - /* 0F 64 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f64 }, - /* 0F 65 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f65 }, - /* 0F 66 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f66 }, - /* 0F 67 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f67 }, - /* 0F 68 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f68 }, - /* 0F 69 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f69 }, - /* 0F 6A /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6a }, - /* 0F 6B /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6b }, + /* 0F 50 /wr */ { BxPrefixSSE, BX_IA_MOVMSKPS_GdVRps, BxOpcodeGroupSSE_0f50 }, + /* 0F 51 /wr */ { BxPrefixSSE, BX_IA_SQRTPS_VpsWps, BxOpcodeGroupSSE_0f51 }, + /* 0F 52 /wr */ { BxPrefixSSE, BX_IA_RSQRTPS_VpsWps, BxOpcodeGroupSSE_0f52 }, + /* 0F 53 /wr */ { BxPrefixSSE, BX_IA_RCPPS_VpsWps, BxOpcodeGroupSSE_0f53 }, + /* 0F 54 /wr */ { BxPrefixSSE, BX_IA_ANDPS_VpsWps, BxOpcodeGroupSSE_0f54 }, + /* 0F 55 /wr */ { BxPrefixSSE, BX_IA_ANDNPS_VpsWps, BxOpcodeGroupSSE_0f55 }, + /* 0F 56 /wr */ { BxPrefixSSE, BX_IA_ORPS_VpsWps, BxOpcodeGroupSSE_0f56 }, + /* 0F 57 /wr */ { BxPrefixSSE, BX_IA_XORPS_VpsWps, BxOpcodeGroupSSE_0f57 }, + /* 0F 58 /wr */ { BxPrefixSSE, BX_IA_ADDPS_VpsWps, BxOpcodeGroupSSE_0f58 }, + /* 0F 59 /wr */ { BxPrefixSSE, BX_IA_MULPS_VpsWps, BxOpcodeGroupSSE_0f59 }, + /* 0F 5A /wr */ { BxPrefixSSE, BX_IA_CVTPS2PD_VpsWps, BxOpcodeGroupSSE_0f5a }, + /* 0F 5B /wr */ { BxPrefixSSE, BX_IA_CVTDQ2PS_VpsWdq, BxOpcodeGroupSSE_0f5b }, + /* 0F 5C /wr */ { BxPrefixSSE, BX_IA_SUBPS_VpsWps, BxOpcodeGroupSSE_0f5c }, + /* 0F 5D /wr */ { BxPrefixSSE, BX_IA_MINPS_VpsWps, BxOpcodeGroupSSE_0f5d }, + /* 0F 5E /wr */ { BxPrefixSSE, BX_IA_DIVPS_VpsWps, BxOpcodeGroupSSE_0f5e }, + /* 0F 5F /wr */ { BxPrefixSSE, BX_IA_MAXPS_VpsWps, BxOpcodeGroupSSE_0f5f }, + /* 0F 60 /wr */ { BxPrefixSSE, BX_IA_PUNPCKLBW_PqQd, BxOpcodeGroupSSE_0f60 }, + /* 0F 61 /wr */ { BxPrefixSSE, BX_IA_PUNPCKLWD_PqQd, BxOpcodeGroupSSE_0f61 }, + /* 0F 62 /wr */ { BxPrefixSSE, BX_IA_PUNPCKLDQ_PqQd, BxOpcodeGroupSSE_0f62 }, + /* 0F 63 /wr */ { BxPrefixSSE, BX_IA_PACKSSWB_PqQq, BxOpcodeGroupSSE_0f63 }, + /* 0F 64 /wr */ { BxPrefixSSE, BX_IA_PCMPGTB_PqQq, BxOpcodeGroupSSE_0f64 }, + /* 0F 65 /wr */ { BxPrefixSSE, BX_IA_PCMPGTW_PqQq, BxOpcodeGroupSSE_0f65 }, + /* 0F 66 /wr */ { BxPrefixSSE, BX_IA_PCMPGTD_PqQq, BxOpcodeGroupSSE_0f66 }, + /* 0F 67 /wr */ { BxPrefixSSE, BX_IA_PACKUSWB_PqQq, BxOpcodeGroupSSE_0f67 }, + /* 0F 68 /wr */ { BxPrefixSSE, BX_IA_PUNPCKHBW_PqQq, BxOpcodeGroupSSE_0f68 }, + /* 0F 69 /wr */ { BxPrefixSSE, BX_IA_PUNPCKHWD_PqQq, BxOpcodeGroupSSE_0f69 }, + /* 0F 6A /wr */ { BxPrefixSSE, BX_IA_PUNPCKHDQ_PqQq, BxOpcodeGroupSSE_0f6a }, + /* 0F 6B /wr */ { BxPrefixSSE, BX_IA_PACKSSDW_PqQq, BxOpcodeGroupSSE_0f6b }, /* 0F 6C /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6c }, /* 0F 6D /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6d }, - /* 0F 6E /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6e }, - /* 0F 6F /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6f }, - /* 0F 70 /wr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f70 }, + /* 0F 6E /wr */ { BxPrefixSSE, BX_IA_MOVD_PqEd, BxOpcodeGroupSSE_0f6e }, + /* 0F 6F /wr */ { BxPrefixSSE, BX_IA_MOVQ_PqQq, BxOpcodeGroupSSE_0f6f }, + /* 0F 70 /wr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PSHUFW_PqQqIb, BxOpcodeGroupSSE_0f70 }, /* 0F 71 /wr */ { BxGroup12, BX_IA_ERROR, BxOpcodeInfoG12R }, /* 0F 72 /wr */ { BxGroup13, BX_IA_ERROR, BxOpcodeInfoG13R }, /* 0F 73 /wr */ { BxGroup14, BX_IA_ERROR, BxOpcodeInfoG14R }, - /* 0F 74 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f74 }, - /* 0F 75 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f75 }, - /* 0F 76 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f76 }, + /* 0F 74 /wr */ { BxPrefixSSE, BX_IA_PCMPEQB_PqQq, BxOpcodeGroupSSE_0f74 }, + /* 0F 75 /wr */ { BxPrefixSSE, BX_IA_PCMPEQW_PqQq, BxOpcodeGroupSSE_0f75 }, + /* 0F 76 /wr */ { BxPrefixSSE, BX_IA_PCMPEQD_PqQq, BxOpcodeGroupSSE_0f76 }, /* 0F 77 /wr */ { 0, BX_IA_EMMS }, /* 0F 78 /wr */ { 0, BX_IA_ERROR }, /* 0F 79 /wr */ { 0, BX_IA_ERROR }, @@ -628,8 +628,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 0F 7B /wr */ { 0, BX_IA_ERROR }, /* 0F 7C /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7c }, /* 0F 7D /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7d }, - /* 0F 7E /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7e }, - /* 0F 7F /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7f }, + /* 0F 7E /wr */ { BxPrefixSSE, BX_IA_MOVD_EdPd, BxOpcodeGroupSSE_0f7e }, + /* 0F 7F /wr */ { BxPrefixSSE, BX_IA_MOVQ_QqPq, BxOpcodeGroupSSE_0f7f }, /* 0F 80 /wr */ { BxImmediate_BrOff16 | BxTraceJCC, BX_IA_JO_Jw }, /* 0F 81 /wr */ { BxImmediate_BrOff16 | BxTraceJCC, BX_IA_JNO_Jw }, /* 0F 82 /wr */ { BxImmediate_BrOff16 | BxTraceJCC, BX_IA_JB_Jw }, @@ -696,11 +696,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 0F BF /wr */ { 0, BX_IA_MOV_GwEwR }, // MOVSX_GwEw /* 0F C0 /wr */ { 0, BX_IA_XADD_EbGbR }, /* 0F C1 /wr */ { 0, BX_IA_XADD_EwGwR }, - /* 0F C2 /wr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 }, + /* 0F C2 /wr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_CMPPS_VpsWpsIb, BxOpcodeGroupSSE_0fc2 }, /* 0F C3 /wr */ { 0, BX_IA_ERROR }, // MOVNTI SSE group - /* 0F C4 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 }, - /* 0F C5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5R }, - /* 0F C6 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 }, + /* 0F C4 /wr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PINSRW_PqEwIb, BxOpcodeGroupSSE_0fc4 }, + /* 0F C5 /wr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PEXTRW_GdPqIb, BxOpcodeGroupSSE_0fc5R }, + /* 0F C6 /wr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb, BxOpcodeGroupSSE_0fc6 }, /* 0F C7 /wr */ { 0, BX_IA_ERROR }, // CMPXCHG8B G9 group /* 0F C8 /wr */ { 0, BX_IA_BSWAP_ERX }, /* 0F C9 /wr */ { 0, BX_IA_BSWAP_ERX }, @@ -710,114 +710,114 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 0F CD /wr */ { 0, BX_IA_BSWAP_ERX }, /* 0F CE /wr */ { 0, BX_IA_BSWAP_ERX }, /* 0F CF /wr */ { 0, BX_IA_BSWAP_ERX }, - /* 0F D0 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd0 }, - /* 0F D1 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd1 }, - /* 0F D2 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd2 }, - /* 0F D3 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd3 }, - /* 0F D4 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd4 }, - /* 0F D5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd5 }, + /* 0F D0 /wr */ { BxPrefixSSE, BX_IA_ADDSUBPD_VpdWpd, BxOpcodeGroupSSE_0fd0 }, + /* 0F D1 /wr */ { BxPrefixSSE, BX_IA_PSRLW_PqQq, BxOpcodeGroupSSE_0fd1 }, + /* 0F D2 /wr */ { BxPrefixSSE, BX_IA_PSRLD_PqQq, BxOpcodeGroupSSE_0fd2 }, + /* 0F D3 /wr */ { BxPrefixSSE, BX_IA_PSRLQ_PqQq, BxOpcodeGroupSSE_0fd3 }, + /* 0F D4 /wr */ { BxPrefixSSE, BX_IA_PADDQ_PqQq, BxOpcodeGroupSSE_0fd4 }, + /* 0F D5 /wr */ { BxPrefixSSE, BX_IA_PMULLW_PqQq, BxOpcodeGroupSSE_0fd5 }, /* 0F D6 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd6 }, - /* 0F D7 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd7 }, - /* 0F D8 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd8 }, - /* 0F D9 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd9 }, - /* 0F DA /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fda }, - /* 0F DB /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdb }, - /* 0F DC /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdc }, - /* 0F DD /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdd }, - /* 0F DE /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fde }, - /* 0F DF /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdf }, - /* 0F E0 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe0 }, - /* 0F E1 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe1 }, - /* 0F E2 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe2 }, - /* 0F E3 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe3 }, - /* 0F E4 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe4 }, - /* 0F E5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe5 }, + /* 0F D7 /wr */ { BxPrefixSSE, BX_IA_PMOVMSKB_GdPRq, BxOpcodeGroupSSE_0fd7 }, + /* 0F D8 /wr */ { BxPrefixSSE, BX_IA_PSUBUSB_PqQq, BxOpcodeGroupSSE_0fd8 }, + /* 0F D9 /wr */ { BxPrefixSSE, BX_IA_PSUBUSW_PqQq, BxOpcodeGroupSSE_0fd9 }, + /* 0F DA /wr */ { BxPrefixSSE, BX_IA_PMINUB_PqQq, BxOpcodeGroupSSE_0fda }, + /* 0F DB /wr */ { BxPrefixSSE, BX_IA_PAND_PqQq, BxOpcodeGroupSSE_0fdb }, + /* 0F DC /wr */ { BxPrefixSSE, BX_IA_PADDUSB_PqQq, BxOpcodeGroupSSE_0fdc }, + /* 0F DD /wr */ { BxPrefixSSE, BX_IA_PADDUSW_PqQq, BxOpcodeGroupSSE_0fdd }, + /* 0F DE /wr */ { BxPrefixSSE, BX_IA_PMAXUB_PqQq, BxOpcodeGroupSSE_0fde }, + /* 0F DF /wr */ { BxPrefixSSE, BX_IA_PANDN_PqQq, BxOpcodeGroupSSE_0fdf }, + /* 0F E0 /wr */ { BxPrefixSSE, BX_IA_PAVGB_PqQq, BxOpcodeGroupSSE_0fe0 }, + /* 0F E1 /wr */ { BxPrefixSSE, BX_IA_PSRAW_PqQq, BxOpcodeGroupSSE_0fe1 }, + /* 0F E2 /wr */ { BxPrefixSSE, BX_IA_PSRAD_PqQq, BxOpcodeGroupSSE_0fe2 }, + /* 0F E3 /wr */ { BxPrefixSSE, BX_IA_PAVGW_PqQq, BxOpcodeGroupSSE_0fe3 }, + /* 0F E4 /wr */ { BxPrefixSSE, BX_IA_PMULHUW_PqQq, BxOpcodeGroupSSE_0fe4 }, + /* 0F E5 /wr */ { BxPrefixSSE, BX_IA_PMULHW_PqQq, BxOpcodeGroupSSE_0fe5 }, /* 0F E6 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe6 }, /* 0F E7 /wr */ { 0, BX_IA_ERROR }, // MOVNTQ/MOVNTDQ SSE group - /* 0F E8 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe8 }, - /* 0F E9 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe9 }, - /* 0F EA /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fea }, - /* 0F EB /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0feb }, - /* 0F EC /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fec }, - /* 0F ED /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fed }, - /* 0F EE /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fee }, - /* 0F EF /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fef }, + /* 0F E8 /wr */ { BxPrefixSSE, BX_IA_PSUBSB_PqQq, BxOpcodeGroupSSE_0fe8 }, + /* 0F E9 /wr */ { BxPrefixSSE, BX_IA_PSUBSW_PqQq, BxOpcodeGroupSSE_0fe9 }, + /* 0F EA /wr */ { BxPrefixSSE, BX_IA_PMINSW_PqQq, BxOpcodeGroupSSE_0fea }, + /* 0F EB /wr */ { BxPrefixSSE, BX_IA_POR_PqQq, BxOpcodeGroupSSE_0feb }, + /* 0F EC /wr */ { BxPrefixSSE, BX_IA_PADDSB_PqQq, BxOpcodeGroupSSE_0fec }, + /* 0F ED /wr */ { BxPrefixSSE, BX_IA_PADDSW_PqQq, BxOpcodeGroupSSE_0fed }, + /* 0F EE /wr */ { BxPrefixSSE, BX_IA_PMAXSW_PqQq, BxOpcodeGroupSSE_0fee }, + /* 0F EF /wr */ { BxPrefixSSE, BX_IA_PXOR_PqQq, BxOpcodeGroupSSE_0fef }, /* 0F F0 /wr */ { 0, BX_IA_ERROR }, // LDDQU SSE group - /* 0F F1 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff1 }, - /* 0F F2 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff2 }, - /* 0F F3 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff3 }, - /* 0F F4 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff4 }, - /* 0F F5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff5 }, - /* 0F F6 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff6 }, - /* 0F F7 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff7R }, - /* 0F F8 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff8 }, - /* 0F F9 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff9 }, - /* 0F FA /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffa }, - /* 0F FB /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffb }, - /* 0F FC /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffc }, - /* 0F FD /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffd }, - /* 0F FE /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffe }, + /* 0F F1 /wr */ { BxPrefixSSE, BX_IA_PSLLW_PqQq, BxOpcodeGroupSSE_0ff1 }, + /* 0F F2 /wr */ { BxPrefixSSE, BX_IA_PSLLD_PqQq, BxOpcodeGroupSSE_0ff2 }, + /* 0F F3 /wr */ { BxPrefixSSE, BX_IA_PSLLQ_PqQq, BxOpcodeGroupSSE_0ff3 }, + /* 0F F4 /wr */ { BxPrefixSSE, BX_IA_PMULUDQ_PqQq, BxOpcodeGroupSSE_0ff4 }, + /* 0F F5 /wr */ { BxPrefixSSE, BX_IA_PMADDWD_PqQq, BxOpcodeGroupSSE_0ff5 }, + /* 0F F6 /wr */ { BxPrefixSSE, BX_IA_PSADBW_PqQq, BxOpcodeGroupSSE_0ff6 }, + /* 0F F7 /wr */ { BxPrefixSSE, BX_IA_MASKMOVQ_PqPRq, BxOpcodeGroupSSE_0ff7R }, + /* 0F F8 /wr */ { BxPrefixSSE, BX_IA_PSUBB_PqQq, BxOpcodeGroupSSE_0ff8 }, + /* 0F F9 /wr */ { BxPrefixSSE, BX_IA_PSUBW_PqQq, BxOpcodeGroupSSE_0ff9 }, + /* 0F FA /wr */ { BxPrefixSSE, BX_IA_PSUBD_PqQq, BxOpcodeGroupSSE_0ffa }, + /* 0F FB /wr */ { BxPrefixSSE, BX_IA_PSUBQ_PqQq, BxOpcodeGroupSSE_0ffb }, + /* 0F FC /wr */ { BxPrefixSSE, BX_IA_PADDB_PqQq, BxOpcodeGroupSSE_0ffc }, + /* 0F FD /wr */ { BxPrefixSSE, BX_IA_PADDW_PqQq, BxOpcodeGroupSSE_0ffd }, + /* 0F FE /wr */ { BxPrefixSSE, BX_IA_PADDD_PqQq, BxOpcodeGroupSSE_0ffe }, /* 0F FF /wr */ { 0, BX_IA_ERROR }, // 512 entries for 32bit mode - /* 00 /dr */ { 0, BX_IA_ADD_EbGbR }, - /* 01 /dr */ { 0, BX_IA_ADD_EdGdR }, + /* 00 /dr */ { BxArithDstRM, BX_IA_ADD_GbEbR }, + /* 01 /dr */ { BxArithDstRM, BX_IA_ADD_GdEdR }, /* 02 /dr */ { 0, BX_IA_ADD_GbEbR }, /* 03 /dr */ { 0, BX_IA_ADD_GdEdR }, /* 04 /dr */ { BxImmediate_Ib, BX_IA_ADD_ALIb }, /* 05 /dr */ { BxImmediate_Id, BX_IA_ADD_EAXId }, /* 06 /dr */ { 0, BX_IA_PUSH32_ES }, /* 07 /dr */ { 0, BX_IA_POP32_ES }, - /* 08 /dr */ { 0, BX_IA_OR_EbGbR }, - /* 09 /dr */ { 0, BX_IA_OR_EdGdR }, + /* 08 /dr */ { BxArithDstRM, BX_IA_OR_GbEbR }, + /* 09 /dr */ { BxArithDstRM, BX_IA_OR_GdEdR }, /* 0A /dr */ { 0, BX_IA_OR_GbEbR }, /* 0B /dr */ { 0, BX_IA_OR_GdEdR }, /* 0C /dr */ { BxImmediate_Ib, BX_IA_OR_ALIb }, /* 0D /dr */ { BxImmediate_Id, BX_IA_OR_EAXId }, /* 0E /dr */ { 0, BX_IA_PUSH32_CS }, /* 0F /dr */ { 0, BX_IA_ERROR }, // 2-byte escape - /* 10 /dr */ { 0, BX_IA_ADC_EbGbR }, - /* 11 /dr */ { 0, BX_IA_ADC_EdGdR }, + /* 10 /dr */ { BxArithDstRM, BX_IA_ADC_GbEbR }, + /* 11 /dr */ { BxArithDstRM, BX_IA_ADC_GdEdR }, /* 12 /dr */ { 0, BX_IA_ADC_GbEbR }, /* 13 /dr */ { 0, BX_IA_ADC_GdEdR }, /* 14 /dr */ { BxImmediate_Ib, BX_IA_ADC_ALIb }, /* 15 /dr */ { BxImmediate_Id, BX_IA_ADC_EAXId }, /* 16 /dr */ { 0, BX_IA_PUSH32_SS }, /* 17 /dr */ { BxTraceEnd, BX_IA_POP32_SS }, // async_event = 1 - /* 18 /dr */ { 0, BX_IA_SBB_EbGbR }, - /* 19 /dr */ { 0, BX_IA_SBB_EdGdR }, + /* 18 /dr */ { BxArithDstRM, BX_IA_SBB_GbEbR }, + /* 19 /dr */ { BxArithDstRM, BX_IA_SBB_GdEdR }, /* 1A /dr */ { 0, BX_IA_SBB_GbEbR }, /* 1B /dr */ { 0, BX_IA_SBB_GdEdR }, /* 1C /dr */ { BxImmediate_Ib, BX_IA_SBB_ALIb }, /* 1D /dr */ { BxImmediate_Id, BX_IA_SBB_EAXId }, /* 1E /dr */ { 0, BX_IA_PUSH32_DS }, /* 1F /dr */ { 0, BX_IA_POP32_DS }, - /* 20 /dr */ { 0, BX_IA_AND_EbGbR }, - /* 21 /dr */ { 0, BX_IA_AND_EdGdR }, + /* 20 /dr */ { BxArithDstRM, BX_IA_AND_GbEbR }, + /* 21 /dr */ { BxArithDstRM, BX_IA_AND_GdEdR }, /* 22 /dr */ { 0, BX_IA_AND_GbEbR }, /* 23 /dr */ { 0, BX_IA_AND_GdEdR }, /* 24 /dr */ { BxImmediate_Ib, BX_IA_AND_ALIb }, /* 25 /dr */ { BxImmediate_Id, BX_IA_AND_EAXId }, /* 26 /dr */ { 0, BX_IA_ERROR }, // ES: /* 27 /dr */ { 0, BX_IA_DAA }, - /* 28 /dr */ { 0, BX_IA_SUB_EbGbR }, - /* 29 /dr */ { 0, BX_IA_SUB_EdGdR }, + /* 28 /dr */ { BxArithDstRM, BX_IA_SUB_GbEbR }, + /* 29 /dr */ { BxArithDstRM, BX_IA_SUB_GdEdR }, /* 2A /dr */ { 0, BX_IA_SUB_GbEbR }, /* 2B /dr */ { 0, BX_IA_SUB_GdEdR }, /* 2C /dr */ { BxImmediate_Ib, BX_IA_SUB_ALIb }, /* 2D /dr */ { BxImmediate_Id, BX_IA_SUB_EAXId }, /* 2E /dr */ { 0, BX_IA_ERROR }, // CS: /* 2F /dr */ { 0, BX_IA_DAS }, - /* 30 /dr */ { 0, BX_IA_XOR_EbGbR }, - /* 31 /dr */ { 0, BX_IA_XOR_EdGdR }, + /* 30 /dr */ { BxArithDstRM, BX_IA_XOR_GbEbR }, + /* 31 /dr */ { BxArithDstRM, BX_IA_XOR_GdEdR }, /* 32 /dr */ { 0, BX_IA_XOR_GbEbR }, /* 33 /dr */ { 0, BX_IA_XOR_GdEdR }, /* 34 /dr */ { BxImmediate_Ib, BX_IA_XOR_ALIb }, /* 35 /dr */ { BxImmediate_Id, BX_IA_XOR_EAXId }, /* 36 /dr */ { 0, BX_IA_ERROR }, // SS: /* 37 /dr */ { 0, BX_IA_AAA }, - /* 38 /dr */ { 0, BX_IA_CMP_EbGbR }, - /* 39 /dr */ { 0, BX_IA_CMP_EdGdR }, + /* 38 /dr */ { BxArithDstRM, BX_IA_CMP_GbEbR }, + /* 39 /dr */ { BxArithDstRM, BX_IA_CMP_GdEdR }, /* 3A /dr */ { 0, BX_IA_CMP_GbEbR }, /* 3B /dr */ { 0, BX_IA_CMP_GdEdR }, /* 3C /dr */ { BxImmediate_Ib, BX_IA_CMP_ALIb }, @@ -896,8 +896,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 85 /dr */ { 0, BX_IA_TEST_EdGdR }, /* 86 /dr */ { 0, BX_IA_XCHG_EbGbR }, /* 87 /dr */ { 0, BX_IA_XCHG_EdGdR }, - /* 88 /dr */ { 0, BX_IA_MOV_EbGbR }, - /* 89 /dr */ { 0, BX_IA_MOV_EdGdR }, + /* 88 /dr */ { BxArithDstRM, BX_IA_MOV_GbEbR }, + /* 89 /dr */ { BxArithDstRM, BX_IA_MOV_GdEdR }, /* 8A /dr */ { 0, BX_IA_MOV_GbEbR }, /* 8B /dr */ { 0, BX_IA_MOV_GdEdR }, /* 8C /dr */ { 0, BX_IA_MOV_EwSwR }, @@ -1062,13 +1062,13 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { #else /* 0F 0F /dr */ { 0, BX_IA_ERROR }, #endif - /* 0F 10 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f10 }, - /* 0F 11 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f11 }, - /* 0F 12 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f12 }, + /* 0F 10 /dr */ { BxPrefixSSE, BX_IA_MOVUPS_VpsWps, BxOpcodeGroupSSE_0f10 }, + /* 0F 11 /dr */ { BxPrefixSSE, BX_IA_MOVUPS_WpsVps, BxOpcodeGroupSSE_0f11 }, + /* 0F 12 /dr */ { BxPrefixSSE, BX_IA_MOVLPS_VpsMq, BxOpcodeGroupSSE_0f12 }, /* 0F 13 /dr */ { 0, BX_IA_ERROR }, // MOVLPS/PD SSE group - /* 0F 14 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f14 }, - /* 0F 15 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f15 }, - /* 0F 16 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f16 }, + /* 0F 14 /dr */ { BxPrefixSSE, BX_IA_UNPCKLPS_VpsWdq, BxOpcodeGroupSSE_0f14 }, + /* 0F 15 /dr */ { BxPrefixSSE, BX_IA_UNPCKHPS_VpsWdq, BxOpcodeGroupSSE_0f15 }, + /* 0F 16 /dr */ { BxPrefixSSE, BX_IA_MOVHPS_VpsMq, BxOpcodeGroupSSE_0f16 }, /* 0F 17 /dr */ { 0, BX_IA_ERROR }, // MOHLPS/PD SSE group #if BX_CPU_LEVEL >= 6 /* 0F 18 /dr */ { 0, BX_IA_NOP }, // PREFETCH HINT @@ -1097,14 +1097,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 0F 25 /dr */ { 0, BX_IA_ERROR }, /* 0F 26 /dr */ { BxTraceEnd, BX_IA_MOV_TdRd }, // not implemented /* 0F 27 /dr */ { 0, BX_IA_ERROR }, - /* 0F 28 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f28 }, - /* 0F 29 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f29 }, - /* 0F 2A /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2a }, + /* 0F 28 /dr */ { BxPrefixSSE, BX_IA_MOVAPS_VpsWps, BxOpcodeGroupSSE_0f28 }, + /* 0F 29 /dr */ { BxPrefixSSE, BX_IA_MOVAPS_WpsVps, BxOpcodeGroupSSE_0f29 }, + /* 0F 2A /dr */ { BxPrefixSSE, BX_IA_CVTPI2PS_VpsQq, BxOpcodeGroupSSE_0f2a }, /* 0F 2B /dr */ { 0, BX_IA_ERROR }, // MOVNTPS/PD/SS/SD - /* 0F 2C /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2c }, - /* 0F 2D /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2d }, - /* 0F 2E /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2e }, - /* 0F 2F /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2f }, + /* 0F 2C /dr */ { BxPrefixSSE, BX_IA_CVTTPS2PI_PqWps, BxOpcodeGroupSSE_0f2c }, + /* 0F 2D /dr */ { BxPrefixSSE, BX_IA_CVTPS2PI_PqWps, BxOpcodeGroupSSE_0f2d }, + /* 0F 2E /dr */ { BxPrefixSSE, BX_IA_UCOMISS_VssWss, BxOpcodeGroupSSE_0f2e }, + /* 0F 2F /dr */ { BxPrefixSSE, BX_IA_COMISS_VpsWps, BxOpcodeGroupSSE_0f2f }, /* 0F 30 /dr */ { 0, BX_IA_WRMSR }, /* 0F 31 /dr */ { 0, BX_IA_RDTSC }, /* 0F 32 /dr */ { 0, BX_IA_RDMSR }, @@ -1145,45 +1145,45 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 0F 4D /dr */ { 0, BX_IA_CMOVNL_GdEdR }, /* 0F 4E /dr */ { 0, BX_IA_CMOVLE_GdEdR }, /* 0F 4F /dr */ { 0, BX_IA_CMOVNLE_GdEdR }, - /* 0F 50 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f50 }, - /* 0F 51 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f51 }, - /* 0F 52 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f52 }, - /* 0F 53 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f53 }, - /* 0F 54 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f54 }, - /* 0F 55 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f55 }, - /* 0F 56 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f56 }, - /* 0F 57 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f57 }, - /* 0F 58 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f58 }, - /* 0F 59 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f59 }, - /* 0F 5A /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5a }, - /* 0F 5B /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5b }, - /* 0F 5C /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5c }, - /* 0F 5D /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5d }, - /* 0F 5E /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5e }, - /* 0F 5F /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5f }, - /* 0F 60 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f60 }, - /* 0F 61 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f61 }, - /* 0F 62 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f62 }, - /* 0F 63 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f63 }, - /* 0F 64 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f64 }, - /* 0F 65 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f65 }, - /* 0F 66 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f66 }, - /* 0F 67 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f67 }, - /* 0F 68 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f68 }, - /* 0F 69 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f69 }, - /* 0F 6A /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6a }, - /* 0F 6B /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6b }, + /* 0F 50 /dr */ { BxPrefixSSE, BX_IA_MOVMSKPS_GdVRps, BxOpcodeGroupSSE_0f50 }, + /* 0F 51 /dr */ { BxPrefixSSE, BX_IA_SQRTPS_VpsWps, BxOpcodeGroupSSE_0f51 }, + /* 0F 52 /dr */ { BxPrefixSSE, BX_IA_RSQRTPS_VpsWps, BxOpcodeGroupSSE_0f52 }, + /* 0F 53 /dr */ { BxPrefixSSE, BX_IA_RCPPS_VpsWps, BxOpcodeGroupSSE_0f53 }, + /* 0F 54 /dr */ { BxPrefixSSE, BX_IA_ANDPS_VpsWps, BxOpcodeGroupSSE_0f54 }, + /* 0F 55 /dr */ { BxPrefixSSE, BX_IA_ANDNPS_VpsWps, BxOpcodeGroupSSE_0f55 }, + /* 0F 56 /dr */ { BxPrefixSSE, BX_IA_ORPS_VpsWps, BxOpcodeGroupSSE_0f56 }, + /* 0F 57 /dr */ { BxPrefixSSE, BX_IA_XORPS_VpsWps, BxOpcodeGroupSSE_0f57 }, + /* 0F 58 /dr */ { BxPrefixSSE, BX_IA_ADDPS_VpsWps, BxOpcodeGroupSSE_0f58 }, + /* 0F 59 /dr */ { BxPrefixSSE, BX_IA_MULPS_VpsWps, BxOpcodeGroupSSE_0f59 }, + /* 0F 5A /dr */ { BxPrefixSSE, BX_IA_CVTPS2PD_VpsWps, BxOpcodeGroupSSE_0f5a }, + /* 0F 5B /dr */ { BxPrefixSSE, BX_IA_CVTDQ2PS_VpsWdq, BxOpcodeGroupSSE_0f5b }, + /* 0F 5C /dr */ { BxPrefixSSE, BX_IA_SUBPS_VpsWps, BxOpcodeGroupSSE_0f5c }, + /* 0F 5D /dr */ { BxPrefixSSE, BX_IA_MINPS_VpsWps, BxOpcodeGroupSSE_0f5d }, + /* 0F 5E /dr */ { BxPrefixSSE, BX_IA_DIVPS_VpsWps, BxOpcodeGroupSSE_0f5e }, + /* 0F 5F /dr */ { BxPrefixSSE, BX_IA_MAXPS_VpsWps, BxOpcodeGroupSSE_0f5f }, + /* 0F 60 /dr */ { BxPrefixSSE, BX_IA_PUNPCKLBW_PqQd, BxOpcodeGroupSSE_0f60 }, + /* 0F 61 /dr */ { BxPrefixSSE, BX_IA_PUNPCKLWD_PqQd, BxOpcodeGroupSSE_0f61 }, + /* 0F 62 /dr */ { BxPrefixSSE, BX_IA_PUNPCKLDQ_PqQd, BxOpcodeGroupSSE_0f62 }, + /* 0F 63 /dr */ { BxPrefixSSE, BX_IA_PACKSSWB_PqQq, BxOpcodeGroupSSE_0f63 }, + /* 0F 64 /dr */ { BxPrefixSSE, BX_IA_PCMPGTB_PqQq, BxOpcodeGroupSSE_0f64 }, + /* 0F 65 /dr */ { BxPrefixSSE, BX_IA_PCMPGTW_PqQq, BxOpcodeGroupSSE_0f65 }, + /* 0F 66 /dr */ { BxPrefixSSE, BX_IA_PCMPGTD_PqQq, BxOpcodeGroupSSE_0f66 }, + /* 0F 67 /dr */ { BxPrefixSSE, BX_IA_PACKUSWB_PqQq, BxOpcodeGroupSSE_0f67 }, + /* 0F 68 /dr */ { BxPrefixSSE, BX_IA_PUNPCKHBW_PqQq, BxOpcodeGroupSSE_0f68 }, + /* 0F 69 /dr */ { BxPrefixSSE, BX_IA_PUNPCKHWD_PqQq, BxOpcodeGroupSSE_0f69 }, + /* 0F 6A /dr */ { BxPrefixSSE, BX_IA_PUNPCKHDQ_PqQq, BxOpcodeGroupSSE_0f6a }, + /* 0F 6B /dr */ { BxPrefixSSE, BX_IA_PACKSSDW_PqQq, BxOpcodeGroupSSE_0f6b }, /* 0F 6C /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6c }, /* 0F 6D /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6d }, - /* 0F 6E /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6e }, - /* 0F 6F /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6f }, - /* 0F 70 /dr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f70 }, + /* 0F 6E /dr */ { BxPrefixSSE, BX_IA_MOVD_PqEd, BxOpcodeGroupSSE_0f6e }, + /* 0F 6F /dr */ { BxPrefixSSE, BX_IA_MOVQ_PqQq, BxOpcodeGroupSSE_0f6f }, + /* 0F 70 /dr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PSHUFW_PqQqIb, BxOpcodeGroupSSE_0f70 }, /* 0F 71 /dr */ { BxGroup12, BX_IA_ERROR, BxOpcodeInfoG12R }, /* 0F 72 /dr */ { BxGroup13, BX_IA_ERROR, BxOpcodeInfoG13R }, /* 0F 73 /dr */ { BxGroup14, BX_IA_ERROR, BxOpcodeInfoG14R }, - /* 0F 74 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f74 }, - /* 0F 75 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f75 }, - /* 0F 76 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f76 }, + /* 0F 74 /dr */ { BxPrefixSSE, BX_IA_PCMPEQB_PqQq, BxOpcodeGroupSSE_0f74 }, + /* 0F 75 /dr */ { BxPrefixSSE, BX_IA_PCMPEQW_PqQq, BxOpcodeGroupSSE_0f75 }, + /* 0F 76 /dr */ { BxPrefixSSE, BX_IA_PCMPEQD_PqQq, BxOpcodeGroupSSE_0f76 }, /* 0F 77 /dr */ { 0, BX_IA_EMMS }, /* 0F 78 /dr */ { 0, BX_IA_ERROR }, /* 0F 79 /dr */ { 0, BX_IA_ERROR }, @@ -1191,8 +1191,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 0F 7B /dr */ { 0, BX_IA_ERROR }, /* 0F 7C /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7c }, /* 0F 7D /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7d }, - /* 0F 7E /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7e }, - /* 0F 7F /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7f }, + /* 0F 7E /dr */ { BxPrefixSSE, BX_IA_MOVD_EdPd, BxOpcodeGroupSSE_0f7e }, + /* 0F 7F /dr */ { BxPrefixSSE, BX_IA_MOVQ_QqPq, BxOpcodeGroupSSE_0f7f }, /* 0F 80 /dr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JO_Jd }, /* 0F 81 /dr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JNO_Jd }, /* 0F 82 /dr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JB_Jd }, @@ -1259,11 +1259,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 0F BF /dr */ { 0, BX_IA_MOVSX_GdEwR }, /* 0F C0 /dr */ { 0, BX_IA_XADD_EbGbR }, /* 0F C1 /dr */ { 0, BX_IA_XADD_EdGdR }, - /* 0F C2 /dr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 }, + /* 0F C2 /dr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_CMPPS_VpsWpsIb, BxOpcodeGroupSSE_0fc2 }, /* 0F C3 /dr */ { 0, BX_IA_ERROR }, // MOVNTI SSE group - /* 0F C4 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 }, - /* 0F C5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5R }, - /* 0F C6 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 }, + /* 0F C4 /dr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PINSRW_PqEwIb, BxOpcodeGroupSSE_0fc4 }, + /* 0F C5 /dr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PEXTRW_GdPqIb, BxOpcodeGroupSSE_0fc5R }, + /* 0F C6 /dr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb, BxOpcodeGroupSSE_0fc6 }, /* 0F C7 /dr */ { 0, BX_IA_ERROR }, // CMPXCHG8B G9 group /* 0F C8 /dr */ { 0, BX_IA_BSWAP_ERX }, /* 0F C9 /dr */ { 0, BX_IA_BSWAP_ERX }, @@ -1273,53 +1273,53 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = { /* 0F CD /dr */ { 0, BX_IA_BSWAP_ERX }, /* 0F CE /dr */ { 0, BX_IA_BSWAP_ERX }, /* 0F CF /dr */ { 0, BX_IA_BSWAP_ERX }, - /* 0F D0 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd0 }, - /* 0F D1 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd1 }, - /* 0F D2 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd2 }, - /* 0F D3 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd3 }, - /* 0F D4 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd4 }, - /* 0F D5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd5 }, + /* 0F D0 /dr */ { BxPrefixSSE, BX_IA_ADDSUBPD_VpdWpd, BxOpcodeGroupSSE_0fd0 }, + /* 0F D1 /dr */ { BxPrefixSSE, BX_IA_PSRLW_PqQq, BxOpcodeGroupSSE_0fd1 }, + /* 0F D2 /dr */ { BxPrefixSSE, BX_IA_PSRLD_PqQq, BxOpcodeGroupSSE_0fd2 }, + /* 0F D3 /dr */ { BxPrefixSSE, BX_IA_PSRLQ_PqQq, BxOpcodeGroupSSE_0fd3 }, + /* 0F D4 /dr */ { BxPrefixSSE, BX_IA_PADDQ_PqQq, BxOpcodeGroupSSE_0fd4 }, + /* 0F D5 /dr */ { BxPrefixSSE, BX_IA_PMULLW_PqQq, BxOpcodeGroupSSE_0fd5 }, /* 0F D6 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd6 }, - /* 0F D7 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd7 }, - /* 0F D8 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd8 }, - /* 0F D9 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd9 }, - /* 0F DA /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fda }, - /* 0F DB /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdb }, - /* 0F DC /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdc }, - /* 0F DD /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdd }, - /* 0F DE /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fde }, - /* 0F DF /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdf }, - /* 0F E0 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe0 }, - /* 0F E1 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe1 }, - /* 0F E2 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe2 }, - /* 0F E3 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe3 }, - /* 0F E4 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe4 }, - /* 0F E5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe5 }, + /* 0F D7 /dr */ { BxPrefixSSE, BX_IA_PMOVMSKB_GdPRq, BxOpcodeGroupSSE_0fd7 }, + /* 0F D8 /dr */ { BxPrefixSSE, BX_IA_PSUBUSB_PqQq, BxOpcodeGroupSSE_0fd8 }, + /* 0F D9 /dr */ { BxPrefixSSE, BX_IA_PSUBUSW_PqQq, BxOpcodeGroupSSE_0fd9 }, + /* 0F DA /dr */ { BxPrefixSSE, BX_IA_PMINUB_PqQq, BxOpcodeGroupSSE_0fda }, + /* 0F DB /dr */ { BxPrefixSSE, BX_IA_PAND_PqQq, BxOpcodeGroupSSE_0fdb }, + /* 0F DC /dr */ { BxPrefixSSE, BX_IA_PADDUSB_PqQq, BxOpcodeGroupSSE_0fdc }, + /* 0F DD /dr */ { BxPrefixSSE, BX_IA_PADDUSW_PqQq, BxOpcodeGroupSSE_0fdd }, + /* 0F DE /dr */ { BxPrefixSSE, BX_IA_PMAXUB_PqQq, BxOpcodeGroupSSE_0fde }, + /* 0F DF /dr */ { BxPrefixSSE, BX_IA_PANDN_PqQq, BxOpcodeGroupSSE_0fdf }, + /* 0F E0 /dr */ { BxPrefixSSE, BX_IA_PAVGB_PqQq, BxOpcodeGroupSSE_0fe0 }, + /* 0F E1 /dr */ { BxPrefixSSE, BX_IA_PSRAW_PqQq, BxOpcodeGroupSSE_0fe1 }, + /* 0F E2 /dr */ { BxPrefixSSE, BX_IA_PSRAD_PqQq, BxOpcodeGroupSSE_0fe2 }, + /* 0F E3 /dr */ { BxPrefixSSE, BX_IA_PAVGW_PqQq, BxOpcodeGroupSSE_0fe3 }, + /* 0F E4 /dr */ { BxPrefixSSE, BX_IA_PMULHUW_PqQq, BxOpcodeGroupSSE_0fe4 }, + /* 0F E5 /dr */ { BxPrefixSSE, BX_IA_PMULHW_PqQq, BxOpcodeGroupSSE_0fe5 }, /* 0F E6 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe6 }, /* 0F E7 /dr */ { 0, BX_IA_ERROR }, // MOVNTQ/MOVNTDQ SSE group - /* 0F E8 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe8 }, - /* 0F E9 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe9 }, - /* 0F EA /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fea }, - /* 0F EB /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0feb }, - /* 0F EC /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fec }, - /* 0F ED /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fed }, - /* 0F EE /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fee }, - /* 0F EF /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fef }, + /* 0F E8 /dr */ { BxPrefixSSE, BX_IA_PSUBSB_PqQq, BxOpcodeGroupSSE_0fe8 }, + /* 0F E9 /dr */ { BxPrefixSSE, BX_IA_PSUBSW_PqQq, BxOpcodeGroupSSE_0fe9 }, + /* 0F EA /dr */ { BxPrefixSSE, BX_IA_PMINSW_PqQq, BxOpcodeGroupSSE_0fea }, + /* 0F EB /dr */ { BxPrefixSSE, BX_IA_POR_PqQq, BxOpcodeGroupSSE_0feb }, + /* 0F EC /dr */ { BxPrefixSSE, BX_IA_PADDSB_PqQq, BxOpcodeGroupSSE_0fec }, + /* 0F ED /dr */ { BxPrefixSSE, BX_IA_PADDSW_PqQq, BxOpcodeGroupSSE_0fed }, + /* 0F EE /dr */ { BxPrefixSSE, BX_IA_PMAXSW_PqQq, BxOpcodeGroupSSE_0fee }, + /* 0F EF /dr */ { BxPrefixSSE, BX_IA_PXOR_PqQq, BxOpcodeGroupSSE_0fef }, /* 0F F0 /dr */ { 0, BX_IA_ERROR }, // LDDQU SSE group - /* 0F F1 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff1 }, - /* 0F F2 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff2 }, - /* 0F F3 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff3 }, - /* 0F F4 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff4 }, - /* 0F F5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff5 }, - /* 0F F6 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff6 }, - /* 0F F7 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff7R }, - /* 0F F8 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff8 }, - /* 0F F9 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff9 }, - /* 0F FA /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffa }, - /* 0F FB /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffb }, - /* 0F FC /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffc }, - /* 0F FD /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffd }, - /* 0F FE /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffe }, + /* 0F F1 /dr */ { BxPrefixSSE, BX_IA_PSLLW_PqQq, BxOpcodeGroupSSE_0ff1 }, + /* 0F F2 /dr */ { BxPrefixSSE, BX_IA_PSLLD_PqQq, BxOpcodeGroupSSE_0ff2 }, + /* 0F F3 /dr */ { BxPrefixSSE, BX_IA_PSLLQ_PqQq, BxOpcodeGroupSSE_0ff3 }, + /* 0F F4 /dr */ { BxPrefixSSE, BX_IA_PMULUDQ_PqQq, BxOpcodeGroupSSE_0ff4 }, + /* 0F F5 /dr */ { BxPrefixSSE, BX_IA_PMADDWD_PqQq, BxOpcodeGroupSSE_0ff5 }, + /* 0F F6 /dr */ { BxPrefixSSE, BX_IA_PSADBW_PqQq, BxOpcodeGroupSSE_0ff6 }, + /* 0F F7 /dr */ { BxPrefixSSE, BX_IA_MASKMOVQ_PqPRq, BxOpcodeGroupSSE_0ff7R }, + /* 0F F8 /dr */ { BxPrefixSSE, BX_IA_PSUBB_PqQq, BxOpcodeGroupSSE_0ff8 }, + /* 0F F9 /dr */ { BxPrefixSSE, BX_IA_PSUBW_PqQq, BxOpcodeGroupSSE_0ff9 }, + /* 0F FA /dr */ { BxPrefixSSE, BX_IA_PSUBD_PqQq, BxOpcodeGroupSSE_0ffa }, + /* 0F FB /dr */ { BxPrefixSSE, BX_IA_PSUBQ_PqQq, BxOpcodeGroupSSE_0ffb }, + /* 0F FC /dr */ { BxPrefixSSE, BX_IA_PADDB_PqQq, BxOpcodeGroupSSE_0ffc }, + /* 0F FD /dr */ { BxPrefixSSE, BX_IA_PADDW_PqQq, BxOpcodeGroupSSE_0ffd }, + /* 0F FE /dr */ { BxPrefixSSE, BX_IA_PADDD_PqQq, BxOpcodeGroupSSE_0ffe }, /* 0F FF /dr */ { 0, BX_IA_ERROR } }; @@ -1632,14 +1632,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { #else /* 0F 0F /wm */ { 0, BX_IA_ERROR }, #endif - /* 0F 10 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f10 }, - /* 0F 11 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f11 }, - /* 0F 12 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f12 }, - /* 0F 13 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f13M }, - /* 0F 14 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f14 }, - /* 0F 15 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f15 }, - /* 0F 16 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f16 }, - /* 0F 17 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f17M }, + /* 0F 10 /wm */ { BxPrefixSSE, BX_IA_MOVUPS_VpsWps, BxOpcodeGroupSSE_0f10 }, + /* 0F 11 /wm */ { BxPrefixSSE, BX_IA_MOVUPS_WpsVps, BxOpcodeGroupSSE_0f11 }, + /* 0F 12 /wm */ { BxPrefixSSE, BX_IA_MOVLPS_VpsMq, BxOpcodeGroupSSE_0f12 }, + /* 0F 13 /wm */ { BxPrefixSSE, BX_IA_MOVLPS_MqVps, BxOpcodeGroupSSE_0f13M }, + /* 0F 14 /wm */ { BxPrefixSSE, BX_IA_UNPCKLPS_VpsWdq, BxOpcodeGroupSSE_0f14 }, + /* 0F 15 /wm */ { BxPrefixSSE, BX_IA_UNPCKHPS_VpsWdq, BxOpcodeGroupSSE_0f15 }, + /* 0F 16 /wm */ { BxPrefixSSE, BX_IA_MOVHPS_VpsMq, BxOpcodeGroupSSE_0f16 }, + /* 0F 17 /wm */ { BxPrefixSSE, BX_IA_MOVHPS_MqVps, BxOpcodeGroupSSE_0f17M }, # if BX_CPU_LEVEL >= 6 /* 0F 18 /wm */ { 0, BX_IA_PREFETCH }, // opcode group G16, PREFETCH hints /* 0F 19 /wm */ { 0, BX_IA_NOP }, // multi-byte NOP @@ -1667,14 +1667,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { /* 0F 25 /wm */ { 0, BX_IA_ERROR }, /* 0F 26 /wm */ { BxTraceEnd, BX_IA_MOV_TdRd }, // not implemented /* 0F 27 /wm */ { 0, BX_IA_ERROR }, - /* 0F 28 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f28 }, - /* 0F 29 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f29 }, - /* 0F 2A /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2a }, - /* 0F 2B /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2bM }, - /* 0F 2C /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2c }, - /* 0F 2D /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2d }, - /* 0F 2E /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2e }, - /* 0F 2F /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2f }, + /* 0F 28 /wm */ { BxPrefixSSE, BX_IA_MOVAPS_VpsWps, BxOpcodeGroupSSE_0f28 }, + /* 0F 29 /wm */ { BxPrefixSSE, BX_IA_MOVAPS_WpsVps, BxOpcodeGroupSSE_0f29 }, + /* 0F 2A /wm */ { BxPrefixSSE, BX_IA_CVTPI2PS_VpsQq, BxOpcodeGroupSSE_0f2a }, + /* 0F 2B /wm */ { BxPrefixSSE, BX_IA_MOVNTPS_MpsVps, BxOpcodeGroupSSE_0f2bM }, + /* 0F 2C /wm */ { BxPrefixSSE, BX_IA_CVTTPS2PI_PqWps, BxOpcodeGroupSSE_0f2c }, + /* 0F 2D /wm */ { BxPrefixSSE, BX_IA_CVTPS2PI_PqWps, BxOpcodeGroupSSE_0f2d }, + /* 0F 2E /wm */ { BxPrefixSSE, BX_IA_UCOMISS_VssWss, BxOpcodeGroupSSE_0f2e }, + /* 0F 2F /wm */ { BxPrefixSSE, BX_IA_COMISS_VpsWps, BxOpcodeGroupSSE_0f2f }, /* 0F 30 /wm */ { 0, BX_IA_WRMSR }, /* 0F 31 /wm */ { 0, BX_IA_RDTSC }, /* 0F 32 /wm */ { 0, BX_IA_RDMSR }, @@ -1715,45 +1715,45 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { /* 0F 4D /wm */ { 0, BX_IA_CMOVNL_GwEwM }, /* 0F 4E /wm */ { 0, BX_IA_CMOVLE_GwEwM }, /* 0F 4F /wm */ { 0, BX_IA_CMOVNLE_GwEwM }, - /* 0F 50 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f50 }, - /* 0F 51 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f51 }, - /* 0F 52 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f52 }, - /* 0F 53 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f53 }, - /* 0F 54 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f54 }, - /* 0F 55 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f55 }, - /* 0F 56 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f56 }, - /* 0F 57 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f57 }, - /* 0F 58 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f58 }, - /* 0F 59 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f59 }, - /* 0F 5A /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5a }, - /* 0F 5B /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5b }, - /* 0F 5C /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5c }, - /* 0F 5D /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5d }, - /* 0F 5E /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5e }, - /* 0F 5F /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5f }, - /* 0F 60 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f60 }, - /* 0F 61 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f61 }, - /* 0F 62 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f62 }, - /* 0F 63 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f63 }, - /* 0F 64 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f64 }, - /* 0F 65 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f65 }, - /* 0F 66 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f66 }, - /* 0F 67 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f67 }, - /* 0F 68 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f68 }, - /* 0F 69 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f69 }, - /* 0F 6A /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6a }, - /* 0F 6B /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6b }, + /* 0F 50 /wm */ { BxPrefixSSE, BX_IA_MOVMSKPS_GdVRps, BxOpcodeGroupSSE_0f50 }, + /* 0F 51 /wm */ { BxPrefixSSE, BX_IA_SQRTPS_VpsWps, BxOpcodeGroupSSE_0f51 }, + /* 0F 52 /wm */ { BxPrefixSSE, BX_IA_RSQRTPS_VpsWps, BxOpcodeGroupSSE_0f52 }, + /* 0F 53 /wm */ { BxPrefixSSE, BX_IA_RCPPS_VpsWps, BxOpcodeGroupSSE_0f53 }, + /* 0F 54 /wm */ { BxPrefixSSE, BX_IA_ANDPS_VpsWps, BxOpcodeGroupSSE_0f54 }, + /* 0F 55 /wm */ { BxPrefixSSE, BX_IA_ANDNPS_VpsWps, BxOpcodeGroupSSE_0f55 }, + /* 0F 56 /wm */ { BxPrefixSSE, BX_IA_ORPS_VpsWps, BxOpcodeGroupSSE_0f56 }, + /* 0F 57 /wm */ { BxPrefixSSE, BX_IA_XORPS_VpsWps, BxOpcodeGroupSSE_0f57 }, + /* 0F 58 /wm */ { BxPrefixSSE, BX_IA_ADDPS_VpsWps, BxOpcodeGroupSSE_0f58 }, + /* 0F 59 /wm */ { BxPrefixSSE, BX_IA_MULPS_VpsWps, BxOpcodeGroupSSE_0f59 }, + /* 0F 5A /wm */ { BxPrefixSSE, BX_IA_CVTPS2PD_VpsWps, BxOpcodeGroupSSE_0f5a }, + /* 0F 5B /wm */ { BxPrefixSSE, BX_IA_CVTDQ2PS_VpsWdq, BxOpcodeGroupSSE_0f5b }, + /* 0F 5C /wm */ { BxPrefixSSE, BX_IA_SUBPS_VpsWps, BxOpcodeGroupSSE_0f5c }, + /* 0F 5D /wm */ { BxPrefixSSE, BX_IA_MINPS_VpsWps, BxOpcodeGroupSSE_0f5d }, + /* 0F 5E /wm */ { BxPrefixSSE, BX_IA_DIVPS_VpsWps, BxOpcodeGroupSSE_0f5e }, + /* 0F 5F /wm */ { BxPrefixSSE, BX_IA_MAXPS_VpsWps, BxOpcodeGroupSSE_0f5f }, + /* 0F 60 /wm */ { BxPrefixSSE, BX_IA_PUNPCKLBW_PqQd, BxOpcodeGroupSSE_0f60 }, + /* 0F 61 /wm */ { BxPrefixSSE, BX_IA_PUNPCKLWD_PqQd, BxOpcodeGroupSSE_0f61 }, + /* 0F 62 /wm */ { BxPrefixSSE, BX_IA_PUNPCKLDQ_PqQd, BxOpcodeGroupSSE_0f62 }, + /* 0F 63 /wm */ { BxPrefixSSE, BX_IA_PACKSSWB_PqQq, BxOpcodeGroupSSE_0f63 }, + /* 0F 64 /wm */ { BxPrefixSSE, BX_IA_PCMPGTB_PqQq, BxOpcodeGroupSSE_0f64 }, + /* 0F 65 /wm */ { BxPrefixSSE, BX_IA_PCMPGTW_PqQq, BxOpcodeGroupSSE_0f65 }, + /* 0F 66 /wm */ { BxPrefixSSE, BX_IA_PCMPGTD_PqQq, BxOpcodeGroupSSE_0f66 }, + /* 0F 67 /wm */ { BxPrefixSSE, BX_IA_PACKUSWB_PqQq, BxOpcodeGroupSSE_0f67 }, + /* 0F 68 /wm */ { BxPrefixSSE, BX_IA_PUNPCKHBW_PqQq, BxOpcodeGroupSSE_0f68 }, + /* 0F 69 /wm */ { BxPrefixSSE, BX_IA_PUNPCKHWD_PqQq, BxOpcodeGroupSSE_0f69 }, + /* 0F 6A /wm */ { BxPrefixSSE, BX_IA_PUNPCKHDQ_PqQq, BxOpcodeGroupSSE_0f6a }, + /* 0F 6B /wm */ { BxPrefixSSE, BX_IA_PACKSSDW_PqQq, BxOpcodeGroupSSE_0f6b }, /* 0F 6C /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6c }, /* 0F 6D /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6d }, - /* 0F 6E /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6e }, - /* 0F 6F /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6f }, - /* 0F 70 /wm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f70 }, + /* 0F 6E /wm */ { BxPrefixSSE, BX_IA_MOVD_PqEd, BxOpcodeGroupSSE_0f6e }, + /* 0F 6F /wm */ { BxPrefixSSE, BX_IA_MOVQ_PqQq, BxOpcodeGroupSSE_0f6f }, + /* 0F 70 /wm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PSHUFW_PqQqIb, BxOpcodeGroupSSE_0f70 }, /* 0F 71 /wm */ { 0, BX_IA_ERROR }, // SSE Group G12 /* 0F 72 /wm */ { 0, BX_IA_ERROR }, // SSE Group G13 /* 0F 73 /wm */ { 0, BX_IA_ERROR }, // SSE Group G14 - /* 0F 74 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f74 }, - /* 0F 75 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f75 }, - /* 0F 76 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f76 }, + /* 0F 74 /wm */ { BxPrefixSSE, BX_IA_PCMPEQB_PqQq, BxOpcodeGroupSSE_0f74 }, + /* 0F 75 /wm */ { BxPrefixSSE, BX_IA_PCMPEQW_PqQq, BxOpcodeGroupSSE_0f75 }, + /* 0F 76 /wm */ { BxPrefixSSE, BX_IA_PCMPEQD_PqQq, BxOpcodeGroupSSE_0f76 }, /* 0F 77 /wm */ { 0, BX_IA_EMMS }, /* 0F 78 /wm */ { 0, BX_IA_ERROR }, /* 0F 79 /wm */ { 0, BX_IA_ERROR }, @@ -1761,8 +1761,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { /* 0F 7B /wm */ { 0, BX_IA_ERROR }, /* 0F 7C /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7c }, /* 0F 7D /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7d }, - /* 0F 7E /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7e }, - /* 0F 7F /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7f }, + /* 0F 7E /wm */ { BxPrefixSSE, BX_IA_MOVD_EdPd, BxOpcodeGroupSSE_0f7e }, + /* 0F 7F /wm */ { BxPrefixSSE, BX_IA_MOVQ_QqPq, BxOpcodeGroupSSE_0f7f }, /* 0F 80 /wm */ { BxImmediate_BrOff16 | BxTraceJCC, BX_IA_JO_Jw }, /* 0F 81 /wm */ { BxImmediate_BrOff16 | BxTraceJCC, BX_IA_JNO_Jw }, /* 0F 82 /wm */ { BxImmediate_BrOff16 | BxTraceJCC, BX_IA_JB_Jw }, @@ -1829,11 +1829,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { /* 0F BF /wm */ { 0, BX_IA_MOV_GwEwM }, // MOVSX_GwEw /* 0F C0 /wm */ { BxLockable, BX_IA_XADD_EbGbM }, /* 0F C1 /wm */ { BxLockable, BX_IA_XADD_EwGwM }, - /* 0F C2 /wm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 }, - /* 0F C3 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc3M }, - /* 0F C4 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 }, + /* 0F C2 /wm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_CMPPS_VpsWpsIb, BxOpcodeGroupSSE_0fc2 }, + /* 0F C3 /wm */ { BxPrefixSSE, BX_IA_MOVNTI_MdGd, BxOpcodeGroupSSE_ERR }, + /* 0F C4 /wm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PINSRW_PqEwIb, BxOpcodeGroupSSE_0fc4 }, /* 0F C5 /wm */ { 0, BX_IA_ERROR }, // PEXTRW SSE group - /* 0F C6 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 }, + /* 0F C6 /wm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb, BxOpcodeGroupSSE_0fc6 }, /* 0F C7 /wm */ { BxGroup9, BX_IA_ERROR, BxOpcodeInfoG9M }, /* 0F C8 /wm */ { 0, BX_IA_BSWAP_ERX }, /* 0F C9 /wm */ { 0, BX_IA_BSWAP_ERX }, @@ -1843,53 +1843,53 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { /* 0F CD /wm */ { 0, BX_IA_BSWAP_ERX }, /* 0F CE /wm */ { 0, BX_IA_BSWAP_ERX }, /* 0F CF /wm */ { 0, BX_IA_BSWAP_ERX }, - /* 0F D0 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd0 }, - /* 0F D1 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd1 }, - /* 0F D2 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd2 }, - /* 0F D3 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd3 }, - /* 0F D4 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd4 }, - /* 0F D5 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd5 }, + /* 0F D0 /wm */ { BxPrefixSSE, BX_IA_ADDSUBPD_VpdWpd, BxOpcodeGroupSSE_0fd0 }, + /* 0F D1 /wm */ { BxPrefixSSE, BX_IA_PSRLW_PqQq, BxOpcodeGroupSSE_0fd1 }, + /* 0F D2 /wm */ { BxPrefixSSE, BX_IA_PSRLD_PqQq, BxOpcodeGroupSSE_0fd2 }, + /* 0F D3 /wm */ { BxPrefixSSE, BX_IA_PSRLQ_PqQq, BxOpcodeGroupSSE_0fd3 }, + /* 0F D4 /wm */ { BxPrefixSSE, BX_IA_PADDQ_PqQq, BxOpcodeGroupSSE_0fd4 }, + /* 0F D5 /wm */ { BxPrefixSSE, BX_IA_PMULLW_PqQq, BxOpcodeGroupSSE_0fd5 }, /* 0F D6 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd6 }, - /* 0F D7 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd7 }, - /* 0F D8 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd8 }, - /* 0F D9 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd9 }, - /* 0F DA /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fda }, - /* 0F DB /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdb }, - /* 0F DC /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdc }, - /* 0F DD /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdd }, - /* 0F DE /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fde }, - /* 0F DF /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdf }, - /* 0F E0 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe0 }, - /* 0F E1 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe1 }, - /* 0F E2 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe2 }, - /* 0F E3 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe3 }, - /* 0F E4 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe4 }, - /* 0F E5 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe5 }, + /* 0F D7 /wm */ { BxPrefixSSE, BX_IA_PMOVMSKB_GdPRq, BxOpcodeGroupSSE_0fd7 }, + /* 0F D8 /wm */ { BxPrefixSSE, BX_IA_PSUBUSB_PqQq, BxOpcodeGroupSSE_0fd8 }, + /* 0F D9 /wm */ { BxPrefixSSE, BX_IA_PSUBUSW_PqQq, BxOpcodeGroupSSE_0fd9 }, + /* 0F DA /wm */ { BxPrefixSSE, BX_IA_PMINUB_PqQq, BxOpcodeGroupSSE_0fda }, + /* 0F DB /wm */ { BxPrefixSSE, BX_IA_PAND_PqQq, BxOpcodeGroupSSE_0fdb }, + /* 0F DC /wm */ { BxPrefixSSE, BX_IA_PADDUSB_PqQq, BxOpcodeGroupSSE_0fdc }, + /* 0F DD /wm */ { BxPrefixSSE, BX_IA_PADDUSW_PqQq, BxOpcodeGroupSSE_0fdd }, + /* 0F DE /wm */ { BxPrefixSSE, BX_IA_PMAXUB_PqQq, BxOpcodeGroupSSE_0fde }, + /* 0F DF /wm */ { BxPrefixSSE, BX_IA_PANDN_PqQq, BxOpcodeGroupSSE_0fdf }, + /* 0F E0 /wm */ { BxPrefixSSE, BX_IA_PAVGB_PqQq, BxOpcodeGroupSSE_0fe0 }, + /* 0F E1 /wm */ { BxPrefixSSE, BX_IA_PSRAW_PqQq, BxOpcodeGroupSSE_0fe1 }, + /* 0F E2 /wm */ { BxPrefixSSE, BX_IA_PSRAD_PqQq, BxOpcodeGroupSSE_0fe2 }, + /* 0F E3 /wm */ { BxPrefixSSE, BX_IA_PAVGW_PqQq, BxOpcodeGroupSSE_0fe3 }, + /* 0F E4 /wm */ { BxPrefixSSE, BX_IA_PMULHUW_PqQq, BxOpcodeGroupSSE_0fe4 }, + /* 0F E5 /wm */ { BxPrefixSSE, BX_IA_PMULHW_PqQq, BxOpcodeGroupSSE_0fe5 }, /* 0F E6 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe6 }, - /* 0F E7 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe7M }, - /* 0F E8 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe8 }, - /* 0F E9 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe9 }, - /* 0F EA /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fea }, - /* 0F EB /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0feb }, - /* 0F EC /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fec }, - /* 0F ED /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fed }, - /* 0F EE /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fee }, - /* 0F EF /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fef }, + /* 0F E7 /wm */ { BxPrefixSSE, BX_IA_MOVNTQ_MqPq, BxOpcodeGroupSSE_0fe7M }, + /* 0F E8 /wm */ { BxPrefixSSE, BX_IA_PSUBSB_PqQq, BxOpcodeGroupSSE_0fe8 }, + /* 0F E9 /wm */ { BxPrefixSSE, BX_IA_PSUBSW_PqQq, BxOpcodeGroupSSE_0fe9 }, + /* 0F EA /wm */ { BxPrefixSSE, BX_IA_PMINSW_PqQq, BxOpcodeGroupSSE_0fea }, + /* 0F EB /wm */ { BxPrefixSSE, BX_IA_POR_PqQq, BxOpcodeGroupSSE_0feb }, + /* 0F EC /wm */ { BxPrefixSSE, BX_IA_PADDSB_PqQq, BxOpcodeGroupSSE_0fec }, + /* 0F ED /wm */ { BxPrefixSSE, BX_IA_PADDSW_PqQq, BxOpcodeGroupSSE_0fed }, + /* 0F EE /wm */ { BxPrefixSSE, BX_IA_PMAXSW_PqQq, BxOpcodeGroupSSE_0fee }, + /* 0F EF /wm */ { BxPrefixSSE, BX_IA_PXOR_PqQq, BxOpcodeGroupSSE_0fef }, /* 0F F0 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff0M }, - /* 0F F1 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff1 }, - /* 0F F2 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff2 }, - /* 0F F3 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff3 }, - /* 0F F4 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff4 }, - /* 0F F5 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff5 }, - /* 0F F6 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff6 }, + /* 0F F1 /wm */ { BxPrefixSSE, BX_IA_PSLLW_PqQq, BxOpcodeGroupSSE_0ff1 }, + /* 0F F2 /wm */ { BxPrefixSSE, BX_IA_PSLLD_PqQq, BxOpcodeGroupSSE_0ff2 }, + /* 0F F3 /wm */ { BxPrefixSSE, BX_IA_PSLLQ_PqQq, BxOpcodeGroupSSE_0ff3 }, + /* 0F F4 /wm */ { BxPrefixSSE, BX_IA_PMULUDQ_PqQq, BxOpcodeGroupSSE_0ff4 }, + /* 0F F5 /wm */ { BxPrefixSSE, BX_IA_PMADDWD_PqQq, BxOpcodeGroupSSE_0ff5 }, + /* 0F F6 /wm */ { BxPrefixSSE, BX_IA_PSADBW_PqQq, BxOpcodeGroupSSE_0ff6 }, /* 0F F7 /wm */ { 0, BX_IA_ERROR }, // MASKMOV SSE group - /* 0F F8 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff8 }, - /* 0F F9 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff9 }, - /* 0F FA /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffa }, - /* 0F FB /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffb }, - /* 0F FC /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffc }, - /* 0F FD /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffd }, - /* 0F FE /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffe }, + /* 0F F8 /wm */ { BxPrefixSSE, BX_IA_PSUBB_PqQq, BxOpcodeGroupSSE_0ff8 }, + /* 0F F9 /wm */ { BxPrefixSSE, BX_IA_PSUBW_PqQq, BxOpcodeGroupSSE_0ff9 }, + /* 0F FA /wm */ { BxPrefixSSE, BX_IA_PSUBD_PqQq, BxOpcodeGroupSSE_0ffa }, + /* 0F FB /wm */ { BxPrefixSSE, BX_IA_PSUBQ_PqQq, BxOpcodeGroupSSE_0ffb }, + /* 0F FC /wm */ { BxPrefixSSE, BX_IA_PADDB_PqQq, BxOpcodeGroupSSE_0ffc }, + /* 0F FD /wm */ { BxPrefixSSE, BX_IA_PADDW_PqQq, BxOpcodeGroupSSE_0ffd }, + /* 0F FE /wm */ { BxPrefixSSE, BX_IA_PADDD_PqQq, BxOpcodeGroupSSE_0ffe }, /* 0F FF /wm */ { 0, BX_IA_ERROR }, // 512 entries for 32bit mode @@ -2195,14 +2195,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { #else /* 0F 0F /dm */ { 0, BX_IA_ERROR }, #endif - /* 0F 10 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f10 }, - /* 0F 11 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f11 }, - /* 0F 12 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f12 }, - /* 0F 13 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f13M }, - /* 0F 14 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f14 }, - /* 0F 15 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f15 }, - /* 0F 16 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f16 }, - /* 0F 17 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f17M }, + /* 0F 10 /dm */ { BxPrefixSSE, BX_IA_MOVUPS_VpsWps, BxOpcodeGroupSSE_0f10 }, + /* 0F 11 /dm */ { BxPrefixSSE, BX_IA_MOVUPS_WpsVps, BxOpcodeGroupSSE_0f11 }, + /* 0F 12 /dm */ { BxPrefixSSE, BX_IA_MOVLPS_VpsMq, BxOpcodeGroupSSE_0f12 }, + /* 0F 13 /dm */ { BxPrefixSSE, BX_IA_MOVLPS_MqVps, BxOpcodeGroupSSE_0f13M }, + /* 0F 14 /dm */ { BxPrefixSSE, BX_IA_UNPCKLPS_VpsWdq, BxOpcodeGroupSSE_0f14 }, + /* 0F 15 /dm */ { BxPrefixSSE, BX_IA_UNPCKHPS_VpsWdq, BxOpcodeGroupSSE_0f15 }, + /* 0F 16 /dm */ { BxPrefixSSE, BX_IA_MOVHPS_VpsMq, BxOpcodeGroupSSE_0f16 }, + /* 0F 17 /dm */ { BxPrefixSSE, BX_IA_MOVHPS_MqVps, BxOpcodeGroupSSE_0f17M }, # if BX_CPU_LEVEL >= 6 /* 0F 18 /dm */ { 0, BX_IA_PREFETCH }, // opcode group G16, PREFETCH hints /* 0F 19 /dm */ { 0, BX_IA_NOP }, // multi-byte NOP @@ -2230,14 +2230,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { /* 0F 25 /dm */ { 0, BX_IA_ERROR }, /* 0F 26 /dm */ { BxTraceEnd, BX_IA_MOV_TdRd }, // not implemented /* 0F 27 /dm */ { 0, BX_IA_ERROR }, - /* 0F 28 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f28 }, - /* 0F 29 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f29 }, - /* 0F 2A /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2a }, - /* 0F 2B /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2bM }, - /* 0F 2C /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2c }, - /* 0F 2D /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2d }, - /* 0F 2E /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2e }, - /* 0F 2F /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2f }, + /* 0F 28 /dm */ { BxPrefixSSE, BX_IA_MOVAPS_VpsWps, BxOpcodeGroupSSE_0f28 }, + /* 0F 29 /dm */ { BxPrefixSSE, BX_IA_MOVAPS_WpsVps, BxOpcodeGroupSSE_0f29 }, + /* 0F 2A /dm */ { BxPrefixSSE, BX_IA_CVTPI2PS_VpsQq, BxOpcodeGroupSSE_0f2a }, + /* 0F 2B /dm */ { BxPrefixSSE, BX_IA_MOVNTPS_MpsVps, BxOpcodeGroupSSE_0f2bM }, + /* 0F 2C /dm */ { BxPrefixSSE, BX_IA_CVTTPS2PI_PqWps, BxOpcodeGroupSSE_0f2c }, + /* 0F 2D /dm */ { BxPrefixSSE, BX_IA_CVTPS2PI_PqWps, BxOpcodeGroupSSE_0f2d }, + /* 0F 2E /dm */ { BxPrefixSSE, BX_IA_UCOMISS_VssWss, BxOpcodeGroupSSE_0f2e }, + /* 0F 2F /dm */ { BxPrefixSSE, BX_IA_COMISS_VpsWps, BxOpcodeGroupSSE_0f2f }, /* 0F 30 /dm */ { 0, BX_IA_WRMSR }, /* 0F 31 /dm */ { 0, BX_IA_RDTSC }, /* 0F 32 /dm */ { 0, BX_IA_RDMSR }, @@ -2278,45 +2278,45 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { /* 0F 4D /dm */ { 0, BX_IA_CMOVNL_GdEdM }, /* 0F 4E /dm */ { 0, BX_IA_CMOVLE_GdEdM }, /* 0F 4F /dm */ { 0, BX_IA_CMOVNLE_GdEdM }, - /* 0F 50 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f50 }, - /* 0F 51 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f51 }, - /* 0F 52 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f52 }, - /* 0F 53 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f53 }, - /* 0F 54 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f54 }, - /* 0F 55 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f55 }, - /* 0F 56 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f56 }, - /* 0F 57 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f57 }, - /* 0F 58 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f58 }, - /* 0F 59 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f59 }, - /* 0F 5A /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5a }, - /* 0F 5B /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5b }, - /* 0F 5C /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5c }, - /* 0F 5D /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5d }, - /* 0F 5E /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5e }, - /* 0F 5F /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5f }, - /* 0F 60 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f60 }, - /* 0F 61 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f61 }, - /* 0F 62 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f62 }, - /* 0F 63 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f63 }, - /* 0F 64 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f64 }, - /* 0F 65 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f65 }, - /* 0F 66 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f66 }, - /* 0F 67 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f67 }, - /* 0F 68 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f68 }, - /* 0F 69 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f69 }, - /* 0F 6A /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6a }, - /* 0F 6B /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6b }, + /* 0F 50 /dm */ { BxPrefixSSE, BX_IA_MOVMSKPS_GdVRps, BxOpcodeGroupSSE_0f50 }, + /* 0F 51 /dm */ { BxPrefixSSE, BX_IA_SQRTPS_VpsWps, BxOpcodeGroupSSE_0f51 }, + /* 0F 52 /dm */ { BxPrefixSSE, BX_IA_RSQRTPS_VpsWps, BxOpcodeGroupSSE_0f52 }, + /* 0F 53 /dm */ { BxPrefixSSE, BX_IA_RCPPS_VpsWps, BxOpcodeGroupSSE_0f53 }, + /* 0F 54 /dm */ { BxPrefixSSE, BX_IA_ANDPS_VpsWps, BxOpcodeGroupSSE_0f54 }, + /* 0F 55 /dm */ { BxPrefixSSE, BX_IA_ANDNPS_VpsWps, BxOpcodeGroupSSE_0f55 }, + /* 0F 56 /dm */ { BxPrefixSSE, BX_IA_ORPS_VpsWps, BxOpcodeGroupSSE_0f56 }, + /* 0F 57 /dm */ { BxPrefixSSE, BX_IA_XORPS_VpsWps, BxOpcodeGroupSSE_0f57 }, + /* 0F 58 /dm */ { BxPrefixSSE, BX_IA_ADDPS_VpsWps, BxOpcodeGroupSSE_0f58 }, + /* 0F 59 /dm */ { BxPrefixSSE, BX_IA_MULPS_VpsWps, BxOpcodeGroupSSE_0f59 }, + /* 0F 5A /dm */ { BxPrefixSSE, BX_IA_CVTPS2PD_VpsWps, BxOpcodeGroupSSE_0f5a }, + /* 0F 5B /dm */ { BxPrefixSSE, BX_IA_CVTDQ2PS_VpsWdq, BxOpcodeGroupSSE_0f5b }, + /* 0F 5C /dm */ { BxPrefixSSE, BX_IA_SUBPS_VpsWps, BxOpcodeGroupSSE_0f5c }, + /* 0F 5D /dm */ { BxPrefixSSE, BX_IA_MINPS_VpsWps, BxOpcodeGroupSSE_0f5d }, + /* 0F 5E /dm */ { BxPrefixSSE, BX_IA_DIVPS_VpsWps, BxOpcodeGroupSSE_0f5e }, + /* 0F 5F /dm */ { BxPrefixSSE, BX_IA_MAXPS_VpsWps, BxOpcodeGroupSSE_0f5f }, + /* 0F 60 /dm */ { BxPrefixSSE, BX_IA_PUNPCKLBW_PqQd, BxOpcodeGroupSSE_0f60 }, + /* 0F 61 /dm */ { BxPrefixSSE, BX_IA_PUNPCKLWD_PqQd, BxOpcodeGroupSSE_0f61 }, + /* 0F 62 /dm */ { BxPrefixSSE, BX_IA_PUNPCKLDQ_PqQd, BxOpcodeGroupSSE_0f62 }, + /* 0F 63 /dm */ { BxPrefixSSE, BX_IA_PACKSSWB_PqQq, BxOpcodeGroupSSE_0f63 }, + /* 0F 64 /dm */ { BxPrefixSSE, BX_IA_PCMPGTB_PqQq, BxOpcodeGroupSSE_0f64 }, + /* 0F 65 /dm */ { BxPrefixSSE, BX_IA_PCMPGTW_PqQq, BxOpcodeGroupSSE_0f65 }, + /* 0F 66 /dm */ { BxPrefixSSE, BX_IA_PCMPGTD_PqQq, BxOpcodeGroupSSE_0f66 }, + /* 0F 67 /dm */ { BxPrefixSSE, BX_IA_PACKUSWB_PqQq, BxOpcodeGroupSSE_0f67 }, + /* 0F 68 /dm */ { BxPrefixSSE, BX_IA_PUNPCKHBW_PqQq, BxOpcodeGroupSSE_0f68 }, + /* 0F 69 /dm */ { BxPrefixSSE, BX_IA_PUNPCKHWD_PqQq, BxOpcodeGroupSSE_0f69 }, + /* 0F 6A /dm */ { BxPrefixSSE, BX_IA_PUNPCKHDQ_PqQq, BxOpcodeGroupSSE_0f6a }, + /* 0F 6B /dm */ { BxPrefixSSE, BX_IA_PACKSSDW_PqQq, BxOpcodeGroupSSE_0f6b }, /* 0F 6C /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6c }, /* 0F 6D /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6d }, - /* 0F 6E /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6e }, - /* 0F 6F /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6f }, - /* 0F 70 /dm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f70 }, + /* 0F 6E /dm */ { BxPrefixSSE, BX_IA_MOVD_PqEd, BxOpcodeGroupSSE_0f6e }, + /* 0F 6F /dm */ { BxPrefixSSE, BX_IA_MOVQ_PqQq, BxOpcodeGroupSSE_0f6f }, + /* 0F 70 /dm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PSHUFW_PqQqIb, BxOpcodeGroupSSE_0f70 }, /* 0F 71 /dm */ { 0, BX_IA_ERROR }, // SSE Group G12 /* 0F 72 /dm */ { 0, BX_IA_ERROR }, // SSE Group G13 /* 0F 73 /dm */ { 0, BX_IA_ERROR }, // SSE Group G14 - /* 0F 74 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f74 }, - /* 0F 75 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f75 }, - /* 0F 76 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f76 }, + /* 0F 74 /dm */ { BxPrefixSSE, BX_IA_PCMPEQB_PqQq, BxOpcodeGroupSSE_0f74 }, + /* 0F 75 /dm */ { BxPrefixSSE, BX_IA_PCMPEQW_PqQq, BxOpcodeGroupSSE_0f75 }, + /* 0F 76 /dm */ { BxPrefixSSE, BX_IA_PCMPEQD_PqQq, BxOpcodeGroupSSE_0f76 }, /* 0F 77 /dm */ { 0, BX_IA_EMMS }, /* 0F 78 /dm */ { 0, BX_IA_ERROR }, /* 0F 79 /dm */ { 0, BX_IA_ERROR }, @@ -2324,8 +2324,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { /* 0F 7B /dm */ { 0, BX_IA_ERROR }, /* 0F 7C /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7c }, /* 0F 7D /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7d }, - /* 0F 7E /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7e }, - /* 0F 7F /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7f }, + /* 0F 7E /dm */ { BxPrefixSSE, BX_IA_MOVD_EdPd, BxOpcodeGroupSSE_0f7e }, + /* 0F 7F /dm */ { BxPrefixSSE, BX_IA_MOVQ_QqPq, BxOpcodeGroupSSE_0f7f }, /* 0F 80 /dm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JO_Jd }, /* 0F 81 /dm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JNO_Jd }, /* 0F 82 /dm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JB_Jd }, @@ -2392,11 +2392,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { /* 0F BF /dm */ { 0, BX_IA_MOVSX_GdEwM }, /* 0F C0 /dm */ { BxLockable, BX_IA_XADD_EbGbM }, /* 0F C1 /dm */ { BxLockable, BX_IA_XADD_EdGdM }, - /* 0F C2 /dm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 }, - /* 0F C3 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc3M }, - /* 0F C4 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 }, + /* 0F C2 /dm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_CMPPS_VpsWpsIb, BxOpcodeGroupSSE_0fc2 }, + /* 0F C3 /dm */ { BxPrefixSSE, BX_IA_MOVNTI_MdGd, BxOpcodeGroupSSE_ERR }, + /* 0F C4 /dm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PINSRW_PqEwIb, BxOpcodeGroupSSE_0fc4 }, /* 0F C5 /dm */ { 0, BX_IA_ERROR }, // PEXTRW SSE group - /* 0F C6 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 }, + /* 0F C6 /dm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb, BxOpcodeGroupSSE_0fc6 }, /* 0F C7 /dm */ { BxGroup9, BX_IA_ERROR, BxOpcodeInfoG9M }, /* 0F C8 /dm */ { 0, BX_IA_BSWAP_ERX }, /* 0F C9 /dm */ { 0, BX_IA_BSWAP_ERX }, @@ -2406,53 +2406,53 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = { /* 0F CD /dm */ { 0, BX_IA_BSWAP_ERX }, /* 0F CE /dm */ { 0, BX_IA_BSWAP_ERX }, /* 0F CF /dm */ { 0, BX_IA_BSWAP_ERX }, - /* 0F D0 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd0 }, - /* 0F D1 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd1 }, - /* 0F D2 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd2 }, - /* 0F D3 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd3 }, - /* 0F D4 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd4 }, - /* 0F D5 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd5 }, + /* 0F D0 /dm */ { BxPrefixSSE, BX_IA_ADDSUBPD_VpdWpd, BxOpcodeGroupSSE_0fd0 }, + /* 0F D1 /dm */ { BxPrefixSSE, BX_IA_PSRLW_PqQq, BxOpcodeGroupSSE_0fd1 }, + /* 0F D2 /dm */ { BxPrefixSSE, BX_IA_PSRLD_PqQq, BxOpcodeGroupSSE_0fd2 }, + /* 0F D3 /dm */ { BxPrefixSSE, BX_IA_PSRLQ_PqQq, BxOpcodeGroupSSE_0fd3 }, + /* 0F D4 /dm */ { BxPrefixSSE, BX_IA_PADDQ_PqQq, BxOpcodeGroupSSE_0fd4 }, + /* 0F D5 /dm */ { BxPrefixSSE, BX_IA_PMULLW_PqQq, BxOpcodeGroupSSE_0fd5 }, /* 0F D6 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd6 }, - /* 0F D7 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd7 }, - /* 0F D8 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd8 }, - /* 0F D9 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd9 }, - /* 0F DA /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fda }, - /* 0F DB /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdb }, - /* 0F DC /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdc }, - /* 0F DD /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdd }, - /* 0F DE /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fde }, - /* 0F DF /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdf }, - /* 0F E0 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe0 }, - /* 0F E1 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe1 }, - /* 0F E2 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe2 }, - /* 0F E3 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe3 }, - /* 0F E4 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe4 }, - /* 0F E5 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe5 }, + /* 0F D7 /dm */ { BxPrefixSSE, BX_IA_PMOVMSKB_GdPRq, BxOpcodeGroupSSE_0fd7 }, + /* 0F D8 /dm */ { BxPrefixSSE, BX_IA_PSUBUSB_PqQq, BxOpcodeGroupSSE_0fd8 }, + /* 0F D9 /dm */ { BxPrefixSSE, BX_IA_PSUBUSW_PqQq, BxOpcodeGroupSSE_0fd9 }, + /* 0F DA /dm */ { BxPrefixSSE, BX_IA_PMINUB_PqQq, BxOpcodeGroupSSE_0fda }, + /* 0F DB /dm */ { BxPrefixSSE, BX_IA_PAND_PqQq, BxOpcodeGroupSSE_0fdb }, + /* 0F DC /dm */ { BxPrefixSSE, BX_IA_PADDUSB_PqQq, BxOpcodeGroupSSE_0fdc }, + /* 0F DD /dm */ { BxPrefixSSE, BX_IA_PADDUSW_PqQq, BxOpcodeGroupSSE_0fdd }, + /* 0F DE /dm */ { BxPrefixSSE, BX_IA_PMAXUB_PqQq, BxOpcodeGroupSSE_0fde }, + /* 0F DF /dm */ { BxPrefixSSE, BX_IA_PANDN_PqQq, BxOpcodeGroupSSE_0fdf }, + /* 0F E0 /dm */ { BxPrefixSSE, BX_IA_PAVGB_PqQq, BxOpcodeGroupSSE_0fe0 }, + /* 0F E1 /dm */ { BxPrefixSSE, BX_IA_PSRAW_PqQq, BxOpcodeGroupSSE_0fe1 }, + /* 0F E2 /dm */ { BxPrefixSSE, BX_IA_PSRAD_PqQq, BxOpcodeGroupSSE_0fe2 }, + /* 0F E3 /dm */ { BxPrefixSSE, BX_IA_PAVGW_PqQq, BxOpcodeGroupSSE_0fe3 }, + /* 0F E4 /dm */ { BxPrefixSSE, BX_IA_PMULHUW_PqQq, BxOpcodeGroupSSE_0fe4 }, + /* 0F E5 /dm */ { BxPrefixSSE, BX_IA_PMULHW_PqQq, BxOpcodeGroupSSE_0fe5 }, /* 0F E6 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe6 }, - /* 0F E7 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe7M }, - /* 0F E8 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe8 }, - /* 0F E9 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe9 }, - /* 0F EA /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fea }, - /* 0F EB /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0feb }, - /* 0F EC /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fec }, - /* 0F ED /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fed }, - /* 0F EE /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fee }, - /* 0F EF /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fef }, + /* 0F E7 /dm */ { BxPrefixSSE, BX_IA_MOVNTQ_MqPq, BxOpcodeGroupSSE_0fe7M }, + /* 0F E8 /dm */ { BxPrefixSSE, BX_IA_PSUBSB_PqQq, BxOpcodeGroupSSE_0fe8 }, + /* 0F E9 /dm */ { BxPrefixSSE, BX_IA_PSUBSW_PqQq, BxOpcodeGroupSSE_0fe9 }, + /* 0F EA /dm */ { BxPrefixSSE, BX_IA_PMINSW_PqQq, BxOpcodeGroupSSE_0fea }, + /* 0F EB /dm */ { BxPrefixSSE, BX_IA_POR_PqQq, BxOpcodeGroupSSE_0feb }, + /* 0F EC /dm */ { BxPrefixSSE, BX_IA_PADDSB_PqQq, BxOpcodeGroupSSE_0fec }, + /* 0F ED /dm */ { BxPrefixSSE, BX_IA_PADDSW_PqQq, BxOpcodeGroupSSE_0fed }, + /* 0F EE /dm */ { BxPrefixSSE, BX_IA_PMAXSW_PqQq, BxOpcodeGroupSSE_0fee }, + /* 0F EF /dm */ { BxPrefixSSE, BX_IA_PXOR_PqQq, BxOpcodeGroupSSE_0fef }, /* 0F F0 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff0M }, - /* 0F F1 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff1 }, - /* 0F F2 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff2 }, - /* 0F F3 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff3 }, - /* 0F F4 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff4 }, - /* 0F F5 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff5 }, - /* 0F F6 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff6 }, + /* 0F F1 /dm */ { BxPrefixSSE, BX_IA_PSLLW_PqQq, BxOpcodeGroupSSE_0ff1 }, + /* 0F F2 /dm */ { BxPrefixSSE, BX_IA_PSLLD_PqQq, BxOpcodeGroupSSE_0ff2 }, + /* 0F F3 /dm */ { BxPrefixSSE, BX_IA_PSLLQ_PqQq, BxOpcodeGroupSSE_0ff3 }, + /* 0F F4 /dm */ { BxPrefixSSE, BX_IA_PMULUDQ_PqQq, BxOpcodeGroupSSE_0ff4 }, + /* 0F F5 /dm */ { BxPrefixSSE, BX_IA_PMADDWD_PqQq, BxOpcodeGroupSSE_0ff5 }, + /* 0F F6 /dm */ { BxPrefixSSE, BX_IA_PSADBW_PqQq, BxOpcodeGroupSSE_0ff6 }, /* 0F F7 /dm */ { 0, BX_IA_ERROR }, // MASKMOV SSE group - /* 0F F8 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff8 }, - /* 0F F9 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff9 }, - /* 0F FA /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffa }, - /* 0F FB /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffb }, - /* 0F FC /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffc }, - /* 0F FD /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffd }, - /* 0F FE /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffe }, + /* 0F F8 /dm */ { BxPrefixSSE, BX_IA_PSUBB_PqQq, BxOpcodeGroupSSE_0ff8 }, + /* 0F F9 /dm */ { BxPrefixSSE, BX_IA_PSUBW_PqQq, BxOpcodeGroupSSE_0ff9 }, + /* 0F FA /dm */ { BxPrefixSSE, BX_IA_PSUBD_PqQq, BxOpcodeGroupSSE_0ffa }, + /* 0F FB /dm */ { BxPrefixSSE, BX_IA_PSUBQ_PqQq, BxOpcodeGroupSSE_0ffb }, + /* 0F FC /dm */ { BxPrefixSSE, BX_IA_PADDB_PqQq, BxOpcodeGroupSSE_0ffc }, + /* 0F FD /dm */ { BxPrefixSSE, BX_IA_PADDW_PqQq, BxOpcodeGroupSSE_0ffd }, + /* 0F FE /dm */ { BxPrefixSSE, BX_IA_PADDD_PqQq, BxOpcodeGroupSSE_0ffe }, /* 0F FF /dm */ { 0, BX_IA_ERROR } }; @@ -2759,10 +2759,10 @@ modrm_done: } while(attr & BxGroupX) { - Bit32u Group = attr & BxGroupX; + Bit32u group = attr & BxGroupX; attr &= ~BxGroupX; - switch(Group) { + switch(group) { case BxGroupN: OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[nnn]); break; @@ -2778,10 +2778,13 @@ modrm_done: OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[os_32]); break; case BxPrefixSSE: - /* For SSE opcodes look into another 4 entries table + /* For SSE opcodes look into another table with the opcode prefixes (NONE, 0x66, 0xF2, 0xF3) */ - OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[sse_prefix]); - break; + if (sse_prefix) { + OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[sse_prefix-1]); + break; + } + continue; #if BX_SUPPORT_FPU case BxFPEscape: { @@ -2963,14 +2966,14 @@ modrm_done: i->setStopTraceAttr(); #endif - i->execute = BxOpcodesTable[ia_opcode].execute; - i->execute2 = BxOpcodesTable[ia_opcode].execute2; - - if (BxOpcodesTable[ia_opcode].attr == BxArithDstRM) { + if (attr & BxArithDstRM) { i->setRm(nnn); i->setNnn(rm); } + i->execute = BxOpcodesTable[ia_opcode].execute1; + i->execute2 = BxOpcodesTable[ia_opcode].execute2; + i->setB1(b1); i->setILen(ilen); diff --git a/bochs/cpu/fetchdecode.h b/bochs/cpu/fetchdecode.h index fc9ca4765..789b569d6 100755 --- a/bochs/cpu/fetchdecode.h +++ b/bochs/cpu/fetchdecode.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fetchdecode.h,v 1.74 2008-08-11 20:34:05 sshwarts Exp $ +// $Id: fetchdecode.h,v 1.75 2008-08-29 19:23:01 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2005 Stanislav Shwartsman @@ -60,13 +60,12 @@ BX_CPP_INLINE Bit64u FetchQWORD(const Bit8u *iptr) #endif struct bxIAOpcodeTable { - BxExecutePtr_tR execute; + BxExecutePtr_tR execute1; BxExecutePtr_tR execute2; - Bit16u attr; }; enum { -#define bx_define_opcode(a, b, c, d) a, +#define bx_define_opcode(a, b, c) a, #include "ia_opcodes.h" BX_IA_LAST }; @@ -987,898 +986,762 @@ static const BxOpcodeInfo_t Bx3DNowOpcodeInfo[256] = { /* SSE Groups */ /* ********** */ -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f10[4] = { - /* -- */ { 0, BX_IA_MOVUPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_ERR[3] = { + /* 66 */ { 0, BX_IA_ERROR }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f10[3] = { /* 66 */ { 0, BX_IA_MOVUPD_VpdWpd }, /* F2 */ { 0, BX_IA_MOVSD_VsdWsd }, /* F3 */ { 0, BX_IA_MOVSS_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f11[4] = { - /* -- */ { 0, BX_IA_MOVUPS_WpsVps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f11[3] = { /* 66 */ { 0, BX_IA_MOVUPD_WpdVpd }, /* F2 */ { 0, BX_IA_MOVSD_WsdVsd }, /* F3 */ { 0, BX_IA_MOVSS_WssVss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f12[4] = { - /* -- */ { 0, BX_IA_MOVLPS_VpsMq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f12[3] = { /* 66 */ { 0, BX_IA_MOVLPD_VsdMq }, /* F2 */ { 0, BX_IA_MOVDDUP_VpdWq }, // SSE3 /* F3 */ { 0, BX_IA_MOVSLDUP_VpsWps } // SSE3 }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f13M[4] = { - /* -- */ { 0, BX_IA_MOVLPS_MqVps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f13M[3] = { /* 66 */ { 0, BX_IA_MOVLPD_MqVsd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f14[4] = { - /* -- */ { 0, BX_IA_UNPCKLPS_VpsWdq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f14[3] = { /* 66 */ { 0, BX_IA_UNPCKLPD_VpdWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f15[4] = { - /* -- */ { 0, BX_IA_UNPCKHPS_VpsWdq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f15[3] = { /* 66 */ { 0, BX_IA_UNPCKHPD_VpdWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f16[4] = { - /* -- */ { 0, BX_IA_MOVHPS_VpsMq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f16[3] = { /* 66 */ { 0, BX_IA_MOVHPD_VsdMq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_MOVSHDUP_VpsWps } // SSE3 }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f17M[4] = { - /* -- */ { 0, BX_IA_MOVHPS_MqVps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f17M[3] = { /* 66 */ { 0, BX_IA_MOVHPD_MqVsd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f28[4] = { - /* -- */ { 0, BX_IA_MOVAPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f28[3] = { /* 66 */ { 0, BX_IA_MOVAPD_VpdWpd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f29[4] = { - /* -- */ { 0, BX_IA_MOVAPS_WpsVps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f29[3] = { /* 66 */ { 0, BX_IA_MOVAPD_WpdVpd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2a[4] = { - /* -- */ { 0, BX_IA_CVTPI2PS_VpsQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2a[3] = { /* 66 */ { 0, BX_IA_CVTPI2PD_VpdQq }, /* F2 */ { 0, BX_IA_CVTSI2SD_VsdEd }, /* F3 */ { 0, BX_IA_CVTSI2SS_VssEd } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2bM[4] = { - /* -- */ { 0, BX_IA_MOVNTPS_MpsVps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2bM[3] = { /* 66 */ { 0, BX_IA_MOVNTPD_MpdVpd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2c[4] = { - /* -- */ { 0, BX_IA_CVTTPS2PI_PqWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2c[3] = { /* 66 */ { 0, BX_IA_CVTTPD2PI_PqWpd }, /* F2 */ { 0, BX_IA_CVTTSD2SI_GdWsd }, /* F3 */ { 0, BX_IA_CVTTSS2SI_GdWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2d[4] = { - /* -- */ { 0, BX_IA_CVTPS2PI_PqWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2d[3] = { /* 66 */ { 0, BX_IA_CVTPD2PI_PqWpd }, /* F2 */ { 0, BX_IA_CVTSD2SI_GdWsd }, /* F3 */ { 0, BX_IA_CVTSS2SI_GdWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2e[4] = { - /* -- */ { 0, BX_IA_UCOMISS_VssWss }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2e[3] = { /* 66 */ { 0, BX_IA_UCOMISD_VsdWsd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2f[4] = { - /* -- */ { 0, BX_IA_COMISS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f2f[3] = { /* 66 */ { 0, BX_IA_COMISD_VpdWpd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f50[4] = { - /* -- */ { 0, BX_IA_MOVMSKPS_GdVRps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f50[3] = { /* 66 */ { 0, BX_IA_MOVMSKPD_GdVRpd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f51[4] = { - /* -- */ { 0, BX_IA_SQRTPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f51[3] = { /* 66 */ { 0, BX_IA_SQRTPD_VpdWpd }, /* F2 */ { 0, BX_IA_SQRTSD_VsdWsd }, /* F3 */ { 0, BX_IA_SQRTSS_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f52[4] = { - /* -- */ { 0, BX_IA_RSQRTPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f52[3] = { /* 66 */ { 0, BX_IA_ERROR }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_RSQRTSS_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f53[4] = { - /* -- */ { 0, BX_IA_RCPPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f53[3] = { /* 66 */ { 0, BX_IA_ERROR }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_RCPSS_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f54[4] = { - /* -- */ { 0, BX_IA_ANDPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f54[3] = { /* 66 */ { 0, BX_IA_ANDPD_VpdWpd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f55[4] = { - /* -- */ { 0, BX_IA_ANDNPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f55[3] = { /* 66 */ { 0, BX_IA_ANDNPD_VpdWpd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f56[4] = { - /* -- */ { 0, BX_IA_ORPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f56[3] = { /* 66 */ { 0, BX_IA_ORPD_VpdWpd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f57[4] = { - /* -- */ { 0, BX_IA_XORPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f57[3] = { /* 66 */ { 0, BX_IA_XORPD_VpdWpd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f58[4] = { - /* -- */ { 0, BX_IA_ADDPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f58[3] = { /* 66 */ { 0, BX_IA_ADDPD_VpdWpd }, /* F2 */ { 0, BX_IA_ADDSD_VsdWsd }, /* F3 */ { 0, BX_IA_ADDSS_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f59[4] = { - /* -- */ { 0, BX_IA_MULPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f59[3] = { /* 66 */ { 0, BX_IA_MULPD_VpdWpd }, /* F2 */ { 0, BX_IA_MULSD_VsdWsd }, /* F3 */ { 0, BX_IA_MULSS_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5a[4] = { - /* -- */ { 0, BX_IA_CVTPS2PD_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5a[3] = { /* 66 */ { 0, BX_IA_CVTPD2PS_VpdWpd }, /* F2 */ { 0, BX_IA_CVTSD2SS_VsdWsd }, /* F3 */ { 0, BX_IA_CVTSS2SD_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5b[4] = { - /* -- */ { 0, BX_IA_CVTDQ2PS_VpsWdq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5b[3] = { /* 66 */ { 0, BX_IA_CVTPS2DQ_VdqWps }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_CVTTPS2DQ_VdqWps } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5c[4] = { - /* -- */ { 0, BX_IA_SUBPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5c[3] = { /* 66 */ { 0, BX_IA_SUBPD_VpdWpd }, /* F2 */ { 0, BX_IA_SUBSD_VsdWsd }, /* F3 */ { 0, BX_IA_SUBSS_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5d[4] = { - /* -- */ { 0, BX_IA_MINPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5d[3] = { /* 66 */ { 0, BX_IA_MINPD_VpdWpd }, /* F2 */ { 0, BX_IA_MINSD_VsdWsd }, /* F3 */ { 0, BX_IA_MINSS_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5e[4] = { - /* -- */ { 0, BX_IA_DIVPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5e[3] = { /* 66 */ { 0, BX_IA_DIVPD_VpdWpd }, /* F2 */ { 0, BX_IA_DIVSD_VsdWsd }, /* F3 */ { 0, BX_IA_DIVSS_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5f[4] = { - /* -- */ { 0, BX_IA_MAXPS_VpsWps }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f5f[3] = { /* 66 */ { 0, BX_IA_MAXPD_VpdWpd }, /* F2 */ { 0, BX_IA_MAXSD_VsdWsd }, /* F3 */ { 0, BX_IA_MAXSS_VssWss } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f60[4] = { - /* -- */ { 0, BX_IA_PUNPCKLBW_PqQd }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f60[3] = { /* 66 */ { 0, BX_IA_PUNPCKLBW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f61[4] = { - /* -- */ { 0, BX_IA_PUNPCKLWD_PqQd }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f61[3] = { /* 66 */ { 0, BX_IA_PUNPCKLWD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f62[4] = { - /* -- */ { 0, BX_IA_PUNPCKLDQ_PqQd }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f62[3] = { /* 66 */ { 0, BX_IA_PUNPCKLDQ_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f63[4] = { - /* -- */ { 0, BX_IA_PACKSSWB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f63[3] = { /* 66 */ { 0, BX_IA_PACKSSWB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f64[4] = { - /* -- */ { 0, BX_IA_PCMPGTB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f64[3] = { /* 66 */ { 0, BX_IA_PCMPGTB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f65[4] = { - /* -- */ { 0, BX_IA_PCMPGTW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f65[3] = { /* 66 */ { 0, BX_IA_PCMPGTW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f66[4] = { - /* -- */ { 0, BX_IA_PCMPGTD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f66[3] = { /* 66 */ { 0, BX_IA_PCMPGTD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f67[4] = { - /* -- */ { 0, BX_IA_PACKUSWB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f67[3] = { /* 66 */ { 0, BX_IA_PACKUSWB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f68[4] = { - /* -- */ { 0, BX_IA_PUNPCKHBW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f68[3] = { /* 66 */ { 0, BX_IA_PUNPCKHBW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f69[4] = { - /* -- */ { 0, BX_IA_PUNPCKHWD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f69[3] = { /* 66 */ { 0, BX_IA_PUNPCKHWD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6a[4] = { - /* -- */ { 0, BX_IA_PUNPCKHDQ_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6a[3] = { /* 66 */ { 0, BX_IA_PUNPCKHDQ_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6b[4] = { - /* -- */ { 0, BX_IA_PACKSSDW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6b[3] = { /* 66 */ { 0, BX_IA_PACKSSDW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6c[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6c[3] = { /* 66 */ { 0, BX_IA_PUNPCKLQDQ_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6d[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6d[3] = { /* 66 */ { 0, BX_IA_PUNPCKHQDQ_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6e[4] = { - /* -- */ { 0, BX_IA_MOVD_PqEd }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6e[3] = { /* 66 */ { 0, BX_IA_MOVD_VdqEd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; #if BX_SUPPORT_X86_64 -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6eQ[4] = { - /* -- */ { 0, BX_IA_MOVQ_PqEq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6eQ[3] = { /* 66 */ { 0, BX_IA_MOVQ_VdqEq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; #endif -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6f[4] = { - /* -- */ { 0, BX_IA_MOVQ_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f6f[3] = { /* 66 */ { 0, BX_IA_MOVDQA_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_MOVDQU_VdqWdq } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f70[4] = { - /* -- */ { 0, BX_IA_PSHUFW_PqQqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f70[3] = { /* 66 */ { 0, BX_IA_PSHUFD_VdqWdqIb }, /* F2 */ { 0, BX_IA_PSHUFHW_VdqWdqIb }, /* F3 */ { 0, BX_IA_PSHUFLW_VdqWdqIb } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f74[4] = { - /* -- */ { 0, BX_IA_PCMPEQB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f74[3] = { /* 66 */ { 0, BX_IA_PCMPEQB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f75[4] = { - /* -- */ { 0, BX_IA_PCMPEQW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f75[3] = { /* 66 */ { 0, BX_IA_PCMPEQW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f76[4] = { - /* -- */ { 0, BX_IA_PCMPEQD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f76[3] = { /* 66 */ { 0, BX_IA_PCMPEQD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7c[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7c[3] = { /* 66 */ { 0, BX_IA_HADDPD_VpdWpd }, // SSE3 /* F2 */ { 0, BX_IA_HADDPS_VpsWps }, // SSE3 /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7d[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7d[3] = { /* 66 */ { 0, BX_IA_HSUBPD_VpdWpd }, // SSE3 /* F2 */ { 0, BX_IA_HSUBPS_VpsWps }, // SSE3 /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7e[4] = { - /* -- */ { 0, BX_IA_MOVD_EdPd }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7e[3] = { /* 66 */ { 0, BX_IA_MOVD_EdVd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_MOVQ_VqWq } }; #if BX_SUPPORT_X86_64 -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7eQ[4] = { - /* -- */ { 0, BX_IA_MOVQ_EqPq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7eQ[3] = { /* 66 */ { 0, BX_IA_MOVQ_EqVq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_MOVQ_VqWq } }; #endif -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7f[4] = { - /* -- */ { 0, BX_IA_MOVQ_QqPq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f7f[3] = { /* 66 */ { 0, BX_IA_MOVDQA_WdqVdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_MOVDQU_WdqVdq } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8wR[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8wR[3] = { /* 66 */ { 0, BX_IA_ERROR }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_POPCNT_GwEwR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8wM[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8wM[3] = { /* 66 */ { 0, BX_IA_ERROR }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_POPCNT_GwEwM } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8dR[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8dR[3] = { /* 66 */ { 0, BX_IA_ERROR }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_POPCNT_GdEdR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8dM[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8dM[3] = { /* 66 */ { 0, BX_IA_ERROR }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_POPCNT_GdEdM } }; #if BX_SUPPORT_X86_64 -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8qR[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8qR[3] = { /* 66 */ { 0, BX_IA_ERROR }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_POPCNT_GqEqR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8qM[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fb8qM[3] = { /* 66 */ { 0, BX_IA_ERROR }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_POPCNT_GqEqM } }; #endif -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc2[4] = { - /* -- */ { 0, BX_IA_CMPPS_VpsWpsIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc2[3] = { /* 66 */ { 0, BX_IA_CMPPD_VpdWpdIb }, /* F2 */ { 0, BX_IA_CMPSD_VsdWsdIb }, /* F3 */ { 0, BX_IA_CMPSS_VssWssIb } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc3M[4] = { - /* -- */ { 0, BX_IA_MOVNTI_MdGd }, - /* 66 */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc4[3] = { + /* 66 */ { 0, BX_IA_PINSRW_VdqEwIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -#if BX_SUPPORT_X86_64 -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc3qM[4] = { - /* -- */ { 0, BX_IA_MOVNTI_MqGq }, - /* 66 */ { 0, BX_IA_ERROR }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; -#endif - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc4[4] = { - /* -- */ { BxImmediate_Ib, BX_IA_PINSRW_PqEwIb }, - /* 66 */ { BxImmediate_Ib, BX_IA_PINSRW_VdqEwIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc5R[3] = { + /* 66 */ { 0, BX_IA_PEXTRW_GdUdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc5R[4] = { - /* -- */ { BxImmediate_Ib, BX_IA_PEXTRW_GdPqIb }, - /* 66 */ { BxImmediate_Ib, BX_IA_PEXTRW_GdUdqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc6[3] = { + /* 66 */ { 0, BX_IA_SHUFPD_VpdWpdIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc6[4] = { - /* -- */ { BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb }, - /* 66 */ { BxImmediate_Ib, BX_IA_SHUFPD_VpdWpdIb }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd0[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_ADDSUBPD_VpdWpd }, // SSE3 +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd0[3] = { /* F2 */ { 0, BX_IA_ADDSUBPS_VpsWps }, // SSE3 /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd1[4] = { - /* -- */ { 0, BX_IA_PSRLW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd1[3] = { /* 66 */ { 0, BX_IA_PSRLW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd2[4] = { - /* -- */ { 0, BX_IA_PSRLD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd2[3] = { /* 66 */ { 0, BX_IA_PSRLD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd3[4] = { - /* -- */ { 0, BX_IA_PSRLQ_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd3[3] = { /* 66 */ { 0, BX_IA_PSRLQ_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd4[4] = { - /* -- */ { 0, BX_IA_PADDQ_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd4[3] = { /* 66 */ { 0, BX_IA_PADDQ_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd5[4] = { - /* -- */ { 0, BX_IA_PMULLW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd5[3] = { /* 66 */ { 0, BX_IA_PMULLW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd6[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd6[3] = { /* 66 */ { 0, BX_IA_MOVQ_WqVq }, /* F2 */ { 0, BX_IA_MOVDQ2Q_PqVRq }, /* F3 */ { 0, BX_IA_MOVQ2DQ_VdqQq } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd7[4] = { - /* -- */ { 0, BX_IA_PMOVMSKB_GdPRq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd7[3] = { /* 66 */ { 0, BX_IA_PMOVMSKB_GdUdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd8[4] = { - /* -- */ { 0, BX_IA_PSUBUSB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd8[3] = { /* 66 */ { 0, BX_IA_PSUBUSB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd9[4] = { - /* -- */ { 0, BX_IA_PSUBUSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fd9[3] = { /* 66 */ { 0, BX_IA_PSUBUSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fda[4] = { - /* -- */ { 0, BX_IA_PMINUB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fda[3] = { /* 66 */ { 0, BX_IA_PMINUB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdb[4] = { - /* -- */ { 0, BX_IA_PAND_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdb[3] = { /* 66 */ { 0, BX_IA_PAND_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdc[4] = { - /* -- */ { 0, BX_IA_PADDUSB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdc[3] = { /* 66 */ { 0, BX_IA_PADDUSB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdd[4] = { - /* -- */ { 0, BX_IA_PADDUSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdd[3] = { /* 66 */ { 0, BX_IA_PADDUSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fde[4] = { - /* -- */ { 0, BX_IA_PMAXUB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fde[3] = { /* 66 */ { 0, BX_IA_PMAXUB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdf[4] = { - /* -- */ { 0, BX_IA_PANDN_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fdf[3] = { /* 66 */ { 0, BX_IA_PANDN_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe0[4] = { - /* -- */ { 0, BX_IA_PAVGB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe0[3] = { /* 66 */ { 0, BX_IA_PAVGB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe1[4] = { - /* -- */ { 0, BX_IA_PSRAW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe1[3] = { /* 66 */ { 0, BX_IA_PSRAW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe2[4] = { - /* -- */ { 0, BX_IA_PSRAD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe2[3] = { /* 66 */ { 0, BX_IA_PSRAD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe3[4] = { - /* -- */ { 0, BX_IA_PAVGW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe3[3] = { /* 66 */ { 0, BX_IA_PAVGW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe4[4] = { - /* -- */ { 0, BX_IA_PMULHUW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe4[3] = { /* 66 */ { 0, BX_IA_PMULHUW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe5[4] = { - /* -- */ { 0, BX_IA_PMULHW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe5[3] = { /* 66 */ { 0, BX_IA_PMULHW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe6[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe6[3] = { /* 66 */ { 0, BX_IA_CVTTPD2DQ_VqWpd }, /* F2 */ { 0, BX_IA_CVTPD2DQ_VqWpd }, /* F3 */ { 0, BX_IA_CVTDQ2PD_VpdWq } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe7M[4] = { - /* -- */ { 0, BX_IA_MOVNTQ_MqPq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe7M[3] = { /* 66 */ { 0, BX_IA_MOVNTDQ_MdqVdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe8[4] = { - /* -- */ { 0, BX_IA_PSUBSB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe8[3] = { /* 66 */ { 0, BX_IA_PSUBSB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe9[4] = { - /* -- */ { 0, BX_IA_PSUBSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fe9[3] = { /* 66 */ { 0, BX_IA_PSUBSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fea[4] = { - /* -- */ { 0, BX_IA_PMINSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fea[3] = { /* 66 */ { 0, BX_IA_PMINSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0feb[4] = { - /* -- */ { 0, BX_IA_POR_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0feb[3] = { /* 66 */ { 0, BX_IA_POR_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fec[4] = { - /* -- */ { 0, BX_IA_PADDSB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fec[3] = { /* 66 */ { 0, BX_IA_PADDSB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fed[4] = { - /* -- */ { 0, BX_IA_PADDSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fed[3] = { /* 66 */ { 0, BX_IA_PADDSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fee[4] = { - /* -- */ { 0, BX_IA_PMAXSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fee[3] = { /* 66 */ { 0, BX_IA_PMAXSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fef[4] = { - /* -- */ { 0, BX_IA_PXOR_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fef[3] = { /* 66 */ { 0, BX_IA_PXOR_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff0M[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff0M[3] = { /* 66 */ { 0, BX_IA_ERROR }, /* F2 */ { 0, BX_IA_LDDQU_VdqMdq }, // SSE3 /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff1[4] = { - /* -- */ { 0, BX_IA_PSLLW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff1[3] = { /* 66 */ { 0, BX_IA_PSLLW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff2[4] = { - /* -- */ { 0, BX_IA_PSLLD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff2[3] = { /* 66 */ { 0, BX_IA_PSLLD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff3[4] = { - /* -- */ { 0, BX_IA_PSLLQ_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff3[3] = { /* 66 */ { 0, BX_IA_PSLLQ_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff4[4] = { - /* -- */ { 0, BX_IA_PMULUDQ_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff4[3] = { /* 66 */ { 0, BX_IA_PMULUDQ_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff5[4] = { - /* -- */ { 0, BX_IA_PMADDWD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff5[3] = { /* 66 */ { 0, BX_IA_PMADDWD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff6[4] = { - /* -- */ { 0, BX_IA_PSADBW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff6[3] = { /* 66 */ { 0, BX_IA_PSADBW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff7R[4] = { - /* -- */ { 0, BX_IA_MASKMOVQ_PqPRq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff7R[3] = { /* 66 */ { 0, BX_IA_MASKMOVDQU_VdqUdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff8[4] = { - /* -- */ { 0, BX_IA_PSUBB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff8[3] = { /* 66 */ { 0, BX_IA_PSUBB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff9[4] = { - /* -- */ { 0, BX_IA_PSUBW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ff9[3] = { /* 66 */ { 0, BX_IA_PSUBW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffa[4] = { - /* -- */ { 0, BX_IA_PSUBD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffa[3] = { /* 66 */ { 0, BX_IA_PSUBD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffb[4] = { - /* -- */ { 0, BX_IA_PSUBQ_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffb[3] = { /* 66 */ { 0, BX_IA_PSUBQ_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffc[4] = { - /* -- */ { 0, BX_IA_PADDB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffc[3] = { /* 66 */ { 0, BX_IA_PADDB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffd[4] = { - /* -- */ { 0, BX_IA_PADDW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffd[3] = { /* 66 */ { 0, BX_IA_PADDW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffe[4] = { - /* -- */ { 0, BX_IA_PADDD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0ffe[3] = { /* 66 */ { 0, BX_IA_PADDD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1202[4] = { - /* -- */ { 0, BX_IA_PSRLW_PqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1202[3] = { /* 66 */ { 0, BX_IA_PSRLW_UdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1204[4] = { - /* -- */ { 0, BX_IA_PSRAW_PqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1204[3] = { /* 66 */ { 0, BX_IA_PSRAW_UdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1206[4] = { - /* -- */ { 0, BX_IA_PSLLW_PqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1206[3] = { /* 66 */ { 0, BX_IA_PSLLW_UdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1302[4] = { - /* -- */ { 0, BX_IA_PSRLD_PqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1302[3] = { /* 66 */ { 0, BX_IA_PSRLD_UdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1304[4] = { - /* -- */ { 0, BX_IA_PSRAD_PqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1304[3] = { /* 66 */ { 0, BX_IA_PSRAD_UdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1306[4] = { - /* -- */ { 0, BX_IA_PSLLD_PqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1306[3] = { /* 66 */ { 0, BX_IA_PSLLD_UdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1402[4] = { - /* -- */ { 0, BX_IA_PSRLQ_PqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1402[3] = { /* 66 */ { 0, BX_IA_PSRLQ_UdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1403[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1403[3] = { /* 66 */ { 0, BX_IA_PSRLDQ_UdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1406[4] = { - /* -- */ { 0, BX_IA_PSLLQ_PqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1406[3] = { /* 66 */ { 0, BX_IA_PSLLQ_UdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1407[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1407[3] = { /* 66 */ { 0, BX_IA_PSLLDQ_UdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } @@ -1886,557 +1749,487 @@ static const BxOpcodeInfo_t BxOpcodeGroupSSE_G1407[4] = { #if (BX_SUPPORT_SSE >= 4) || (BX_SUPPORT_SSE >= 3 && BX_SUPPORT_SSE_EXTENSION > 0) -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3800[4] = { - /* -- */ { 0, BX_IA_PSHUFB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3800[3] = { /* 66 */ { 0, BX_IA_PSHUFB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3801[4] = { - /* -- */ { 0, BX_IA_PHADDW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3801[3] = { /* 66 */ { 0, BX_IA_PHADDW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3802[4] = { - /* -- */ { 0, BX_IA_PHADDD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3802[3] = { /* 66 */ { 0, BX_IA_PHADDD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3803[4] = { - /* -- */ { 0, BX_IA_PHADDSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3803[3] = { /* 66 */ { 0, BX_IA_PHADDSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3804[4] = { - /* -- */ { 0, BX_IA_PMADDUBSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3804[3] = { /* 66 */ { 0, BX_IA_PMADDUBSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3805[4] = { - /* -- */ { 0, BX_IA_PHSUBW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3805[3] = { /* 66 */ { 0, BX_IA_PHSUBW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3806[4] = { - /* -- */ { 0, BX_IA_PHSUBD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3806[3] = { /* 66 */ { 0, BX_IA_PHSUBD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3807[4] = { - /* -- */ { 0, BX_IA_PHSUBSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3807[3] = { /* 66 */ { 0, BX_IA_PHSUBSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3808[4] = { - /* -- */ { 0, BX_IA_PSIGNB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3808[3] = { /* 66 */ { 0, BX_IA_PSIGNB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3809[4] = { - /* -- */ { 0, BX_IA_PSIGNW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3809[3] = { /* 66 */ { 0, BX_IA_PSIGNW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3810[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PBLENDVB_VdqWdq }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3814[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_BLENDVPS_VpsWps }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3815[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_BLENDVPD_VpdWpd }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3817[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PTEST_VdqWdq }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3820[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PMOVSXBW_VdqWq }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3821[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PMOVSXBD_VdqWd }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3822[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PMOVSXBQ_VdqWw }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3823[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PMOVSXWD_VdqWq }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3824[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PMOVSXWQ_VdqWd }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3825[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PMOVSXDQ_VdqWq }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3828[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PMULDQ_VdqWdq }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3829[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PCMPEQQ_VdqWdq }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f382a[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_MOVNTDQA_VdqMdq }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f382b[4] = { - /* -- */ { 0, BX_IA_ERROR }, - /* 66 */ { 0, BX_IA_PACKUSDW_VdqWdq }, - /* F2 */ { 0, BX_IA_ERROR }, - /* F3 */ { 0, BX_IA_ERROR } -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f380a[4] = { - /* -- */ { 0, BX_IA_PSIGND_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f380a[3] = { /* 66 */ { 0, BX_IA_PSIGND_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f380b[4] = { - /* -- */ { 0, BX_IA_PMULHRSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f380b[3] = { /* 66 */ { 0, BX_IA_PMULHRSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381c[4] = { - /* -- */ { 0, BX_IA_PABSB_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3810[3] = { + /* 66 */ { 0, BX_IA_PBLENDVB_VdqWdq }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3814[3] = { + /* 66 */ { 0, BX_IA_BLENDVPS_VpsWps }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3815[3] = { + /* 66 */ { 0, BX_IA_BLENDVPD_VpdWpd }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3817[3] = { + /* 66 */ { 0, BX_IA_PTEST_VdqWdq }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381c[3] = { /* 66 */ { 0, BX_IA_PABSB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381d[4] = { - /* -- */ { 0, BX_IA_PABSW_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381d[3] = { /* 66 */ { 0, BX_IA_PABSW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381e[4] = { - /* -- */ { 0, BX_IA_PABSD_PqQq }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f381e[3] = { /* 66 */ { 0, BX_IA_PABSD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3830[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3820[3] = { + /* 66 */ { 0, BX_IA_PMOVSXBW_VdqWq }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3821[3] = { + /* 66 */ { 0, BX_IA_PMOVSXBD_VdqWd }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3822[3] = { + /* 66 */ { 0, BX_IA_PMOVSXBQ_VdqWw }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3823[3] = { + /* 66 */ { 0, BX_IA_PMOVSXWD_VdqWq }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3824[3] = { + /* 66 */ { 0, BX_IA_PMOVSXWQ_VdqWd }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3825[3] = { + /* 66 */ { 0, BX_IA_PMOVSXDQ_VdqWq }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3828[3] = { + /* 66 */ { 0, BX_IA_PMULDQ_VdqWdq }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3829[3] = { + /* 66 */ { 0, BX_IA_PCMPEQQ_VdqWdq }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f382a[3] = { + /* 66 */ { 0, BX_IA_MOVNTDQA_VdqMdq }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f382b[3] = { + /* 66 */ { 0, BX_IA_PACKUSDW_VdqWdq }, + /* F2 */ { 0, BX_IA_ERROR }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3830[3] = { /* 66 */ { 0, BX_IA_PMOVZXBW_VdqWq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3831[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3831[3] = { /* 66 */ { 0, BX_IA_PMOVZXBD_VdqWd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3832[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3832[3] = { /* 66 */ { 0, BX_IA_PMOVZXBQ_VdqWw }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3833[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3833[3] = { /* 66 */ { 0, BX_IA_PMOVZXWD_VdqWq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3834[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3834[3] = { /* 66 */ { 0, BX_IA_PMOVZXWQ_VdqWd }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3835[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3835[3] = { /* 66 */ { 0, BX_IA_PMOVZXDQ_VdqWq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3837[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3837[3] = { /* 66 */ { 0, BX_IA_PCMPGTQ_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3838[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3838[3] = { /* 66 */ { 0, BX_IA_PMINSB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3839[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3839[3] = { /* 66 */ { 0, BX_IA_PMINSD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383a[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383a[3] = { /* 66 */ { 0, BX_IA_PMINUW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383b[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383b[3] = { /* 66 */ { 0, BX_IA_PMINUD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383c[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383c[3] = { /* 66 */ { 0, BX_IA_PMAXSB_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383d[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383d[3] = { /* 66 */ { 0, BX_IA_PMAXSD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383e[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383e[3] = { /* 66 */ { 0, BX_IA_PMAXUW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383f[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f383f[3] = { /* 66 */ { 0, BX_IA_PMAXUD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3840[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3840[3] = { /* 66 */ { 0, BX_IA_PMULLD_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3841[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3841[3] = { /* 66 */ { 0, BX_IA_PHMINPOSUW_VdqWdq }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38db[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38db[3] = { /* 66 */ { 0, BX_IA_AESIMC_VdqWdq }, // AES /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38dc[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38dc[3] = { /* 66 */ { 0, BX_IA_AESENC_VdqWdq }, // AES /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38dd[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38dd[3] = { /* 66 */ { 0, BX_IA_AESENCLAST_VdqWdq }, // AES /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38de[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38de[3] = { /* 66 */ { 0, BX_IA_AESDEC_VdqWdq }, // AES /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38df[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38df[3] = { /* 66 */ { 0, BX_IA_AESDECLAST_VdqWdq }, // AES /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f0_movbe[BX_SUPPORT_X86_64 + 2] = { - /* 16 */ { 0, BX_IA_MOVBE_GwEw }, - /* 32 */ { 0, BX_IA_MOVBE_GdEd }, -#if BX_SUPPORT_X86_64 - /* 64 */ { 0, BX_IA_MOVBE_GqEq } -#endif -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f1_movbe[BX_SUPPORT_X86_64 + 2] = { - /* 16 */ { 0, BX_IA_MOVBE_EwGw }, - /* 32 */ { 0, BX_IA_MOVBE_EdGd }, -#if BX_SUPPORT_X86_64 - /* 64 */ { 0, BX_IA_MOVBE_EqGq } -#endif -}; - -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f0[4] = { - /* -- */ { BxOSizeGrp, BX_IA_ERROR, BxOpcodeGroupSSE_0f38f0_movbe }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f0[3] = { /* 66 */ { 0, BX_IA_ERROR }, /* F2 */ { 0, BX_IA_CRC32_GdEb }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f1_crc32[BX_SUPPORT_X86_64 + 2] = { - /* 16 */ { 0, BX_IA_CRC32_GdEw }, - /* 32 */ { 0, BX_IA_CRC32_GdEd }, +static const BxOpcodeInfo_t BxOpcodeGroupOsize0f38f0[BX_SUPPORT_X86_64 + 2] = { + /* 16 */ { BxPrefixSSE, BX_IA_MOVBE_GwEw, BxOpcodeGroupSSE_0f38f0 }, + /* 32 */ { BxPrefixSSE, BX_IA_MOVBE_GdEd, BxOpcodeGroupSSE_0f38f0 }, #if BX_SUPPORT_X86_64 - /* 64 */ { 0, BX_IA_CRC32_GdEq } + /* 64 */ { BxPrefixSSE, BX_IA_MOVBE_GqEq, BxOpcodeGroupSSE_0f38f0 }, #endif }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f1[4] = { - /* -- */ { BxOSizeGrp, BX_IA_ERROR, BxOpcodeGroupSSE_0f38f1_movbe }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f1w[3] = { /* 66 */ { 0, BX_IA_ERROR }, - /* F2 */ { BxOSizeGrp, BX_IA_ERROR, BxOpcodeGroupSSE_0f38f1_crc32 }, + /* F2 */ { 0, BX_IA_CRC32_GdEw }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a08[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f1d[3] = { + /* 66 */ { 0, BX_IA_ERROR }, + /* F2 */ { 0, BX_IA_CRC32_GdEd }, + /* F3 */ { 0, BX_IA_ERROR } +}; + +#if BX_SUPPORT_X86_64 +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f38f1q[3] = { + /* 66 */ { 0, BX_IA_ERROR }, + /* F2 */ { 0, BX_IA_CRC32_GdEq }, + /* F3 */ { 0, BX_IA_ERROR } +}; +#endif + +static const BxOpcodeInfo_t BxOpcodeGroupOsize0f38f1[BX_SUPPORT_X86_64 + 2] = { + /* 16 */ { BxPrefixSSE, BX_IA_MOVBE_EwGw, BxOpcodeGroupSSE_0f38f1w }, + /* 32 */ { BxPrefixSSE, BX_IA_MOVBE_EdGd, BxOpcodeGroupSSE_0f38f1d }, +#if BX_SUPPORT_X86_64 + /* 64 */ { BxPrefixSSE, BX_IA_MOVBE_EqGq, BxOpcodeGroupSSE_0f38f1q }, +#endif +}; + +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a08[3] = { /* 66 */ { 0, BX_IA_ROUNDPS_VpsWpsIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a09[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a09[3] = { /* 66 */ { 0, BX_IA_ROUNDPD_VpdWpdIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0a[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0a[3] = { /* 66 */ { 0, BX_IA_ROUNDSS_VssWssIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0b[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0b[3] = { /* 66 */ { 0, BX_IA_ROUNDSD_VsdWsdIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0c[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0c[3] = { /* 66 */ { 0, BX_IA_BLENDPS_VpsWpsIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0d[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0d[3] = { /* 66 */ { 0, BX_IA_BLENDPD_VpdWpdIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0e[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0e[3] = { /* 66 */ { 0, BX_IA_PBLENDW_VdqWdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0f[4] = { - /* -- */ { 0, BX_IA_PALIGNR_PqQqIb }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a0f[3] = { /* 66 */ { 0, BX_IA_PALIGNR_VdqWdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a14[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a14[3] = { /* 66 */ { 0, BX_IA_PEXTRB_HbdUdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a15[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a15[3] = { /* 66 */ { 0, BX_IA_PEXTRW_HwdUdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a16[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a16[3] = { /* 66 */ { 0, BX_IA_PEXTRD_HdUdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a17[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a17[3] = { /* 66 */ { 0, BX_IA_EXTRACTPS_HdUpsIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a20[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a20[3] = { /* 66 */ { 0, BX_IA_PINSRB_VdqEbIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a21[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a21[3] = { /* 66 */ { 0, BX_IA_INSERTPS_VpsWssIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a22[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a22[3] = { /* 66 */ { 0, BX_IA_PINSRD_VdqEdIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a40[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a40[3] = { /* 66 */ { 0, BX_IA_DPPS_VpsWpsIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a41[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a41[3] = { /* 66 */ { 0, BX_IA_DPPD_VpdWpdIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a42[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a42[3] = { /* 66 */ { 0, BX_IA_MPSADBW_VdqWdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a60[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a60[3] = { /* 66 */ { 0, BX_IA_PCMPESTRM_VdqWdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a61[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a61[3] = { /* 66 */ { 0, BX_IA_PCMPESTRI_VdqWdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a62[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a62[3] = { /* 66 */ { 0, BX_IA_PCMPISTRM_VdqWdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a63[4] = { - /* -- */ { 0, BX_IA_ERROR }, +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3a63[3] = { /* 66 */ { 0, BX_IA_PCMPISTRI_VdqWdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } }; -static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3adf[4] = { - /* -- */ { 0, BX_IA_ERROR }, // AES +static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3adf[3] = { /* 66 */ { 0, BX_IA_AESKEYGENASSIST_VdqWdqIb }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR } @@ -2446,18 +2239,18 @@ static const BxOpcodeInfo_t BxOpcodeGroupSSE_0f3adf[4] = { /* 3-byte opcode table (Table A-4, 0F 38) */ static const BxOpcodeInfo_t BxOpcode3ByteTable0f38[256] = { - /* 00 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3800 }, - /* 01 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3801 }, - /* 02 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3802 }, - /* 03 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3803 }, - /* 04 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3804 }, - /* 05 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3805 }, - /* 06 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3806 }, - /* 07 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3807 }, - /* 08 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3808 }, - /* 09 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3809 }, - /* 0A */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f380a }, - /* 0B */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f380b }, + /* 00 */ { BxPrefixSSE, BX_IA_PSHUFB_PqQq, BxOpcodeGroupSSE_0f3800 }, + /* 01 */ { BxPrefixSSE, BX_IA_PHADDW_PqQq, BxOpcodeGroupSSE_0f3801 }, + /* 02 */ { BxPrefixSSE, BX_IA_PHADDD_PqQq, BxOpcodeGroupSSE_0f3802 }, + /* 03 */ { BxPrefixSSE, BX_IA_PHADDSW_PqQq, BxOpcodeGroupSSE_0f3803 }, + /* 04 */ { BxPrefixSSE, BX_IA_PMADDUBSW_PqQq, BxOpcodeGroupSSE_0f3804 }, + /* 05 */ { BxPrefixSSE, BX_IA_PHSUBW_PqQq, BxOpcodeGroupSSE_0f3805 }, + /* 06 */ { BxPrefixSSE, BX_IA_PHSUBD_PqQq, BxOpcodeGroupSSE_0f3806 }, + /* 07 */ { BxPrefixSSE, BX_IA_PHSUBSW_PqQq, BxOpcodeGroupSSE_0f3807 }, + /* 08 */ { BxPrefixSSE, BX_IA_PSIGNB_PqQq, BxOpcodeGroupSSE_0f3808 }, + /* 09 */ { BxPrefixSSE, BX_IA_PSIGNW_PqQq, BxOpcodeGroupSSE_0f3809 }, + /* 0A */ { BxPrefixSSE, BX_IA_PSIGND_PqQq, BxOpcodeGroupSSE_0f380a }, + /* 0B */ { BxPrefixSSE, BX_IA_PMULHRSW_PqQq, BxOpcodeGroupSSE_0f380b }, /* 0C */ { 0, BX_IA_ERROR }, /* 0D */ { 0, BX_IA_ERROR }, /* 0E */ { 0, BX_IA_ERROR }, @@ -2474,9 +2267,9 @@ static const BxOpcodeInfo_t BxOpcode3ByteTable0f38[256] = { /* 19 */ { 0, BX_IA_ERROR }, /* 1A */ { 0, BX_IA_ERROR }, /* 1B */ { 0, BX_IA_ERROR }, - /* 1C */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f381c }, - /* 1D */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f381d }, - /* 1E */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f381e }, + /* 1C */ { BxPrefixSSE, BX_IA_PABSB_PqQq, BxOpcodeGroupSSE_0f381c }, + /* 1D */ { BxPrefixSSE, BX_IA_PABSW_PqQq, BxOpcodeGroupSSE_0f381d }, + /* 1E */ { BxPrefixSSE, BX_IA_PABSD_PqQq, BxOpcodeGroupSSE_0f381e }, /* 1F */ { 0, BX_IA_ERROR }, /* 20 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3820 }, /* 21 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3821 }, @@ -2686,8 +2479,8 @@ static const BxOpcodeInfo_t BxOpcode3ByteTable0f38[256] = { /* ED */ { 0, BX_IA_ERROR }, /* EE */ { 0, BX_IA_ERROR }, /* EF */ { 0, BX_IA_ERROR }, - /* F0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f38f0 }, - /* F1 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f38f1 }, + /* F0 */ { BxOSizeGrp, BX_IA_ERROR, BxOpcodeGroupOsize0f38f0 }, + /* F1 */ { BxOSizeGrp, BX_IA_ERROR, BxOpcodeGroupOsize0f38f1 }, /* F2 */ { 0, BX_IA_ERROR }, /* F3 */ { 0, BX_IA_ERROR }, /* F4 */ { 0, BX_IA_ERROR }, @@ -2723,7 +2516,7 @@ static const BxOpcodeInfo_t BxOpcode3ByteTable0f3a[256] = { /* 0C */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3a0c }, /* 0D */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3a0d }, /* 0E */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3a0e }, - /* 0F */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f3a0f }, + /* 0F */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_PALIGNR_PqQqIb, BxOpcodeGroupSSE_0f3a0f }, /* 10 */ { 0, BX_IA_ERROR }, /* 11 */ { 0, BX_IA_ERROR }, /* 12 */ { 0, BX_IA_ERROR }, @@ -3789,11 +3582,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo64G11EqM[8] = { static const BxOpcodeInfo_t BxOpcodeInfoG12R[8] = { /* 0 */ { 0, BX_IA_ERROR }, /* 1 */ { 0, BX_IA_ERROR }, - /* 2 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1202 }, + /* 2 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_PSRLW_PqIb, BxOpcodeGroupSSE_G1202 }, /* 3 */ { 0, BX_IA_ERROR }, - /* 4 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1204 }, + /* 4 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_PSRAW_PqIb, BxOpcodeGroupSSE_G1204 }, /* 5 */ { 0, BX_IA_ERROR }, - /* 6 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1206 }, + /* 6 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_PSLLW_PqIb, BxOpcodeGroupSSE_G1206 }, /* 7 */ { 0, BX_IA_ERROR } }; @@ -3804,11 +3597,11 @@ static const BxOpcodeInfo_t BxOpcodeInfoG12R[8] = { static const BxOpcodeInfo_t BxOpcodeInfoG13R[8] = { /* 0 */ { 0, BX_IA_ERROR }, /* 1 */ { 0, BX_IA_ERROR }, - /* 2 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1302 }, + /* 2 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_PSRLD_PqIb, BxOpcodeGroupSSE_G1302 }, /* 3 */ { 0, BX_IA_ERROR }, - /* 4 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1304 }, + /* 4 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_PSRAD_PqIb, BxOpcodeGroupSSE_G1304 }, /* 5 */ { 0, BX_IA_ERROR }, - /* 6 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1306 }, + /* 6 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_PSLLD_PqIb, BxOpcodeGroupSSE_G1306 }, /* 7 */ { 0, BX_IA_ERROR } }; @@ -3819,12 +3612,12 @@ static const BxOpcodeInfo_t BxOpcodeInfoG13R[8] = { static const BxOpcodeInfo_t BxOpcodeInfoG14R[8] = { /* 0 */ { 0, BX_IA_ERROR }, /* 1 */ { 0, BX_IA_ERROR }, - /* 2 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1402 }, - /* 3 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1403 }, + /* 2 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_PSRLQ_PqIb, BxOpcodeGroupSSE_G1402 }, + /* 3 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1403 }, /* 4 */ { 0, BX_IA_ERROR }, /* 5 */ { 0, BX_IA_ERROR }, - /* 6 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1406 }, - /* 7 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1407 } + /* 6 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_PSLLQ_PqIb, BxOpcodeGroupSSE_G1406 }, + /* 7 */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_G1407 } }; /* ******** */ diff --git a/bochs/cpu/fetchdecode64.cc b/bochs/cpu/fetchdecode64.cc index 4f1b702ca..9a729dc7e 100644 --- a/bochs/cpu/fetchdecode64.cc +++ b/bochs/cpu/fetchdecode64.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: fetchdecode64.cc,v 1.211 2008-08-23 22:34:17 sshwarts Exp $ +// $Id: fetchdecode64.cc,v 1.212 2008-08-29 19:23:01 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -181,64 +181,64 @@ extern struct bxIAOpcodeTable BxOpcodesTable[]; static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { // 512 entries for 16bit operand size - /* 00 /wr */ { 0, BX_IA_ADD_EbGbR }, - /* 01 /wr */ { 0, BX_IA_ADD_EwGwR }, + /* 00 /wr */ { BxArithDstRM, BX_IA_ADD_GbEbR }, + /* 01 /wr */ { BxArithDstRM, BX_IA_ADD_GwEwR }, /* 02 /wr */ { 0, BX_IA_ADD_GbEbR }, /* 03 /wr */ { 0, BX_IA_ADD_GwEwR }, /* 04 /wr */ { BxImmediate_Ib, BX_IA_ADD_ALIb }, /* 05 /wr */ { BxImmediate_Iw, BX_IA_ADD_AXIw }, /* 06 /wr */ { 0, BX_IA_ERROR }, /* 07 /wr */ { 0, BX_IA_ERROR }, - /* 08 /wr */ { 0, BX_IA_OR_EbGbR }, - /* 09 /wr */ { 0, BX_IA_OR_EwGwR }, + /* 08 /wr */ { BxArithDstRM, BX_IA_OR_GbEbR }, + /* 09 /wr */ { BxArithDstRM, BX_IA_OR_GwEwR }, /* 0A /wr */ { 0, BX_IA_OR_GbEbR }, /* 0B /wr */ { 0, BX_IA_OR_GwEwR }, /* 0C /wr */ { BxImmediate_Ib, BX_IA_OR_ALIb }, /* 0D /wr */ { BxImmediate_Iw, BX_IA_OR_AXIw }, /* 0E /wr */ { 0, BX_IA_ERROR }, /* 0F /wr */ { 0, BX_IA_ERROR }, // 2-byte escape - /* 10 /wr */ { 0, BX_IA_ADC_EbGbR }, - /* 11 /wr */ { 0, BX_IA_ADC_EwGwR }, + /* 10 /wr */ { BxArithDstRM, BX_IA_ADC_GbEbR }, + /* 11 /wr */ { BxArithDstRM, BX_IA_ADC_GwEwR }, /* 12 /wr */ { 0, BX_IA_ADC_GbEbR }, /* 13 /wr */ { 0, BX_IA_ADC_GwEwR }, /* 14 /wr */ { BxImmediate_Ib, BX_IA_ADC_ALIb }, /* 15 /wr */ { BxImmediate_Iw, BX_IA_ADC_AXIw }, /* 16 /wr */ { 0, BX_IA_ERROR }, /* 17 /wr */ { 0, BX_IA_ERROR }, - /* 18 /wr */ { 0, BX_IA_SBB_EbGbR }, - /* 19 /wr */ { 0, BX_IA_SBB_EwGwR }, + /* 18 /wr */ { BxArithDstRM, BX_IA_SBB_GbEbR }, + /* 19 /wr */ { BxArithDstRM, BX_IA_SBB_GwEwR }, /* 1A /wr */ { 0, BX_IA_SBB_GbEbR }, /* 1B /wr */ { 0, BX_IA_SBB_GwEwR }, /* 1C /wr */ { BxImmediate_Ib, BX_IA_SBB_ALIb }, /* 1D /wr */ { BxImmediate_Iw, BX_IA_SBB_AXIw }, /* 1E /wr */ { 0, BX_IA_ERROR }, /* 1F /wr */ { 0, BX_IA_ERROR }, - /* 20 /wr */ { 0, BX_IA_AND_EbGbR }, - /* 21 /wr */ { 0, BX_IA_AND_EwGwR }, + /* 20 /wr */ { BxArithDstRM, BX_IA_AND_GbEbR }, + /* 21 /wr */ { BxArithDstRM, BX_IA_AND_GwEwR }, /* 22 /wr */ { 0, BX_IA_AND_GbEbR }, /* 23 /wr */ { 0, BX_IA_AND_GwEwR }, /* 24 /wr */ { BxImmediate_Ib, BX_IA_AND_ALIb }, /* 25 /wr */ { BxImmediate_Iw, BX_IA_AND_AXIw }, /* 26 /wr */ { 0, BX_IA_ERROR }, // ES: /* 27 /wr */ { 0, BX_IA_ERROR }, - /* 28 /wr */ { 0, BX_IA_SUB_EbGbR }, - /* 29 /wr */ { 0, BX_IA_SUB_EwGwR }, + /* 28 /wr */ { BxArithDstRM, BX_IA_SUB_GbEbR }, + /* 29 /wr */ { BxArithDstRM, BX_IA_SUB_GwEwR }, /* 2A /wr */ { 0, BX_IA_SUB_GbEbR }, /* 2B /wr */ { 0, BX_IA_SUB_GwEwR }, /* 2C /wr */ { BxImmediate_Ib, BX_IA_SUB_ALIb }, /* 2D /wr */ { BxImmediate_Iw, BX_IA_SUB_AXIw }, /* 2E /wr */ { 0, BX_IA_ERROR }, // CS: /* 2F /wr */ { 0, BX_IA_ERROR }, - /* 30 /wr */ { 0, BX_IA_XOR_EbGbR }, - /* 31 /wr */ { 0, BX_IA_XOR_EwGwR }, + /* 30 /wr */ { BxArithDstRM, BX_IA_XOR_GbEbR }, + /* 31 /wr */ { BxArithDstRM, BX_IA_XOR_GwEwR }, /* 32 /wr */ { 0, BX_IA_XOR_GbEbR }, /* 33 /wr */ { 0, BX_IA_XOR_GwEwR }, /* 34 /wr */ { BxImmediate_Ib, BX_IA_XOR_ALIb }, /* 35 /wr */ { BxImmediate_Iw, BX_IA_XOR_AXIw }, /* 36 /wr */ { 0, BX_IA_ERROR }, // SS: /* 37 /wr */ { 0, BX_IA_ERROR }, - /* 38 /wr */ { 0, BX_IA_CMP_EbGbR }, - /* 39 /wr */ { 0, BX_IA_CMP_EwGwR }, + /* 38 /wr */ { BxArithDstRM, BX_IA_CMP_GbEbR }, + /* 39 /wr */ { BxArithDstRM, BX_IA_CMP_GwEwR }, /* 3A /wr */ { 0, BX_IA_CMP_GbEbR }, /* 3B /wr */ { 0, BX_IA_CMP_GwEwR }, /* 3C /wr */ { BxImmediate_Ib, BX_IA_CMP_ALIb }, @@ -317,8 +317,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 85 /wr */ { 0, BX_IA_TEST_EwGwR }, /* 86 /wr */ { 0, BX_IA_XCHG_EbGbR }, /* 87 /wr */ { 0, BX_IA_XCHG_EwGwR }, - /* 88 /wr */ { 0, BX_IA_MOV_EbGbR }, - /* 89 /wr */ { 0, BX_IA_MOV_EwGwR }, + /* 88 /wr */ { BxArithDstRM, BX_IA_MOV_GbEbR }, + /* 89 /wr */ { BxArithDstRM, BX_IA_MOV_GwEwR }, /* 8A /wr */ { 0, BX_IA_MOV_GbEbR }, /* 8B /wr */ { 0, BX_IA_MOV_GwEwR }, /* 8C /wr */ { 0, BX_IA_MOV_EwSwR }, @@ -458,13 +458,13 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { #else /* 0F 0F /wr */ { 0, BX_IA_ERROR }, #endif - /* 0F 10 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f10 }, - /* 0F 11 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f11 }, - /* 0F 12 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f12 }, + /* 0F 10 /wr */ { BxPrefixSSE, BX_IA_MOVUPS_VpsWps, BxOpcodeGroupSSE_0f10 }, + /* 0F 11 /wr */ { BxPrefixSSE, BX_IA_MOVUPS_WpsVps, BxOpcodeGroupSSE_0f11 }, + /* 0F 12 /wr */ { BxPrefixSSE, BX_IA_MOVLPS_VpsMq, BxOpcodeGroupSSE_0f12 }, /* 0F 13 /wr */ { 0, BX_IA_ERROR }, // MOVLPS/PD SSE group - /* 0F 14 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f14 }, - /* 0F 15 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f15 }, - /* 0F 16 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f16 }, + /* 0F 14 /wr */ { BxPrefixSSE, BX_IA_UNPCKLPS_VpsWdq, BxOpcodeGroupSSE_0f14 }, + /* 0F 15 /wr */ { BxPrefixSSE, BX_IA_UNPCKHPS_VpsWdq, BxOpcodeGroupSSE_0f15 }, + /* 0F 16 /wr */ { BxPrefixSSE, BX_IA_MOVHPS_VpsMq, BxOpcodeGroupSSE_0f16 }, /* 0F 17 /wr */ { 0, BX_IA_ERROR }, // MOHLPS/PD SSE group /* 0F 18 /wr */ { 0, BX_IA_NOP }, // PREFETCH HINT /* 0F 19 /wr */ { 0, BX_IA_NOP }, // multi-byte NOP @@ -482,14 +482,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F 25 /wr */ { 0, BX_IA_ERROR }, /* 0F 26 /wr */ { 0, BX_IA_ERROR }, /* 0F 27 /wr */ { 0, BX_IA_ERROR }, - /* 0F 28 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f28 }, - /* 0F 29 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f29 }, - /* 0F 2A /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2a }, + /* 0F 28 /wr */ { BxPrefixSSE, BX_IA_MOVAPS_VpsWps, BxOpcodeGroupSSE_0f28 }, + /* 0F 29 /wr */ { BxPrefixSSE, BX_IA_MOVAPS_WpsVps, BxOpcodeGroupSSE_0f29 }, + /* 0F 2A /wr */ { BxPrefixSSE, BX_IA_CVTPI2PS_VpsQq, BxOpcodeGroupSSE_0f2a }, /* 0F 2B /wr */ { 0, BX_IA_ERROR }, // MOVNTPS/PD/SS/SD - /* 0F 2C /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2c }, - /* 0F 2D /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2d }, - /* 0F 2E /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2e }, - /* 0F 2F /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2f }, + /* 0F 2C /wr */ { BxPrefixSSE, BX_IA_CVTTPS2PI_PqWps, BxOpcodeGroupSSE_0f2c }, + /* 0F 2D /wr */ { BxPrefixSSE, BX_IA_CVTPS2PI_PqWps, BxOpcodeGroupSSE_0f2d }, + /* 0F 2E /wr */ { BxPrefixSSE, BX_IA_UCOMISS_VssWss, BxOpcodeGroupSSE_0f2e }, + /* 0F 2F /wr */ { BxPrefixSSE, BX_IA_COMISS_VpsWps, BxOpcodeGroupSSE_0f2f }, /* 0F 30 /wr */ { 0, BX_IA_WRMSR }, /* 0F 31 /wr */ { 0, BX_IA_RDTSC }, /* 0F 32 /wr */ { 0, BX_IA_RDMSR }, @@ -530,45 +530,45 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F 4D /wr */ { 0, BX_IA_CMOVNL_GwEwR }, /* 0F 4E /wr */ { 0, BX_IA_CMOVLE_GwEwR }, /* 0F 4F /wr */ { 0, BX_IA_CMOVNLE_GwEwR }, - /* 0F 50 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f50 }, - /* 0F 51 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f51 }, - /* 0F 52 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f52 }, - /* 0F 53 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f53 }, - /* 0F 54 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f54 }, - /* 0F 55 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f55 }, - /* 0F 56 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f56 }, - /* 0F 57 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f57 }, - /* 0F 58 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f58 }, - /* 0F 59 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f59 }, - /* 0F 5A /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5a }, - /* 0F 5B /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5b }, - /* 0F 5C /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5c }, - /* 0F 5D /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5d }, - /* 0F 5E /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5e }, - /* 0F 5F /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5f }, - /* 0F 60 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f60 }, - /* 0F 61 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f61 }, - /* 0F 62 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f62 }, - /* 0F 63 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f63 }, - /* 0F 64 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f64 }, - /* 0F 65 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f65 }, - /* 0F 66 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f66 }, - /* 0F 67 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f67 }, - /* 0F 68 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f68 }, - /* 0F 69 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f69 }, - /* 0F 6A /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6a }, - /* 0F 6B /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6b }, + /* 0F 50 /wr */ { BxPrefixSSE, BX_IA_MOVMSKPS_GdVRps, BxOpcodeGroupSSE_0f50 }, + /* 0F 51 /wr */ { BxPrefixSSE, BX_IA_SQRTPS_VpsWps, BxOpcodeGroupSSE_0f51 }, + /* 0F 52 /wr */ { BxPrefixSSE, BX_IA_RSQRTPS_VpsWps, BxOpcodeGroupSSE_0f52 }, + /* 0F 53 /wr */ { BxPrefixSSE, BX_IA_RCPPS_VpsWps, BxOpcodeGroupSSE_0f53 }, + /* 0F 54 /wr */ { BxPrefixSSE, BX_IA_ANDPS_VpsWps, BxOpcodeGroupSSE_0f54 }, + /* 0F 55 /wr */ { BxPrefixSSE, BX_IA_ANDNPS_VpsWps, BxOpcodeGroupSSE_0f55 }, + /* 0F 56 /wr */ { BxPrefixSSE, BX_IA_ORPS_VpsWps, BxOpcodeGroupSSE_0f56 }, + /* 0F 57 /wr */ { BxPrefixSSE, BX_IA_XORPS_VpsWps, BxOpcodeGroupSSE_0f57 }, + /* 0F 58 /wr */ { BxPrefixSSE, BX_IA_ADDPS_VpsWps, BxOpcodeGroupSSE_0f58 }, + /* 0F 59 /wr */ { BxPrefixSSE, BX_IA_MULPS_VpsWps, BxOpcodeGroupSSE_0f59 }, + /* 0F 5A /wr */ { BxPrefixSSE, BX_IA_CVTPS2PD_VpsWps, BxOpcodeGroupSSE_0f5a }, + /* 0F 5B /wr */ { BxPrefixSSE, BX_IA_CVTDQ2PS_VpsWdq, BxOpcodeGroupSSE_0f5b }, + /* 0F 5C /wr */ { BxPrefixSSE, BX_IA_SUBPS_VpsWps, BxOpcodeGroupSSE_0f5c }, + /* 0F 5D /wr */ { BxPrefixSSE, BX_IA_MINPS_VpsWps, BxOpcodeGroupSSE_0f5d }, + /* 0F 5E /wr */ { BxPrefixSSE, BX_IA_DIVPS_VpsWps, BxOpcodeGroupSSE_0f5e }, + /* 0F 5F /wr */ { BxPrefixSSE, BX_IA_MAXPS_VpsWps, BxOpcodeGroupSSE_0f5f }, + /* 0F 60 /wr */ { BxPrefixSSE, BX_IA_PUNPCKLBW_PqQd, BxOpcodeGroupSSE_0f60 }, + /* 0F 61 /wr */ { BxPrefixSSE, BX_IA_PUNPCKLWD_PqQd, BxOpcodeGroupSSE_0f61 }, + /* 0F 62 /wr */ { BxPrefixSSE, BX_IA_PUNPCKLDQ_PqQd, BxOpcodeGroupSSE_0f62 }, + /* 0F 63 /wr */ { BxPrefixSSE, BX_IA_PACKSSWB_PqQq, BxOpcodeGroupSSE_0f63 }, + /* 0F 64 /wr */ { BxPrefixSSE, BX_IA_PCMPGTB_PqQq, BxOpcodeGroupSSE_0f64 }, + /* 0F 65 /wr */ { BxPrefixSSE, BX_IA_PCMPGTW_PqQq, BxOpcodeGroupSSE_0f65 }, + /* 0F 66 /wr */ { BxPrefixSSE, BX_IA_PCMPGTD_PqQq, BxOpcodeGroupSSE_0f66 }, + /* 0F 67 /wr */ { BxPrefixSSE, BX_IA_PACKUSWB_PqQq, BxOpcodeGroupSSE_0f67 }, + /* 0F 68 /wr */ { BxPrefixSSE, BX_IA_PUNPCKHBW_PqQq, BxOpcodeGroupSSE_0f68 }, + /* 0F 69 /wr */ { BxPrefixSSE, BX_IA_PUNPCKHWD_PqQq, BxOpcodeGroupSSE_0f69 }, + /* 0F 6A /wr */ { BxPrefixSSE, BX_IA_PUNPCKHDQ_PqQq, BxOpcodeGroupSSE_0f6a }, + /* 0F 6B /wr */ { BxPrefixSSE, BX_IA_PACKSSDW_PqQq, BxOpcodeGroupSSE_0f6b }, /* 0F 6C /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6c }, /* 0F 6D /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6d }, - /* 0F 6E /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6e }, - /* 0F 6F /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6f }, - /* 0F 70 /wr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f70 }, + /* 0F 6E /wr */ { BxPrefixSSE, BX_IA_MOVD_PqEd, BxOpcodeGroupSSE_0f6e }, + /* 0F 6F /wr */ { BxPrefixSSE, BX_IA_MOVQ_PqQq, BxOpcodeGroupSSE_0f6f }, + /* 0F 70 /wr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PSHUFW_PqQqIb, BxOpcodeGroupSSE_0f70 }, /* 0F 71 /wr */ { BxGroup12, BX_IA_ERROR, BxOpcodeInfoG12R }, /* 0F 72 /wr */ { BxGroup13, BX_IA_ERROR, BxOpcodeInfoG13R }, /* 0F 73 /wr */ { BxGroup14, BX_IA_ERROR, BxOpcodeInfoG14R }, - /* 0F 74 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f74 }, - /* 0F 75 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f75 }, - /* 0F 76 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f76 }, + /* 0F 74 /wr */ { BxPrefixSSE, BX_IA_PCMPEQB_PqQq, BxOpcodeGroupSSE_0f74 }, + /* 0F 75 /wr */ { BxPrefixSSE, BX_IA_PCMPEQW_PqQq, BxOpcodeGroupSSE_0f75 }, + /* 0F 76 /wr */ { BxPrefixSSE, BX_IA_PCMPEQD_PqQq, BxOpcodeGroupSSE_0f76 }, /* 0F 77 /wr */ { 0, BX_IA_EMMS }, /* 0F 78 /wr */ { 0, BX_IA_ERROR }, /* 0F 79 /wr */ { 0, BX_IA_ERROR }, @@ -576,8 +576,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F 7B /wr */ { 0, BX_IA_ERROR }, /* 0F 7C /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7c }, /* 0F 7D /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7d }, - /* 0F 7E /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7e }, - /* 0F 7F /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7f }, + /* 0F 7E /wr */ { BxPrefixSSE, BX_IA_MOVD_EdPd, BxOpcodeGroupSSE_0f7e }, + /* 0F 7F /wr */ { BxPrefixSSE, BX_IA_MOVQ_QqPq, BxOpcodeGroupSSE_0f7f }, /* 0F 80 /wr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JO_Jq }, /* 0F 81 /wr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JNO_Jq }, /* 0F 82 /wr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JB_Jq }, @@ -644,11 +644,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F BF /wr */ { 0, BX_IA_MOV_GwEwR }, // MOVSX_GwEw /* 0F C0 /wr */ { 0, BX_IA_XADD_EbGbR }, /* 0F C1 /wr */ { 0, BX_IA_XADD_EwGwR }, - /* 0F C2 /wr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 }, + /* 0F C2 /wr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_CMPPS_VpsWpsIb, BxOpcodeGroupSSE_0fc2 }, /* 0F C3 /wr */ { 0, BX_IA_ERROR }, // MOVNTI SSE group - /* 0F C4 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 }, - /* 0F C5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5R }, - /* 0F C6 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 }, + /* 0F C4 /wr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PINSRW_PqEwIb, BxOpcodeGroupSSE_0fc4 }, + /* 0F C5 /wr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PEXTRW_GdPqIb, BxOpcodeGroupSSE_0fc5R }, + /* 0F C6 /wr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb, BxOpcodeGroupSSE_0fc6 }, /* 0F C7 /wr */ { 0, BX_IA_ERROR }, // CMPXCHG8B G9 group /* 0F C8 /wr */ { 0, BX_IA_BSWAP_ERX }, /* 0F C9 /wr */ { 0, BX_IA_BSWAP_ERX }, @@ -658,114 +658,114 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F CD /wr */ { 0, BX_IA_BSWAP_ERX }, /* 0F CE /wr */ { 0, BX_IA_BSWAP_ERX }, /* 0F CF /wr */ { 0, BX_IA_BSWAP_ERX }, - /* 0F D0 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd0 }, - /* 0F D1 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd1 }, - /* 0F D2 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd2 }, - /* 0F D3 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd3 }, - /* 0F D4 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd4 }, - /* 0F D5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd5 }, + /* 0F D0 /wr */ { BxPrefixSSE, BX_IA_ADDSUBPD_VpdWpd, BxOpcodeGroupSSE_0fd0 }, + /* 0F D1 /wr */ { BxPrefixSSE, BX_IA_PSRLW_PqQq, BxOpcodeGroupSSE_0fd1 }, + /* 0F D2 /wr */ { BxPrefixSSE, BX_IA_PSRLD_PqQq, BxOpcodeGroupSSE_0fd2 }, + /* 0F D3 /wr */ { BxPrefixSSE, BX_IA_PSRLQ_PqQq, BxOpcodeGroupSSE_0fd3 }, + /* 0F D4 /wr */ { BxPrefixSSE, BX_IA_PADDQ_PqQq, BxOpcodeGroupSSE_0fd4 }, + /* 0F D5 /wr */ { BxPrefixSSE, BX_IA_PMULLW_PqQq, BxOpcodeGroupSSE_0fd5 }, /* 0F D6 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd6 }, - /* 0F D7 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd7 }, - /* 0F D8 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd8 }, - /* 0F D9 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd9 }, - /* 0F DA /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fda }, - /* 0F DB /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdb }, - /* 0F DC /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdc }, - /* 0F DD /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdd }, - /* 0F DE /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fde }, - /* 0F DF /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdf }, - /* 0F E0 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe0 }, - /* 0F E1 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe1 }, - /* 0F E2 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe2 }, - /* 0F E3 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe3 }, - /* 0F E4 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe4 }, - /* 0F E5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe5 }, + /* 0F D7 /wr */ { BxPrefixSSE, BX_IA_PMOVMSKB_GdPRq, BxOpcodeGroupSSE_0fd7 }, + /* 0F D8 /wr */ { BxPrefixSSE, BX_IA_PSUBUSB_PqQq, BxOpcodeGroupSSE_0fd8 }, + /* 0F D9 /wr */ { BxPrefixSSE, BX_IA_PSUBUSW_PqQq, BxOpcodeGroupSSE_0fd9 }, + /* 0F DA /wr */ { BxPrefixSSE, BX_IA_PMINUB_PqQq, BxOpcodeGroupSSE_0fda }, + /* 0F DB /wr */ { BxPrefixSSE, BX_IA_PAND_PqQq, BxOpcodeGroupSSE_0fdb }, + /* 0F DC /wr */ { BxPrefixSSE, BX_IA_PADDUSB_PqQq, BxOpcodeGroupSSE_0fdc }, + /* 0F DD /wr */ { BxPrefixSSE, BX_IA_PADDUSW_PqQq, BxOpcodeGroupSSE_0fdd }, + /* 0F DE /wr */ { BxPrefixSSE, BX_IA_PMAXUB_PqQq, BxOpcodeGroupSSE_0fde }, + /* 0F DF /wr */ { BxPrefixSSE, BX_IA_PANDN_PqQq, BxOpcodeGroupSSE_0fdf }, + /* 0F E0 /wr */ { BxPrefixSSE, BX_IA_PAVGB_PqQq, BxOpcodeGroupSSE_0fe0 }, + /* 0F E1 /wr */ { BxPrefixSSE, BX_IA_PSRAW_PqQq, BxOpcodeGroupSSE_0fe1 }, + /* 0F E2 /wr */ { BxPrefixSSE, BX_IA_PSRAD_PqQq, BxOpcodeGroupSSE_0fe2 }, + /* 0F E3 /wr */ { BxPrefixSSE, BX_IA_PAVGW_PqQq, BxOpcodeGroupSSE_0fe3 }, + /* 0F E4 /wr */ { BxPrefixSSE, BX_IA_PMULHUW_PqQq, BxOpcodeGroupSSE_0fe4 }, + /* 0F E5 /wr */ { BxPrefixSSE, BX_IA_PMULHW_PqQq, BxOpcodeGroupSSE_0fe5 }, /* 0F E6 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe6 }, /* 0F E7 /wr */ { 0, BX_IA_ERROR }, // MOVNTQ/MOVNTDQ SSE group - /* 0F E8 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe8 }, - /* 0F E9 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe9 }, - /* 0F EA /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fea }, - /* 0F EB /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0feb }, - /* 0F EC /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fec }, - /* 0F ED /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fed }, - /* 0F EE /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fee }, - /* 0F EF /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fef }, + /* 0F E8 /wr */ { BxPrefixSSE, BX_IA_PSUBSB_PqQq, BxOpcodeGroupSSE_0fe8 }, + /* 0F E9 /wr */ { BxPrefixSSE, BX_IA_PSUBSW_PqQq, BxOpcodeGroupSSE_0fe9 }, + /* 0F EA /wr */ { BxPrefixSSE, BX_IA_PMINSW_PqQq, BxOpcodeGroupSSE_0fea }, + /* 0F EB /wr */ { BxPrefixSSE, BX_IA_POR_PqQq, BxOpcodeGroupSSE_0feb }, + /* 0F EC /wr */ { BxPrefixSSE, BX_IA_PADDSB_PqQq, BxOpcodeGroupSSE_0fec }, + /* 0F ED /wr */ { BxPrefixSSE, BX_IA_PADDSW_PqQq, BxOpcodeGroupSSE_0fed }, + /* 0F EE /wr */ { BxPrefixSSE, BX_IA_PMAXSW_PqQq, BxOpcodeGroupSSE_0fee }, + /* 0F EF /wr */ { BxPrefixSSE, BX_IA_PXOR_PqQq, BxOpcodeGroupSSE_0fef }, /* 0F F0 /wr */ { 0, BX_IA_ERROR }, // LDDQU SSE group - /* 0F F1 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff1 }, - /* 0F F2 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff2 }, - /* 0F F3 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff3 }, - /* 0F F4 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff4 }, - /* 0F F5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff5 }, - /* 0F F6 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff6 }, - /* 0F F7 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff7R }, - /* 0F F8 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff8 }, - /* 0F F9 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff9 }, - /* 0F FA /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffa }, - /* 0F FB /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffb }, - /* 0F FC /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffc }, - /* 0F FD /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffd }, - /* 0F FE /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffe }, + /* 0F F1 /wr */ { BxPrefixSSE, BX_IA_PSLLW_PqQq, BxOpcodeGroupSSE_0ff1 }, + /* 0F F2 /wr */ { BxPrefixSSE, BX_IA_PSLLD_PqQq, BxOpcodeGroupSSE_0ff2 }, + /* 0F F3 /wr */ { BxPrefixSSE, BX_IA_PSLLQ_PqQq, BxOpcodeGroupSSE_0ff3 }, + /* 0F F4 /wr */ { BxPrefixSSE, BX_IA_PMULUDQ_PqQq, BxOpcodeGroupSSE_0ff4 }, + /* 0F F5 /wr */ { BxPrefixSSE, BX_IA_PMADDWD_PqQq, BxOpcodeGroupSSE_0ff5 }, + /* 0F F6 /wr */ { BxPrefixSSE, BX_IA_PSADBW_PqQq, BxOpcodeGroupSSE_0ff6 }, + /* 0F F7 /wr */ { BxPrefixSSE, BX_IA_MASKMOVQ_PqPRq, BxOpcodeGroupSSE_0ff7R }, + /* 0F F8 /wr */ { BxPrefixSSE, BX_IA_PSUBB_PqQq, BxOpcodeGroupSSE_0ff8 }, + /* 0F F9 /wr */ { BxPrefixSSE, BX_IA_PSUBW_PqQq, BxOpcodeGroupSSE_0ff9 }, + /* 0F FA /wr */ { BxPrefixSSE, BX_IA_PSUBD_PqQq, BxOpcodeGroupSSE_0ffa }, + /* 0F FB /wr */ { BxPrefixSSE, BX_IA_PSUBQ_PqQq, BxOpcodeGroupSSE_0ffb }, + /* 0F FC /wr */ { BxPrefixSSE, BX_IA_PADDB_PqQq, BxOpcodeGroupSSE_0ffc }, + /* 0F FD /wr */ { BxPrefixSSE, BX_IA_PADDW_PqQq, BxOpcodeGroupSSE_0ffd }, + /* 0F FE /wr */ { BxPrefixSSE, BX_IA_PADDD_PqQq, BxOpcodeGroupSSE_0ffe }, /* 0F FF /wr */ { 0, BX_IA_ERROR }, // 512 entries for 32bit operand size - /* 00 /dr */ { 0, BX_IA_ADD_EbGbR }, - /* 01 /dr */ { 0, BX_IA_ADD_EdGdR }, + /* 00 /dr */ { BxArithDstRM, BX_IA_ADD_GbEbR }, + /* 01 /dr */ { BxArithDstRM, BX_IA_ADD_GdEdR }, /* 02 /dr */ { 0, BX_IA_ADD_GbEbR }, /* 03 /dr */ { 0, BX_IA_ADD_GdEdR }, /* 04 /dr */ { BxImmediate_Ib, BX_IA_ADD_ALIb }, /* 05 /dr */ { BxImmediate_Id, BX_IA_ADD_EAXId }, /* 06 /dr */ { 0, BX_IA_ERROR }, /* 07 /dr */ { 0, BX_IA_ERROR }, - /* 08 /dr */ { 0, BX_IA_OR_EbGbR }, - /* 09 /dr */ { 0, BX_IA_OR_EdGdR }, + /* 08 /dr */ { BxArithDstRM, BX_IA_OR_GbEbR }, + /* 09 /dr */ { BxArithDstRM, BX_IA_OR_GdEdR }, /* 0A /dr */ { 0, BX_IA_OR_GbEbR }, /* 0B /dr */ { 0, BX_IA_OR_GdEdR }, /* 0C /dr */ { BxImmediate_Ib, BX_IA_OR_ALIb }, /* 0D /dr */ { BxImmediate_Id, BX_IA_OR_EAXId }, /* 0E /dr */ { 0, BX_IA_ERROR }, /* 0F /dr */ { 0, BX_IA_ERROR }, // 2-byte escape - /* 10 /dr */ { 0, BX_IA_ADC_EbGbR }, - /* 11 /dr */ { 0, BX_IA_ADC_EdGdR }, + /* 10 /dr */ { BxArithDstRM, BX_IA_ADC_GbEbR }, + /* 11 /dr */ { BxArithDstRM, BX_IA_ADC_GdEdR }, /* 12 /dr */ { 0, BX_IA_ADC_GbEbR }, /* 13 /dr */ { 0, BX_IA_ADC_GdEdR }, /* 14 /dr */ { BxImmediate_Ib, BX_IA_ADC_ALIb }, /* 15 /dr */ { BxImmediate_Id, BX_IA_ADC_EAXId }, /* 16 /dr */ { 0, BX_IA_ERROR }, /* 17 /dr */ { 0, BX_IA_ERROR }, - /* 18 /dr */ { 0, BX_IA_SBB_EbGbR }, - /* 19 /dr */ { 0, BX_IA_SBB_EdGdR }, + /* 18 /dr */ { BxArithDstRM, BX_IA_SBB_GbEbR }, + /* 19 /dr */ { BxArithDstRM, BX_IA_SBB_GdEdR }, /* 1A /dr */ { 0, BX_IA_SBB_GbEbR }, /* 1B /dr */ { 0, BX_IA_SBB_GdEdR }, /* 1C /dr */ { BxImmediate_Ib, BX_IA_SBB_ALIb }, /* 1D /dr */ { BxImmediate_Id, BX_IA_SBB_EAXId }, /* 1E /dr */ { 0, BX_IA_ERROR }, /* 1F /dr */ { 0, BX_IA_ERROR }, - /* 20 /dr */ { 0, BX_IA_AND_EbGbR }, - /* 21 /dr */ { 0, BX_IA_AND_EdGdR }, + /* 20 /dr */ { BxArithDstRM, BX_IA_AND_GbEbR }, + /* 21 /dr */ { BxArithDstRM, BX_IA_AND_GdEdR }, /* 22 /dr */ { 0, BX_IA_AND_GbEbR }, /* 23 /dr */ { 0, BX_IA_AND_GdEdR }, /* 24 /dr */ { BxImmediate_Ib, BX_IA_AND_ALIb }, /* 25 /dr */ { BxImmediate_Id, BX_IA_AND_EAXId }, /* 26 /dr */ { 0, BX_IA_ERROR }, // ES: /* 27 /dr */ { 0, BX_IA_ERROR }, - /* 28 /dr */ { 0, BX_IA_SUB_EbGbR }, - /* 29 /dr */ { 0, BX_IA_SUB_EdGdR }, + /* 28 /dr */ { BxArithDstRM, BX_IA_SUB_GbEbR }, + /* 29 /dr */ { BxArithDstRM, BX_IA_SUB_GdEdR }, /* 2A /dr */ { 0, BX_IA_SUB_GbEbR }, /* 2B /dr */ { 0, BX_IA_SUB_GdEdR }, /* 2C /dr */ { BxImmediate_Ib, BX_IA_SUB_ALIb }, /* 2D /dr */ { BxImmediate_Id, BX_IA_SUB_EAXId }, /* 2E /dr */ { 0, BX_IA_ERROR }, // CS: /* 2F /dr */ { 0, BX_IA_ERROR }, - /* 30 /dr */ { 0, BX_IA_XOR_EbGbR }, - /* 31 /dr */ { 0, BX_IA_XOR_EdGdR }, + /* 30 /dr */ { BxArithDstRM, BX_IA_XOR_GbEbR }, + /* 31 /dr */ { BxArithDstRM, BX_IA_XOR_GdEdR }, /* 32 /dr */ { 0, BX_IA_XOR_GbEbR }, /* 33 /dr */ { 0, BX_IA_XOR_GdEdR }, /* 34 /dr */ { BxImmediate_Ib, BX_IA_XOR_ALIb }, /* 35 /dr */ { BxImmediate_Id, BX_IA_XOR_EAXId }, /* 36 /dr */ { 0, BX_IA_ERROR }, // SS: /* 37 /dr */ { 0, BX_IA_ERROR }, - /* 38 /dr */ { 0, BX_IA_CMP_EbGbR }, - /* 39 /dr */ { 0, BX_IA_CMP_EdGdR }, + /* 38 /dr */ { BxArithDstRM, BX_IA_CMP_GbEbR }, + /* 39 /dr */ { BxArithDstRM, BX_IA_CMP_GdEdR }, /* 3A /dr */ { 0, BX_IA_CMP_GbEbR }, /* 3B /dr */ { 0, BX_IA_CMP_GdEdR }, /* 3C /dr */ { BxImmediate_Ib, BX_IA_CMP_ALIb }, @@ -844,8 +844,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 85 /dr */ { 0, BX_IA_TEST_EdGdR }, /* 86 /dr */ { 0, BX_IA_XCHG_EbGbR }, /* 87 /dr */ { 0, BX_IA_XCHG_EdGdR }, - /* 88 /dr */ { 0, BX_IA_MOV_EbGbR }, - /* 89 /dr */ { 0, BX_IA_MOV_EdGdR }, + /* 88 /dr */ { BxArithDstRM, BX_IA_MOV_GbEbR }, + /* 89 /dr */ { BxArithDstRM, BX_IA_MOV_GdEdR }, /* 8A /dr */ { 0, BX_IA_MOV_GbEbR }, /* 8B /dr */ { 0, BX_IA_MOV_GdEdR }, /* 8C /dr */ { 0, BX_IA_MOV_EwSwR }, @@ -985,13 +985,13 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { #else /* 0F 0F /dr */ { 0, BX_IA_ERROR }, #endif - /* 0F 10 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f10 }, - /* 0F 11 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f11 }, - /* 0F 12 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f12 }, + /* 0F 10 /dr */ { BxPrefixSSE, BX_IA_MOVUPS_VpsWps, BxOpcodeGroupSSE_0f10 }, + /* 0F 11 /dr */ { BxPrefixSSE, BX_IA_MOVUPS_WpsVps, BxOpcodeGroupSSE_0f11 }, + /* 0F 12 /dr */ { BxPrefixSSE, BX_IA_MOVLPS_VpsMq, BxOpcodeGroupSSE_0f12 }, /* 0F 13 /dr */ { 0, BX_IA_ERROR }, // MOVLPS/PD SSE group - /* 0F 14 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f14 }, - /* 0F 15 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f15 }, - /* 0F 16 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f16 }, + /* 0F 14 /dr */ { BxPrefixSSE, BX_IA_UNPCKLPS_VpsWdq, BxOpcodeGroupSSE_0f14 }, + /* 0F 15 /dr */ { BxPrefixSSE, BX_IA_UNPCKHPS_VpsWdq, BxOpcodeGroupSSE_0f15 }, + /* 0F 16 /dr */ { BxPrefixSSE, BX_IA_MOVHPS_VpsMq, BxOpcodeGroupSSE_0f16 }, /* 0F 17 /dr */ { 0, BX_IA_ERROR }, // MOHLPS/PD SSE group /* 0F 18 /dr */ { 0, BX_IA_NOP }, // PREFETCH HINT /* 0F 19 /dr */ { 0, BX_IA_NOP }, // multi-byte NOP @@ -1009,14 +1009,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F 25 /dr */ { 0, BX_IA_ERROR }, /* 0F 26 /dr */ { 0, BX_IA_ERROR }, /* 0F 27 /dr */ { 0, BX_IA_ERROR }, - /* 0F 28 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f28 }, - /* 0F 29 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f29 }, - /* 0F 2A /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2a }, + /* 0F 28 /dr */ { BxPrefixSSE, BX_IA_MOVAPS_VpsWps, BxOpcodeGroupSSE_0f28 }, + /* 0F 29 /dr */ { BxPrefixSSE, BX_IA_MOVAPS_WpsVps, BxOpcodeGroupSSE_0f29 }, + /* 0F 2A /dr */ { BxPrefixSSE, BX_IA_CVTPI2PS_VpsQq, BxOpcodeGroupSSE_0f2a }, /* 0F 2B /dr */ { 0, BX_IA_ERROR }, // MOVNTPS/PD/SS/SD - /* 0F 2C /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2c }, - /* 0F 2D /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2d }, - /* 0F 2E /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2e }, - /* 0F 2F /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2f }, + /* 0F 2C /dr */ { BxPrefixSSE, BX_IA_CVTTPS2PI_PqWps, BxOpcodeGroupSSE_0f2c }, + /* 0F 2D /dr */ { BxPrefixSSE, BX_IA_CVTPS2PI_PqWps, BxOpcodeGroupSSE_0f2d }, + /* 0F 2E /dr */ { BxPrefixSSE, BX_IA_UCOMISS_VssWss, BxOpcodeGroupSSE_0f2e }, + /* 0F 2F /dr */ { BxPrefixSSE, BX_IA_COMISS_VpsWps, BxOpcodeGroupSSE_0f2f }, /* 0F 30 /dr */ { 0, BX_IA_WRMSR }, /* 0F 31 /dr */ { 0, BX_IA_RDTSC }, /* 0F 32 /dr */ { 0, BX_IA_RDMSR }, @@ -1057,45 +1057,45 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F 4D /dr */ { 0, BX_IA_CMOVNL_GdEdR }, /* 0F 4E /dr */ { 0, BX_IA_CMOVLE_GdEdR }, /* 0F 4F /dr */ { 0, BX_IA_CMOVNLE_GdEdR }, - /* 0F 50 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f50 }, - /* 0F 51 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f51 }, - /* 0F 52 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f52 }, - /* 0F 53 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f53 }, - /* 0F 54 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f54 }, - /* 0F 55 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f55 }, - /* 0F 56 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f56 }, - /* 0F 57 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f57 }, - /* 0F 58 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f58 }, - /* 0F 59 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f59 }, - /* 0F 5A /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5a }, - /* 0F 5B /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5b }, - /* 0F 5C /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5c }, - /* 0F 5D /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5d }, - /* 0F 5E /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5e }, - /* 0F 5F /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5f }, - /* 0F 60 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f60 }, - /* 0F 61 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f61 }, - /* 0F 62 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f62 }, - /* 0F 63 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f63 }, - /* 0F 64 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f64 }, - /* 0F 65 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f65 }, - /* 0F 66 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f66 }, - /* 0F 67 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f67 }, - /* 0F 68 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f68 }, - /* 0F 69 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f69 }, - /* 0F 6A /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6a }, - /* 0F 6B /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6b }, + /* 0F 50 /dr */ { BxPrefixSSE, BX_IA_MOVMSKPS_GdVRps, BxOpcodeGroupSSE_0f50 }, + /* 0F 51 /dr */ { BxPrefixSSE, BX_IA_SQRTPS_VpsWps, BxOpcodeGroupSSE_0f51 }, + /* 0F 52 /dr */ { BxPrefixSSE, BX_IA_RSQRTPS_VpsWps, BxOpcodeGroupSSE_0f52 }, + /* 0F 53 /dr */ { BxPrefixSSE, BX_IA_RCPPS_VpsWps, BxOpcodeGroupSSE_0f53 }, + /* 0F 54 /dr */ { BxPrefixSSE, BX_IA_ANDPS_VpsWps, BxOpcodeGroupSSE_0f54 }, + /* 0F 55 /dr */ { BxPrefixSSE, BX_IA_ANDNPS_VpsWps, BxOpcodeGroupSSE_0f55 }, + /* 0F 56 /dr */ { BxPrefixSSE, BX_IA_ORPS_VpsWps, BxOpcodeGroupSSE_0f56 }, + /* 0F 57 /dr */ { BxPrefixSSE, BX_IA_XORPS_VpsWps, BxOpcodeGroupSSE_0f57 }, + /* 0F 58 /dr */ { BxPrefixSSE, BX_IA_ADDPS_VpsWps, BxOpcodeGroupSSE_0f58 }, + /* 0F 59 /dr */ { BxPrefixSSE, BX_IA_MULPS_VpsWps, BxOpcodeGroupSSE_0f59 }, + /* 0F 5A /dr */ { BxPrefixSSE, BX_IA_CVTPS2PD_VpsWps, BxOpcodeGroupSSE_0f5a }, + /* 0F 5B /dr */ { BxPrefixSSE, BX_IA_CVTDQ2PS_VpsWdq, BxOpcodeGroupSSE_0f5b }, + /* 0F 5C /dr */ { BxPrefixSSE, BX_IA_SUBPS_VpsWps, BxOpcodeGroupSSE_0f5c }, + /* 0F 5D /dr */ { BxPrefixSSE, BX_IA_MINPS_VpsWps, BxOpcodeGroupSSE_0f5d }, + /* 0F 5E /dr */ { BxPrefixSSE, BX_IA_DIVPS_VpsWps, BxOpcodeGroupSSE_0f5e }, + /* 0F 5F /dr */ { BxPrefixSSE, BX_IA_MAXPS_VpsWps, BxOpcodeGroupSSE_0f5f }, + /* 0F 60 /dr */ { BxPrefixSSE, BX_IA_PUNPCKLBW_PqQd, BxOpcodeGroupSSE_0f60 }, + /* 0F 61 /dr */ { BxPrefixSSE, BX_IA_PUNPCKLWD_PqQd, BxOpcodeGroupSSE_0f61 }, + /* 0F 62 /dr */ { BxPrefixSSE, BX_IA_PUNPCKLDQ_PqQd, BxOpcodeGroupSSE_0f62 }, + /* 0F 63 /dr */ { BxPrefixSSE, BX_IA_PACKSSWB_PqQq, BxOpcodeGroupSSE_0f63 }, + /* 0F 64 /dr */ { BxPrefixSSE, BX_IA_PCMPGTB_PqQq, BxOpcodeGroupSSE_0f64 }, + /* 0F 65 /dr */ { BxPrefixSSE, BX_IA_PCMPGTW_PqQq, BxOpcodeGroupSSE_0f65 }, + /* 0F 66 /dr */ { BxPrefixSSE, BX_IA_PCMPGTD_PqQq, BxOpcodeGroupSSE_0f66 }, + /* 0F 67 /dr */ { BxPrefixSSE, BX_IA_PACKUSWB_PqQq, BxOpcodeGroupSSE_0f67 }, + /* 0F 68 /dr */ { BxPrefixSSE, BX_IA_PUNPCKHBW_PqQq, BxOpcodeGroupSSE_0f68 }, + /* 0F 69 /dr */ { BxPrefixSSE, BX_IA_PUNPCKHWD_PqQq, BxOpcodeGroupSSE_0f69 }, + /* 0F 6A /dr */ { BxPrefixSSE, BX_IA_PUNPCKHDQ_PqQq, BxOpcodeGroupSSE_0f6a }, + /* 0F 6B /dr */ { BxPrefixSSE, BX_IA_PACKSSDW_PqQq, BxOpcodeGroupSSE_0f6b }, /* 0F 6C /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6c }, /* 0F 6D /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6d }, - /* 0F 6E /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6e }, - /* 0F 6F /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6f }, - /* 0F 70 /dr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f70 }, + /* 0F 6E /dr */ { BxPrefixSSE, BX_IA_MOVD_PqEd, BxOpcodeGroupSSE_0f6e }, + /* 0F 6F /dr */ { BxPrefixSSE, BX_IA_MOVQ_PqQq, BxOpcodeGroupSSE_0f6f }, + /* 0F 70 /dr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PSHUFW_PqQqIb, BxOpcodeGroupSSE_0f70 }, /* 0F 71 /dr */ { BxGroup12, BX_IA_ERROR, BxOpcodeInfoG12R }, /* 0F 72 /dr */ { BxGroup13, BX_IA_ERROR, BxOpcodeInfoG13R }, /* 0F 73 /dr */ { BxGroup14, BX_IA_ERROR, BxOpcodeInfoG14R }, - /* 0F 74 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f74 }, - /* 0F 75 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f75 }, - /* 0F 76 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f76 }, + /* 0F 74 /dr */ { BxPrefixSSE, BX_IA_PCMPEQB_PqQq, BxOpcodeGroupSSE_0f74 }, + /* 0F 75 /dr */ { BxPrefixSSE, BX_IA_PCMPEQW_PqQq, BxOpcodeGroupSSE_0f75 }, + /* 0F 76 /dr */ { BxPrefixSSE, BX_IA_PCMPEQD_PqQq, BxOpcodeGroupSSE_0f76 }, /* 0F 77 /dr */ { 0, BX_IA_EMMS }, /* 0F 78 /dr */ { 0, BX_IA_ERROR }, /* 0F 79 /dr */ { 0, BX_IA_ERROR }, @@ -1103,8 +1103,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F 7B /dr */ { 0, BX_IA_ERROR }, /* 0F 7C /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7c }, /* 0F 7D /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7d }, - /* 0F 7E /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7e }, - /* 0F 7F /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7f }, + /* 0F 7E /dr */ { BxPrefixSSE, BX_IA_MOVD_EdPd, BxOpcodeGroupSSE_0f7e }, + /* 0F 7F /dr */ { BxPrefixSSE, BX_IA_MOVQ_QqPq, BxOpcodeGroupSSE_0f7f }, /* 0F 80 /dr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JO_Jq }, /* 0F 81 /dr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JNO_Jq }, /* 0F 82 /dr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JB_Jq }, @@ -1171,11 +1171,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F BF /dr */ { 0, BX_IA_MOVSX_GdEwR }, /* 0F C0 /dr */ { 0, BX_IA_XADD_EbGbR }, /* 0F C1 /dr */ { 0, BX_IA_XADD_EdGdR }, - /* 0F C2 /dr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 }, + /* 0F C2 /dr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_CMPPS_VpsWpsIb, BxOpcodeGroupSSE_0fc2 }, /* 0F C3 /dr */ { 0, BX_IA_ERROR }, // MOVNTI SSE group - /* 0F C4 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 }, - /* 0F C5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5R }, - /* 0F C6 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 }, + /* 0F C4 /dr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PINSRW_PqEwIb, BxOpcodeGroupSSE_0fc4 }, + /* 0F C5 /dr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PEXTRW_GdPqIb, BxOpcodeGroupSSE_0fc5R }, + /* 0F C6 /dr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb, BxOpcodeGroupSSE_0fc6 }, /* 0F C7 /dr */ { 0, BX_IA_ERROR }, // CMPXCHG8B G9 group /* 0F C8 /dr */ { 0, BX_IA_BSWAP_ERX }, /* 0F C9 /dr */ { 0, BX_IA_BSWAP_ERX }, @@ -1185,114 +1185,114 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F CD /dr */ { 0, BX_IA_BSWAP_ERX }, /* 0F CE /dr */ { 0, BX_IA_BSWAP_ERX }, /* 0F CF /dr */ { 0, BX_IA_BSWAP_ERX }, - /* 0F D0 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd0 }, - /* 0F D1 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd1 }, - /* 0F D2 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd2 }, - /* 0F D3 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd3 }, - /* 0F D4 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd4 }, - /* 0F D5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd5 }, + /* 0F D0 /dr */ { BxPrefixSSE, BX_IA_ADDSUBPD_VpdWpd, BxOpcodeGroupSSE_0fd0 }, + /* 0F D1 /dr */ { BxPrefixSSE, BX_IA_PSRLW_PqQq, BxOpcodeGroupSSE_0fd1 }, + /* 0F D2 /dr */ { BxPrefixSSE, BX_IA_PSRLD_PqQq, BxOpcodeGroupSSE_0fd2 }, + /* 0F D3 /dr */ { BxPrefixSSE, BX_IA_PSRLQ_PqQq, BxOpcodeGroupSSE_0fd3 }, + /* 0F D4 /dr */ { BxPrefixSSE, BX_IA_PADDQ_PqQq, BxOpcodeGroupSSE_0fd4 }, + /* 0F D5 /dr */ { BxPrefixSSE, BX_IA_PMULLW_PqQq, BxOpcodeGroupSSE_0fd5 }, /* 0F D6 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd6 }, - /* 0F D7 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd7 }, - /* 0F D8 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd8 }, - /* 0F D9 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd9 }, - /* 0F DA /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fda }, - /* 0F DB /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdb }, - /* 0F DC /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdc }, - /* 0F DD /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdd }, - /* 0F DE /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fde }, - /* 0F DF /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdf }, - /* 0F E0 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe0 }, - /* 0F E1 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe1 }, - /* 0F E2 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe2 }, - /* 0F E3 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe3 }, - /* 0F E4 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe4 }, - /* 0F E5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe5 }, + /* 0F D7 /dr */ { BxPrefixSSE, BX_IA_PMOVMSKB_GdPRq, BxOpcodeGroupSSE_0fd7 }, + /* 0F D8 /dr */ { BxPrefixSSE, BX_IA_PSUBUSB_PqQq, BxOpcodeGroupSSE_0fd8 }, + /* 0F D9 /dr */ { BxPrefixSSE, BX_IA_PSUBUSW_PqQq, BxOpcodeGroupSSE_0fd9 }, + /* 0F DA /dr */ { BxPrefixSSE, BX_IA_PMINUB_PqQq, BxOpcodeGroupSSE_0fda }, + /* 0F DB /dr */ { BxPrefixSSE, BX_IA_PAND_PqQq, BxOpcodeGroupSSE_0fdb }, + /* 0F DC /dr */ { BxPrefixSSE, BX_IA_PADDUSB_PqQq, BxOpcodeGroupSSE_0fdc }, + /* 0F DD /dr */ { BxPrefixSSE, BX_IA_PADDUSW_PqQq, BxOpcodeGroupSSE_0fdd }, + /* 0F DE /dr */ { BxPrefixSSE, BX_IA_PMAXUB_PqQq, BxOpcodeGroupSSE_0fde }, + /* 0F DF /dr */ { BxPrefixSSE, BX_IA_PANDN_PqQq, BxOpcodeGroupSSE_0fdf }, + /* 0F E0 /dr */ { BxPrefixSSE, BX_IA_PAVGB_PqQq, BxOpcodeGroupSSE_0fe0 }, + /* 0F E1 /dr */ { BxPrefixSSE, BX_IA_PSRAW_PqQq, BxOpcodeGroupSSE_0fe1 }, + /* 0F E2 /dr */ { BxPrefixSSE, BX_IA_PSRAD_PqQq, BxOpcodeGroupSSE_0fe2 }, + /* 0F E3 /dr */ { BxPrefixSSE, BX_IA_PAVGW_PqQq, BxOpcodeGroupSSE_0fe3 }, + /* 0F E4 /dr */ { BxPrefixSSE, BX_IA_PMULHUW_PqQq, BxOpcodeGroupSSE_0fe4 }, + /* 0F E5 /dr */ { BxPrefixSSE, BX_IA_PMULHW_PqQq, BxOpcodeGroupSSE_0fe5 }, /* 0F E6 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe6 }, /* 0F E7 /dr */ { 0, BX_IA_ERROR }, // MOVNTQ/MOVNTDQ SSE group - /* 0F E8 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe8 }, - /* 0F E9 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe9 }, - /* 0F EA /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fea }, - /* 0F EB /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0feb }, - /* 0F EC /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fec }, - /* 0F ED /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fed }, - /* 0F EE /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fee }, - /* 0F EF /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fef }, + /* 0F E8 /dr */ { BxPrefixSSE, BX_IA_PSUBSB_PqQq, BxOpcodeGroupSSE_0fe8 }, + /* 0F E9 /dr */ { BxPrefixSSE, BX_IA_PSUBSW_PqQq, BxOpcodeGroupSSE_0fe9 }, + /* 0F EA /dr */ { BxPrefixSSE, BX_IA_PMINSW_PqQq, BxOpcodeGroupSSE_0fea }, + /* 0F EB /dr */ { BxPrefixSSE, BX_IA_POR_PqQq, BxOpcodeGroupSSE_0feb }, + /* 0F EC /dr */ { BxPrefixSSE, BX_IA_PADDSB_PqQq, BxOpcodeGroupSSE_0fec }, + /* 0F ED /dr */ { BxPrefixSSE, BX_IA_PADDSW_PqQq, BxOpcodeGroupSSE_0fed }, + /* 0F EE /dr */ { BxPrefixSSE, BX_IA_PMAXSW_PqQq, BxOpcodeGroupSSE_0fee }, + /* 0F EF /dr */ { BxPrefixSSE, BX_IA_PXOR_PqQq, BxOpcodeGroupSSE_0fef }, /* 0F F0 /dr */ { 0, BX_IA_ERROR }, // LDDQU SSE group - /* 0F F1 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff1 }, - /* 0F F2 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff2 }, - /* 0F F3 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff3 }, - /* 0F F4 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff4 }, - /* 0F F5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff5 }, - /* 0F F6 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff6 }, - /* 0F F7 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff7R }, - /* 0F F8 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff8 }, - /* 0F F9 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff9 }, - /* 0F FA /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffa }, - /* 0F FB /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffb }, - /* 0F FC /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffc }, - /* 0F FD /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffd }, - /* 0F FE /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffe }, + /* 0F F1 /dr */ { BxPrefixSSE, BX_IA_PSLLW_PqQq, BxOpcodeGroupSSE_0ff1 }, + /* 0F F2 /dr */ { BxPrefixSSE, BX_IA_PSLLD_PqQq, BxOpcodeGroupSSE_0ff2 }, + /* 0F F3 /dr */ { BxPrefixSSE, BX_IA_PSLLQ_PqQq, BxOpcodeGroupSSE_0ff3 }, + /* 0F F4 /dr */ { BxPrefixSSE, BX_IA_PMULUDQ_PqQq, BxOpcodeGroupSSE_0ff4 }, + /* 0F F5 /dr */ { BxPrefixSSE, BX_IA_PMADDWD_PqQq, BxOpcodeGroupSSE_0ff5 }, + /* 0F F6 /dr */ { BxPrefixSSE, BX_IA_PSADBW_PqQq, BxOpcodeGroupSSE_0ff6 }, + /* 0F F7 /dr */ { BxPrefixSSE, BX_IA_MASKMOVQ_PqPRq, BxOpcodeGroupSSE_0ff7R }, + /* 0F F8 /dr */ { BxPrefixSSE, BX_IA_PSUBB_PqQq, BxOpcodeGroupSSE_0ff8 }, + /* 0F F9 /dr */ { BxPrefixSSE, BX_IA_PSUBW_PqQq, BxOpcodeGroupSSE_0ff9 }, + /* 0F FA /dr */ { BxPrefixSSE, BX_IA_PSUBD_PqQq, BxOpcodeGroupSSE_0ffa }, + /* 0F FB /dr */ { BxPrefixSSE, BX_IA_PSUBQ_PqQq, BxOpcodeGroupSSE_0ffb }, + /* 0F FC /dr */ { BxPrefixSSE, BX_IA_PADDB_PqQq, BxOpcodeGroupSSE_0ffc }, + /* 0F FD /dr */ { BxPrefixSSE, BX_IA_PADDW_PqQq, BxOpcodeGroupSSE_0ffd }, + /* 0F FE /dr */ { BxPrefixSSE, BX_IA_PADDD_PqQq, BxOpcodeGroupSSE_0ffe }, /* 0F FF /dr */ { 0, BX_IA_ERROR }, // 512 entries for 64bit operand size - /* 00 /qr */ { 0, BX_IA_ADD_EbGbR }, - /* 01 /qr */ { 0, BX_IA_ADD_EqGqR }, + /* 00 /qr */ { BxArithDstRM, BX_IA_ADD_GbEbR }, + /* 01 /qr */ { BxArithDstRM, BX_IA_ADD_GqEqR }, /* 02 /qr */ { 0, BX_IA_ADD_GbEbR }, /* 03 /qr */ { 0, BX_IA_ADD_GqEqR }, /* 04 /qr */ { BxImmediate_Ib, BX_IA_ADD_ALIb }, /* 05 /qr */ { BxImmediate_Id, BX_IA_ADD_RAXId }, /* 06 /qr */ { 0, BX_IA_ERROR }, /* 07 /qr */ { 0, BX_IA_ERROR }, - /* 08 /qr */ { 0, BX_IA_OR_EbGbR }, - /* 09 /qr */ { 0, BX_IA_OR_EqGqR }, + /* 08 /qr */ { BxArithDstRM, BX_IA_OR_GbEbR }, + /* 09 /qr */ { BxArithDstRM, BX_IA_OR_GqEqR }, /* 0A /qr */ { 0, BX_IA_OR_GbEbR }, /* 0B /qr */ { 0, BX_IA_OR_GqEqR }, /* 0C /qr */ { BxImmediate_Ib, BX_IA_OR_ALIb }, /* 0D /qr */ { BxImmediate_Id, BX_IA_OR_RAXId }, /* 0E /qr */ { 0, BX_IA_ERROR }, /* 0F /qr */ { 0, BX_IA_ERROR }, // 2-byte escape - /* 10 /qr */ { 0, BX_IA_ADC_EbGbR }, - /* 11 /qr */ { 0, BX_IA_ADC_EqGqR }, + /* 10 /qr */ { BxArithDstRM, BX_IA_ADC_GbEbR }, + /* 11 /qr */ { BxArithDstRM, BX_IA_ADC_GqEqR }, /* 12 /qr */ { 0, BX_IA_ADC_GbEbR }, /* 13 /qr */ { 0, BX_IA_ADC_GqEqR }, /* 14 /qr */ { BxImmediate_Ib, BX_IA_ADC_ALIb }, /* 15 /qr */ { BxImmediate_Id, BX_IA_ADC_RAXId }, /* 16 /qr */ { 0, BX_IA_ERROR }, /* 17 /qr */ { 0, BX_IA_ERROR }, - /* 18 /qr */ { 0, BX_IA_SBB_EbGbR }, - /* 19 /qr */ { 0, BX_IA_SBB_EqGqR }, + /* 18 /qr */ { BxArithDstRM, BX_IA_SBB_GbEbR }, + /* 19 /qr */ { BxArithDstRM, BX_IA_SBB_GqEqR }, /* 1A /qr */ { 0, BX_IA_SBB_GbEbR }, /* 1B /qr */ { 0, BX_IA_SBB_GqEqR }, /* 1C /qr */ { BxImmediate_Ib, BX_IA_SBB_ALIb }, /* 1D /qr */ { BxImmediate_Id, BX_IA_SBB_RAXId }, /* 1E /qr */ { 0, BX_IA_ERROR }, /* 1F /qr */ { 0, BX_IA_ERROR }, - /* 20 /qr */ { 0, BX_IA_AND_EbGbR }, - /* 21 /qr */ { 0, BX_IA_AND_EqGqR }, + /* 20 /qr */ { BxArithDstRM, BX_IA_AND_GbEbR }, + /* 21 /qr */ { BxArithDstRM, BX_IA_AND_GqEqR }, /* 22 /qr */ { 0, BX_IA_AND_GbEbR }, /* 23 /qr */ { 0, BX_IA_AND_GqEqR }, /* 24 /qr */ { BxImmediate_Ib, BX_IA_AND_ALIb }, /* 25 /qr */ { BxImmediate_Id, BX_IA_AND_RAXId }, /* 26 /qr */ { 0, BX_IA_ERROR }, // ES: /* 27 /qr */ { 0, BX_IA_ERROR }, - /* 28 /qr */ { 0, BX_IA_SUB_EbGbR }, - /* 29 /qr */ { 0, BX_IA_SUB_EqGqR }, + /* 28 /qr */ { BxArithDstRM, BX_IA_SUB_GbEbR }, + /* 29 /qr */ { BxArithDstRM, BX_IA_SUB_GqEqR }, /* 2A /qr */ { 0, BX_IA_SUB_GbEbR }, /* 2B /qr */ { 0, BX_IA_SUB_GqEqR }, /* 2C /qr */ { BxImmediate_Ib, BX_IA_SUB_ALIb }, /* 2D /qr */ { BxImmediate_Id, BX_IA_SUB_RAXId }, /* 2E /qr */ { 0, BX_IA_ERROR }, // CS: /* 2F /qr */ { 0, BX_IA_ERROR }, - /* 30 /qr */ { 0, BX_IA_XOR_EbGbR }, - /* 31 /qr */ { 0, BX_IA_XOR_EqGqR }, + /* 30 /qr */ { BxArithDstRM, BX_IA_XOR_GbEbR }, + /* 31 /qr */ { BxArithDstRM, BX_IA_XOR_GqEqR }, /* 32 /qr */ { 0, BX_IA_XOR_GbEbR }, /* 33 /qr */ { 0, BX_IA_XOR_GqEqR }, /* 34 /qr */ { BxImmediate_Ib, BX_IA_XOR_ALIb }, /* 35 /qr */ { BxImmediate_Id, BX_IA_XOR_RAXId }, /* 36 /qr */ { 0, BX_IA_ERROR }, // SS: /* 37 /qr */ { 0, BX_IA_ERROR }, - /* 38 /qr */ { 0, BX_IA_CMP_EbGbR }, - /* 39 /qr */ { 0, BX_IA_CMP_EqGqR }, + /* 38 /qr */ { BxArithDstRM, BX_IA_CMP_GbEbR }, + /* 39 /qr */ { BxArithDstRM, BX_IA_CMP_GqEqR }, /* 3A /qr */ { 0, BX_IA_CMP_GbEbR }, /* 3B /qr */ { 0, BX_IA_CMP_GqEqR }, /* 3C /qr */ { BxImmediate_Ib, BX_IA_CMP_ALIb }, @@ -1371,8 +1371,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 85 /qr */ { 0, BX_IA_TEST_EqGqR }, /* 86 /qr */ { 0, BX_IA_XCHG_EbGbR }, /* 87 /qr */ { 0, BX_IA_XCHG_EqGqR }, - /* 88 /qr */ { 0, BX_IA_MOV_EbGbR }, - /* 89 /qr */ { 0, BX_IA_MOV_EqGqR }, + /* 88 /qr */ { BxArithDstRM, BX_IA_MOV_GbEbR }, + /* 89 /qr */ { BxArithDstRM, BX_IA_MOV_GqEqR }, /* 8A /qr */ { 0, BX_IA_MOV_GbEbR }, /* 8B /qr */ { 0, BX_IA_MOV_GqEqR }, /* 8C /qr */ { 0, BX_IA_MOV_EwSwR }, @@ -1512,13 +1512,13 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { #else /* 0F 0F /qr */ { 0, BX_IA_ERROR }, #endif - /* 0F 10 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f10 }, - /* 0F 11 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f11 }, - /* 0F 12 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f12 }, + /* 0F 10 /qr */ { BxPrefixSSE, BX_IA_MOVUPS_VpsWps, BxOpcodeGroupSSE_0f10 }, + /* 0F 11 /qr */ { BxPrefixSSE, BX_IA_MOVUPS_WpsVps, BxOpcodeGroupSSE_0f11 }, + /* 0F 12 /qr */ { BxPrefixSSE, BX_IA_MOVLPS_VpsMq, BxOpcodeGroupSSE_0f12 }, /* 0F 13 /qr */ { 0, BX_IA_ERROR }, // MOVLPS/PD SSE group - /* 0F 14 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f14 }, - /* 0F 15 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f15 }, - /* 0F 16 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f16 }, + /* 0F 14 /qr */ { BxPrefixSSE, BX_IA_UNPCKLPS_VpsWdq, BxOpcodeGroupSSE_0f14 }, + /* 0F 15 /qr */ { BxPrefixSSE, BX_IA_UNPCKHPS_VpsWdq, BxOpcodeGroupSSE_0f15 }, + /* 0F 16 /qr */ { BxPrefixSSE, BX_IA_MOVHPS_VpsMq, BxOpcodeGroupSSE_0f16 }, /* 0F 17 /qr */ { 0, BX_IA_ERROR }, // MOHLPS/PD SSE group /* 0F 18 /qr */ { 0, BX_IA_NOP }, // PREFETCH HINT /* 0F 19 /qr */ { 0, BX_IA_NOP }, // multi-byte NOP @@ -1536,14 +1536,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F 25 /qr */ { 0, BX_IA_ERROR }, /* 0F 26 /qr */ { 0, BX_IA_ERROR }, /* 0F 27 /qr */ { 0, BX_IA_ERROR }, - /* 0F 28 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f28 }, - /* 0F 29 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f29 }, - /* 0F 2A /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2a }, + /* 0F 28 /qr */ { BxPrefixSSE, BX_IA_MOVAPS_VpsWps, BxOpcodeGroupSSE_0f28 }, + /* 0F 29 /qr */ { BxPrefixSSE, BX_IA_MOVAPS_WpsVps, BxOpcodeGroupSSE_0f29 }, + /* 0F 2A /qr */ { BxPrefixSSE, BX_IA_CVTPI2PS_VpsQq, BxOpcodeGroupSSE_0f2a }, /* 0F 2B /qr */ { 0, BX_IA_ERROR }, // MOVNTPS/PD/SS/SD - /* 0F 2C /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2c }, - /* 0F 2D /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2d }, - /* 0F 2E /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2e }, - /* 0F 2F /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2f }, + /* 0F 2C /qr */ { BxPrefixSSE, BX_IA_CVTTPS2PI_PqWps, BxOpcodeGroupSSE_0f2c }, + /* 0F 2D /qr */ { BxPrefixSSE, BX_IA_CVTPS2PI_PqWps, BxOpcodeGroupSSE_0f2d }, + /* 0F 2E /qr */ { BxPrefixSSE, BX_IA_UCOMISS_VssWss, BxOpcodeGroupSSE_0f2e }, + /* 0F 2F /qr */ { BxPrefixSSE, BX_IA_COMISS_VpsWps, BxOpcodeGroupSSE_0f2f }, /* 0F 30 /qr */ { 0, BX_IA_WRMSR }, /* 0F 31 /qr */ { 0, BX_IA_RDTSC }, /* 0F 32 /qr */ { 0, BX_IA_RDMSR }, @@ -1584,45 +1584,45 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F 4D /qr */ { 0, BX_IA_CMOVNL_GqEqR }, /* 0F 4E /qr */ { 0, BX_IA_CMOVLE_GqEqR }, /* 0F 4F /qr */ { 0, BX_IA_CMOVNLE_GqEqR }, - /* 0F 50 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f50 }, - /* 0F 51 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f51 }, - /* 0F 52 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f52 }, - /* 0F 53 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f53 }, - /* 0F 54 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f54 }, - /* 0F 55 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f55 }, - /* 0F 56 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f56 }, - /* 0F 57 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f57 }, - /* 0F 58 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f58 }, - /* 0F 59 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f59 }, - /* 0F 5A /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5a }, - /* 0F 5B /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5b }, - /* 0F 5C /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5c }, - /* 0F 5D /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5d }, - /* 0F 5E /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5e }, - /* 0F 5F /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5f }, - /* 0F 60 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f60 }, - /* 0F 61 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f61 }, - /* 0F 62 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f62 }, - /* 0F 63 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f63 }, - /* 0F 64 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f64 }, - /* 0F 65 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f65 }, - /* 0F 66 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f66 }, - /* 0F 67 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f67 }, - /* 0F 68 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f68 }, - /* 0F 69 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f69 }, - /* 0F 6A /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6a }, - /* 0F 6B /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6b }, + /* 0F 50 /qr */ { BxPrefixSSE, BX_IA_MOVMSKPS_GdVRps, BxOpcodeGroupSSE_0f50 }, + /* 0F 51 /qr */ { BxPrefixSSE, BX_IA_SQRTPS_VpsWps, BxOpcodeGroupSSE_0f51 }, + /* 0F 52 /qr */ { BxPrefixSSE, BX_IA_RSQRTPS_VpsWps, BxOpcodeGroupSSE_0f52 }, + /* 0F 53 /qr */ { BxPrefixSSE, BX_IA_RCPPS_VpsWps, BxOpcodeGroupSSE_0f53 }, + /* 0F 54 /qr */ { BxPrefixSSE, BX_IA_ANDPS_VpsWps, BxOpcodeGroupSSE_0f54 }, + /* 0F 55 /qr */ { BxPrefixSSE, BX_IA_ANDNPS_VpsWps, BxOpcodeGroupSSE_0f55 }, + /* 0F 56 /qr */ { BxPrefixSSE, BX_IA_ORPS_VpsWps, BxOpcodeGroupSSE_0f56 }, + /* 0F 57 /qr */ { BxPrefixSSE, BX_IA_XORPS_VpsWps, BxOpcodeGroupSSE_0f57 }, + /* 0F 58 /qr */ { BxPrefixSSE, BX_IA_ADDPS_VpsWps, BxOpcodeGroupSSE_0f58 }, + /* 0F 59 /qr */ { BxPrefixSSE, BX_IA_MULPS_VpsWps, BxOpcodeGroupSSE_0f59 }, + /* 0F 5A /qr */ { BxPrefixSSE, BX_IA_CVTPS2PD_VpsWps, BxOpcodeGroupSSE_0f5a }, + /* 0F 5B /qr */ { BxPrefixSSE, BX_IA_CVTDQ2PS_VpsWdq, BxOpcodeGroupSSE_0f5b }, + /* 0F 5C /qr */ { BxPrefixSSE, BX_IA_SUBPS_VpsWps, BxOpcodeGroupSSE_0f5c }, + /* 0F 5D /qr */ { BxPrefixSSE, BX_IA_MINPS_VpsWps, BxOpcodeGroupSSE_0f5d }, + /* 0F 5E /qr */ { BxPrefixSSE, BX_IA_DIVPS_VpsWps, BxOpcodeGroupSSE_0f5e }, + /* 0F 5F /qr */ { BxPrefixSSE, BX_IA_MAXPS_VpsWps, BxOpcodeGroupSSE_0f5f }, + /* 0F 60 /qr */ { BxPrefixSSE, BX_IA_PUNPCKLBW_PqQd, BxOpcodeGroupSSE_0f60 }, + /* 0F 61 /qr */ { BxPrefixSSE, BX_IA_PUNPCKLWD_PqQd, BxOpcodeGroupSSE_0f61 }, + /* 0F 62 /qr */ { BxPrefixSSE, BX_IA_PUNPCKLDQ_PqQd, BxOpcodeGroupSSE_0f62 }, + /* 0F 63 /qr */ { BxPrefixSSE, BX_IA_PACKSSWB_PqQq, BxOpcodeGroupSSE_0f63 }, + /* 0F 64 /qr */ { BxPrefixSSE, BX_IA_PCMPGTB_PqQq, BxOpcodeGroupSSE_0f64 }, + /* 0F 65 /qr */ { BxPrefixSSE, BX_IA_PCMPGTW_PqQq, BxOpcodeGroupSSE_0f65 }, + /* 0F 66 /qr */ { BxPrefixSSE, BX_IA_PCMPGTD_PqQq, BxOpcodeGroupSSE_0f66 }, + /* 0F 67 /qr */ { BxPrefixSSE, BX_IA_PACKUSWB_PqQq, BxOpcodeGroupSSE_0f67 }, + /* 0F 68 /qr */ { BxPrefixSSE, BX_IA_PUNPCKHBW_PqQq, BxOpcodeGroupSSE_0f68 }, + /* 0F 69 /qr */ { BxPrefixSSE, BX_IA_PUNPCKHWD_PqQq, BxOpcodeGroupSSE_0f69 }, + /* 0F 6A /qr */ { BxPrefixSSE, BX_IA_PUNPCKHDQ_PqQq, BxOpcodeGroupSSE_0f6a }, + /* 0F 6B /qr */ { BxPrefixSSE, BX_IA_PACKSSDW_PqQq, BxOpcodeGroupSSE_0f6b }, /* 0F 6C /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6c }, /* 0F 6D /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6d }, - /* 0F 6E /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6eQ }, - /* 0F 6F /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6f }, - /* 0F 70 /qr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f70 }, + /* 0F 6E /qr */ { BxPrefixSSE, BX_IA_MOVQ_PqEq, BxOpcodeGroupSSE_0f6eQ }, + /* 0F 6F /qr */ { BxPrefixSSE, BX_IA_MOVQ_PqQq, BxOpcodeGroupSSE_0f6f }, + /* 0F 70 /qr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PSHUFW_PqQqIb, BxOpcodeGroupSSE_0f70 }, /* 0F 71 /qr */ { BxGroup12, BX_IA_ERROR, BxOpcodeInfoG12R }, /* 0F 72 /qr */ { BxGroup13, BX_IA_ERROR, BxOpcodeInfoG13R }, /* 0F 73 /qr */ { BxGroup14, BX_IA_ERROR, BxOpcodeInfoG14R }, - /* 0F 74 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f74 }, - /* 0F 75 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f75 }, - /* 0F 76 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f76 }, + /* 0F 74 /qr */ { BxPrefixSSE, BX_IA_PCMPEQB_PqQq, BxOpcodeGroupSSE_0f74 }, + /* 0F 75 /qr */ { BxPrefixSSE, BX_IA_PCMPEQW_PqQq, BxOpcodeGroupSSE_0f75 }, + /* 0F 76 /qr */ { BxPrefixSSE, BX_IA_PCMPEQD_PqQq, BxOpcodeGroupSSE_0f76 }, /* 0F 77 /qr */ { 0, BX_IA_EMMS }, /* 0F 78 /qr */ { 0, BX_IA_ERROR }, /* 0F 79 /qr */ { 0, BX_IA_ERROR }, @@ -1630,8 +1630,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F 7B /qr */ { 0, BX_IA_ERROR }, /* 0F 7C /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7c }, /* 0F 7D /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7d }, - /* 0F 7E /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7eQ }, - /* 0F 7F /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7f }, + /* 0F 7E /qr */ { BxPrefixSSE, BX_IA_MOVQ_EqPq, BxOpcodeGroupSSE_0f7eQ }, + /* 0F 7F /qr */ { BxPrefixSSE, BX_IA_MOVQ_QqPq, BxOpcodeGroupSSE_0f7f }, /* 0F 80 /qr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JO_Jq }, /* 0F 81 /qr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JNO_Jq }, /* 0F 82 /qr */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JB_Jq }, @@ -1698,11 +1698,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F BF /qr */ { 0, BX_IA_MOVSX_GqEwR }, /* 0F C0 /qr */ { 0, BX_IA_XADD_EbGbR }, /* 0F C1 /qr */ { 0, BX_IA_XADD_EqGqR }, - /* 0F C2 /qr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 }, + /* 0F C2 /qr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_CMPPS_VpsWpsIb, BxOpcodeGroupSSE_0fc2 }, /* 0F C3 /qr */ { 0, BX_IA_ERROR }, // MOVNTI SSE group - /* 0F C4 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 }, - /* 0F C5 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5R }, - /* 0F C6 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 }, + /* 0F C4 /qr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PINSRW_PqEwIb, BxOpcodeGroupSSE_0fc4 }, + /* 0F C5 /qr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PEXTRW_GdPqIb, BxOpcodeGroupSSE_0fc5R }, + /* 0F C6 /qr */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb, BxOpcodeGroupSSE_0fc6 }, /* 0F C7 /qr */ { 0, BX_IA_ERROR }, // CMPXCHG16B G9 group /* 0F C8 /qr */ { 0, BX_IA_BSWAP_RRX }, /* 0F C9 /qr */ { 0, BX_IA_BSWAP_RRX }, @@ -1712,53 +1712,53 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = { /* 0F CD /qr */ { 0, BX_IA_BSWAP_RRX }, /* 0F CE /qr */ { 0, BX_IA_BSWAP_RRX }, /* 0F CF /qr */ { 0, BX_IA_BSWAP_RRX }, - /* 0F D0 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd0 }, - /* 0F D1 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd1 }, - /* 0F D2 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd2 }, - /* 0F D3 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd3 }, - /* 0F D4 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd4 }, - /* 0F D5 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd5 }, + /* 0F D0 /qr */ { BxPrefixSSE, BX_IA_ADDSUBPD_VpdWpd, BxOpcodeGroupSSE_0fd0 }, + /* 0F D1 /qr */ { BxPrefixSSE, BX_IA_PSRLW_PqQq, BxOpcodeGroupSSE_0fd1 }, + /* 0F D2 /qr */ { BxPrefixSSE, BX_IA_PSRLD_PqQq, BxOpcodeGroupSSE_0fd2 }, + /* 0F D3 /qr */ { BxPrefixSSE, BX_IA_PSRLQ_PqQq, BxOpcodeGroupSSE_0fd3 }, + /* 0F D4 /qr */ { BxPrefixSSE, BX_IA_PADDQ_PqQq, BxOpcodeGroupSSE_0fd4 }, + /* 0F D5 /qr */ { BxPrefixSSE, BX_IA_PMULLW_PqQq, BxOpcodeGroupSSE_0fd5 }, /* 0F D6 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd6 }, - /* 0F D7 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd7 }, - /* 0F D8 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd8 }, - /* 0F D9 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd9 }, - /* 0F DA /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fda }, - /* 0F DB /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdb }, - /* 0F DC /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdc }, - /* 0F DD /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdd }, - /* 0F DE /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fde }, - /* 0F DF /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdf }, - /* 0F E0 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe0 }, - /* 0F E1 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe1 }, - /* 0F E2 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe2 }, - /* 0F E3 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe3 }, - /* 0F E4 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe4 }, - /* 0F E5 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe5 }, + /* 0F D7 /qr */ { BxPrefixSSE, BX_IA_PMOVMSKB_GdPRq, BxOpcodeGroupSSE_0fd7 }, + /* 0F D8 /qr */ { BxPrefixSSE, BX_IA_PSUBUSB_PqQq, BxOpcodeGroupSSE_0fd8 }, + /* 0F D9 /qr */ { BxPrefixSSE, BX_IA_PSUBUSW_PqQq, BxOpcodeGroupSSE_0fd9 }, + /* 0F DA /qr */ { BxPrefixSSE, BX_IA_PMINUB_PqQq, BxOpcodeGroupSSE_0fda }, + /* 0F DB /qr */ { BxPrefixSSE, BX_IA_PAND_PqQq, BxOpcodeGroupSSE_0fdb }, + /* 0F DC /qr */ { BxPrefixSSE, BX_IA_PADDUSB_PqQq, BxOpcodeGroupSSE_0fdc }, + /* 0F DD /qr */ { BxPrefixSSE, BX_IA_PADDUSW_PqQq, BxOpcodeGroupSSE_0fdd }, + /* 0F DE /qr */ { BxPrefixSSE, BX_IA_PMAXUB_PqQq, BxOpcodeGroupSSE_0fde }, + /* 0F DF /qr */ { BxPrefixSSE, BX_IA_PANDN_PqQq, BxOpcodeGroupSSE_0fdf }, + /* 0F E0 /qr */ { BxPrefixSSE, BX_IA_PAVGB_PqQq, BxOpcodeGroupSSE_0fe0 }, + /* 0F E1 /qr */ { BxPrefixSSE, BX_IA_PSRAW_PqQq, BxOpcodeGroupSSE_0fe1 }, + /* 0F E2 /qr */ { BxPrefixSSE, BX_IA_PSRAD_PqQq, BxOpcodeGroupSSE_0fe2 }, + /* 0F E3 /qr */ { BxPrefixSSE, BX_IA_PAVGW_PqQq, BxOpcodeGroupSSE_0fe3 }, + /* 0F E4 /qr */ { BxPrefixSSE, BX_IA_PMULHUW_PqQq, BxOpcodeGroupSSE_0fe4 }, + /* 0F E5 /qr */ { BxPrefixSSE, BX_IA_PMULHW_PqQq, BxOpcodeGroupSSE_0fe5 }, /* 0F E6 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe6 }, /* 0F E7 /qr */ { 0, BX_IA_ERROR }, // MOVNTQ/MOVNTDQ SSE group - /* 0F E8 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe8 }, - /* 0F E9 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe9 }, - /* 0F EA /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fea }, - /* 0F EB /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0feb }, - /* 0F EC /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fec }, - /* 0F ED /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fed }, - /* 0F EE /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fee }, - /* 0F EF /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fef }, + /* 0F E8 /qr */ { BxPrefixSSE, BX_IA_PSUBSB_PqQq, BxOpcodeGroupSSE_0fe8 }, + /* 0F E9 /qr */ { BxPrefixSSE, BX_IA_PSUBSW_PqQq, BxOpcodeGroupSSE_0fe9 }, + /* 0F EA /qr */ { BxPrefixSSE, BX_IA_PMINSW_PqQq, BxOpcodeGroupSSE_0fea }, + /* 0F EB /qr */ { BxPrefixSSE, BX_IA_POR_PqQq, BxOpcodeGroupSSE_0feb }, + /* 0F EC /qr */ { BxPrefixSSE, BX_IA_PADDSB_PqQq, BxOpcodeGroupSSE_0fec }, + /* 0F ED /qr */ { BxPrefixSSE, BX_IA_PADDSW_PqQq, BxOpcodeGroupSSE_0fed }, + /* 0F EE /qr */ { BxPrefixSSE, BX_IA_PMAXSW_PqQq, BxOpcodeGroupSSE_0fee }, + /* 0F EF /qr */ { BxPrefixSSE, BX_IA_PXOR_PqQq, BxOpcodeGroupSSE_0fef }, /* 0F F0 /qr */ { 0, BX_IA_ERROR }, // LDDQU SSE group - /* 0F F1 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff1 }, - /* 0F F2 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff2 }, - /* 0F F3 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff3 }, - /* 0F F4 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff4 }, - /* 0F F5 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff5 }, - /* 0F F6 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff6 }, - /* 0F F7 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff7R }, - /* 0F F8 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff8 }, - /* 0F F9 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff9 }, - /* 0F FA /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffa }, - /* 0F FB /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffb }, - /* 0F FC /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffc }, - /* 0F FD /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffd }, - /* 0F FE /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffe }, + /* 0F F1 /qr */ { BxPrefixSSE, BX_IA_PSLLW_PqQq, BxOpcodeGroupSSE_0ff1 }, + /* 0F F2 /qr */ { BxPrefixSSE, BX_IA_PSLLD_PqQq, BxOpcodeGroupSSE_0ff2 }, + /* 0F F3 /qr */ { BxPrefixSSE, BX_IA_PSLLQ_PqQq, BxOpcodeGroupSSE_0ff3 }, + /* 0F F4 /qr */ { BxPrefixSSE, BX_IA_PMULUDQ_PqQq, BxOpcodeGroupSSE_0ff4 }, + /* 0F F5 /qr */ { BxPrefixSSE, BX_IA_PMADDWD_PqQq, BxOpcodeGroupSSE_0ff5 }, + /* 0F F6 /qr */ { BxPrefixSSE, BX_IA_PSADBW_PqQq, BxOpcodeGroupSSE_0ff6 }, + /* 0F F7 /qr */ { BxPrefixSSE, BX_IA_MASKMOVQ_PqPRq, BxOpcodeGroupSSE_0ff7R }, + /* 0F F8 /qr */ { BxPrefixSSE, BX_IA_PSUBB_PqQq, BxOpcodeGroupSSE_0ff8 }, + /* 0F F9 /qr */ { BxPrefixSSE, BX_IA_PSUBW_PqQq, BxOpcodeGroupSSE_0ff9 }, + /* 0F FA /qr */ { BxPrefixSSE, BX_IA_PSUBD_PqQq, BxOpcodeGroupSSE_0ffa }, + /* 0F FB /qr */ { BxPrefixSSE, BX_IA_PSUBQ_PqQq, BxOpcodeGroupSSE_0ffb }, + /* 0F FC /qr */ { BxPrefixSSE, BX_IA_PADDB_PqQq, BxOpcodeGroupSSE_0ffc }, + /* 0F FD /qr */ { BxPrefixSSE, BX_IA_PADDW_PqQq, BxOpcodeGroupSSE_0ffd }, + /* 0F FE /qr */ { BxPrefixSSE, BX_IA_PADDD_PqQq, BxOpcodeGroupSSE_0ffe }, /* 0F FF /qr */ { 0, BX_IA_ERROR } }; @@ -2045,14 +2045,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { #else /* 0F 0F /wm */ { 0, BX_IA_ERROR }, #endif - /* 0F 10 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f10 }, - /* 0F 11 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f11 }, - /* 0F 12 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f12 }, - /* 0F 13 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f13M }, - /* 0F 14 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f14 }, - /* 0F 15 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f15 }, - /* 0F 16 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f16 }, - /* 0F 17 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f17M }, + /* 0F 10 /wm */ { BxPrefixSSE, BX_IA_MOVUPS_VpsWps, BxOpcodeGroupSSE_0f10 }, + /* 0F 11 /wm */ { BxPrefixSSE, BX_IA_MOVUPS_WpsVps, BxOpcodeGroupSSE_0f11 }, + /* 0F 12 /wm */ { BxPrefixSSE, BX_IA_MOVLPS_VpsMq, BxOpcodeGroupSSE_0f12 }, + /* 0F 13 /wm */ { BxPrefixSSE, BX_IA_MOVLPS_MqVps, BxOpcodeGroupSSE_0f13M }, + /* 0F 14 /wm */ { BxPrefixSSE, BX_IA_UNPCKLPS_VpsWdq, BxOpcodeGroupSSE_0f14 }, + /* 0F 15 /wm */ { BxPrefixSSE, BX_IA_UNPCKHPS_VpsWdq, BxOpcodeGroupSSE_0f15 }, + /* 0F 16 /wm */ { BxPrefixSSE, BX_IA_MOVHPS_VpsMq, BxOpcodeGroupSSE_0f16 }, + /* 0F 17 /wm */ { BxPrefixSSE, BX_IA_MOVHPS_MqVps, BxOpcodeGroupSSE_0f17M }, /* 0F 18 /wm */ { 0, BX_IA_PREFETCH }, // opcode group G16, PREFETCH hints /* 0F 19 /wm */ { 0, BX_IA_NOP }, // multi-byte NOP /* 0F 1A /wm */ { 0, BX_IA_NOP }, // multi-byte NOP @@ -2069,14 +2069,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F 25 /wm */ { 0, BX_IA_ERROR }, /* 0F 26 /wm */ { 0, BX_IA_ERROR }, /* 0F 27 /wm */ { 0, BX_IA_ERROR }, - /* 0F 28 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f28 }, - /* 0F 29 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f29 }, - /* 0F 2A /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2a }, - /* 0F 2B /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2bM }, - /* 0F 2C /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2c }, - /* 0F 2D /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2d }, - /* 0F 2E /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2e }, - /* 0F 2F /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2f }, + /* 0F 28 /wm */ { BxPrefixSSE, BX_IA_MOVAPS_VpsWps, BxOpcodeGroupSSE_0f28 }, + /* 0F 29 /wm */ { BxPrefixSSE, BX_IA_MOVAPS_WpsVps, BxOpcodeGroupSSE_0f29 }, + /* 0F 2A /wm */ { BxPrefixSSE, BX_IA_CVTPI2PS_VpsQq, BxOpcodeGroupSSE_0f2a }, + /* 0F 2B /wm */ { BxPrefixSSE, BX_IA_MOVNTPS_MpsVps, BxOpcodeGroupSSE_0f2bM }, + /* 0F 2C /wm */ { BxPrefixSSE, BX_IA_CVTTPS2PI_PqWps, BxOpcodeGroupSSE_0f2c }, + /* 0F 2D /wm */ { BxPrefixSSE, BX_IA_CVTPS2PI_PqWps, BxOpcodeGroupSSE_0f2d }, + /* 0F 2E /wm */ { BxPrefixSSE, BX_IA_UCOMISS_VssWss, BxOpcodeGroupSSE_0f2e }, + /* 0F 2F /wm */ { BxPrefixSSE, BX_IA_COMISS_VpsWps, BxOpcodeGroupSSE_0f2f }, /* 0F 30 /wm */ { 0, BX_IA_WRMSR }, /* 0F 31 /wm */ { 0, BX_IA_RDTSC }, /* 0F 32 /wm */ { 0, BX_IA_RDMSR }, @@ -2117,45 +2117,45 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F 4D /wm */ { 0, BX_IA_CMOVNL_GwEwM }, /* 0F 4E /wm */ { 0, BX_IA_CMOVLE_GwEwM }, /* 0F 4F /wm */ { 0, BX_IA_CMOVNLE_GwEwM }, - /* 0F 50 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f50 }, - /* 0F 51 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f51 }, - /* 0F 52 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f52 }, - /* 0F 53 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f53 }, - /* 0F 54 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f54 }, - /* 0F 55 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f55 }, - /* 0F 56 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f56 }, - /* 0F 57 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f57 }, - /* 0F 58 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f58 }, - /* 0F 59 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f59 }, - /* 0F 5A /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5a }, - /* 0F 5B /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5b }, - /* 0F 5C /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5c }, - /* 0F 5D /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5d }, - /* 0F 5E /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5e }, - /* 0F 5F /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5f }, - /* 0F 60 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f60 }, - /* 0F 61 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f61 }, - /* 0F 62 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f62 }, - /* 0F 63 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f63 }, - /* 0F 64 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f64 }, - /* 0F 65 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f65 }, - /* 0F 66 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f66 }, - /* 0F 67 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f67 }, - /* 0F 68 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f68 }, - /* 0F 69 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f69 }, - /* 0F 6A /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6a }, - /* 0F 6B /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6b }, + /* 0F 50 /wm */ { BxPrefixSSE, BX_IA_MOVMSKPS_GdVRps, BxOpcodeGroupSSE_0f50 }, + /* 0F 51 /wm */ { BxPrefixSSE, BX_IA_SQRTPS_VpsWps, BxOpcodeGroupSSE_0f51 }, + /* 0F 52 /wm */ { BxPrefixSSE, BX_IA_RSQRTPS_VpsWps, BxOpcodeGroupSSE_0f52 }, + /* 0F 53 /wm */ { BxPrefixSSE, BX_IA_RCPPS_VpsWps, BxOpcodeGroupSSE_0f53 }, + /* 0F 54 /wm */ { BxPrefixSSE, BX_IA_ANDPS_VpsWps, BxOpcodeGroupSSE_0f54 }, + /* 0F 55 /wm */ { BxPrefixSSE, BX_IA_ANDNPS_VpsWps, BxOpcodeGroupSSE_0f55 }, + /* 0F 56 /wm */ { BxPrefixSSE, BX_IA_ORPS_VpsWps, BxOpcodeGroupSSE_0f56 }, + /* 0F 57 /wm */ { BxPrefixSSE, BX_IA_XORPS_VpsWps, BxOpcodeGroupSSE_0f57 }, + /* 0F 58 /wm */ { BxPrefixSSE, BX_IA_ADDPS_VpsWps, BxOpcodeGroupSSE_0f58 }, + /* 0F 59 /wm */ { BxPrefixSSE, BX_IA_MULPS_VpsWps, BxOpcodeGroupSSE_0f59 }, + /* 0F 5A /wm */ { BxPrefixSSE, BX_IA_CVTPS2PD_VpsWps, BxOpcodeGroupSSE_0f5a }, + /* 0F 5B /wm */ { BxPrefixSSE, BX_IA_CVTDQ2PS_VpsWdq, BxOpcodeGroupSSE_0f5b }, + /* 0F 5C /wm */ { BxPrefixSSE, BX_IA_SUBPS_VpsWps, BxOpcodeGroupSSE_0f5c }, + /* 0F 5D /wm */ { BxPrefixSSE, BX_IA_MINPS_VpsWps, BxOpcodeGroupSSE_0f5d }, + /* 0F 5E /wm */ { BxPrefixSSE, BX_IA_DIVPS_VpsWps, BxOpcodeGroupSSE_0f5e }, + /* 0F 5F /wm */ { BxPrefixSSE, BX_IA_MAXPS_VpsWps, BxOpcodeGroupSSE_0f5f }, + /* 0F 60 /wm */ { BxPrefixSSE, BX_IA_PUNPCKLBW_PqQd, BxOpcodeGroupSSE_0f60 }, + /* 0F 61 /wm */ { BxPrefixSSE, BX_IA_PUNPCKLWD_PqQd, BxOpcodeGroupSSE_0f61 }, + /* 0F 62 /wm */ { BxPrefixSSE, BX_IA_PUNPCKLDQ_PqQd, BxOpcodeGroupSSE_0f62 }, + /* 0F 63 /wm */ { BxPrefixSSE, BX_IA_PACKSSWB_PqQq, BxOpcodeGroupSSE_0f63 }, + /* 0F 64 /wm */ { BxPrefixSSE, BX_IA_PCMPGTB_PqQq, BxOpcodeGroupSSE_0f64 }, + /* 0F 65 /wm */ { BxPrefixSSE, BX_IA_PCMPGTW_PqQq, BxOpcodeGroupSSE_0f65 }, + /* 0F 66 /wm */ { BxPrefixSSE, BX_IA_PCMPGTD_PqQq, BxOpcodeGroupSSE_0f66 }, + /* 0F 67 /wm */ { BxPrefixSSE, BX_IA_PACKUSWB_PqQq, BxOpcodeGroupSSE_0f67 }, + /* 0F 68 /wm */ { BxPrefixSSE, BX_IA_PUNPCKHBW_PqQq, BxOpcodeGroupSSE_0f68 }, + /* 0F 69 /wm */ { BxPrefixSSE, BX_IA_PUNPCKHWD_PqQq, BxOpcodeGroupSSE_0f69 }, + /* 0F 6A /wm */ { BxPrefixSSE, BX_IA_PUNPCKHDQ_PqQq, BxOpcodeGroupSSE_0f6a }, + /* 0F 6B /wm */ { BxPrefixSSE, BX_IA_PACKSSDW_PqQq, BxOpcodeGroupSSE_0f6b }, /* 0F 6C /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6c }, /* 0F 6D /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6d }, - /* 0F 6E /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6e }, - /* 0F 6F /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6f }, - /* 0F 70 /wm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f70 }, + /* 0F 6E /wm */ { BxPrefixSSE, BX_IA_MOVD_PqEd, BxOpcodeGroupSSE_0f6e }, + /* 0F 6F /wm */ { BxPrefixSSE, BX_IA_MOVQ_PqQq, BxOpcodeGroupSSE_0f6f }, + /* 0F 70 /wm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PSHUFW_PqQqIb, BxOpcodeGroupSSE_0f70 }, /* 0F 71 /wm */ { 0, BX_IA_ERROR }, // SSE Group G12 /* 0F 72 /wm */ { 0, BX_IA_ERROR }, // SSE Group G13 /* 0F 73 /wm */ { 0, BX_IA_ERROR }, // SSE Group G14 - /* 0F 74 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f74 }, - /* 0F 75 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f75 }, - /* 0F 76 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f76 }, + /* 0F 74 /wm */ { BxPrefixSSE, BX_IA_PCMPEQB_PqQq, BxOpcodeGroupSSE_0f74 }, + /* 0F 75 /wm */ { BxPrefixSSE, BX_IA_PCMPEQW_PqQq, BxOpcodeGroupSSE_0f75 }, + /* 0F 76 /wm */ { BxPrefixSSE, BX_IA_PCMPEQD_PqQq, BxOpcodeGroupSSE_0f76 }, /* 0F 77 /wm */ { 0, BX_IA_EMMS }, /* 0F 78 /wm */ { 0, BX_IA_ERROR }, /* 0F 79 /wm */ { 0, BX_IA_ERROR }, @@ -2163,8 +2163,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F 7B /wm */ { 0, BX_IA_ERROR }, /* 0F 7C /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7c }, /* 0F 7D /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7d }, - /* 0F 7E /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7e }, - /* 0F 7F /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7f }, + /* 0F 7E /wm */ { BxPrefixSSE, BX_IA_MOVD_EdPd, BxOpcodeGroupSSE_0f7e }, + /* 0F 7F /wm */ { BxPrefixSSE, BX_IA_MOVQ_QqPq, BxOpcodeGroupSSE_0f7f }, /* 0F 80 /wm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JO_Jq }, /* 0F 81 /wm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JNO_Jq }, /* 0F 82 /wm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JB_Jq }, @@ -2231,11 +2231,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F BF /wm */ { 0, BX_IA_MOV_GwEwM }, // MOVSX_GwEw /* 0F C0 /wm */ { BxLockable, BX_IA_XADD_EbGbM }, /* 0F C1 /wm */ { BxLockable, BX_IA_XADD_EwGwM }, - /* 0F C2 /wm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 }, - /* 0F C3 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc3M }, - /* 0F C4 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 }, + /* 0F C2 /wm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_CMPPS_VpsWpsIb, BxOpcodeGroupSSE_0fc2 }, + /* 0F C3 /wm */ { BxPrefixSSE, BX_IA_MOVNTI_MdGd, BxOpcodeGroupSSE_ERR }, + /* 0F C4 /wm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PINSRW_PqEwIb, BxOpcodeGroupSSE_0fc4 }, /* 0F C5 /wm */ { 0, BX_IA_ERROR }, // PEXTRW SSE group - /* 0F C6 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 }, + /* 0F C6 /wm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb, BxOpcodeGroupSSE_0fc6 }, /* 0F C7 /wm */ { BxGroup9, BX_IA_ERROR, BxOpcodeInfoG9M }, /* 0F C8 /wm */ { 0, BX_IA_BSWAP_ERX }, /* 0F C9 /wm */ { 0, BX_IA_BSWAP_ERX }, @@ -2245,53 +2245,53 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F CD /wm */ { 0, BX_IA_BSWAP_ERX }, /* 0F CE /wm */ { 0, BX_IA_BSWAP_ERX }, /* 0F CF /wm */ { 0, BX_IA_BSWAP_ERX }, - /* 0F D0 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd0 }, - /* 0F D1 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd1 }, - /* 0F D2 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd2 }, - /* 0F D3 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd3 }, - /* 0F D4 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd4 }, - /* 0F D5 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd5 }, + /* 0F D0 /wm */ { BxPrefixSSE, BX_IA_ADDSUBPD_VpdWpd, BxOpcodeGroupSSE_0fd0 }, + /* 0F D1 /wm */ { BxPrefixSSE, BX_IA_PSRLW_PqQq, BxOpcodeGroupSSE_0fd1 }, + /* 0F D2 /wm */ { BxPrefixSSE, BX_IA_PSRLD_PqQq, BxOpcodeGroupSSE_0fd2 }, + /* 0F D3 /wm */ { BxPrefixSSE, BX_IA_PSRLQ_PqQq, BxOpcodeGroupSSE_0fd3 }, + /* 0F D4 /wm */ { BxPrefixSSE, BX_IA_PADDQ_PqQq, BxOpcodeGroupSSE_0fd4 }, + /* 0F D5 /wm */ { BxPrefixSSE, BX_IA_PMULLW_PqQq, BxOpcodeGroupSSE_0fd5 }, /* 0F D6 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd6 }, - /* 0F D7 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd7 }, - /* 0F D8 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd8 }, - /* 0F D9 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd9 }, - /* 0F DA /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fda }, - /* 0F DB /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdb }, - /* 0F DC /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdc }, - /* 0F DD /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdd }, - /* 0F DE /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fde }, - /* 0F DF /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdf }, - /* 0F E0 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe0 }, - /* 0F E1 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe1 }, - /* 0F E2 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe2 }, - /* 0F E3 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe3 }, - /* 0F E4 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe4 }, - /* 0F E5 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe5 }, + /* 0F D7 /wm */ { BxPrefixSSE, BX_IA_PMOVMSKB_GdPRq, BxOpcodeGroupSSE_0fd7 }, + /* 0F D8 /wm */ { BxPrefixSSE, BX_IA_PSUBUSB_PqQq, BxOpcodeGroupSSE_0fd8 }, + /* 0F D9 /wm */ { BxPrefixSSE, BX_IA_PSUBUSW_PqQq, BxOpcodeGroupSSE_0fd9 }, + /* 0F DA /wm */ { BxPrefixSSE, BX_IA_PMINUB_PqQq, BxOpcodeGroupSSE_0fda }, + /* 0F DB /wm */ { BxPrefixSSE, BX_IA_PAND_PqQq, BxOpcodeGroupSSE_0fdb }, + /* 0F DC /wm */ { BxPrefixSSE, BX_IA_PADDUSB_PqQq, BxOpcodeGroupSSE_0fdc }, + /* 0F DD /wm */ { BxPrefixSSE, BX_IA_PADDUSW_PqQq, BxOpcodeGroupSSE_0fdd }, + /* 0F DE /wm */ { BxPrefixSSE, BX_IA_PMAXUB_PqQq, BxOpcodeGroupSSE_0fde }, + /* 0F DF /wm */ { BxPrefixSSE, BX_IA_PANDN_PqQq, BxOpcodeGroupSSE_0fdf }, + /* 0F E0 /wm */ { BxPrefixSSE, BX_IA_PAVGB_PqQq, BxOpcodeGroupSSE_0fe0 }, + /* 0F E1 /wm */ { BxPrefixSSE, BX_IA_PSRAW_PqQq, BxOpcodeGroupSSE_0fe1 }, + /* 0F E2 /wm */ { BxPrefixSSE, BX_IA_PSRAD_PqQq, BxOpcodeGroupSSE_0fe2 }, + /* 0F E3 /wm */ { BxPrefixSSE, BX_IA_PAVGW_PqQq, BxOpcodeGroupSSE_0fe3 }, + /* 0F E4 /wm */ { BxPrefixSSE, BX_IA_PMULHUW_PqQq, BxOpcodeGroupSSE_0fe4 }, + /* 0F E5 /wm */ { BxPrefixSSE, BX_IA_PMULHW_PqQq, BxOpcodeGroupSSE_0fe5 }, /* 0F E6 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe6 }, - /* 0F E7 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe7M }, - /* 0F E8 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe8 }, - /* 0F E9 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe9 }, - /* 0F EA /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fea }, - /* 0F EB /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0feb }, - /* 0F EC /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fec }, - /* 0F ED /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fed }, - /* 0F EE /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fee }, - /* 0F EF /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fef }, + /* 0F E7 /wm */ { BxPrefixSSE, BX_IA_MOVNTQ_MqPq, BxOpcodeGroupSSE_0fe7M }, + /* 0F E8 /wm */ { BxPrefixSSE, BX_IA_PSUBSB_PqQq, BxOpcodeGroupSSE_0fe8 }, + /* 0F E9 /wm */ { BxPrefixSSE, BX_IA_PSUBSW_PqQq, BxOpcodeGroupSSE_0fe9 }, + /* 0F EA /wm */ { BxPrefixSSE, BX_IA_PMINSW_PqQq, BxOpcodeGroupSSE_0fea }, + /* 0F EB /wm */ { BxPrefixSSE, BX_IA_POR_PqQq, BxOpcodeGroupSSE_0feb }, + /* 0F EC /wm */ { BxPrefixSSE, BX_IA_PADDSB_PqQq, BxOpcodeGroupSSE_0fec }, + /* 0F ED /wm */ { BxPrefixSSE, BX_IA_PADDSW_PqQq, BxOpcodeGroupSSE_0fed }, + /* 0F EE /wm */ { BxPrefixSSE, BX_IA_PMAXSW_PqQq, BxOpcodeGroupSSE_0fee }, + /* 0F EF /wm */ { BxPrefixSSE, BX_IA_PXOR_PqQq, BxOpcodeGroupSSE_0fef }, /* 0F F0 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff0M }, - /* 0F F1 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff1 }, - /* 0F F2 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff2 }, - /* 0F F3 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff3 }, - /* 0F F4 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff4 }, - /* 0F F5 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff5 }, - /* 0F F6 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff6 }, + /* 0F F1 /wm */ { BxPrefixSSE, BX_IA_PSLLW_PqQq, BxOpcodeGroupSSE_0ff1 }, + /* 0F F2 /wm */ { BxPrefixSSE, BX_IA_PSLLD_PqQq, BxOpcodeGroupSSE_0ff2 }, + /* 0F F3 /wm */ { BxPrefixSSE, BX_IA_PSLLQ_PqQq, BxOpcodeGroupSSE_0ff3 }, + /* 0F F4 /wm */ { BxPrefixSSE, BX_IA_PMULUDQ_PqQq, BxOpcodeGroupSSE_0ff4 }, + /* 0F F5 /wm */ { BxPrefixSSE, BX_IA_PMADDWD_PqQq, BxOpcodeGroupSSE_0ff5 }, + /* 0F F6 /wm */ { BxPrefixSSE, BX_IA_PSADBW_PqQq, BxOpcodeGroupSSE_0ff6 }, /* 0F F7 /wm */ { 0, BX_IA_ERROR }, // MASKMOV SSE group - /* 0F F8 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff8 }, - /* 0F F9 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff9 }, - /* 0F FA /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffa }, - /* 0F FB /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffb }, - /* 0F FC /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffc }, - /* 0F FD /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffd }, - /* 0F FE /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffe }, + /* 0F F8 /wm */ { BxPrefixSSE, BX_IA_PSUBB_PqQq, BxOpcodeGroupSSE_0ff8 }, + /* 0F F9 /wm */ { BxPrefixSSE, BX_IA_PSUBW_PqQq, BxOpcodeGroupSSE_0ff9 }, + /* 0F FA /wm */ { BxPrefixSSE, BX_IA_PSUBD_PqQq, BxOpcodeGroupSSE_0ffa }, + /* 0F FB /wm */ { BxPrefixSSE, BX_IA_PSUBQ_PqQq, BxOpcodeGroupSSE_0ffb }, + /* 0F FC /wm */ { BxPrefixSSE, BX_IA_PADDB_PqQq, BxOpcodeGroupSSE_0ffc }, + /* 0F FD /wm */ { BxPrefixSSE, BX_IA_PADDW_PqQq, BxOpcodeGroupSSE_0ffd }, + /* 0F FE /wm */ { BxPrefixSSE, BX_IA_PADDD_PqQq, BxOpcodeGroupSSE_0ffe }, /* 0F FF /wm */ { 0, BX_IA_ERROR }, // 512 entries for 32bit operand size @@ -2572,14 +2572,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { #else /* 0F 0F /dm */ { 0, BX_IA_ERROR }, #endif - /* 0F 10 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f10 }, - /* 0F 11 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f11 }, - /* 0F 12 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f12 }, - /* 0F 13 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f13M }, - /* 0F 14 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f14 }, - /* 0F 15 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f15 }, - /* 0F 16 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f16 }, - /* 0F 17 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f17M }, + /* 0F 10 /dm */ { BxPrefixSSE, BX_IA_MOVUPS_VpsWps, BxOpcodeGroupSSE_0f10 }, + /* 0F 11 /dm */ { BxPrefixSSE, BX_IA_MOVUPS_WpsVps, BxOpcodeGroupSSE_0f11 }, + /* 0F 12 /dm */ { BxPrefixSSE, BX_IA_MOVLPS_VpsMq, BxOpcodeGroupSSE_0f12 }, + /* 0F 13 /dm */ { BxPrefixSSE, BX_IA_MOVLPS_MqVps, BxOpcodeGroupSSE_0f13M }, + /* 0F 14 /dm */ { BxPrefixSSE, BX_IA_UNPCKLPS_VpsWdq, BxOpcodeGroupSSE_0f14 }, + /* 0F 15 /dm */ { BxPrefixSSE, BX_IA_UNPCKHPS_VpsWdq, BxOpcodeGroupSSE_0f15 }, + /* 0F 16 /dm */ { BxPrefixSSE, BX_IA_MOVHPS_VpsMq, BxOpcodeGroupSSE_0f16 }, + /* 0F 17 /dm */ { BxPrefixSSE, BX_IA_MOVHPS_MqVps, BxOpcodeGroupSSE_0f17M }, /* 0F 18 /dm */ { 0, BX_IA_PREFETCH }, // opcode group G16, PREFETCH hints /* 0F 19 /dm */ { 0, BX_IA_NOP }, // multi-byte NOP /* 0F 1A /dm */ { 0, BX_IA_NOP }, // multi-byte NOP @@ -2596,14 +2596,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F 25 /dm */ { 0, BX_IA_ERROR }, /* 0F 26 /dm */ { 0, BX_IA_ERROR }, /* 0F 27 /dm */ { 0, BX_IA_ERROR }, - /* 0F 28 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f28 }, - /* 0F 29 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f29 }, - /* 0F 2A /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2a }, - /* 0F 2B /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2bM }, - /* 0F 2C /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2c }, - /* 0F 2D /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2d }, - /* 0F 2E /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2e }, - /* 0F 2F /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2f }, + /* 0F 28 /dm */ { BxPrefixSSE, BX_IA_MOVAPS_VpsWps, BxOpcodeGroupSSE_0f28 }, + /* 0F 29 /dm */ { BxPrefixSSE, BX_IA_MOVAPS_WpsVps, BxOpcodeGroupSSE_0f29 }, + /* 0F 2A /dm */ { BxPrefixSSE, BX_IA_CVTPI2PS_VpsQq, BxOpcodeGroupSSE_0f2a }, + /* 0F 2B /dm */ { BxPrefixSSE, BX_IA_MOVNTPS_MpsVps, BxOpcodeGroupSSE_0f2bM }, + /* 0F 2C /dm */ { BxPrefixSSE, BX_IA_CVTTPS2PI_PqWps, BxOpcodeGroupSSE_0f2c }, + /* 0F 2D /dm */ { BxPrefixSSE, BX_IA_CVTPS2PI_PqWps, BxOpcodeGroupSSE_0f2d }, + /* 0F 2E /dm */ { BxPrefixSSE, BX_IA_UCOMISS_VssWss, BxOpcodeGroupSSE_0f2e }, + /* 0F 2F /dm */ { BxPrefixSSE, BX_IA_COMISS_VpsWps, BxOpcodeGroupSSE_0f2f }, /* 0F 30 /dm */ { 0, BX_IA_WRMSR }, /* 0F 31 /dm */ { 0, BX_IA_RDTSC }, /* 0F 32 /dm */ { 0, BX_IA_RDMSR }, @@ -2644,45 +2644,45 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F 4D /dm */ { 0, BX_IA_CMOVNL_GdEdM }, /* 0F 4E /dm */ { 0, BX_IA_CMOVLE_GdEdM }, /* 0F 4F /dm */ { 0, BX_IA_CMOVNLE_GdEdM }, - /* 0F 50 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f50 }, - /* 0F 51 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f51 }, - /* 0F 52 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f52 }, - /* 0F 53 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f53 }, - /* 0F 54 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f54 }, - /* 0F 55 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f55 }, - /* 0F 56 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f56 }, - /* 0F 57 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f57 }, - /* 0F 58 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f58 }, - /* 0F 59 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f59 }, - /* 0F 5A /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5a }, - /* 0F 5B /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5b }, - /* 0F 5C /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5c }, - /* 0F 5D /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5d }, - /* 0F 5E /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5e }, - /* 0F 5F /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5f }, - /* 0F 60 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f60 }, - /* 0F 61 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f61 }, - /* 0F 62 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f62 }, - /* 0F 63 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f63 }, - /* 0F 64 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f64 }, - /* 0F 65 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f65 }, - /* 0F 66 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f66 }, - /* 0F 67 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f67 }, - /* 0F 68 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f68 }, - /* 0F 69 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f69 }, - /* 0F 6A /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6a }, - /* 0F 6B /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6b }, + /* 0F 50 /dm */ { BxPrefixSSE, BX_IA_MOVMSKPS_GdVRps, BxOpcodeGroupSSE_0f50 }, + /* 0F 51 /dm */ { BxPrefixSSE, BX_IA_SQRTPS_VpsWps, BxOpcodeGroupSSE_0f51 }, + /* 0F 52 /dm */ { BxPrefixSSE, BX_IA_RSQRTPS_VpsWps, BxOpcodeGroupSSE_0f52 }, + /* 0F 53 /dm */ { BxPrefixSSE, BX_IA_RCPPS_VpsWps, BxOpcodeGroupSSE_0f53 }, + /* 0F 54 /dm */ { BxPrefixSSE, BX_IA_ANDPS_VpsWps, BxOpcodeGroupSSE_0f54 }, + /* 0F 55 /dm */ { BxPrefixSSE, BX_IA_ANDNPS_VpsWps, BxOpcodeGroupSSE_0f55 }, + /* 0F 56 /dm */ { BxPrefixSSE, BX_IA_ORPS_VpsWps, BxOpcodeGroupSSE_0f56 }, + /* 0F 57 /dm */ { BxPrefixSSE, BX_IA_XORPS_VpsWps, BxOpcodeGroupSSE_0f57 }, + /* 0F 58 /dm */ { BxPrefixSSE, BX_IA_ADDPS_VpsWps, BxOpcodeGroupSSE_0f58 }, + /* 0F 59 /dm */ { BxPrefixSSE, BX_IA_MULPS_VpsWps, BxOpcodeGroupSSE_0f59 }, + /* 0F 5A /dm */ { BxPrefixSSE, BX_IA_CVTPS2PD_VpsWps, BxOpcodeGroupSSE_0f5a }, + /* 0F 5B /dm */ { BxPrefixSSE, BX_IA_CVTDQ2PS_VpsWdq, BxOpcodeGroupSSE_0f5b }, + /* 0F 5C /dm */ { BxPrefixSSE, BX_IA_SUBPS_VpsWps, BxOpcodeGroupSSE_0f5c }, + /* 0F 5D /dm */ { BxPrefixSSE, BX_IA_MINPS_VpsWps, BxOpcodeGroupSSE_0f5d }, + /* 0F 5E /dm */ { BxPrefixSSE, BX_IA_DIVPS_VpsWps, BxOpcodeGroupSSE_0f5e }, + /* 0F 5F /dm */ { BxPrefixSSE, BX_IA_MAXPS_VpsWps, BxOpcodeGroupSSE_0f5f }, + /* 0F 60 /dm */ { BxPrefixSSE, BX_IA_PUNPCKLBW_PqQd, BxOpcodeGroupSSE_0f60 }, + /* 0F 61 /dm */ { BxPrefixSSE, BX_IA_PUNPCKLWD_PqQd, BxOpcodeGroupSSE_0f61 }, + /* 0F 62 /dm */ { BxPrefixSSE, BX_IA_PUNPCKLDQ_PqQd, BxOpcodeGroupSSE_0f62 }, + /* 0F 63 /dm */ { BxPrefixSSE, BX_IA_PACKSSWB_PqQq, BxOpcodeGroupSSE_0f63 }, + /* 0F 64 /dm */ { BxPrefixSSE, BX_IA_PCMPGTB_PqQq, BxOpcodeGroupSSE_0f64 }, + /* 0F 65 /dm */ { BxPrefixSSE, BX_IA_PCMPGTW_PqQq, BxOpcodeGroupSSE_0f65 }, + /* 0F 66 /dm */ { BxPrefixSSE, BX_IA_PCMPGTD_PqQq, BxOpcodeGroupSSE_0f66 }, + /* 0F 67 /dm */ { BxPrefixSSE, BX_IA_PACKUSWB_PqQq, BxOpcodeGroupSSE_0f67 }, + /* 0F 68 /dm */ { BxPrefixSSE, BX_IA_PUNPCKHBW_PqQq, BxOpcodeGroupSSE_0f68 }, + /* 0F 69 /dm */ { BxPrefixSSE, BX_IA_PUNPCKHWD_PqQq, BxOpcodeGroupSSE_0f69 }, + /* 0F 6A /dm */ { BxPrefixSSE, BX_IA_PUNPCKHDQ_PqQq, BxOpcodeGroupSSE_0f6a }, + /* 0F 6B /dm */ { BxPrefixSSE, BX_IA_PACKSSDW_PqQq, BxOpcodeGroupSSE_0f6b }, /* 0F 6C /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6c }, /* 0F 6D /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6d }, - /* 0F 6E /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6e }, - /* 0F 6F /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6f }, - /* 0F 70 /dm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f70 }, + /* 0F 6E /dm */ { BxPrefixSSE, BX_IA_MOVD_PqEd, BxOpcodeGroupSSE_0f6e }, + /* 0F 6F /dm */ { BxPrefixSSE, BX_IA_MOVQ_PqQq, BxOpcodeGroupSSE_0f6f }, + /* 0F 70 /dm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PSHUFW_PqQqIb, BxOpcodeGroupSSE_0f70 }, /* 0F 71 /dm */ { 0, BX_IA_ERROR }, // SSE Group G12 /* 0F 72 /dm */ { 0, BX_IA_ERROR }, // SSE Group G13 /* 0F 73 /dm */ { 0, BX_IA_ERROR }, // SSE Group G14 - /* 0F 74 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f74 }, - /* 0F 75 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f75 }, - /* 0F 76 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f76 }, + /* 0F 74 /dm */ { BxPrefixSSE, BX_IA_PCMPEQB_PqQq, BxOpcodeGroupSSE_0f74 }, + /* 0F 75 /dm */ { BxPrefixSSE, BX_IA_PCMPEQW_PqQq, BxOpcodeGroupSSE_0f75 }, + /* 0F 76 /dm */ { BxPrefixSSE, BX_IA_PCMPEQD_PqQq, BxOpcodeGroupSSE_0f76 }, /* 0F 77 /dm */ { 0, BX_IA_EMMS }, /* 0F 78 /dm */ { 0, BX_IA_ERROR }, /* 0F 79 /dm */ { 0, BX_IA_ERROR }, @@ -2690,8 +2690,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F 7B /dm */ { 0, BX_IA_ERROR }, /* 0F 7C /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7c }, /* 0F 7D /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7d }, - /* 0F 7E /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7e }, - /* 0F 7F /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7f }, + /* 0F 7E /dm */ { BxPrefixSSE, BX_IA_MOVD_EdPd, BxOpcodeGroupSSE_0f7e }, + /* 0F 7F /dm */ { BxPrefixSSE, BX_IA_MOVQ_QqPq, BxOpcodeGroupSSE_0f7f }, /* 0F 80 /dm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JO_Jq }, /* 0F 81 /dm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JNO_Jq }, /* 0F 82 /dm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JB_Jq }, @@ -2758,11 +2758,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F BF /dm */ { 0, BX_IA_MOVSX_GdEwM }, /* 0F C0 /dm */ { BxLockable, BX_IA_XADD_EbGbM }, /* 0F C1 /dm */ { BxLockable, BX_IA_XADD_EdGdM }, - /* 0F C2 /dm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 }, - /* 0F C3 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc3M }, - /* 0F C4 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 }, + /* 0F C2 /dm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_CMPPS_VpsWpsIb, BxOpcodeGroupSSE_0fc2 }, + /* 0F C3 /dm */ { BxPrefixSSE, BX_IA_MOVNTI_MdGd, BxOpcodeGroupSSE_ERR }, + /* 0F C4 /dm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PINSRW_PqEwIb, BxOpcodeGroupSSE_0fc4 }, /* 0F C5 /dm */ { 0, BX_IA_ERROR }, // PEXTRW SSE group - /* 0F C6 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 }, + /* 0F C6 /dm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb, BxOpcodeGroupSSE_0fc6 }, /* 0F C7 /dm */ { BxGroup9, BX_IA_ERROR, BxOpcodeInfoG9M }, /* 0F C8 /dm */ { 0, BX_IA_BSWAP_ERX }, /* 0F C9 /dm */ { 0, BX_IA_BSWAP_ERX }, @@ -2772,53 +2772,53 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F CD /dm */ { 0, BX_IA_BSWAP_ERX }, /* 0F CE /dm */ { 0, BX_IA_BSWAP_ERX }, /* 0F CF /dm */ { 0, BX_IA_BSWAP_ERX }, - /* 0F D0 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd0 }, - /* 0F D1 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd1 }, - /* 0F D2 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd2 }, - /* 0F D3 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd3 }, - /* 0F D4 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd4 }, - /* 0F D5 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd5 }, + /* 0F D0 /dm */ { BxPrefixSSE, BX_IA_ADDSUBPD_VpdWpd, BxOpcodeGroupSSE_0fd0 }, + /* 0F D1 /dm */ { BxPrefixSSE, BX_IA_PSRLW_PqQq, BxOpcodeGroupSSE_0fd1 }, + /* 0F D2 /dm */ { BxPrefixSSE, BX_IA_PSRLD_PqQq, BxOpcodeGroupSSE_0fd2 }, + /* 0F D3 /dm */ { BxPrefixSSE, BX_IA_PSRLQ_PqQq, BxOpcodeGroupSSE_0fd3 }, + /* 0F D4 /dm */ { BxPrefixSSE, BX_IA_PADDQ_PqQq, BxOpcodeGroupSSE_0fd4 }, + /* 0F D5 /dm */ { BxPrefixSSE, BX_IA_PMULLW_PqQq, BxOpcodeGroupSSE_0fd5 }, /* 0F D6 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd6 }, - /* 0F D7 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd7 }, - /* 0F D8 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd8 }, - /* 0F D9 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd9 }, - /* 0F DA /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fda }, - /* 0F DB /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdb }, - /* 0F DC /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdc }, - /* 0F DD /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdd }, - /* 0F DE /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fde }, - /* 0F DF /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdf }, - /* 0F E0 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe0 }, - /* 0F E1 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe1 }, - /* 0F E2 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe2 }, - /* 0F E3 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe3 }, - /* 0F E4 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe4 }, - /* 0F E5 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe5 }, + /* 0F D7 /dm */ { BxPrefixSSE, BX_IA_PMOVMSKB_GdPRq, BxOpcodeGroupSSE_0fd7 }, + /* 0F D8 /dm */ { BxPrefixSSE, BX_IA_PSUBUSB_PqQq, BxOpcodeGroupSSE_0fd8 }, + /* 0F D9 /dm */ { BxPrefixSSE, BX_IA_PSUBUSW_PqQq, BxOpcodeGroupSSE_0fd9 }, + /* 0F DA /dm */ { BxPrefixSSE, BX_IA_PMINUB_PqQq, BxOpcodeGroupSSE_0fda }, + /* 0F DB /dm */ { BxPrefixSSE, BX_IA_PAND_PqQq, BxOpcodeGroupSSE_0fdb }, + /* 0F DC /dm */ { BxPrefixSSE, BX_IA_PADDUSB_PqQq, BxOpcodeGroupSSE_0fdc }, + /* 0F DD /dm */ { BxPrefixSSE, BX_IA_PADDUSW_PqQq, BxOpcodeGroupSSE_0fdd }, + /* 0F DE /dm */ { BxPrefixSSE, BX_IA_PMAXUB_PqQq, BxOpcodeGroupSSE_0fde }, + /* 0F DF /dm */ { BxPrefixSSE, BX_IA_PANDN_PqQq, BxOpcodeGroupSSE_0fdf }, + /* 0F E0 /dm */ { BxPrefixSSE, BX_IA_PAVGB_PqQq, BxOpcodeGroupSSE_0fe0 }, + /* 0F E1 /dm */ { BxPrefixSSE, BX_IA_PSRAW_PqQq, BxOpcodeGroupSSE_0fe1 }, + /* 0F E2 /dm */ { BxPrefixSSE, BX_IA_PSRAD_PqQq, BxOpcodeGroupSSE_0fe2 }, + /* 0F E3 /dm */ { BxPrefixSSE, BX_IA_PAVGW_PqQq, BxOpcodeGroupSSE_0fe3 }, + /* 0F E4 /dm */ { BxPrefixSSE, BX_IA_PMULHUW_PqQq, BxOpcodeGroupSSE_0fe4 }, + /* 0F E5 /dm */ { BxPrefixSSE, BX_IA_PMULHW_PqQq, BxOpcodeGroupSSE_0fe5 }, /* 0F E6 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe6 }, - /* 0F E7 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe7M }, - /* 0F E8 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe8 }, - /* 0F E9 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe9 }, - /* 0F EA /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fea }, - /* 0F EB /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0feb }, - /* 0F EC /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fec }, - /* 0F ED /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fed }, - /* 0F EE /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fee }, - /* 0F EF /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fef }, + /* 0F E7 /dm */ { BxPrefixSSE, BX_IA_MOVNTQ_MqPq, BxOpcodeGroupSSE_0fe7M }, + /* 0F E8 /dm */ { BxPrefixSSE, BX_IA_PSUBSB_PqQq, BxOpcodeGroupSSE_0fe8 }, + /* 0F E9 /dm */ { BxPrefixSSE, BX_IA_PSUBSW_PqQq, BxOpcodeGroupSSE_0fe9 }, + /* 0F EA /dm */ { BxPrefixSSE, BX_IA_PMINSW_PqQq, BxOpcodeGroupSSE_0fea }, + /* 0F EB /dm */ { BxPrefixSSE, BX_IA_POR_PqQq, BxOpcodeGroupSSE_0feb }, + /* 0F EC /dm */ { BxPrefixSSE, BX_IA_PADDSB_PqQq, BxOpcodeGroupSSE_0fec }, + /* 0F ED /dm */ { BxPrefixSSE, BX_IA_PADDSW_PqQq, BxOpcodeGroupSSE_0fed }, + /* 0F EE /dm */ { BxPrefixSSE, BX_IA_PMAXSW_PqQq, BxOpcodeGroupSSE_0fee }, + /* 0F EF /dm */ { BxPrefixSSE, BX_IA_PXOR_PqQq, BxOpcodeGroupSSE_0fef }, /* 0F F0 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff0M }, - /* 0F F1 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff1 }, - /* 0F F2 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff2 }, - /* 0F F3 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff3 }, - /* 0F F4 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff4 }, - /* 0F F5 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff5 }, - /* 0F F6 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff6 }, + /* 0F F1 /dm */ { BxPrefixSSE, BX_IA_PSLLW_PqQq, BxOpcodeGroupSSE_0ff1 }, + /* 0F F2 /dm */ { BxPrefixSSE, BX_IA_PSLLD_PqQq, BxOpcodeGroupSSE_0ff2 }, + /* 0F F3 /dm */ { BxPrefixSSE, BX_IA_PSLLQ_PqQq, BxOpcodeGroupSSE_0ff3 }, + /* 0F F4 /dm */ { BxPrefixSSE, BX_IA_PMULUDQ_PqQq, BxOpcodeGroupSSE_0ff4 }, + /* 0F F5 /dm */ { BxPrefixSSE, BX_IA_PMADDWD_PqQq, BxOpcodeGroupSSE_0ff5 }, + /* 0F F6 /dm */ { BxPrefixSSE, BX_IA_PSADBW_PqQq, BxOpcodeGroupSSE_0ff6 }, /* 0F F7 /dm */ { 0, BX_IA_ERROR }, // MASKMOV SSE group - /* 0F F8 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff8 }, - /* 0F F9 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff9 }, - /* 0F FA /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffa }, - /* 0F FB /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffb }, - /* 0F FC /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffc }, - /* 0F FD /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffd }, - /* 0F FE /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffe }, + /* 0F F8 /dm */ { BxPrefixSSE, BX_IA_PSUBB_PqQq, BxOpcodeGroupSSE_0ff8 }, + /* 0F F9 /dm */ { BxPrefixSSE, BX_IA_PSUBW_PqQq, BxOpcodeGroupSSE_0ff9 }, + /* 0F FA /dm */ { BxPrefixSSE, BX_IA_PSUBD_PqQq, BxOpcodeGroupSSE_0ffa }, + /* 0F FB /dm */ { BxPrefixSSE, BX_IA_PSUBQ_PqQq, BxOpcodeGroupSSE_0ffb }, + /* 0F FC /dm */ { BxPrefixSSE, BX_IA_PADDB_PqQq, BxOpcodeGroupSSE_0ffc }, + /* 0F FD /dm */ { BxPrefixSSE, BX_IA_PADDW_PqQq, BxOpcodeGroupSSE_0ffd }, + /* 0F FE /dm */ { BxPrefixSSE, BX_IA_PADDD_PqQq, BxOpcodeGroupSSE_0ffe }, /* 0F FF /dm */ { 0, BX_IA_ERROR }, // 512 entries for 64bit operand size @@ -3099,14 +3099,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { #else /* 0F 0F /qm */ { 0, BX_IA_ERROR }, #endif - /* 0F 10 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f10 }, - /* 0F 11 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f11 }, - /* 0F 12 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f12 }, - /* 0F 13 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f13M }, - /* 0F 14 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f14 }, - /* 0F 15 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f15 }, - /* 0F 16 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f16 }, - /* 0F 17 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f17M }, + /* 0F 10 /qm */ { BxPrefixSSE, BX_IA_MOVUPS_VpsWps, BxOpcodeGroupSSE_0f10 }, + /* 0F 11 /qm */ { BxPrefixSSE, BX_IA_MOVUPS_WpsVps, BxOpcodeGroupSSE_0f11 }, + /* 0F 12 /qm */ { BxPrefixSSE, BX_IA_MOVLPS_VpsMq, BxOpcodeGroupSSE_0f12 }, + /* 0F 13 /qm */ { BxPrefixSSE, BX_IA_MOVLPS_MqVps, BxOpcodeGroupSSE_0f13M }, + /* 0F 14 /qm */ { BxPrefixSSE, BX_IA_UNPCKLPS_VpsWdq, BxOpcodeGroupSSE_0f14 }, + /* 0F 15 /qm */ { BxPrefixSSE, BX_IA_UNPCKHPS_VpsWdq, BxOpcodeGroupSSE_0f15 }, + /* 0F 16 /qm */ { BxPrefixSSE, BX_IA_MOVHPS_VpsMq, BxOpcodeGroupSSE_0f16 }, + /* 0F 17 /qm */ { BxPrefixSSE, BX_IA_MOVHPS_MqVps, BxOpcodeGroupSSE_0f17M }, /* 0F 18 /qm */ { 0, BX_IA_PREFETCH }, // opcode group G16, PREFETCH hints /* 0F 19 /qm */ { 0, BX_IA_NOP }, // multi-byte NOP /* 0F 1A /qm */ { 0, BX_IA_NOP }, // multi-byte NOP @@ -3123,14 +3123,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F 25 /qm */ { 0, BX_IA_ERROR }, /* 0F 26 /qm */ { 0, BX_IA_ERROR }, /* 0F 27 /qm */ { 0, BX_IA_ERROR }, - /* 0F 28 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f28 }, - /* 0F 29 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f29 }, - /* 0F 2A /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2a }, - /* 0F 2B /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2bM }, - /* 0F 2C /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2c }, - /* 0F 2D /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2d }, - /* 0F 2E /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2e }, - /* 0F 2F /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f2f }, + /* 0F 28 /qm */ { BxPrefixSSE, BX_IA_MOVAPS_VpsWps, BxOpcodeGroupSSE_0f28 }, + /* 0F 29 /qm */ { BxPrefixSSE, BX_IA_MOVAPS_WpsVps, BxOpcodeGroupSSE_0f29 }, + /* 0F 2A /qm */ { BxPrefixSSE, BX_IA_CVTPI2PS_VpsQq, BxOpcodeGroupSSE_0f2a }, + /* 0F 2B /qm */ { BxPrefixSSE, BX_IA_MOVNTPS_MpsVps, BxOpcodeGroupSSE_0f2bM }, + /* 0F 2C /qm */ { BxPrefixSSE, BX_IA_CVTTPS2PI_PqWps, BxOpcodeGroupSSE_0f2c }, + /* 0F 2D /qm */ { BxPrefixSSE, BX_IA_CVTPS2PI_PqWps, BxOpcodeGroupSSE_0f2d }, + /* 0F 2E /qm */ { BxPrefixSSE, BX_IA_UCOMISS_VssWss, BxOpcodeGroupSSE_0f2e }, + /* 0F 2F /qm */ { BxPrefixSSE, BX_IA_COMISS_VpsWps, BxOpcodeGroupSSE_0f2f }, /* 0F 30 /qm */ { 0, BX_IA_WRMSR }, /* 0F 31 /qm */ { 0, BX_IA_RDTSC }, /* 0F 32 /qm */ { 0, BX_IA_RDMSR }, @@ -3171,45 +3171,45 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F 4D /qm */ { 0, BX_IA_CMOVNL_GqEqM }, /* 0F 4E /qm */ { 0, BX_IA_CMOVLE_GqEqM }, /* 0F 4F /qm */ { 0, BX_IA_CMOVNLE_GqEqM }, - /* 0F 50 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f50 }, - /* 0F 51 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f51 }, - /* 0F 52 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f52 }, - /* 0F 53 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f53 }, - /* 0F 54 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f54 }, - /* 0F 55 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f55 }, - /* 0F 56 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f56 }, - /* 0F 57 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f57 }, - /* 0F 58 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f58 }, - /* 0F 59 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f59 }, - /* 0F 5A /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5a }, - /* 0F 5B /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5b }, - /* 0F 5C /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5c }, - /* 0F 5D /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5d }, - /* 0F 5E /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5e }, - /* 0F 5F /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f5f }, - /* 0F 60 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f60 }, - /* 0F 61 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f61 }, - /* 0F 62 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f62 }, - /* 0F 63 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f63 }, - /* 0F 64 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f64 }, - /* 0F 65 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f65 }, - /* 0F 66 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f66 }, - /* 0F 67 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f67 }, - /* 0F 68 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f68 }, - /* 0F 69 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f69 }, - /* 0F 6A /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6a }, - /* 0F 6B /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6b }, + /* 0F 50 /qm */ { BxPrefixSSE, BX_IA_MOVMSKPS_GdVRps, BxOpcodeGroupSSE_0f50 }, + /* 0F 51 /qm */ { BxPrefixSSE, BX_IA_SQRTPS_VpsWps, BxOpcodeGroupSSE_0f51 }, + /* 0F 52 /qm */ { BxPrefixSSE, BX_IA_RSQRTPS_VpsWps, BxOpcodeGroupSSE_0f52 }, + /* 0F 53 /qm */ { BxPrefixSSE, BX_IA_RCPPS_VpsWps, BxOpcodeGroupSSE_0f53 }, + /* 0F 54 /qm */ { BxPrefixSSE, BX_IA_ANDPS_VpsWps, BxOpcodeGroupSSE_0f54 }, + /* 0F 55 /qm */ { BxPrefixSSE, BX_IA_ANDNPS_VpsWps, BxOpcodeGroupSSE_0f55 }, + /* 0F 56 /qm */ { BxPrefixSSE, BX_IA_ORPS_VpsWps, BxOpcodeGroupSSE_0f56 }, + /* 0F 57 /qm */ { BxPrefixSSE, BX_IA_XORPS_VpsWps, BxOpcodeGroupSSE_0f57 }, + /* 0F 58 /qm */ { BxPrefixSSE, BX_IA_ADDPS_VpsWps, BxOpcodeGroupSSE_0f58 }, + /* 0F 59 /qm */ { BxPrefixSSE, BX_IA_MULPS_VpsWps, BxOpcodeGroupSSE_0f59 }, + /* 0F 5A /qm */ { BxPrefixSSE, BX_IA_CVTPS2PD_VpsWps, BxOpcodeGroupSSE_0f5a }, + /* 0F 5B /qm */ { BxPrefixSSE, BX_IA_CVTDQ2PS_VpsWdq, BxOpcodeGroupSSE_0f5b }, + /* 0F 5C /qm */ { BxPrefixSSE, BX_IA_SUBPS_VpsWps, BxOpcodeGroupSSE_0f5c }, + /* 0F 5D /qm */ { BxPrefixSSE, BX_IA_MINPS_VpsWps, BxOpcodeGroupSSE_0f5d }, + /* 0F 5E /qm */ { BxPrefixSSE, BX_IA_DIVPS_VpsWps, BxOpcodeGroupSSE_0f5e }, + /* 0F 5F /qm */ { BxPrefixSSE, BX_IA_MAXPS_VpsWps, BxOpcodeGroupSSE_0f5f }, + /* 0F 60 /qm */ { BxPrefixSSE, BX_IA_PUNPCKLBW_PqQd, BxOpcodeGroupSSE_0f60 }, + /* 0F 61 /qm */ { BxPrefixSSE, BX_IA_PUNPCKLWD_PqQd, BxOpcodeGroupSSE_0f61 }, + /* 0F 62 /qm */ { BxPrefixSSE, BX_IA_PUNPCKLDQ_PqQd, BxOpcodeGroupSSE_0f62 }, + /* 0F 63 /qm */ { BxPrefixSSE, BX_IA_PACKSSWB_PqQq, BxOpcodeGroupSSE_0f63 }, + /* 0F 64 /qm */ { BxPrefixSSE, BX_IA_PCMPGTB_PqQq, BxOpcodeGroupSSE_0f64 }, + /* 0F 65 /qm */ { BxPrefixSSE, BX_IA_PCMPGTW_PqQq, BxOpcodeGroupSSE_0f65 }, + /* 0F 66 /qm */ { BxPrefixSSE, BX_IA_PCMPGTD_PqQq, BxOpcodeGroupSSE_0f66 }, + /* 0F 67 /qm */ { BxPrefixSSE, BX_IA_PACKUSWB_PqQq, BxOpcodeGroupSSE_0f67 }, + /* 0F 68 /qm */ { BxPrefixSSE, BX_IA_PUNPCKHBW_PqQq, BxOpcodeGroupSSE_0f68 }, + /* 0F 69 /qm */ { BxPrefixSSE, BX_IA_PUNPCKHWD_PqQq, BxOpcodeGroupSSE_0f69 }, + /* 0F 6A /qm */ { BxPrefixSSE, BX_IA_PUNPCKHDQ_PqQq, BxOpcodeGroupSSE_0f6a }, + /* 0F 6B /qm */ { BxPrefixSSE, BX_IA_PACKSSDW_PqQq, BxOpcodeGroupSSE_0f6b }, /* 0F 6C /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6c }, /* 0F 6D /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6d }, - /* 0F 6E /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6eQ }, - /* 0F 6F /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f6f }, - /* 0F 70 /qm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f70 }, + /* 0F 6E /qm */ { BxPrefixSSE, BX_IA_MOVQ_PqEq, BxOpcodeGroupSSE_0f6eQ }, + /* 0F 6F /qm */ { BxPrefixSSE, BX_IA_MOVQ_PqQq, BxOpcodeGroupSSE_0f6f }, + /* 0F 70 /qm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PSHUFW_PqQqIb, BxOpcodeGroupSSE_0f70 }, /* 0F 71 /qm */ { 0, BX_IA_ERROR }, // SSE Group G12 /* 0F 72 /qm */ { 0, BX_IA_ERROR }, // SSE Group G13 /* 0F 73 /qm */ { 0, BX_IA_ERROR }, // SSE Group G14 - /* 0F 74 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f74 }, - /* 0F 75 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f75 }, - /* 0F 76 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f76 }, + /* 0F 74 /qm */ { BxPrefixSSE, BX_IA_PCMPEQB_PqQq, BxOpcodeGroupSSE_0f74 }, + /* 0F 75 /qm */ { BxPrefixSSE, BX_IA_PCMPEQW_PqQq, BxOpcodeGroupSSE_0f75 }, + /* 0F 76 /qm */ { BxPrefixSSE, BX_IA_PCMPEQD_PqQq, BxOpcodeGroupSSE_0f76 }, /* 0F 77 /qm */ { 0, BX_IA_EMMS }, /* 0F 78 /qm */ { 0, BX_IA_ERROR }, /* 0F 79 /qm */ { 0, BX_IA_ERROR }, @@ -3217,8 +3217,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F 7B /qm */ { 0, BX_IA_ERROR }, /* 0F 7C /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7c }, /* 0F 7D /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7d }, - /* 0F 7E /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7eQ }, - /* 0F 7F /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0f7f }, + /* 0F 7E /qm */ { BxPrefixSSE, BX_IA_MOVQ_EqPq, BxOpcodeGroupSSE_0f7eQ }, + /* 0F 7F /qm */ { BxPrefixSSE, BX_IA_MOVQ_QqPq, BxOpcodeGroupSSE_0f7f }, /* 0F 80 /qm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JO_Jq }, /* 0F 81 /qm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JNO_Jq }, /* 0F 82 /qm */ { BxImmediate_BrOff32 | BxTraceJCC, BX_IA_JB_Jq }, @@ -3285,11 +3285,11 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F BF /qm */ { 0, BX_IA_MOVSX_GqEwM }, /* 0F C0 /qm */ { BxLockable, BX_IA_XADD_EbGbM }, /* 0F C1 /qm */ { BxLockable, BX_IA_XADD_EqGqM }, - /* 0F C2 /qm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 }, - /* 0F C3 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc3qM }, - /* 0F C4 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 }, + /* 0F C2 /qm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_CMPPS_VpsWpsIb, BxOpcodeGroupSSE_0fc2 }, + /* 0F C3 /qm */ { BxPrefixSSE, BX_IA_MOVNTI_MqGq, BxOpcodeGroupSSE_ERR }, + /* 0F C4 /qm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_PINSRW_PqEwIb, BxOpcodeGroupSSE_0fc4 }, /* 0F C5 /qm */ { 0, BX_IA_ERROR }, // PEXTRW SSE group - /* 0F C6 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 }, + /* 0F C6 /qm */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_SHUFPS_VpsWpsIb, BxOpcodeGroupSSE_0fc6 }, /* 0F C7 /qm */ { BxGroup9, BX_IA_ERROR, BxOpcodeInfo64G9qM }, /* 0F C8 /qm */ { 0, BX_IA_BSWAP_RRX }, /* 0F C9 /qm */ { 0, BX_IA_BSWAP_RRX }, @@ -3299,53 +3299,53 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = { /* 0F CD /qm */ { 0, BX_IA_BSWAP_RRX }, /* 0F CE /qm */ { 0, BX_IA_BSWAP_RRX }, /* 0F CF /qm */ { 0, BX_IA_BSWAP_RRX }, - /* 0F D0 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd0 }, - /* 0F D1 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd1 }, - /* 0F D2 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd2 }, - /* 0F D3 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd3 }, - /* 0F D4 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd4 }, - /* 0F D5 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd5 }, + /* 0F D0 /qm */ { BxPrefixSSE, BX_IA_ADDSUBPD_VpdWpd, BxOpcodeGroupSSE_0fd0 }, + /* 0F D1 /qm */ { BxPrefixSSE, BX_IA_PSRLW_PqQq, BxOpcodeGroupSSE_0fd1 }, + /* 0F D2 /qm */ { BxPrefixSSE, BX_IA_PSRLD_PqQq, BxOpcodeGroupSSE_0fd2 }, + /* 0F D3 /qm */ { BxPrefixSSE, BX_IA_PSRLQ_PqQq, BxOpcodeGroupSSE_0fd3 }, + /* 0F D4 /qm */ { BxPrefixSSE, BX_IA_PADDQ_PqQq, BxOpcodeGroupSSE_0fd4 }, + /* 0F D5 /qm */ { BxPrefixSSE, BX_IA_PMULLW_PqQq, BxOpcodeGroupSSE_0fd5 }, /* 0F D6 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd6 }, - /* 0F D7 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd7 }, - /* 0F D8 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd8 }, - /* 0F D9 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fd9 }, - /* 0F DA /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fda }, - /* 0F DB /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdb }, - /* 0F DC /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdc }, - /* 0F DD /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdd }, - /* 0F DE /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fde }, - /* 0F DF /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fdf }, - /* 0F E0 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe0 }, - /* 0F E1 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe1 }, - /* 0F E2 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe2 }, - /* 0F E3 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe3 }, - /* 0F E4 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe4 }, - /* 0F E5 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe5 }, + /* 0F D7 /qm */ { BxPrefixSSE, BX_IA_PMOVMSKB_GdPRq, BxOpcodeGroupSSE_0fd7 }, + /* 0F D8 /qm */ { BxPrefixSSE, BX_IA_PSUBUSB_PqQq, BxOpcodeGroupSSE_0fd8 }, + /* 0F D9 /qm */ { BxPrefixSSE, BX_IA_PSUBUSW_PqQq, BxOpcodeGroupSSE_0fd9 }, + /* 0F DA /qm */ { BxPrefixSSE, BX_IA_PMINUB_PqQq, BxOpcodeGroupSSE_0fda }, + /* 0F DB /qm */ { BxPrefixSSE, BX_IA_PAND_PqQq, BxOpcodeGroupSSE_0fdb }, + /* 0F DC /qm */ { BxPrefixSSE, BX_IA_PADDUSB_PqQq, BxOpcodeGroupSSE_0fdc }, + /* 0F DD /qm */ { BxPrefixSSE, BX_IA_PADDUSW_PqQq, BxOpcodeGroupSSE_0fdd }, + /* 0F DE /qm */ { BxPrefixSSE, BX_IA_PMAXUB_PqQq, BxOpcodeGroupSSE_0fde }, + /* 0F DF /qm */ { BxPrefixSSE, BX_IA_PANDN_PqQq, BxOpcodeGroupSSE_0fdf }, + /* 0F E0 /qm */ { BxPrefixSSE, BX_IA_PAVGB_PqQq, BxOpcodeGroupSSE_0fe0 }, + /* 0F E1 /qm */ { BxPrefixSSE, BX_IA_PSRAW_PqQq, BxOpcodeGroupSSE_0fe1 }, + /* 0F E2 /qm */ { BxPrefixSSE, BX_IA_PSRAD_PqQq, BxOpcodeGroupSSE_0fe2 }, + /* 0F E3 /qm */ { BxPrefixSSE, BX_IA_PAVGW_PqQq, BxOpcodeGroupSSE_0fe3 }, + /* 0F E4 /qm */ { BxPrefixSSE, BX_IA_PMULHUW_PqQq, BxOpcodeGroupSSE_0fe4 }, + /* 0F E5 /qm */ { BxPrefixSSE, BX_IA_PMULHW_PqQq, BxOpcodeGroupSSE_0fe5 }, /* 0F E6 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe6 }, - /* 0F E7 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe7M }, - /* 0F E8 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe8 }, - /* 0F E9 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fe9 }, - /* 0F EA /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fea }, - /* 0F EB /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0feb }, - /* 0F EC /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fec }, - /* 0F ED /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fed }, - /* 0F EE /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fee }, - /* 0F EF /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fef }, + /* 0F E7 /qm */ { BxPrefixSSE, BX_IA_MOVNTQ_MqPq, BxOpcodeGroupSSE_0fe7M }, + /* 0F E8 /qm */ { BxPrefixSSE, BX_IA_PSUBSB_PqQq, BxOpcodeGroupSSE_0fe8 }, + /* 0F E9 /qm */ { BxPrefixSSE, BX_IA_PSUBSW_PqQq, BxOpcodeGroupSSE_0fe9 }, + /* 0F EA /qm */ { BxPrefixSSE, BX_IA_PMINSW_PqQq, BxOpcodeGroupSSE_0fea }, + /* 0F EB /qm */ { BxPrefixSSE, BX_IA_POR_PqQq, BxOpcodeGroupSSE_0feb }, + /* 0F EC /qm */ { BxPrefixSSE, BX_IA_PADDSB_PqQq, BxOpcodeGroupSSE_0fec }, + /* 0F ED /qm */ { BxPrefixSSE, BX_IA_PADDSW_PqQq, BxOpcodeGroupSSE_0fed }, + /* 0F EE /qm */ { BxPrefixSSE, BX_IA_PMAXSW_PqQq, BxOpcodeGroupSSE_0fee }, + /* 0F EF /qm */ { BxPrefixSSE, BX_IA_PXOR_PqQq, BxOpcodeGroupSSE_0fef }, /* 0F F0 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff0M }, - /* 0F F1 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff1 }, - /* 0F F2 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff2 }, - /* 0F F3 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff3 }, - /* 0F F4 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff4 }, - /* 0F F5 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff5 }, - /* 0F F6 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff6 }, + /* 0F F1 /qm */ { BxPrefixSSE, BX_IA_PSLLW_PqQq, BxOpcodeGroupSSE_0ff1 }, + /* 0F F2 /qm */ { BxPrefixSSE, BX_IA_PSLLD_PqQq, BxOpcodeGroupSSE_0ff2 }, + /* 0F F3 /qm */ { BxPrefixSSE, BX_IA_PSLLQ_PqQq, BxOpcodeGroupSSE_0ff3 }, + /* 0F F4 /qm */ { BxPrefixSSE, BX_IA_PMULUDQ_PqQq, BxOpcodeGroupSSE_0ff4 }, + /* 0F F5 /qm */ { BxPrefixSSE, BX_IA_PMADDWD_PqQq, BxOpcodeGroupSSE_0ff5 }, + /* 0F F6 /qm */ { BxPrefixSSE, BX_IA_PSADBW_PqQq, BxOpcodeGroupSSE_0ff6 }, /* 0F F7 /qm */ { 0, BX_IA_ERROR }, // MASKMOV SSE group - /* 0F F8 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff8 }, - /* 0F F9 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ff9 }, - /* 0F FA /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffa }, - /* 0F FB /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffb }, - /* 0F FC /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffc }, - /* 0F FD /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffd }, - /* 0F FE /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0ffe }, + /* 0F F8 /qm */ { BxPrefixSSE, BX_IA_PSUBB_PqQq, BxOpcodeGroupSSE_0ff8 }, + /* 0F F9 /qm */ { BxPrefixSSE, BX_IA_PSUBW_PqQq, BxOpcodeGroupSSE_0ff9 }, + /* 0F FA /qm */ { BxPrefixSSE, BX_IA_PSUBD_PqQq, BxOpcodeGroupSSE_0ffa }, + /* 0F FB /qm */ { BxPrefixSSE, BX_IA_PSUBQ_PqQq, BxOpcodeGroupSSE_0ffb }, + /* 0F FC /qm */ { BxPrefixSSE, BX_IA_PADDB_PqQq, BxOpcodeGroupSSE_0ffc }, + /* 0F FD /qm */ { BxPrefixSSE, BX_IA_PADDW_PqQq, BxOpcodeGroupSSE_0ffd }, + /* 0F FE /qm */ { BxPrefixSSE, BX_IA_PADDD_PqQq, BxOpcodeGroupSSE_0ffe }, /* 0F FF /qm */ { 0, BX_IA_ERROR } }; @@ -3694,10 +3694,13 @@ modrm_done: OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[offset >> 8]); break; case BxPrefixSSE: - /* For SSE opcodes look into another 4 entries table + /* For SSE opcodes look into another table with the opcode prefixes (NONE, 0x66, 0xF2, 0xF3) */ - OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[sse_prefix]); - break; + if (sse_prefix) { + OpcodeInfoPtr = &(OpcodeInfoPtr->AnotherArray[sse_prefix-1]); + break; + } + continue; case BxFPEscape: { int index = (b1-0xD8)*64 + (0x3f & b2); @@ -3849,14 +3852,14 @@ modrm_done: i->setStopTraceAttr(); #endif - i->execute = BxOpcodesTable[ia_opcode].execute; - i->execute2 = BxOpcodesTable[ia_opcode].execute2; - - if (BxOpcodesTable[ia_opcode].attr == BxArithDstRM) { + if (attr & BxArithDstRM) { i->setRm(nnn); i->setNnn(rm); } + i->execute = BxOpcodesTable[ia_opcode].execute1; + i->execute2 = BxOpcodesTable[ia_opcode].execute2; + i->setB1(b1); i->setILen(ilen); diff --git a/bochs/cpu/ia_opcodes.h b/bochs/cpu/ia_opcodes.h index 37845c54b..b18ea8a4d 100644 --- a/bochs/cpu/ia_opcodes.h +++ b/bochs/cpu/ia_opcodes.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: ia_opcodes.h,v 1.18 2008-08-27 21:57:40 sshwarts Exp $ +// $Id: ia_opcodes.h,v 1.19 2008-08-29 19:23:03 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (c) 2008 Stanislav Shwartsman @@ -21,1570 +21,1532 @@ // ///////////////////////////////////////////////////////////////////////// -#define BxArithDstRM 1 +bx_define_opcode(BX_IA_AAA, &BX_CPU_C::AAA, NULL) +bx_define_opcode(BX_IA_AAD, &BX_CPU_C::AAD, NULL) +bx_define_opcode(BX_IA_AAM, &BX_CPU_C::AAM, NULL) +bx_define_opcode(BX_IA_AAS, &BX_CPU_C::AAS, NULL) +bx_define_opcode(BX_IA_DAA, &BX_CPU_C::DAA, NULL) +bx_define_opcode(BX_IA_DAS, &BX_CPU_C::DAS, NULL) +bx_define_opcode(BX_IA_ADC_ALIb, &BX_CPU_C::ADC_ALIb, NULL) +bx_define_opcode(BX_IA_ADC_AXIw, &BX_CPU_C::ADC_AXIw, NULL) +bx_define_opcode(BX_IA_ADC_EAXId, &BX_CPU_C::ADC_EAXId, NULL) +bx_define_opcode(BX_IA_ADC_EbGbM, &BX_CPU_C::ADC_EbGbM, NULL) +bx_define_opcode(BX_IA_ADC_EbIbM, &BX_CPU_C::ADC_EbIbM, NULL) +bx_define_opcode(BX_IA_ADC_EbIbR, &BX_CPU_C::ADC_EbIbR, NULL) +bx_define_opcode(BX_IA_ADC_EdGdM, &BX_CPU_C::ADC_EdGdM, NULL) +bx_define_opcode(BX_IA_ADC_EdIdM, &BX_CPU_C::ADC_EdIdM, NULL) +bx_define_opcode(BX_IA_ADC_EdIdR, &BX_CPU_C::ADC_EdIdR, NULL) +bx_define_opcode(BX_IA_ADC_EwGwM, &BX_CPU_C::ADC_EwGwM, NULL) +bx_define_opcode(BX_IA_ADC_EwIwM, &BX_CPU_C::ADC_EwIwM, NULL) +bx_define_opcode(BX_IA_ADC_EwIwR, &BX_CPU_C::ADC_EwIwR, NULL) +bx_define_opcode(BX_IA_ADC_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::ADC_GbEbR) +bx_define_opcode(BX_IA_ADC_GbEbR, &BX_CPU_C::ADC_GbEbR, NULL) +bx_define_opcode(BX_IA_ADC_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::ADC_GdEdR) +bx_define_opcode(BX_IA_ADC_GdEdR, &BX_CPU_C::ADC_GdEdR, NULL) +bx_define_opcode(BX_IA_ADC_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::ADC_GwEwR) +bx_define_opcode(BX_IA_ADC_GwEwR, &BX_CPU_C::ADC_GwEwR, NULL) +bx_define_opcode(BX_IA_ADD_ALIb, &BX_CPU_C::ADD_ALIb, NULL) +bx_define_opcode(BX_IA_ADD_AXIw, &BX_CPU_C::ADD_AXIw, NULL) +bx_define_opcode(BX_IA_ADD_EAXId, &BX_CPU_C::ADD_EAXId, NULL) +bx_define_opcode(BX_IA_ADD_EbGbM, &BX_CPU_C::ADD_EbGbM, NULL) +bx_define_opcode(BX_IA_ADD_EbIbM, &BX_CPU_C::ADD_EbIbM, NULL) +bx_define_opcode(BX_IA_ADD_EbIbR, &BX_CPU_C::ADD_EbIbR, NULL) +bx_define_opcode(BX_IA_ADD_EdGdM, &BX_CPU_C::ADD_EdGdM, NULL) +bx_define_opcode(BX_IA_ADD_EdIdM, &BX_CPU_C::ADD_EdIdM, NULL) +bx_define_opcode(BX_IA_ADD_EdIdR, &BX_CPU_C::ADD_EdIdR, NULL) +bx_define_opcode(BX_IA_ADD_EwGwM, &BX_CPU_C::ADD_EwGwM, NULL) +bx_define_opcode(BX_IA_ADD_EwIwM, &BX_CPU_C::ADD_EwIwM, NULL) +bx_define_opcode(BX_IA_ADD_EwIwR, &BX_CPU_C::ADD_EwIwR, NULL) +bx_define_opcode(BX_IA_ADD_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::ADD_GbEbR) +bx_define_opcode(BX_IA_ADD_GbEbR, &BX_CPU_C::ADD_GbEbR, NULL) +bx_define_opcode(BX_IA_ADD_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::ADD_GdEdR) +bx_define_opcode(BX_IA_ADD_GdEdR, &BX_CPU_C::ADD_GdEdR, NULL) +bx_define_opcode(BX_IA_ADD_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::ADD_GwEwR) +bx_define_opcode(BX_IA_ADD_GwEwR, &BX_CPU_C::ADD_GwEwR, NULL) +bx_define_opcode(BX_IA_AND_ALIb, &BX_CPU_C::AND_ALIb, NULL) +bx_define_opcode(BX_IA_AND_AXIw, &BX_CPU_C::AND_AXIw, NULL) +bx_define_opcode(BX_IA_AND_EAXId, &BX_CPU_C::AND_EAXId, NULL) +bx_define_opcode(BX_IA_AND_EbGbM, &BX_CPU_C::AND_EbGbM, NULL) +bx_define_opcode(BX_IA_AND_EbIbM, &BX_CPU_C::AND_EbIbM, NULL) +bx_define_opcode(BX_IA_AND_EbIbR, &BX_CPU_C::AND_EbIbR, NULL) +bx_define_opcode(BX_IA_AND_EdGdM, &BX_CPU_C::AND_EdGdM, NULL) +bx_define_opcode(BX_IA_AND_EdIdM, &BX_CPU_C::AND_EdIdM, NULL) +bx_define_opcode(BX_IA_AND_EdIdR, &BX_CPU_C::AND_EdIdR, NULL) +bx_define_opcode(BX_IA_AND_EwGwM, &BX_CPU_C::AND_EwGwM, NULL) +bx_define_opcode(BX_IA_AND_EwIwM, &BX_CPU_C::AND_EwIwM, NULL) +bx_define_opcode(BX_IA_AND_EwIwR, &BX_CPU_C::AND_EwIwR, NULL) +bx_define_opcode(BX_IA_AND_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::AND_GbEbR) +bx_define_opcode(BX_IA_AND_GbEbR, &BX_CPU_C::AND_GbEbR, NULL) +bx_define_opcode(BX_IA_AND_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::AND_GdEdR) +bx_define_opcode(BX_IA_AND_GdEdR, &BX_CPU_C::AND_GdEdR, NULL) +bx_define_opcode(BX_IA_AND_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::AND_GwEwR) +bx_define_opcode(BX_IA_AND_GwEwR, &BX_CPU_C::AND_GwEwR, NULL) +bx_define_opcode(BX_IA_ARPL_EwGw, &BX_CPU_C::ARPL_EwGw, NULL) +bx_define_opcode(BX_IA_BOUND_GdMa, &BX_CPU_C::BOUND_GdMa, NULL) +bx_define_opcode(BX_IA_BOUND_GwMa, &BX_CPU_C::BOUND_GwMa, NULL) +bx_define_opcode(BX_IA_BSF_GdEdR, &BX_CPU_C::BSF_GdEdR, NULL) +bx_define_opcode(BX_IA_BSF_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BSF_GdEdR) +bx_define_opcode(BX_IA_BSF_GwEwR, &BX_CPU_C::BSF_GwEwR, NULL) +bx_define_opcode(BX_IA_BSF_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::BSF_GwEwR) +bx_define_opcode(BX_IA_BSR_GdEdR, &BX_CPU_C::BSR_GdEdR, NULL) +bx_define_opcode(BX_IA_BSR_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BSR_GdEdR) +bx_define_opcode(BX_IA_BSR_GwEwR, &BX_CPU_C::BSR_GwEwR, NULL) +bx_define_opcode(BX_IA_BSR_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::BSR_GwEwR) +bx_define_opcode(BX_IA_BSWAP_ERX, &BX_CPU_C::BSWAP_ERX, NULL) +bx_define_opcode(BX_IA_BT_EdGdM, &BX_CPU_C::BT_EdGdM, NULL) +bx_define_opcode(BX_IA_BT_EdGdR, &BX_CPU_C::BT_EdGdR, NULL) +bx_define_opcode(BX_IA_BT_EdIbM, &BX_CPU_C::BT_EdIbM, NULL) +bx_define_opcode(BX_IA_BT_EdIbR, &BX_CPU_C::BT_EdIbR, NULL) +bx_define_opcode(BX_IA_BT_EwGwM, &BX_CPU_C::BT_EwGwM, NULL) +bx_define_opcode(BX_IA_BT_EwGwR, &BX_CPU_C::BT_EwGwR, NULL) +bx_define_opcode(BX_IA_BT_EwIbM, &BX_CPU_C::BT_EwIbM, NULL) +bx_define_opcode(BX_IA_BT_EwIbR, &BX_CPU_C::BT_EwIbR, NULL) +bx_define_opcode(BX_IA_BTC_EdGdM, &BX_CPU_C::BTC_EdGdM, NULL) +bx_define_opcode(BX_IA_BTC_EdGdR, &BX_CPU_C::BTC_EdGdR, NULL) +bx_define_opcode(BX_IA_BTC_EdIbM, &BX_CPU_C::BTC_EdIbM, NULL) +bx_define_opcode(BX_IA_BTC_EdIbR, &BX_CPU_C::BTC_EdIbR, NULL) +bx_define_opcode(BX_IA_BTC_EwGwM, &BX_CPU_C::BTC_EwGwM, NULL) +bx_define_opcode(BX_IA_BTC_EwGwR, &BX_CPU_C::BTC_EwGwR, NULL) +bx_define_opcode(BX_IA_BTC_EwIbM, &BX_CPU_C::BTC_EwIbM, NULL) +bx_define_opcode(BX_IA_BTC_EwIbR, &BX_CPU_C::BTC_EwIbR, NULL) +bx_define_opcode(BX_IA_BTR_EdGdM, &BX_CPU_C::BTR_EdGdM, NULL) +bx_define_opcode(BX_IA_BTR_EdGdR, &BX_CPU_C::BTR_EdGdR, NULL) +bx_define_opcode(BX_IA_BTR_EdIbM, &BX_CPU_C::BTR_EdIbM, NULL) +bx_define_opcode(BX_IA_BTR_EdIbR, &BX_CPU_C::BTR_EdIbR, NULL) +bx_define_opcode(BX_IA_BTR_EwGwM, &BX_CPU_C::BTR_EwGwM, NULL) +bx_define_opcode(BX_IA_BTR_EwGwR, &BX_CPU_C::BTR_EwGwR, NULL) +bx_define_opcode(BX_IA_BTR_EwIbM, &BX_CPU_C::BTR_EwIbM, NULL) +bx_define_opcode(BX_IA_BTR_EwIbR, &BX_CPU_C::BTR_EwIbR, NULL) +bx_define_opcode(BX_IA_BTS_EdGdM, &BX_CPU_C::BTS_EdGdM, NULL) +bx_define_opcode(BX_IA_BTS_EdGdR, &BX_CPU_C::BTS_EdGdR, NULL) +bx_define_opcode(BX_IA_BTS_EdIbM, &BX_CPU_C::BTS_EdIbM, NULL) +bx_define_opcode(BX_IA_BTS_EdIbR, &BX_CPU_C::BTS_EdIbR, NULL) +bx_define_opcode(BX_IA_BTS_EwGwM, &BX_CPU_C::BTS_EwGwM, NULL) +bx_define_opcode(BX_IA_BTS_EwGwR, &BX_CPU_C::BTS_EwGwR, NULL) +bx_define_opcode(BX_IA_BTS_EwIbM, &BX_CPU_C::BTS_EwIbM, NULL) +bx_define_opcode(BX_IA_BTS_EwIbR, &BX_CPU_C::BTS_EwIbR, NULL) +bx_define_opcode(BX_IA_ERROR, &BX_CPU_C::BxError, NULL) +bx_define_opcode(BX_IA_CALL_EdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CALL_EdR) +bx_define_opcode(BX_IA_CALL_EdR, &BX_CPU_C::CALL_EdR, NULL) +bx_define_opcode(BX_IA_CALL_EwM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CALL_EwR) +bx_define_opcode(BX_IA_CALL_EwR, &BX_CPU_C::CALL_EwR, NULL) +bx_define_opcode(BX_IA_CALL_Jd, &BX_CPU_C::CALL_Jd, NULL) +bx_define_opcode(BX_IA_CALL_Jw, &BX_CPU_C::CALL_Jw, NULL) +bx_define_opcode(BX_IA_CALL16_Ap, &BX_CPU_C::CALL16_Ap, NULL) +bx_define_opcode(BX_IA_CALL16_Ep, &BX_CPU_C::CALL16_Ep, NULL) +bx_define_opcode(BX_IA_CALL32_Ap, &BX_CPU_C::CALL32_Ap, NULL) +bx_define_opcode(BX_IA_CALL32_Ep, &BX_CPU_C::CALL32_Ep, NULL) +bx_define_opcode(BX_IA_CBW, &BX_CPU_C::CBW, NULL) +bx_define_opcode(BX_IA_CDQ, &BX_CPU_C::CDQ, NULL) +bx_define_opcode(BX_IA_CLC, &BX_CPU_C::CLC, NULL) +bx_define_opcode(BX_IA_CLD, &BX_CPU_C::CLD, NULL) +bx_define_opcode(BX_IA_CLFLUSH, &BX_CPU_C::CLFLUSH, NULL) +bx_define_opcode(BX_IA_CLI, &BX_CPU_C::CLI, NULL) +bx_define_opcode(BX_IA_CLTS, &BX_CPU_C::CLTS, NULL) +bx_define_opcode(BX_IA_CMC, &BX_CPU_C::CMC, NULL) +bx_define_opcode(BX_IA_CMOVB_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVB_GdEdR) +bx_define_opcode(BX_IA_CMOVB_GdEdR, &BX_CPU_C::CMOVB_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVB_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVB_GwEwR) +bx_define_opcode(BX_IA_CMOVB_GwEwR, &BX_CPU_C::CMOVB_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVBE_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVBE_GdEdR) +bx_define_opcode(BX_IA_CMOVBE_GdEdR, &BX_CPU_C::CMOVBE_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVBE_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVBE_GwEwR) +bx_define_opcode(BX_IA_CMOVBE_GwEwR, &BX_CPU_C::CMOVBE_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVL_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVL_GdEdR) +bx_define_opcode(BX_IA_CMOVL_GdEdR, &BX_CPU_C::CMOVL_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVL_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVL_GwEwR) +bx_define_opcode(BX_IA_CMOVL_GwEwR, &BX_CPU_C::CMOVL_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVLE_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVLE_GdEdR) +bx_define_opcode(BX_IA_CMOVLE_GdEdR, &BX_CPU_C::CMOVLE_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVLE_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVLE_GwEwR) +bx_define_opcode(BX_IA_CMOVLE_GwEwR, &BX_CPU_C::CMOVLE_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVNB_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNB_GdEdR) +bx_define_opcode(BX_IA_CMOVNB_GdEdR, &BX_CPU_C::CMOVNB_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVNB_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNB_GwEwR) +bx_define_opcode(BX_IA_CMOVNB_GwEwR, &BX_CPU_C::CMOVNB_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVNBE_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNBE_GdEdR) +bx_define_opcode(BX_IA_CMOVNBE_GdEdR, &BX_CPU_C::CMOVNBE_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVNBE_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNBE_GwEwR) +bx_define_opcode(BX_IA_CMOVNBE_GwEwR, &BX_CPU_C::CMOVNBE_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVNL_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNL_GdEdR) +bx_define_opcode(BX_IA_CMOVNL_GdEdR, &BX_CPU_C::CMOVNL_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVNL_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNL_GwEwR) +bx_define_opcode(BX_IA_CMOVNL_GwEwR, &BX_CPU_C::CMOVNL_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVNLE_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNLE_GdEdR) +bx_define_opcode(BX_IA_CMOVNLE_GdEdR, &BX_CPU_C::CMOVNLE_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVNLE_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNLE_GwEwR) +bx_define_opcode(BX_IA_CMOVNLE_GwEwR, &BX_CPU_C::CMOVNLE_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVNO_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNO_GdEdR) +bx_define_opcode(BX_IA_CMOVNO_GdEdR, &BX_CPU_C::CMOVNO_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVNO_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNO_GwEwR) +bx_define_opcode(BX_IA_CMOVNO_GwEwR, &BX_CPU_C::CMOVNO_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVNP_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNP_GdEdR) +bx_define_opcode(BX_IA_CMOVNP_GdEdR, &BX_CPU_C::CMOVNP_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVNP_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNP_GwEwR) +bx_define_opcode(BX_IA_CMOVNP_GwEwR, &BX_CPU_C::CMOVNP_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVNS_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNS_GdEdR) +bx_define_opcode(BX_IA_CMOVNS_GdEdR, &BX_CPU_C::CMOVNS_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVNS_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNS_GwEwR) +bx_define_opcode(BX_IA_CMOVNS_GwEwR, &BX_CPU_C::CMOVNS_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVNZ_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNZ_GdEdR) +bx_define_opcode(BX_IA_CMOVNZ_GdEdR, &BX_CPU_C::CMOVNZ_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVNZ_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNZ_GwEwR) +bx_define_opcode(BX_IA_CMOVNZ_GwEwR, &BX_CPU_C::CMOVNZ_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVO_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVO_GdEdR) +bx_define_opcode(BX_IA_CMOVO_GdEdR, &BX_CPU_C::CMOVO_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVO_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVO_GwEwR) +bx_define_opcode(BX_IA_CMOVO_GwEwR, &BX_CPU_C::CMOVO_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVP_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVP_GdEdR) +bx_define_opcode(BX_IA_CMOVP_GdEdR, &BX_CPU_C::CMOVP_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVP_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVP_GwEwR) +bx_define_opcode(BX_IA_CMOVP_GwEwR, &BX_CPU_C::CMOVP_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVS_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVS_GdEdR) +bx_define_opcode(BX_IA_CMOVS_GdEdR, &BX_CPU_C::CMOVS_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVS_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVS_GwEwR) +bx_define_opcode(BX_IA_CMOVS_GwEwR, &BX_CPU_C::CMOVS_GwEwR, NULL) +bx_define_opcode(BX_IA_CMOVZ_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVZ_GdEdR) +bx_define_opcode(BX_IA_CMOVZ_GdEdR, &BX_CPU_C::CMOVZ_GdEdR, NULL) +bx_define_opcode(BX_IA_CMOVZ_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVZ_GwEwR) +bx_define_opcode(BX_IA_CMOVZ_GwEwR, &BX_CPU_C::CMOVZ_GwEwR, NULL) +bx_define_opcode(BX_IA_CMP_ALIb, &BX_CPU_C::CMP_ALIb, NULL) +bx_define_opcode(BX_IA_CMP_AXIw, &BX_CPU_C::CMP_AXIw, NULL) +bx_define_opcode(BX_IA_CMP_EAXId, &BX_CPU_C::CMP_EAXId, NULL) +bx_define_opcode(BX_IA_CMP_EbGbM, &BX_CPU_C::CMP_EbGbM, NULL) +bx_define_opcode(BX_IA_CMP_EbIbM, &BX_CPU_C::CMP_EbIbM, NULL) +bx_define_opcode(BX_IA_CMP_EbIbR, &BX_CPU_C::CMP_EbIbR, NULL) +bx_define_opcode(BX_IA_CMP_EdGdM, &BX_CPU_C::CMP_EdGdM, NULL) +bx_define_opcode(BX_IA_CMP_EdIdM, &BX_CPU_C::CMP_EdIdM, NULL) +bx_define_opcode(BX_IA_CMP_EdIdR, &BX_CPU_C::CMP_EdIdR, NULL) +bx_define_opcode(BX_IA_CMP_EwGwM, &BX_CPU_C::CMP_EwGwM, NULL) +bx_define_opcode(BX_IA_CMP_EwIwM, &BX_CPU_C::CMP_EwIwM, NULL) +bx_define_opcode(BX_IA_CMP_EwIwR, &BX_CPU_C::CMP_EwIwR, NULL) +bx_define_opcode(BX_IA_CMP_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::CMP_GbEbR) +bx_define_opcode(BX_IA_CMP_GbEbR, &BX_CPU_C::CMP_GbEbR, NULL) +bx_define_opcode(BX_IA_CMP_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMP_GdEdR) +bx_define_opcode(BX_IA_CMP_GdEdR, &BX_CPU_C::CMP_GdEdR, NULL) +bx_define_opcode(BX_IA_CMP_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMP_GwEwR) +bx_define_opcode(BX_IA_CMP_GwEwR, &BX_CPU_C::CMP_GwEwR, NULL) +bx_define_opcode(BX_IA_CMPXCHG_EbGbM, &BX_CPU_C::CMPXCHG_EbGbM, NULL) +bx_define_opcode(BX_IA_CMPXCHG_EbGbR, &BX_CPU_C::CMPXCHG_EbGbR, NULL) +bx_define_opcode(BX_IA_CMPXCHG_EdGdM, &BX_CPU_C::CMPXCHG_EdGdM, NULL) +bx_define_opcode(BX_IA_CMPXCHG_EdGdR, &BX_CPU_C::CMPXCHG_EdGdR, NULL) +bx_define_opcode(BX_IA_CMPXCHG_EwGwM, &BX_CPU_C::CMPXCHG_EwGwM, NULL) +bx_define_opcode(BX_IA_CMPXCHG_EwGwR, &BX_CPU_C::CMPXCHG_EwGwR, NULL) +bx_define_opcode(BX_IA_CMPXCHG_IBTS, &BX_CPU_C::CMPXCHG_IBTS, NULL) +bx_define_opcode(BX_IA_CMPXCHG_XBTS, &BX_CPU_C::CMPXCHG_XBTS, NULL) +bx_define_opcode(BX_IA_CMPXCHG8B, &BX_CPU_C::CMPXCHG8B, NULL) +bx_define_opcode(BX_IA_CPUID, &BX_CPU_C::CPUID, NULL) +bx_define_opcode(BX_IA_CWD, &BX_CPU_C::CWD, NULL) +bx_define_opcode(BX_IA_CWDE, &BX_CPU_C::CWDE, NULL) +bx_define_opcode(BX_IA_DEC_EbM, &BX_CPU_C::DEC_EbM, NULL) +bx_define_opcode(BX_IA_DEC_EbR, &BX_CPU_C::DEC_EbR, NULL) +bx_define_opcode(BX_IA_DEC_EdR, &BX_CPU_C::DEC_ERX, NULL) +bx_define_opcode(BX_IA_DEC_EdM, &BX_CPU_C::DEC_EdM, NULL) +bx_define_opcode(BX_IA_DEC_ERX, &BX_CPU_C::DEC_ERX, NULL) +bx_define_opcode(BX_IA_DEC_EwR, &BX_CPU_C::DEC_RX, NULL) +bx_define_opcode(BX_IA_DEC_EwM, &BX_CPU_C::DEC_EwM, NULL) +bx_define_opcode(BX_IA_DEC_RX, &BX_CPU_C::DEC_RX, NULL) +bx_define_opcode(BX_IA_DIV_ALEbR, &BX_CPU_C::DIV_ALEbR, NULL) +bx_define_opcode(BX_IA_DIV_ALEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::DIV_ALEbR) +bx_define_opcode(BX_IA_DIV_AXEwR, &BX_CPU_C::DIV_AXEwR, NULL) +bx_define_opcode(BX_IA_DIV_AXEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::DIV_AXEwR) +bx_define_opcode(BX_IA_DIV_EAXEdR, &BX_CPU_C::DIV_EAXEdR, NULL) +bx_define_opcode(BX_IA_DIV_EAXEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::DIV_EAXEdR) +bx_define_opcode(BX_IA_ENTER16_IwIb, &BX_CPU_C::ENTER16_IwIb, NULL) +bx_define_opcode(BX_IA_ENTER32_IwIb, &BX_CPU_C::ENTER32_IwIb, NULL) +bx_define_opcode(BX_IA_HLT, &BX_CPU_C::HLT, NULL) +bx_define_opcode(BX_IA_IDIV_ALEbR, &BX_CPU_C::IDIV_ALEbR, NULL) +bx_define_opcode(BX_IA_IDIV_ALEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::IDIV_ALEbR) +bx_define_opcode(BX_IA_IDIV_AXEwR, &BX_CPU_C::IDIV_AXEwR, NULL) +bx_define_opcode(BX_IA_IDIV_AXEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IDIV_AXEwR) +bx_define_opcode(BX_IA_IDIV_EAXEdR, &BX_CPU_C::IDIV_EAXEdR, NULL) +bx_define_opcode(BX_IA_IDIV_EAXEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IDIV_EAXEdR) +bx_define_opcode(BX_IA_IMUL_ALEbR, &BX_CPU_C::IMUL_ALEbR, NULL) +bx_define_opcode(BX_IA_IMUL_ALEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::IMUL_ALEbR) +bx_define_opcode(BX_IA_IMUL_AXEwR, &BX_CPU_C::IMUL_AXEwR, NULL) +bx_define_opcode(BX_IA_IMUL_AXEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_AXEwR) +bx_define_opcode(BX_IA_IMUL_EAXEdR, &BX_CPU_C::IMUL_EAXEdR, NULL) +bx_define_opcode(BX_IA_IMUL_EAXEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_EAXEdR) +bx_define_opcode(BX_IA_IMUL_GdEdR, &BX_CPU_C::IMUL_GdEdR, NULL) +bx_define_opcode(BX_IA_IMUL_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_GdEdR) +bx_define_opcode(BX_IA_IMUL_GdEdIdR, &BX_CPU_C::IMUL_GdEdIdR, NULL) +bx_define_opcode(BX_IA_IMUL_GdEdIdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_GdEdIdR) +bx_define_opcode(BX_IA_IMUL_GwEwR, &BX_CPU_C::IMUL_GwEwR, NULL) +bx_define_opcode(BX_IA_IMUL_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_GwEwR) +bx_define_opcode(BX_IA_IMUL_GwEwIwR, &BX_CPU_C::IMUL_GwEwIwR, NULL) +bx_define_opcode(BX_IA_IMUL_GwEwIwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_GwEwIwR) +bx_define_opcode(BX_IA_IN_ALDX, &BX_CPU_C::IN_ALDX, NULL) +bx_define_opcode(BX_IA_IN_ALIb, &BX_CPU_C::IN_ALIb, NULL) +bx_define_opcode(BX_IA_IN_AXDX, &BX_CPU_C::IN_AXDX, NULL) +bx_define_opcode(BX_IA_IN_AXIb, &BX_CPU_C::IN_AXIb, NULL) +bx_define_opcode(BX_IA_IN_EAXDX, &BX_CPU_C::IN_EAXDX, NULL) +bx_define_opcode(BX_IA_IN_EAXIb, &BX_CPU_C::IN_EAXIb, NULL) +bx_define_opcode(BX_IA_INC_EbM, &BX_CPU_C::INC_EbM, NULL) +bx_define_opcode(BX_IA_INC_EbR, &BX_CPU_C::INC_EbR, NULL) +bx_define_opcode(BX_IA_INC_EdR, &BX_CPU_C::INC_ERX, NULL) +bx_define_opcode(BX_IA_INC_EdM, &BX_CPU_C::INC_EdM, NULL) +bx_define_opcode(BX_IA_INC_ERX, &BX_CPU_C::INC_ERX, NULL) +bx_define_opcode(BX_IA_INC_EwR, &BX_CPU_C::INC_RX, NULL) +bx_define_opcode(BX_IA_INC_EwM, &BX_CPU_C::INC_EwM, NULL) +bx_define_opcode(BX_IA_INC_RX, &BX_CPU_C::INC_RX, NULL) +bx_define_opcode(BX_IA_INT_Ib, &BX_CPU_C::INT_Ib, NULL) +bx_define_opcode(BX_IA_INT1, &BX_CPU_C::INT1, NULL) +bx_define_opcode(BX_IA_INT3, &BX_CPU_C::INT3, NULL) +bx_define_opcode(BX_IA_INTO, &BX_CPU_C::INTO, NULL) +bx_define_opcode(BX_IA_INVD, &BX_CPU_C::INVD, NULL) +bx_define_opcode(BX_IA_INVLPG, &BX_CPU_C::INVLPG, NULL) +bx_define_opcode(BX_IA_IRET16, &BX_CPU_C::IRET16, NULL) +bx_define_opcode(BX_IA_IRET32, &BX_CPU_C::IRET32, NULL) +bx_define_opcode(BX_IA_JB_Jd, &BX_CPU_C::JB_Jd, NULL) +bx_define_opcode(BX_IA_JB_Jw, &BX_CPU_C::JB_Jw, NULL) +bx_define_opcode(BX_IA_JBE_Jd, &BX_CPU_C::JBE_Jd, NULL) +bx_define_opcode(BX_IA_JBE_Jw, &BX_CPU_C::JBE_Jw, NULL) +bx_define_opcode(BX_IA_JCXZ_Jb, &BX_CPU_C::JCXZ_Jb, NULL) +bx_define_opcode(BX_IA_JECXZ_Jb, &BX_CPU_C::JECXZ_Jb, NULL) +bx_define_opcode(BX_IA_JL_Jd, &BX_CPU_C::JL_Jd, NULL) +bx_define_opcode(BX_IA_JL_Jw, &BX_CPU_C::JL_Jw, NULL) +bx_define_opcode(BX_IA_JLE_Jd, &BX_CPU_C::JLE_Jd, NULL) +bx_define_opcode(BX_IA_JLE_Jw, &BX_CPU_C::JLE_Jw, NULL) +bx_define_opcode(BX_IA_JMP_Ap, &BX_CPU_C::JMP_Ap, NULL) +bx_define_opcode(BX_IA_JMP_EdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::JMP_EdR) +bx_define_opcode(BX_IA_JMP_EdR, &BX_CPU_C::JMP_EdR, NULL) +bx_define_opcode(BX_IA_JMP_EwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::JMP_EwR) +bx_define_opcode(BX_IA_JMP_EwR, &BX_CPU_C::JMP_EwR, NULL) +bx_define_opcode(BX_IA_JMP_Jd, &BX_CPU_C::JMP_Jd, NULL) +bx_define_opcode(BX_IA_JMP_Jw, &BX_CPU_C::JMP_Jw, NULL) +bx_define_opcode(BX_IA_JMP16_Ep, &BX_CPU_C::JMP16_Ep, NULL) +bx_define_opcode(BX_IA_JMP32_Ep, &BX_CPU_C::JMP32_Ep, NULL) +bx_define_opcode(BX_IA_JNB_Jd, &BX_CPU_C::JNB_Jd, NULL) +bx_define_opcode(BX_IA_JNB_Jw, &BX_CPU_C::JNB_Jw, NULL) +bx_define_opcode(BX_IA_JNBE_Jd, &BX_CPU_C::JNBE_Jd, NULL) +bx_define_opcode(BX_IA_JNBE_Jw, &BX_CPU_C::JNBE_Jw, NULL) +bx_define_opcode(BX_IA_JNL_Jd, &BX_CPU_C::JNL_Jd, NULL) +bx_define_opcode(BX_IA_JNL_Jw, &BX_CPU_C::JNL_Jw, NULL) +bx_define_opcode(BX_IA_JNLE_Jd, &BX_CPU_C::JNLE_Jd, NULL) +bx_define_opcode(BX_IA_JNLE_Jw, &BX_CPU_C::JNLE_Jw, NULL) +bx_define_opcode(BX_IA_JNO_Jd, &BX_CPU_C::JNO_Jd, NULL) +bx_define_opcode(BX_IA_JNO_Jw, &BX_CPU_C::JNO_Jw, NULL) +bx_define_opcode(BX_IA_JNP_Jd, &BX_CPU_C::JNP_Jd, NULL) +bx_define_opcode(BX_IA_JNP_Jw, &BX_CPU_C::JNP_Jw, NULL) +bx_define_opcode(BX_IA_JNS_Jd, &BX_CPU_C::JNS_Jd, NULL) +bx_define_opcode(BX_IA_JNS_Jw, &BX_CPU_C::JNS_Jw, NULL) +bx_define_opcode(BX_IA_JNZ_Jd, &BX_CPU_C::JNZ_Jd, NULL) +bx_define_opcode(BX_IA_JNZ_Jw, &BX_CPU_C::JNZ_Jw, NULL) +bx_define_opcode(BX_IA_JO_Jd, &BX_CPU_C::JO_Jd, NULL) +bx_define_opcode(BX_IA_JO_Jw, &BX_CPU_C::JO_Jw, NULL) +bx_define_opcode(BX_IA_JP_Jd, &BX_CPU_C::JP_Jd, NULL) +bx_define_opcode(BX_IA_JP_Jw, &BX_CPU_C::JP_Jw, NULL) +bx_define_opcode(BX_IA_JS_Jd, &BX_CPU_C::JS_Jd, NULL) +bx_define_opcode(BX_IA_JS_Jw, &BX_CPU_C::JS_Jw, NULL) +bx_define_opcode(BX_IA_JZ_Jd, &BX_CPU_C::JZ_Jd, NULL) +bx_define_opcode(BX_IA_JZ_Jw, &BX_CPU_C::JZ_Jw, NULL) +bx_define_opcode(BX_IA_LAHF, &BX_CPU_C::LAHF, NULL) +bx_define_opcode(BX_IA_LAR_GvEw, &BX_CPU_C::LAR_GvEw, NULL) +bx_define_opcode(BX_IA_LDS_GdMp, &BX_CPU_C::LDS_GdMp, NULL) +bx_define_opcode(BX_IA_LDS_GwMp, &BX_CPU_C::LDS_GwMp, NULL) +bx_define_opcode(BX_IA_LEA_GdM, &BX_CPU_C::LEA_GdM, NULL) +bx_define_opcode(BX_IA_LEA_GwM, &BX_CPU_C::LEA_GwM, NULL) +bx_define_opcode(BX_IA_LEAVE16, &BX_CPU_C::LEAVE16, NULL) +bx_define_opcode(BX_IA_LEAVE32, &BX_CPU_C::LEAVE32, NULL) +bx_define_opcode(BX_IA_LES_GdMp, &BX_CPU_C::LES_GdMp, NULL) +bx_define_opcode(BX_IA_LES_GwMp, &BX_CPU_C::LES_GwMp, NULL) +bx_define_opcode(BX_IA_LFS_GdMp, &BX_CPU_C::LFS_GdMp, NULL) +bx_define_opcode(BX_IA_LFS_GwMp, &BX_CPU_C::LFS_GwMp, NULL) +bx_define_opcode(BX_IA_LGDT_Ms, &BX_CPU_C::LGDT_Ms, NULL) +bx_define_opcode(BX_IA_LGS_GdMp, &BX_CPU_C::LGS_GdMp, NULL) +bx_define_opcode(BX_IA_LGS_GwMp, &BX_CPU_C::LGS_GwMp, NULL) +bx_define_opcode(BX_IA_LIDT_Ms, &BX_CPU_C::LIDT_Ms, NULL) +bx_define_opcode(BX_IA_LLDT_Ew, &BX_CPU_C::LLDT_Ew, NULL) +bx_define_opcode(BX_IA_LMSW_Ew, &BX_CPU_C::LMSW_Ew, NULL) +bx_define_opcode(BX_IA_LOOP16_Jb, &BX_CPU_C::LOOP16_Jb, NULL) +bx_define_opcode(BX_IA_LOOPE16_Jb, &BX_CPU_C::LOOPE16_Jb, NULL) +bx_define_opcode(BX_IA_LOOPNE16_Jb, &BX_CPU_C::LOOPNE16_Jb, NULL) +bx_define_opcode(BX_IA_LOOP32_Jb, &BX_CPU_C::LOOP32_Jb, NULL) +bx_define_opcode(BX_IA_LOOPE32_Jb, &BX_CPU_C::LOOPE32_Jb, NULL) +bx_define_opcode(BX_IA_LOOPNE32_Jb, &BX_CPU_C::LOOPNE32_Jb, NULL) +bx_define_opcode(BX_IA_LSL_GvEw, &BX_CPU_C::LSL_GvEw, NULL) +bx_define_opcode(BX_IA_LSS_GdMp, &BX_CPU_C::LSS_GdMp, NULL) +bx_define_opcode(BX_IA_LSS_GwMp, &BX_CPU_C::LSS_GwMp, NULL) +bx_define_opcode(BX_IA_LTR_Ew, &BX_CPU_C::LTR_Ew, NULL) +bx_define_opcode(BX_IA_MONITOR, &BX_CPU_C::MONITOR, NULL) +bx_define_opcode(BX_IA_MWAIT, &BX_CPU_C::MWAIT, NULL) +bx_define_opcode(BX_IA_MOV_ALOd, &BX_CPU_C::MOV_ALOd, NULL) +bx_define_opcode(BX_IA_MOV_AXOd, &BX_CPU_C::MOV_AXOd, NULL) +bx_define_opcode(BX_IA_MOV_CdRd, &BX_CPU_C::MOV_CdRd, NULL) +bx_define_opcode(BX_IA_MOV_DdRd, &BX_CPU_C::MOV_DdRd, NULL) +bx_define_opcode(BX_IA_MOV_EAXOd, &BX_CPU_C::MOV_EAXOd, NULL) +bx_define_opcode(BX_IA_MOV_EbGbM, &BX_CPU_C::MOV_EbGbM, NULL) +bx_define_opcode(BX_IA_MOV_EbIbM, &BX_CPU_C::MOV_EbIbM, NULL) +bx_define_opcode(BX_IA_MOV_EbIbR, &BX_CPU_C::MOV_RLIb, NULL) +bx_define_opcode(BX_IA_MOV_EdGdM, &BX_CPU_C::MOV_EdGdM, NULL) +bx_define_opcode(BX_IA_MOV_EdIdM, &BX_CPU_C::MOV_EdIdM, NULL) +bx_define_opcode(BX_IA_MOV_EdIdR, &BX_CPU_C::MOV_ERXId, NULL) +bx_define_opcode(BX_IA_MOV_ERXId, &BX_CPU_C::MOV_ERXId, NULL) +bx_define_opcode(BX_IA_MOV_EwGwM, &BX_CPU_C::MOV_EwGwM, NULL) +bx_define_opcode(BX_IA_MOV_EwIwM, &BX_CPU_C::MOV_EwIwM, NULL) +bx_define_opcode(BX_IA_MOV_EwIwR, &BX_CPU_C::MOV_RXIw, NULL) +bx_define_opcode(BX_IA_MOV_EwSwM, &BX_CPU_C::MOV_EwSwM, NULL) +bx_define_opcode(BX_IA_MOV_EwSwR, &BX_CPU_C::MOV_EwSwR, NULL) +bx_define_opcode(BX_IA_MOV_GbEbM, &BX_CPU_C::MOV_GbEbM, NULL) +bx_define_opcode(BX_IA_MOV_GbEbR, &BX_CPU_C::MOV_GbEbR, NULL) +bx_define_opcode(BX_IA_MOV_GdEdM, &BX_CPU_C::MOV_GdEdM, NULL) +bx_define_opcode(BX_IA_MOV_GdEdR, &BX_CPU_C::MOV_GdEdR, NULL) +bx_define_opcode(BX_IA_MOV_GwEwM, &BX_CPU_C::MOV_GwEwM, NULL) +bx_define_opcode(BX_IA_MOV_GwEwR, &BX_CPU_C::MOV_GwEwR, NULL) +bx_define_opcode(BX_IA_MOV_OdAL, &BX_CPU_C::MOV_OdAL, NULL) +bx_define_opcode(BX_IA_MOV_OdAX, &BX_CPU_C::MOV_OdAX, NULL) +bx_define_opcode(BX_IA_MOV_OdEAX, &BX_CPU_C::MOV_OdEAX, NULL) +bx_define_opcode(BX_IA_MOV_RdCd, &BX_CPU_C::MOV_RdCd, NULL) +bx_define_opcode(BX_IA_MOV_RdDd, &BX_CPU_C::MOV_RdDd, NULL) +bx_define_opcode(BX_IA_MOV_RdTd, &BX_CPU_C::MOV_RdTd, NULL) +bx_define_opcode(BX_IA_MOV_RHIb, &BX_CPU_C::MOV_RHIb, NULL) +bx_define_opcode(BX_IA_MOV_RLIb, &BX_CPU_C::MOV_RLIb, NULL) +bx_define_opcode(BX_IA_MOV_RXIw, &BX_CPU_C::MOV_RXIw, NULL) +bx_define_opcode(BX_IA_MOV_SwEw, &BX_CPU_C::MOV_SwEw, NULL) +bx_define_opcode(BX_IA_MOV_TdRd, &BX_CPU_C::MOV_TdRd, NULL) +bx_define_opcode(BX_IA_MOVSX_GdEbM, &BX_CPU_C::MOVSX_GdEbM, NULL) +bx_define_opcode(BX_IA_MOVSX_GdEbR, &BX_CPU_C::MOVSX_GdEbR, NULL) +bx_define_opcode(BX_IA_MOVSX_GdEwM, &BX_CPU_C::MOVSX_GdEwM, NULL) +bx_define_opcode(BX_IA_MOVSX_GdEwR, &BX_CPU_C::MOVSX_GdEwR, NULL) +bx_define_opcode(BX_IA_MOVSX_GwEbM, &BX_CPU_C::MOVSX_GwEbM, NULL) +bx_define_opcode(BX_IA_MOVSX_GwEbR, &BX_CPU_C::MOVSX_GwEbR, NULL) +bx_define_opcode(BX_IA_MOVZX_GdEbM, &BX_CPU_C::MOVZX_GdEbM, NULL) +bx_define_opcode(BX_IA_MOVZX_GdEbR, &BX_CPU_C::MOVZX_GdEbR, NULL) +bx_define_opcode(BX_IA_MOVZX_GdEwM, &BX_CPU_C::MOVZX_GdEwM, NULL) +bx_define_opcode(BX_IA_MOVZX_GdEwR, &BX_CPU_C::MOVZX_GdEwR, NULL) +bx_define_opcode(BX_IA_MOVZX_GwEbM, &BX_CPU_C::MOVZX_GwEbM, NULL) +bx_define_opcode(BX_IA_MOVZX_GwEbR, &BX_CPU_C::MOVZX_GwEbR, NULL) +bx_define_opcode(BX_IA_MUL_ALEbR, &BX_CPU_C::MUL_ALEbR, NULL) +bx_define_opcode(BX_IA_MUL_ALEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::MUL_ALEbR) +bx_define_opcode(BX_IA_MUL_AXEwR, &BX_CPU_C::MUL_AXEwR, NULL) +bx_define_opcode(BX_IA_MUL_AXEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::MUL_AXEwR) +bx_define_opcode(BX_IA_MUL_EAXEdR, &BX_CPU_C::MUL_EAXEdR, NULL) +bx_define_opcode(BX_IA_MUL_EAXEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::MUL_EAXEdR) +bx_define_opcode(BX_IA_NEG_EbM, &BX_CPU_C::NEG_EbM, NULL) +bx_define_opcode(BX_IA_NEG_EbR, &BX_CPU_C::NEG_EbR, NULL) +bx_define_opcode(BX_IA_NEG_EdM, &BX_CPU_C::NEG_EdM, NULL) +bx_define_opcode(BX_IA_NEG_EdR, &BX_CPU_C::NEG_EdR, NULL) +bx_define_opcode(BX_IA_NEG_EwM, &BX_CPU_C::NEG_EwM, NULL) +bx_define_opcode(BX_IA_NEG_EwR, &BX_CPU_C::NEG_EwR, NULL) +bx_define_opcode(BX_IA_NOP, &BX_CPU_C::NOP, NULL) +bx_define_opcode(BX_IA_NOT_EbM, &BX_CPU_C::NOT_EbM, NULL) +bx_define_opcode(BX_IA_NOT_EbR, &BX_CPU_C::NOT_EbR, NULL) +bx_define_opcode(BX_IA_NOT_EdM, &BX_CPU_C::NOT_EdM, NULL) +bx_define_opcode(BX_IA_NOT_EdR, &BX_CPU_C::NOT_EdR, NULL) +bx_define_opcode(BX_IA_NOT_EwM, &BX_CPU_C::NOT_EwM, NULL) +bx_define_opcode(BX_IA_NOT_EwR, &BX_CPU_C::NOT_EwR, NULL) +bx_define_opcode(BX_IA_OR_ALIb, &BX_CPU_C::OR_ALIb, NULL) +bx_define_opcode(BX_IA_OR_AXIw, &BX_CPU_C::OR_AXIw, NULL) +bx_define_opcode(BX_IA_OR_EAXId, &BX_CPU_C::OR_EAXId, NULL) +bx_define_opcode(BX_IA_OR_EbGbM, &BX_CPU_C::OR_EbGbM, NULL) +bx_define_opcode(BX_IA_OR_EbIbM, &BX_CPU_C::OR_EbIbM, NULL) +bx_define_opcode(BX_IA_OR_EbIbR, &BX_CPU_C::OR_EbIbR, NULL) +bx_define_opcode(BX_IA_OR_EdGdM, &BX_CPU_C::OR_EdGdM, NULL) +bx_define_opcode(BX_IA_OR_EdIdM, &BX_CPU_C::OR_EdIdM, NULL) +bx_define_opcode(BX_IA_OR_EdIdR, &BX_CPU_C::OR_EdIdR, NULL) +bx_define_opcode(BX_IA_OR_EwGwM, &BX_CPU_C::OR_EwGwM, NULL) +bx_define_opcode(BX_IA_OR_EwIwM, &BX_CPU_C::OR_EwIwM, NULL) +bx_define_opcode(BX_IA_OR_EwIwR, &BX_CPU_C::OR_EwIwR, NULL) +bx_define_opcode(BX_IA_OR_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::OR_GbEbR) +bx_define_opcode(BX_IA_OR_GbEbR, &BX_CPU_C::OR_GbEbR, NULL) +bx_define_opcode(BX_IA_OR_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::OR_GdEdR) +bx_define_opcode(BX_IA_OR_GdEdR, &BX_CPU_C::OR_GdEdR, NULL) +bx_define_opcode(BX_IA_OR_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::OR_GwEwR) +bx_define_opcode(BX_IA_OR_GwEwR, &BX_CPU_C::OR_GwEwR, NULL) +bx_define_opcode(BX_IA_OUT_DXAL, &BX_CPU_C::OUT_DXAL, NULL) +bx_define_opcode(BX_IA_OUT_DXAX, &BX_CPU_C::OUT_DXAX, NULL) +bx_define_opcode(BX_IA_OUT_DXEAX, &BX_CPU_C::OUT_DXEAX, NULL) +bx_define_opcode(BX_IA_OUT_IbAL, &BX_CPU_C::OUT_IbAL, NULL) +bx_define_opcode(BX_IA_OUT_IbAX, &BX_CPU_C::OUT_IbAX, NULL) +bx_define_opcode(BX_IA_OUT_IbEAX, &BX_CPU_C::OUT_IbEAX, NULL) +bx_define_opcode(BX_IA_POP_EdM, &BX_CPU_C::POP_EdM, NULL) +bx_define_opcode(BX_IA_POP_EdR, &BX_CPU_C::POP_ERX, NULL) +bx_define_opcode(BX_IA_POP_ERX, &BX_CPU_C::POP_ERX, NULL) +bx_define_opcode(BX_IA_POP_EwM, &BX_CPU_C::POP_EwM, NULL) +bx_define_opcode(BX_IA_POP_EwR, &BX_CPU_C::POP_RX, NULL) +bx_define_opcode(BX_IA_POP_RX, &BX_CPU_C::POP_RX, NULL) +bx_define_opcode(BX_IA_POP16_DS, &BX_CPU_C::POP16_DS, NULL) +bx_define_opcode(BX_IA_POP16_ES, &BX_CPU_C::POP16_ES, NULL) +bx_define_opcode(BX_IA_POP16_FS, &BX_CPU_C::POP16_FS, NULL) +bx_define_opcode(BX_IA_POP16_GS, &BX_CPU_C::POP16_GS, NULL) +bx_define_opcode(BX_IA_POP16_SS, &BX_CPU_C::POP16_SS, NULL) +bx_define_opcode(BX_IA_POP32_DS, &BX_CPU_C::POP32_DS, NULL) +bx_define_opcode(BX_IA_POP32_ES, &BX_CPU_C::POP32_ES, NULL) +bx_define_opcode(BX_IA_POP32_FS, &BX_CPU_C::POP32_FS, NULL) +bx_define_opcode(BX_IA_POP32_GS, &BX_CPU_C::POP32_GS, NULL) +bx_define_opcode(BX_IA_POP32_SS, &BX_CPU_C::POP32_SS, NULL) +bx_define_opcode(BX_IA_POPAD16, &BX_CPU_C::POPAD16, NULL) +bx_define_opcode(BX_IA_POPAD32, &BX_CPU_C::POPAD32, NULL) +bx_define_opcode(BX_IA_POPCNT_GdEdR, &BX_CPU_C::POPCNT_GdEdR, NULL) +bx_define_opcode(BX_IA_POPCNT_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::POPCNT_GdEdR) +bx_define_opcode(BX_IA_POPCNT_GwEwR, &BX_CPU_C::POPCNT_GwEwR, NULL) +bx_define_opcode(BX_IA_POPCNT_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::POPCNT_GwEwR) +bx_define_opcode(BX_IA_POPF_Fd, &BX_CPU_C::POPF_Fd, NULL) +bx_define_opcode(BX_IA_POPF_Fw, &BX_CPU_C::POPF_Fw, NULL) +bx_define_opcode(BX_IA_PUSH_EdM, &BX_CPU_C::PUSH_EdM, NULL) +bx_define_opcode(BX_IA_PUSH_EdR, &BX_CPU_C::PUSH_ERX, NULL) +bx_define_opcode(BX_IA_PUSH_ERX, &BX_CPU_C::PUSH_ERX, NULL) +bx_define_opcode(BX_IA_PUSH_EwM, &BX_CPU_C::PUSH_EwM, NULL) +bx_define_opcode(BX_IA_PUSH_EwR, &BX_CPU_C::PUSH_RX, NULL) +bx_define_opcode(BX_IA_PUSH_Id, &BX_CPU_C::PUSH_Id, NULL) +bx_define_opcode(BX_IA_PUSH_Iw, &BX_CPU_C::PUSH_Iw, NULL) +bx_define_opcode(BX_IA_PUSH_RX, &BX_CPU_C::PUSH_RX, NULL) +bx_define_opcode(BX_IA_PUSH16_CS, &BX_CPU_C::PUSH16_CS, NULL) +bx_define_opcode(BX_IA_PUSH16_DS, &BX_CPU_C::PUSH16_DS, NULL) +bx_define_opcode(BX_IA_PUSH16_ES, &BX_CPU_C::PUSH16_ES, NULL) +bx_define_opcode(BX_IA_PUSH16_FS, &BX_CPU_C::PUSH16_FS, NULL) +bx_define_opcode(BX_IA_PUSH16_GS, &BX_CPU_C::PUSH16_GS, NULL) +bx_define_opcode(BX_IA_PUSH16_SS, &BX_CPU_C::PUSH16_SS, NULL) +bx_define_opcode(BX_IA_PUSH32_CS, &BX_CPU_C::PUSH32_CS, NULL) +bx_define_opcode(BX_IA_PUSH32_DS, &BX_CPU_C::PUSH32_DS, NULL) +bx_define_opcode(BX_IA_PUSH32_ES, &BX_CPU_C::PUSH32_ES, NULL) +bx_define_opcode(BX_IA_PUSH32_FS, &BX_CPU_C::PUSH32_FS, NULL) +bx_define_opcode(BX_IA_PUSH32_GS, &BX_CPU_C::PUSH32_GS, NULL) +bx_define_opcode(BX_IA_PUSH32_SS, &BX_CPU_C::PUSH32_SS, NULL) +bx_define_opcode(BX_IA_PUSHAD16, &BX_CPU_C::PUSHAD16, NULL) +bx_define_opcode(BX_IA_PUSHAD32, &BX_CPU_C::PUSHAD32, NULL) +bx_define_opcode(BX_IA_PUSHF_Fd, &BX_CPU_C::PUSHF_Fd, NULL) +bx_define_opcode(BX_IA_PUSHF_Fw, &BX_CPU_C::PUSHF_Fw, NULL) +bx_define_opcode(BX_IA_RCL_Eb, &BX_CPU_C::RCL_Eb, NULL) +bx_define_opcode(BX_IA_RCL_Ew, &BX_CPU_C::RCL_Ew, NULL) +bx_define_opcode(BX_IA_RCR_Eb, &BX_CPU_C::RCR_Eb, NULL) +bx_define_opcode(BX_IA_RCR_Ew, &BX_CPU_C::RCR_Ew, NULL) +bx_define_opcode(BX_IA_RDMSR, &BX_CPU_C::RDMSR, NULL) +bx_define_opcode(BX_IA_RDPMC, &BX_CPU_C::RDPMC, NULL) +bx_define_opcode(BX_IA_RDTSC, &BX_CPU_C::RDTSC, NULL) +bx_define_opcode(BX_IA_REP_CMPSB_XbYb, &BX_CPU_C::REP_CMPSB_XbYb, NULL) +bx_define_opcode(BX_IA_REP_CMPSD_XdYd, &BX_CPU_C::REP_CMPSD_XdYd, NULL) +bx_define_opcode(BX_IA_REP_CMPSW_XwYw, &BX_CPU_C::REP_CMPSW_XwYw, NULL) +bx_define_opcode(BX_IA_REP_INSB_YbDX, &BX_CPU_C::REP_INSB_YbDX, NULL) +bx_define_opcode(BX_IA_REP_INSD_YdDX, &BX_CPU_C::REP_INSD_YdDX, NULL) +bx_define_opcode(BX_IA_REP_INSW_YwDX, &BX_CPU_C::REP_INSW_YwDX, NULL) +bx_define_opcode(BX_IA_REP_LODSB_ALXb, &BX_CPU_C::REP_LODSB_ALXb, NULL) +bx_define_opcode(BX_IA_REP_LODSD_EAXXd, &BX_CPU_C::REP_LODSD_EAXXd, NULL) +bx_define_opcode(BX_IA_REP_LODSW_AXXw, &BX_CPU_C::REP_LODSW_AXXw, NULL) +bx_define_opcode(BX_IA_REP_MOVSB_XbYb, &BX_CPU_C::REP_MOVSB_XbYb, NULL) +bx_define_opcode(BX_IA_REP_MOVSD_XdYd, &BX_CPU_C::REP_MOVSD_XdYd, NULL) +bx_define_opcode(BX_IA_REP_MOVSW_XwYw, &BX_CPU_C::REP_MOVSW_XwYw, NULL) +bx_define_opcode(BX_IA_REP_OUTSB_DXXb, &BX_CPU_C::REP_OUTSB_DXXb, NULL) +bx_define_opcode(BX_IA_REP_OUTSD_DXXd, &BX_CPU_C::REP_OUTSD_DXXd, NULL) +bx_define_opcode(BX_IA_REP_OUTSW_DXXw, &BX_CPU_C::REP_OUTSW_DXXw, NULL) +bx_define_opcode(BX_IA_REP_SCASB_ALXb, &BX_CPU_C::REP_SCASB_ALXb, NULL) +bx_define_opcode(BX_IA_REP_SCASD_EAXXd, &BX_CPU_C::REP_SCASD_EAXXd, NULL) +bx_define_opcode(BX_IA_REP_SCASW_AXXw, &BX_CPU_C::REP_SCASW_AXXw, NULL) +bx_define_opcode(BX_IA_REP_STOSB_YbAL, &BX_CPU_C::REP_STOSB_YbAL, NULL) +bx_define_opcode(BX_IA_REP_STOSD_YdEAX, &BX_CPU_C::REP_STOSD_YdEAX, NULL) +bx_define_opcode(BX_IA_REP_STOSW_YwAX, &BX_CPU_C::REP_STOSW_YwAX, NULL) +bx_define_opcode(BX_IA_RETfar16, &BX_CPU_C::RETfar16, NULL) +bx_define_opcode(BX_IA_RETfar16_Iw, &BX_CPU_C::RETfar16_Iw, NULL) +bx_define_opcode(BX_IA_RETfar32, &BX_CPU_C::RETfar32, NULL) +bx_define_opcode(BX_IA_RETfar32_Iw, &BX_CPU_C::RETfar32_Iw, NULL) +bx_define_opcode(BX_IA_RETnear16, &BX_CPU_C::RETnear16, NULL) +bx_define_opcode(BX_IA_RETnear16_Iw, &BX_CPU_C::RETnear16_Iw, NULL) +bx_define_opcode(BX_IA_RETnear32, &BX_CPU_C::RETnear32, NULL) +bx_define_opcode(BX_IA_RETnear32_Iw, &BX_CPU_C::RETnear32_Iw, NULL) +bx_define_opcode(BX_IA_ROL_Eb, &BX_CPU_C::ROL_Eb, NULL) +bx_define_opcode(BX_IA_ROL_Ew, &BX_CPU_C::ROL_Ew, NULL) +bx_define_opcode(BX_IA_ROR_Eb, &BX_CPU_C::ROR_Eb, NULL) +bx_define_opcode(BX_IA_ROR_Ew, &BX_CPU_C::ROR_Ew, NULL) +bx_define_opcode(BX_IA_RCR_EdM, &BX_CPU_C::RCR_EdM, NULL) +bx_define_opcode(BX_IA_RCL_EdM, &BX_CPU_C::RCL_EdM, NULL) +bx_define_opcode(BX_IA_ROL_EdM, &BX_CPU_C::ROL_EdM, NULL) +bx_define_opcode(BX_IA_ROR_EdM, &BX_CPU_C::ROR_EdM, NULL) +bx_define_opcode(BX_IA_SAR_EdM, &BX_CPU_C::SAR_EdM, NULL) +bx_define_opcode(BX_IA_SHL_EdM, &BX_CPU_C::SHL_EdM, NULL) +bx_define_opcode(BX_IA_SHR_EdM, &BX_CPU_C::SHR_EdM, NULL) +bx_define_opcode(BX_IA_RCR_EdR, &BX_CPU_C::RCR_EdR, NULL) +bx_define_opcode(BX_IA_RCL_EdR, &BX_CPU_C::RCL_EdR, NULL) +bx_define_opcode(BX_IA_ROL_EdR, &BX_CPU_C::ROL_EdR, NULL) +bx_define_opcode(BX_IA_ROR_EdR, &BX_CPU_C::ROR_EdR, NULL) +bx_define_opcode(BX_IA_SAR_EdR, &BX_CPU_C::SAR_EdR, NULL) +bx_define_opcode(BX_IA_SHL_EdR, &BX_CPU_C::SHL_EdR, NULL) +bx_define_opcode(BX_IA_SHR_EdR, &BX_CPU_C::SHR_EdR, NULL) +bx_define_opcode(BX_IA_RSM, &BX_CPU_C::RSM, NULL) +bx_define_opcode(BX_IA_SAHF, &BX_CPU_C::SAHF, NULL) +bx_define_opcode(BX_IA_SALC, &BX_CPU_C::SALC, NULL) +bx_define_opcode(BX_IA_SAR_Eb, &BX_CPU_C::SAR_Eb, NULL) +bx_define_opcode(BX_IA_SAR_Ew, &BX_CPU_C::SAR_Ew, NULL) +bx_define_opcode(BX_IA_SBB_ALIb, &BX_CPU_C::SBB_ALIb, NULL) +bx_define_opcode(BX_IA_SBB_AXIw, &BX_CPU_C::SBB_AXIw, NULL) +bx_define_opcode(BX_IA_SBB_EAXId, &BX_CPU_C::SBB_EAXId, NULL) +bx_define_opcode(BX_IA_SBB_EbGbM, &BX_CPU_C::SBB_EbGbM, NULL) +bx_define_opcode(BX_IA_SBB_EbIbM, &BX_CPU_C::SBB_EbIbM, NULL) +bx_define_opcode(BX_IA_SBB_EbIbR, &BX_CPU_C::SBB_EbIbR, NULL) +bx_define_opcode(BX_IA_SBB_EdGdM, &BX_CPU_C::SBB_EdGdM, NULL) +bx_define_opcode(BX_IA_SBB_EdIdM, &BX_CPU_C::SBB_EdIdM, NULL) +bx_define_opcode(BX_IA_SBB_EdIdR, &BX_CPU_C::SBB_EdIdR, NULL) +bx_define_opcode(BX_IA_SBB_EwGwM, &BX_CPU_C::SBB_EwGwM, NULL) +bx_define_opcode(BX_IA_SBB_EwIwM, &BX_CPU_C::SBB_EwIwM, NULL) +bx_define_opcode(BX_IA_SBB_EwIwR, &BX_CPU_C::SBB_EwIwR, NULL) +bx_define_opcode(BX_IA_SBB_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::SBB_GbEbR) +bx_define_opcode(BX_IA_SBB_GbEbR, &BX_CPU_C::SBB_GbEbR, NULL) +bx_define_opcode(BX_IA_SBB_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::SBB_GdEdR) +bx_define_opcode(BX_IA_SBB_GdEdR, &BX_CPU_C::SBB_GdEdR, NULL) +bx_define_opcode(BX_IA_SBB_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::SBB_GwEwR) +bx_define_opcode(BX_IA_SBB_GwEwR, &BX_CPU_C::SBB_GwEwR, NULL) +bx_define_opcode(BX_IA_SETB_EbM, &BX_CPU_C::SETB_EbM, NULL) +bx_define_opcode(BX_IA_SETB_EbR, &BX_CPU_C::SETB_EbR, NULL) +bx_define_opcode(BX_IA_SETBE_EbM, &BX_CPU_C::SETBE_EbM, NULL) +bx_define_opcode(BX_IA_SETBE_EbR, &BX_CPU_C::SETBE_EbR, NULL) +bx_define_opcode(BX_IA_SETL_EbM, &BX_CPU_C::SETL_EbM, NULL) +bx_define_opcode(BX_IA_SETL_EbR, &BX_CPU_C::SETL_EbR, NULL) +bx_define_opcode(BX_IA_SETLE_EbM, &BX_CPU_C::SETLE_EbM, NULL) +bx_define_opcode(BX_IA_SETLE_EbR, &BX_CPU_C::SETLE_EbR, NULL) +bx_define_opcode(BX_IA_SETNB_EbM, &BX_CPU_C::SETNB_EbM, NULL) +bx_define_opcode(BX_IA_SETNB_EbR, &BX_CPU_C::SETNB_EbR, NULL) +bx_define_opcode(BX_IA_SETNBE_EbM, &BX_CPU_C::SETNBE_EbM, NULL) +bx_define_opcode(BX_IA_SETNBE_EbR, &BX_CPU_C::SETNBE_EbR, NULL) +bx_define_opcode(BX_IA_SETNL_EbM, &BX_CPU_C::SETNL_EbM, NULL) +bx_define_opcode(BX_IA_SETNL_EbR, &BX_CPU_C::SETNL_EbR, NULL) +bx_define_opcode(BX_IA_SETNLE_EbM, &BX_CPU_C::SETNLE_EbM, NULL) +bx_define_opcode(BX_IA_SETNLE_EbR, &BX_CPU_C::SETNLE_EbR, NULL) +bx_define_opcode(BX_IA_SETNO_EbM, &BX_CPU_C::SETNO_EbM, NULL) +bx_define_opcode(BX_IA_SETNO_EbR, &BX_CPU_C::SETNO_EbR, NULL) +bx_define_opcode(BX_IA_SETNP_EbM, &BX_CPU_C::SETNP_EbM, NULL) +bx_define_opcode(BX_IA_SETNP_EbR, &BX_CPU_C::SETNP_EbR, NULL) +bx_define_opcode(BX_IA_SETNS_EbM, &BX_CPU_C::SETNS_EbM, NULL) +bx_define_opcode(BX_IA_SETNS_EbR, &BX_CPU_C::SETNS_EbR, NULL) +bx_define_opcode(BX_IA_SETNZ_EbM, &BX_CPU_C::SETNZ_EbM, NULL) +bx_define_opcode(BX_IA_SETNZ_EbR, &BX_CPU_C::SETNZ_EbR, NULL) +bx_define_opcode(BX_IA_SETO_EbM, &BX_CPU_C::SETO_EbM, NULL) +bx_define_opcode(BX_IA_SETO_EbR, &BX_CPU_C::SETO_EbR, NULL) +bx_define_opcode(BX_IA_SETP_EbM, &BX_CPU_C::SETP_EbM, NULL) +bx_define_opcode(BX_IA_SETP_EbR, &BX_CPU_C::SETP_EbR, NULL) +bx_define_opcode(BX_IA_SETS_EbM, &BX_CPU_C::SETS_EbM, NULL) +bx_define_opcode(BX_IA_SETS_EbR, &BX_CPU_C::SETS_EbR, NULL) +bx_define_opcode(BX_IA_SETZ_EbM, &BX_CPU_C::SETZ_EbM, NULL) +bx_define_opcode(BX_IA_SETZ_EbR, &BX_CPU_C::SETZ_EbR, NULL) +bx_define_opcode(BX_IA_SGDT_Ms, &BX_CPU_C::SGDT_Ms, NULL) +bx_define_opcode(BX_IA_SHL_Eb, &BX_CPU_C::SHL_Eb, NULL) +bx_define_opcode(BX_IA_SHL_Ew, &BX_CPU_C::SHL_Ew, NULL) +bx_define_opcode(BX_IA_SHLD_EdGdR, &BX_CPU_C::SHLD_EdGdR, NULL) +bx_define_opcode(BX_IA_SHLD_EdGdM, &BX_CPU_C::SHLD_EdGdM, NULL) +bx_define_opcode(BX_IA_SHLD_EwGwR, &BX_CPU_C::SHLD_EwGwR, NULL) +bx_define_opcode(BX_IA_SHLD_EwGwM, &BX_CPU_C::SHLD_EwGwM, NULL) +bx_define_opcode(BX_IA_SHR_Eb, &BX_CPU_C::SHR_Eb, NULL) +bx_define_opcode(BX_IA_SHR_Ew, &BX_CPU_C::SHR_Ew, NULL) +bx_define_opcode(BX_IA_SHRD_EdGdR, &BX_CPU_C::SHRD_EdGdR, NULL) +bx_define_opcode(BX_IA_SHRD_EdGdM, &BX_CPU_C::SHRD_EdGdM, NULL) +bx_define_opcode(BX_IA_SHRD_EwGwR, &BX_CPU_C::SHRD_EwGwR, NULL) +bx_define_opcode(BX_IA_SHRD_EwGwM, &BX_CPU_C::SHRD_EwGwM, NULL) +bx_define_opcode(BX_IA_SIDT_Ms, &BX_CPU_C::SIDT_Ms, NULL) +bx_define_opcode(BX_IA_SLDT_Ew, &BX_CPU_C::SLDT_Ew, NULL) +bx_define_opcode(BX_IA_SMSW_EwR, &BX_CPU_C::SMSW_EwR, NULL) +bx_define_opcode(BX_IA_SMSW_EwM, &BX_CPU_C::SMSW_EwM, NULL) +bx_define_opcode(BX_IA_STC, &BX_CPU_C::STC, NULL) +bx_define_opcode(BX_IA_STD, &BX_CPU_C::STD, NULL) +bx_define_opcode(BX_IA_STI, &BX_CPU_C::STI, NULL) +bx_define_opcode(BX_IA_STR_Ew, &BX_CPU_C::STR_Ew, NULL) +bx_define_opcode(BX_IA_SUB_ALIb, &BX_CPU_C::SUB_ALIb, NULL) +bx_define_opcode(BX_IA_SUB_AXIw, &BX_CPU_C::SUB_AXIw, NULL) +bx_define_opcode(BX_IA_SUB_EAXId, &BX_CPU_C::SUB_EAXId, NULL) +bx_define_opcode(BX_IA_SUB_EbGbM, &BX_CPU_C::SUB_EbGbM, NULL) +bx_define_opcode(BX_IA_SUB_EbIbM, &BX_CPU_C::SUB_EbIbM, NULL) +bx_define_opcode(BX_IA_SUB_EbIbR, &BX_CPU_C::SUB_EbIbR, NULL) +bx_define_opcode(BX_IA_SUB_EdGdM, &BX_CPU_C::SUB_EdGdM, NULL) +bx_define_opcode(BX_IA_SUB_EdIdM, &BX_CPU_C::SUB_EdIdM, NULL) +bx_define_opcode(BX_IA_SUB_EdIdR, &BX_CPU_C::SUB_EdIdR, NULL) +bx_define_opcode(BX_IA_SUB_EwGwM, &BX_CPU_C::SUB_EwGwM, NULL) +bx_define_opcode(BX_IA_SUB_EwIwM, &BX_CPU_C::SUB_EwIwM, NULL) +bx_define_opcode(BX_IA_SUB_EwIwR, &BX_CPU_C::SUB_EwIwR, NULL) +bx_define_opcode(BX_IA_SUB_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::SUB_GbEbR) +bx_define_opcode(BX_IA_SUB_GbEbR, &BX_CPU_C::SUB_GbEbR, NULL) +bx_define_opcode(BX_IA_SUB_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::SUB_GdEdR) +bx_define_opcode(BX_IA_SUB_GdEdR, &BX_CPU_C::SUB_GdEdR, NULL) +bx_define_opcode(BX_IA_SUB_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::SUB_GwEwR) +bx_define_opcode(BX_IA_SUB_GwEwR, &BX_CPU_C::SUB_GwEwR, NULL) +bx_define_opcode(BX_IA_SYSENTER, &BX_CPU_C::SYSENTER, NULL) +bx_define_opcode(BX_IA_SYSEXIT, &BX_CPU_C::SYSEXIT, NULL) +bx_define_opcode(BX_IA_TEST_ALIb, &BX_CPU_C::TEST_ALIb, NULL) +bx_define_opcode(BX_IA_TEST_AXIw, &BX_CPU_C::TEST_AXIw, NULL) +bx_define_opcode(BX_IA_TEST_EAXId, &BX_CPU_C::TEST_EAXId, NULL) +bx_define_opcode(BX_IA_TEST_EbGbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::TEST_EbGbR) +bx_define_opcode(BX_IA_TEST_EbGbR, &BX_CPU_C::TEST_EbGbR, NULL) +bx_define_opcode(BX_IA_TEST_EbIbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::TEST_EbIbR) +bx_define_opcode(BX_IA_TEST_EbIbR, &BX_CPU_C::TEST_EbIbR, NULL) +bx_define_opcode(BX_IA_TEST_EdGdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::TEST_EdGdR) +bx_define_opcode(BX_IA_TEST_EdGdR, &BX_CPU_C::TEST_EdGdR, NULL) +bx_define_opcode(BX_IA_TEST_EdIdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::TEST_EdIdR) +bx_define_opcode(BX_IA_TEST_EdIdR, &BX_CPU_C::TEST_EdIdR, NULL) +bx_define_opcode(BX_IA_TEST_EwGwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::TEST_EwGwR) +bx_define_opcode(BX_IA_TEST_EwGwR, &BX_CPU_C::TEST_EwGwR, NULL) +bx_define_opcode(BX_IA_TEST_EwIwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::TEST_EwIwR) +bx_define_opcode(BX_IA_TEST_EwIwR, &BX_CPU_C::TEST_EwIwR, NULL) +bx_define_opcode(BX_IA_UD2A, &BX_CPU_C::UndefinedOpcode, NULL) +bx_define_opcode(BX_IA_UD2B, &BX_CPU_C::UndefinedOpcode, NULL) +bx_define_opcode(BX_IA_VERR_Ew, &BX_CPU_C::VERR_Ew, NULL) +bx_define_opcode(BX_IA_VERW_Ew, &BX_CPU_C::VERW_Ew, NULL) +bx_define_opcode(BX_IA_WBINVD, &BX_CPU_C::WBINVD, NULL) +bx_define_opcode(BX_IA_WRMSR, &BX_CPU_C::WRMSR, NULL) +bx_define_opcode(BX_IA_XADD_EbGbM, &BX_CPU_C::XADD_EbGbM, NULL) +bx_define_opcode(BX_IA_XADD_EbGbR, &BX_CPU_C::XADD_EbGbR, NULL) +bx_define_opcode(BX_IA_XADD_EdGdM, &BX_CPU_C::XADD_EdGdM, NULL) +bx_define_opcode(BX_IA_XADD_EdGdR, &BX_CPU_C::XADD_EdGdR, NULL) +bx_define_opcode(BX_IA_XADD_EwGwM, &BX_CPU_C::XADD_EwGwM, NULL) +bx_define_opcode(BX_IA_XADD_EwGwR, &BX_CPU_C::XADD_EwGwR, NULL) +bx_define_opcode(BX_IA_XCHG_EbGbM, &BX_CPU_C::XCHG_EbGbM, NULL) +bx_define_opcode(BX_IA_XCHG_EbGbR, &BX_CPU_C::XCHG_EbGbR, NULL) +bx_define_opcode(BX_IA_XCHG_EdGdM, &BX_CPU_C::XCHG_EdGdM, NULL) +bx_define_opcode(BX_IA_XCHG_EdGdR, &BX_CPU_C::XCHG_EdGdR, NULL) +bx_define_opcode(BX_IA_XCHG_ERXEAX, &BX_CPU_C::XCHG_ERXEAX, NULL) +bx_define_opcode(BX_IA_XCHG_EwGwM, &BX_CPU_C::XCHG_EwGwM, NULL) +bx_define_opcode(BX_IA_XCHG_EwGwR, &BX_CPU_C::XCHG_EwGwR, NULL) +bx_define_opcode(BX_IA_XCHG_RXAX, &BX_CPU_C::XCHG_RXAX, NULL) +bx_define_opcode(BX_IA_XLAT, &BX_CPU_C::XLAT, NULL) +bx_define_opcode(BX_IA_XOR_ALIb, &BX_CPU_C::XOR_ALIb, NULL) +bx_define_opcode(BX_IA_XOR_AXIw, &BX_CPU_C::XOR_AXIw, NULL) +bx_define_opcode(BX_IA_XOR_EAXId, &BX_CPU_C::XOR_EAXId, NULL) +bx_define_opcode(BX_IA_XOR_EbGbM, &BX_CPU_C::XOR_EbGbM, NULL) +bx_define_opcode(BX_IA_XOR_EbIbM, &BX_CPU_C::XOR_EbIbM, NULL) +bx_define_opcode(BX_IA_XOR_EbIbR, &BX_CPU_C::XOR_EbIbR, NULL) +bx_define_opcode(BX_IA_XOR_EdGdM, &BX_CPU_C::XOR_EdGdM, NULL) +bx_define_opcode(BX_IA_XOR_EdIdM, &BX_CPU_C::XOR_EdIdM, NULL) +bx_define_opcode(BX_IA_XOR_EdIdR, &BX_CPU_C::XOR_EdIdR, NULL) +bx_define_opcode(BX_IA_XOR_EwGwM, &BX_CPU_C::XOR_EwGwM, NULL) +bx_define_opcode(BX_IA_XOR_EwIwM, &BX_CPU_C::XOR_EwIwM, NULL) +bx_define_opcode(BX_IA_XOR_EwIwR, &BX_CPU_C::XOR_EwIwR, NULL) +bx_define_opcode(BX_IA_XOR_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::XOR_GbEbR) +bx_define_opcode(BX_IA_XOR_GbEbR, &BX_CPU_C::XOR_GbEbR, NULL) +bx_define_opcode(BX_IA_XOR_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::XOR_GdEdR) +bx_define_opcode(BX_IA_XOR_GdEdR, &BX_CPU_C::XOR_GdEdR, NULL) +bx_define_opcode(BX_IA_XOR_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::XOR_GwEwR) +bx_define_opcode(BX_IA_XOR_GwEwR, &BX_CPU_C::XOR_GwEwR, NULL) -bx_define_opcode(BX_IA_AAA, &BX_CPU_C::AAA, NULL, 0) -bx_define_opcode(BX_IA_AAD, &BX_CPU_C::AAD, NULL, 0) -bx_define_opcode(BX_IA_AAM, &BX_CPU_C::AAM, NULL, 0) -bx_define_opcode(BX_IA_AAS, &BX_CPU_C::AAS, NULL, 0) -bx_define_opcode(BX_IA_DAA, &BX_CPU_C::DAA, NULL, 0) -bx_define_opcode(BX_IA_DAS, &BX_CPU_C::DAS, NULL, 0) -bx_define_opcode(BX_IA_ADC_ALIb, &BX_CPU_C::ADC_ALIb, NULL, 0) -bx_define_opcode(BX_IA_ADC_AXIw, &BX_CPU_C::ADC_AXIw, NULL, 0) -bx_define_opcode(BX_IA_ADC_EAXId, &BX_CPU_C::ADC_EAXId, NULL, 0) -bx_define_opcode(BX_IA_ADC_EbGbM, &BX_CPU_C::ADC_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_ADC_EbGbR, &BX_CPU_C::ADC_GbEbR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_ADC_EbIbM, &BX_CPU_C::ADC_EbIbM, NULL, 0) -bx_define_opcode(BX_IA_ADC_EbIbR, &BX_CPU_C::ADC_EbIbR, NULL, 0) -bx_define_opcode(BX_IA_ADC_EdGdM, &BX_CPU_C::ADC_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_ADC_EdGdR, &BX_CPU_C::ADC_GdEdR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_ADC_EdIdM, &BX_CPU_C::ADC_EdIdM, NULL, 0) -bx_define_opcode(BX_IA_ADC_EdIdR, &BX_CPU_C::ADC_EdIdR, NULL, 0) -bx_define_opcode(BX_IA_ADC_EwGwM, &BX_CPU_C::ADC_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_ADC_EwGwR, &BX_CPU_C::ADC_GwEwR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_ADC_EwIwM, &BX_CPU_C::ADC_EwIwM, NULL, 0) -bx_define_opcode(BX_IA_ADC_EwIwR, &BX_CPU_C::ADC_EwIwR, NULL, 0) -bx_define_opcode(BX_IA_ADC_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::ADC_GbEbR, 0) -bx_define_opcode(BX_IA_ADC_GbEbR, &BX_CPU_C::ADC_GbEbR, NULL, 0) -bx_define_opcode(BX_IA_ADC_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::ADC_GdEdR, 0) -bx_define_opcode(BX_IA_ADC_GdEdR, &BX_CPU_C::ADC_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_ADC_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::ADC_GwEwR, 0) -bx_define_opcode(BX_IA_ADC_GwEwR, &BX_CPU_C::ADC_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_ADD_ALIb, &BX_CPU_C::ADD_ALIb, NULL, 0) -bx_define_opcode(BX_IA_ADD_AXIw, &BX_CPU_C::ADD_AXIw, NULL, 0) -bx_define_opcode(BX_IA_ADD_EAXId, &BX_CPU_C::ADD_EAXId, NULL, 0) -bx_define_opcode(BX_IA_ADD_EbGbM, &BX_CPU_C::ADD_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_ADD_EbGbR, &BX_CPU_C::ADD_GbEbR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_ADD_EbIbM, &BX_CPU_C::ADD_EbIbM, NULL, 0) -bx_define_opcode(BX_IA_ADD_EbIbR, &BX_CPU_C::ADD_EbIbR, NULL, 0) -bx_define_opcode(BX_IA_ADD_EdGdM, &BX_CPU_C::ADD_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_ADD_EdGdR, &BX_CPU_C::ADD_GdEdR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_ADD_EdIdM, &BX_CPU_C::ADD_EdIdM, NULL, 0) -bx_define_opcode(BX_IA_ADD_EdIdR, &BX_CPU_C::ADD_EdIdR, NULL, 0) -bx_define_opcode(BX_IA_ADD_EwGwM, &BX_CPU_C::ADD_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_ADD_EwGwR, &BX_CPU_C::ADD_GwEwR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_ADD_EwIwM, &BX_CPU_C::ADD_EwIwM, NULL, 0) -bx_define_opcode(BX_IA_ADD_EwIwR, &BX_CPU_C::ADD_EwIwR, NULL, 0) -bx_define_opcode(BX_IA_ADD_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::ADD_GbEbR, 0) -bx_define_opcode(BX_IA_ADD_GbEbR, &BX_CPU_C::ADD_GbEbR, NULL, 0) -bx_define_opcode(BX_IA_ADD_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::ADD_GdEdR, 0) -bx_define_opcode(BX_IA_ADD_GdEdR, &BX_CPU_C::ADD_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_ADD_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::ADD_GwEwR, 0) -bx_define_opcode(BX_IA_ADD_GwEwR, &BX_CPU_C::ADD_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_AND_ALIb, &BX_CPU_C::AND_ALIb, NULL, 0) -bx_define_opcode(BX_IA_AND_AXIw, &BX_CPU_C::AND_AXIw, NULL, 0) -bx_define_opcode(BX_IA_AND_EAXId, &BX_CPU_C::AND_EAXId, NULL, 0) -bx_define_opcode(BX_IA_AND_EbGbM, &BX_CPU_C::AND_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_AND_EbGbR, &BX_CPU_C::AND_GbEbR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_AND_EbIbM, &BX_CPU_C::AND_EbIbM, NULL, 0) -bx_define_opcode(BX_IA_AND_EbIbR, &BX_CPU_C::AND_EbIbR, NULL, 0) -bx_define_opcode(BX_IA_AND_EdGdM, &BX_CPU_C::AND_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_AND_EdGdR, &BX_CPU_C::AND_GdEdR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_AND_EdIdM, &BX_CPU_C::AND_EdIdM, NULL, 0) -bx_define_opcode(BX_IA_AND_EdIdR, &BX_CPU_C::AND_EdIdR, NULL, 0) -bx_define_opcode(BX_IA_AND_EwGwM, &BX_CPU_C::AND_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_AND_EwGwR, &BX_CPU_C::AND_GwEwR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_AND_EwIwM, &BX_CPU_C::AND_EwIwM, NULL, 0) -bx_define_opcode(BX_IA_AND_EwIwR, &BX_CPU_C::AND_EwIwR, NULL, 0) -bx_define_opcode(BX_IA_AND_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::AND_GbEbR, 0) -bx_define_opcode(BX_IA_AND_GbEbR, &BX_CPU_C::AND_GbEbR, NULL, 0) -bx_define_opcode(BX_IA_AND_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::AND_GdEdR, 0) -bx_define_opcode(BX_IA_AND_GdEdR, &BX_CPU_C::AND_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_AND_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::AND_GwEwR, 0) -bx_define_opcode(BX_IA_AND_GwEwR, &BX_CPU_C::AND_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_ARPL_EwGw, &BX_CPU_C::ARPL_EwGw, NULL, 0) -bx_define_opcode(BX_IA_BOUND_GdMa, &BX_CPU_C::BOUND_GdMa, NULL, 0) -bx_define_opcode(BX_IA_BOUND_GwMa, &BX_CPU_C::BOUND_GwMa, NULL, 0) -bx_define_opcode(BX_IA_BSF_GdEdR, &BX_CPU_C::BSF_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_BSF_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BSF_GdEdR, 0) -bx_define_opcode(BX_IA_BSF_GwEwR, &BX_CPU_C::BSF_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_BSF_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::BSF_GwEwR, 0) -bx_define_opcode(BX_IA_BSR_GdEdR, &BX_CPU_C::BSR_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_BSR_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::BSR_GdEdR, 0) -bx_define_opcode(BX_IA_BSR_GwEwR, &BX_CPU_C::BSR_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_BSR_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::BSR_GwEwR, 0) -bx_define_opcode(BX_IA_BSWAP_ERX, &BX_CPU_C::BSWAP_ERX, NULL, 0) -bx_define_opcode(BX_IA_BT_EdGdM, &BX_CPU_C::BT_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_BT_EdGdR, &BX_CPU_C::BT_EdGdR, NULL, 0) -bx_define_opcode(BX_IA_BT_EdIbM, &BX_CPU_C::BT_EdIbM, NULL, 0) -bx_define_opcode(BX_IA_BT_EdIbR, &BX_CPU_C::BT_EdIbR, NULL, 0) -bx_define_opcode(BX_IA_BT_EwGwM, &BX_CPU_C::BT_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_BT_EwGwR, &BX_CPU_C::BT_EwGwR, NULL, 0) -bx_define_opcode(BX_IA_BT_EwIbM, &BX_CPU_C::BT_EwIbM, NULL, 0) -bx_define_opcode(BX_IA_BT_EwIbR, &BX_CPU_C::BT_EwIbR, NULL, 0) -bx_define_opcode(BX_IA_BTC_EdGdM, &BX_CPU_C::BTC_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_BTC_EdGdR, &BX_CPU_C::BTC_EdGdR, NULL, 0) -bx_define_opcode(BX_IA_BTC_EdIbM, &BX_CPU_C::BTC_EdIbM, NULL, 0) -bx_define_opcode(BX_IA_BTC_EdIbR, &BX_CPU_C::BTC_EdIbR, NULL, 0) -bx_define_opcode(BX_IA_BTC_EwGwM, &BX_CPU_C::BTC_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_BTC_EwGwR, &BX_CPU_C::BTC_EwGwR, NULL, 0) -bx_define_opcode(BX_IA_BTC_EwIbM, &BX_CPU_C::BTC_EwIbM, NULL, 0) -bx_define_opcode(BX_IA_BTC_EwIbR, &BX_CPU_C::BTC_EwIbR, NULL, 0) -bx_define_opcode(BX_IA_BTR_EdGdM, &BX_CPU_C::BTR_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_BTR_EdGdR, &BX_CPU_C::BTR_EdGdR, NULL, 0) -bx_define_opcode(BX_IA_BTR_EdIbM, &BX_CPU_C::BTR_EdIbM, NULL, 0) -bx_define_opcode(BX_IA_BTR_EdIbR, &BX_CPU_C::BTR_EdIbR, NULL, 0) -bx_define_opcode(BX_IA_BTR_EwGwM, &BX_CPU_C::BTR_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_BTR_EwGwR, &BX_CPU_C::BTR_EwGwR, NULL, 0) -bx_define_opcode(BX_IA_BTR_EwIbM, &BX_CPU_C::BTR_EwIbM, NULL, 0) -bx_define_opcode(BX_IA_BTR_EwIbR, &BX_CPU_C::BTR_EwIbR, NULL, 0) -bx_define_opcode(BX_IA_BTS_EdGdM, &BX_CPU_C::BTS_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_BTS_EdGdR, &BX_CPU_C::BTS_EdGdR, NULL, 0) -bx_define_opcode(BX_IA_BTS_EdIbM, &BX_CPU_C::BTS_EdIbM, NULL, 0) -bx_define_opcode(BX_IA_BTS_EdIbR, &BX_CPU_C::BTS_EdIbR, NULL, 0) -bx_define_opcode(BX_IA_BTS_EwGwM, &BX_CPU_C::BTS_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_BTS_EwGwR, &BX_CPU_C::BTS_EwGwR, NULL, 0) -bx_define_opcode(BX_IA_BTS_EwIbM, &BX_CPU_C::BTS_EwIbM, NULL, 0) -bx_define_opcode(BX_IA_BTS_EwIbR, &BX_CPU_C::BTS_EwIbR, NULL, 0) -bx_define_opcode(BX_IA_ERROR, &BX_CPU_C::BxError, NULL, 0) -bx_define_opcode(BX_IA_CALL_EdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CALL_EdR, 0) -bx_define_opcode(BX_IA_CALL_EdR, &BX_CPU_C::CALL_EdR, NULL, 0) -bx_define_opcode(BX_IA_CALL_EwM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CALL_EwR, 0) -bx_define_opcode(BX_IA_CALL_EwR, &BX_CPU_C::CALL_EwR, NULL, 0) -bx_define_opcode(BX_IA_CALL_Jd, &BX_CPU_C::CALL_Jd, NULL, 0) -bx_define_opcode(BX_IA_CALL_Jw, &BX_CPU_C::CALL_Jw, NULL, 0) -bx_define_opcode(BX_IA_CALL16_Ap, &BX_CPU_C::CALL16_Ap, NULL, 0) -bx_define_opcode(BX_IA_CALL16_Ep, &BX_CPU_C::CALL16_Ep, NULL, 0) -bx_define_opcode(BX_IA_CALL32_Ap, &BX_CPU_C::CALL32_Ap, NULL, 0) -bx_define_opcode(BX_IA_CALL32_Ep, &BX_CPU_C::CALL32_Ep, NULL, 0) -bx_define_opcode(BX_IA_CBW, &BX_CPU_C::CBW, NULL, 0) -bx_define_opcode(BX_IA_CDQ, &BX_CPU_C::CDQ, NULL, 0) -bx_define_opcode(BX_IA_CLC, &BX_CPU_C::CLC, NULL, 0) -bx_define_opcode(BX_IA_CLD, &BX_CPU_C::CLD, NULL, 0) -bx_define_opcode(BX_IA_CLFLUSH, &BX_CPU_C::CLFLUSH, NULL, 0) -bx_define_opcode(BX_IA_CLI, &BX_CPU_C::CLI, NULL, 0) -bx_define_opcode(BX_IA_CLTS, &BX_CPU_C::CLTS, NULL, 0) -bx_define_opcode(BX_IA_CMC, &BX_CPU_C::CMC, NULL, 0) -bx_define_opcode(BX_IA_CMOVB_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVB_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVB_GdEdR, &BX_CPU_C::CMOVB_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVB_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVB_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVB_GwEwR, &BX_CPU_C::CMOVB_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVBE_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVBE_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVBE_GdEdR, &BX_CPU_C::CMOVBE_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVBE_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVBE_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVBE_GwEwR, &BX_CPU_C::CMOVBE_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVL_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVL_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVL_GdEdR, &BX_CPU_C::CMOVL_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVL_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVL_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVL_GwEwR, &BX_CPU_C::CMOVL_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVLE_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVLE_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVLE_GdEdR, &BX_CPU_C::CMOVLE_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVLE_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVLE_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVLE_GwEwR, &BX_CPU_C::CMOVLE_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNB_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNB_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVNB_GdEdR, &BX_CPU_C::CMOVNB_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNB_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNB_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVNB_GwEwR, &BX_CPU_C::CMOVNB_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNBE_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNBE_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVNBE_GdEdR, &BX_CPU_C::CMOVNBE_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNBE_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNBE_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVNBE_GwEwR, &BX_CPU_C::CMOVNBE_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNL_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNL_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVNL_GdEdR, &BX_CPU_C::CMOVNL_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNL_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNL_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVNL_GwEwR, &BX_CPU_C::CMOVNL_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNLE_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNLE_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVNLE_GdEdR, &BX_CPU_C::CMOVNLE_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNLE_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNLE_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVNLE_GwEwR, &BX_CPU_C::CMOVNLE_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNO_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNO_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVNO_GdEdR, &BX_CPU_C::CMOVNO_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNO_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNO_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVNO_GwEwR, &BX_CPU_C::CMOVNO_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNP_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNP_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVNP_GdEdR, &BX_CPU_C::CMOVNP_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNP_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNP_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVNP_GwEwR, &BX_CPU_C::CMOVNP_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNS_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNS_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVNS_GdEdR, &BX_CPU_C::CMOVNS_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNS_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNS_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVNS_GwEwR, &BX_CPU_C::CMOVNS_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNZ_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVNZ_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVNZ_GdEdR, &BX_CPU_C::CMOVNZ_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNZ_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVNZ_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVNZ_GwEwR, &BX_CPU_C::CMOVNZ_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVO_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVO_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVO_GdEdR, &BX_CPU_C::CMOVO_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVO_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVO_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVO_GwEwR, &BX_CPU_C::CMOVO_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVP_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVP_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVP_GdEdR, &BX_CPU_C::CMOVP_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVP_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVP_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVP_GwEwR, &BX_CPU_C::CMOVP_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVS_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVS_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVS_GdEdR, &BX_CPU_C::CMOVS_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVS_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVS_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVS_GwEwR, &BX_CPU_C::CMOVS_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMOVZ_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMOVZ_GdEdR, 0) -bx_define_opcode(BX_IA_CMOVZ_GdEdR, &BX_CPU_C::CMOVZ_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMOVZ_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMOVZ_GwEwR, 0) -bx_define_opcode(BX_IA_CMOVZ_GwEwR, &BX_CPU_C::CMOVZ_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMP_ALIb, &BX_CPU_C::CMP_ALIb, NULL, 0) -bx_define_opcode(BX_IA_CMP_AXIw, &BX_CPU_C::CMP_AXIw, NULL, 0) -bx_define_opcode(BX_IA_CMP_EAXId, &BX_CPU_C::CMP_EAXId, NULL, 0) -bx_define_opcode(BX_IA_CMP_EbGbM, &BX_CPU_C::CMP_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_CMP_EbGbR, &BX_CPU_C::CMP_GbEbR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_CMP_EbIbM, &BX_CPU_C::CMP_EbIbM, NULL, 0) -bx_define_opcode(BX_IA_CMP_EbIbR, &BX_CPU_C::CMP_EbIbR, NULL, 0) -bx_define_opcode(BX_IA_CMP_EdGdM, &BX_CPU_C::CMP_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_CMP_EdGdR, &BX_CPU_C::CMP_GdEdR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_CMP_EdIdM, &BX_CPU_C::CMP_EdIdM, NULL, 0) -bx_define_opcode(BX_IA_CMP_EdIdR, &BX_CPU_C::CMP_EdIdR, NULL, 0) -bx_define_opcode(BX_IA_CMP_EwGwM, &BX_CPU_C::CMP_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_CMP_EwGwR, &BX_CPU_C::CMP_GwEwR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_CMP_EwIwM, &BX_CPU_C::CMP_EwIwM, NULL, 0) -bx_define_opcode(BX_IA_CMP_EwIwR, &BX_CPU_C::CMP_EwIwR, NULL, 0) -bx_define_opcode(BX_IA_CMP_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::CMP_GbEbR, 0) -bx_define_opcode(BX_IA_CMP_GbEbR, &BX_CPU_C::CMP_GbEbR, NULL, 0) -bx_define_opcode(BX_IA_CMP_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::CMP_GdEdR, 0) -bx_define_opcode(BX_IA_CMP_GdEdR, &BX_CPU_C::CMP_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_CMP_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::CMP_GwEwR, 0) -bx_define_opcode(BX_IA_CMP_GwEwR, &BX_CPU_C::CMP_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG_EbGbM, &BX_CPU_C::CMPXCHG_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG_EbGbR, &BX_CPU_C::CMPXCHG_EbGbR, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG_EdGdM, &BX_CPU_C::CMPXCHG_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG_EdGdR, &BX_CPU_C::CMPXCHG_EdGdR, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG_EwGwM, &BX_CPU_C::CMPXCHG_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG_EwGwR, &BX_CPU_C::CMPXCHG_EwGwR, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG_IBTS, &BX_CPU_C::CMPXCHG_IBTS, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG_XBTS, &BX_CPU_C::CMPXCHG_XBTS, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG8B, &BX_CPU_C::CMPXCHG8B, NULL, 0) -bx_define_opcode(BX_IA_CPUID, &BX_CPU_C::CPUID, NULL, 0) -bx_define_opcode(BX_IA_CWD, &BX_CPU_C::CWD, NULL, 0) -bx_define_opcode(BX_IA_CWDE, &BX_CPU_C::CWDE, NULL, 0) -bx_define_opcode(BX_IA_DEC_EbM, &BX_CPU_C::DEC_EbM, NULL, 0) -bx_define_opcode(BX_IA_DEC_EbR, &BX_CPU_C::DEC_EbR, NULL, 0) -bx_define_opcode(BX_IA_DEC_EdR, &BX_CPU_C::DEC_ERX, NULL, 0) -bx_define_opcode(BX_IA_DEC_EdM, &BX_CPU_C::DEC_EdM, NULL, 0) -bx_define_opcode(BX_IA_DEC_ERX, &BX_CPU_C::DEC_ERX, NULL, 0) -bx_define_opcode(BX_IA_DEC_EwR, &BX_CPU_C::DEC_RX, NULL, 0) -bx_define_opcode(BX_IA_DEC_EwM, &BX_CPU_C::DEC_EwM, NULL, 0) -bx_define_opcode(BX_IA_DEC_RX, &BX_CPU_C::DEC_RX, NULL, 0) -bx_define_opcode(BX_IA_DIV_ALEbR, &BX_CPU_C::DIV_ALEbR, NULL, 0) -bx_define_opcode(BX_IA_DIV_ALEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::DIV_ALEbR, 0) -bx_define_opcode(BX_IA_DIV_AXEwR, &BX_CPU_C::DIV_AXEwR, NULL, 0) -bx_define_opcode(BX_IA_DIV_AXEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::DIV_AXEwR, 0) -bx_define_opcode(BX_IA_DIV_EAXEdR, &BX_CPU_C::DIV_EAXEdR, NULL, 0) -bx_define_opcode(BX_IA_DIV_EAXEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::DIV_EAXEdR, 0) -bx_define_opcode(BX_IA_ENTER16_IwIb, &BX_CPU_C::ENTER16_IwIb, NULL, 0) -bx_define_opcode(BX_IA_ENTER32_IwIb, &BX_CPU_C::ENTER32_IwIb, NULL, 0) -bx_define_opcode(BX_IA_HLT, &BX_CPU_C::HLT, NULL, 0) -bx_define_opcode(BX_IA_IDIV_ALEbR, &BX_CPU_C::IDIV_ALEbR, NULL, 0) -bx_define_opcode(BX_IA_IDIV_ALEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::IDIV_ALEbR, 0) -bx_define_opcode(BX_IA_IDIV_AXEwR, &BX_CPU_C::IDIV_AXEwR, NULL, 0) -bx_define_opcode(BX_IA_IDIV_AXEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IDIV_AXEwR, 0) -bx_define_opcode(BX_IA_IDIV_EAXEdR, &BX_CPU_C::IDIV_EAXEdR, NULL, 0) -bx_define_opcode(BX_IA_IDIV_EAXEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IDIV_EAXEdR, 0) -bx_define_opcode(BX_IA_IMUL_ALEbR, &BX_CPU_C::IMUL_ALEbR, NULL, 0) -bx_define_opcode(BX_IA_IMUL_ALEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::IMUL_ALEbR, 0) -bx_define_opcode(BX_IA_IMUL_AXEwR, &BX_CPU_C::IMUL_AXEwR, NULL, 0) -bx_define_opcode(BX_IA_IMUL_AXEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_AXEwR, 0) -bx_define_opcode(BX_IA_IMUL_EAXEdR, &BX_CPU_C::IMUL_EAXEdR, NULL, 0) -bx_define_opcode(BX_IA_IMUL_EAXEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_EAXEdR, 0) -bx_define_opcode(BX_IA_IMUL_GdEdR, &BX_CPU_C::IMUL_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_IMUL_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_GdEdR, 0) -bx_define_opcode(BX_IA_IMUL_GdEdIdR, &BX_CPU_C::IMUL_GdEdIdR, NULL, 0) -bx_define_opcode(BX_IA_IMUL_GdEdIdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::IMUL_GdEdIdR, 0) -bx_define_opcode(BX_IA_IMUL_GwEwR, &BX_CPU_C::IMUL_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_IMUL_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_GwEwR, 0) -bx_define_opcode(BX_IA_IMUL_GwEwIwR, &BX_CPU_C::IMUL_GwEwIwR, NULL, 0) -bx_define_opcode(BX_IA_IMUL_GwEwIwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::IMUL_GwEwIwR, 0) -bx_define_opcode(BX_IA_IN_ALDX, &BX_CPU_C::IN_ALDX, NULL, 0) -bx_define_opcode(BX_IA_IN_ALIb, &BX_CPU_C::IN_ALIb, NULL, 0) -bx_define_opcode(BX_IA_IN_AXDX, &BX_CPU_C::IN_AXDX, NULL, 0) -bx_define_opcode(BX_IA_IN_AXIb, &BX_CPU_C::IN_AXIb, NULL, 0) -bx_define_opcode(BX_IA_IN_EAXDX, &BX_CPU_C::IN_EAXDX, NULL, 0) -bx_define_opcode(BX_IA_IN_EAXIb, &BX_CPU_C::IN_EAXIb, NULL, 0) -bx_define_opcode(BX_IA_INC_EbM, &BX_CPU_C::INC_EbM, NULL, 0) -bx_define_opcode(BX_IA_INC_EbR, &BX_CPU_C::INC_EbR, NULL, 0) -bx_define_opcode(BX_IA_INC_EdR, &BX_CPU_C::INC_ERX, NULL, 0) -bx_define_opcode(BX_IA_INC_EdM, &BX_CPU_C::INC_EdM, NULL, 0) -bx_define_opcode(BX_IA_INC_ERX, &BX_CPU_C::INC_ERX, NULL, 0) -bx_define_opcode(BX_IA_INC_EwR, &BX_CPU_C::INC_RX, NULL, 0) -bx_define_opcode(BX_IA_INC_EwM, &BX_CPU_C::INC_EwM, NULL, 0) -bx_define_opcode(BX_IA_INC_RX, &BX_CPU_C::INC_RX, NULL, 0) -bx_define_opcode(BX_IA_INT_Ib, &BX_CPU_C::INT_Ib, NULL, 0) -bx_define_opcode(BX_IA_INT1, &BX_CPU_C::INT1, NULL, 0) -bx_define_opcode(BX_IA_INT3, &BX_CPU_C::INT3, NULL, 0) -bx_define_opcode(BX_IA_INTO, &BX_CPU_C::INTO, NULL, 0) -bx_define_opcode(BX_IA_INVD, &BX_CPU_C::INVD, NULL, 0) -bx_define_opcode(BX_IA_INVLPG, &BX_CPU_C::INVLPG, NULL, 0) -bx_define_opcode(BX_IA_IRET16, &BX_CPU_C::IRET16, NULL, 0) -bx_define_opcode(BX_IA_IRET32, &BX_CPU_C::IRET32, NULL, 0) -bx_define_opcode(BX_IA_JB_Jd, &BX_CPU_C::JB_Jd, NULL, 0) -bx_define_opcode(BX_IA_JB_Jw, &BX_CPU_C::JB_Jw, NULL, 0) -bx_define_opcode(BX_IA_JBE_Jd, &BX_CPU_C::JBE_Jd, NULL, 0) -bx_define_opcode(BX_IA_JBE_Jw, &BX_CPU_C::JBE_Jw, NULL, 0) -bx_define_opcode(BX_IA_JCXZ_Jb, &BX_CPU_C::JCXZ_Jb, NULL, 0) -bx_define_opcode(BX_IA_JECXZ_Jb, &BX_CPU_C::JECXZ_Jb, NULL, 0) -bx_define_opcode(BX_IA_JL_Jd, &BX_CPU_C::JL_Jd, NULL, 0) -bx_define_opcode(BX_IA_JL_Jw, &BX_CPU_C::JL_Jw, NULL, 0) -bx_define_opcode(BX_IA_JLE_Jd, &BX_CPU_C::JLE_Jd, NULL, 0) -bx_define_opcode(BX_IA_JLE_Jw, &BX_CPU_C::JLE_Jw, NULL, 0) -bx_define_opcode(BX_IA_JMP_Ap, &BX_CPU_C::JMP_Ap, NULL, 0) -bx_define_opcode(BX_IA_JMP_EdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::JMP_EdR, 0) -bx_define_opcode(BX_IA_JMP_EdR, &BX_CPU_C::JMP_EdR, NULL, 0) -bx_define_opcode(BX_IA_JMP_EwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::JMP_EwR, 0) -bx_define_opcode(BX_IA_JMP_EwR, &BX_CPU_C::JMP_EwR, NULL, 0) -bx_define_opcode(BX_IA_JMP_Jd, &BX_CPU_C::JMP_Jd, NULL, 0) -bx_define_opcode(BX_IA_JMP_Jw, &BX_CPU_C::JMP_Jw, NULL, 0) -bx_define_opcode(BX_IA_JMP16_Ep, &BX_CPU_C::JMP16_Ep, NULL, 0) -bx_define_opcode(BX_IA_JMP32_Ep, &BX_CPU_C::JMP32_Ep, NULL, 0) -bx_define_opcode(BX_IA_JNB_Jd, &BX_CPU_C::JNB_Jd, NULL, 0) -bx_define_opcode(BX_IA_JNB_Jw, &BX_CPU_C::JNB_Jw, NULL, 0) -bx_define_opcode(BX_IA_JNBE_Jd, &BX_CPU_C::JNBE_Jd, NULL, 0) -bx_define_opcode(BX_IA_JNBE_Jw, &BX_CPU_C::JNBE_Jw, NULL, 0) -bx_define_opcode(BX_IA_JNL_Jd, &BX_CPU_C::JNL_Jd, NULL, 0) -bx_define_opcode(BX_IA_JNL_Jw, &BX_CPU_C::JNL_Jw, NULL, 0) -bx_define_opcode(BX_IA_JNLE_Jd, &BX_CPU_C::JNLE_Jd, NULL, 0) -bx_define_opcode(BX_IA_JNLE_Jw, &BX_CPU_C::JNLE_Jw, NULL, 0) -bx_define_opcode(BX_IA_JNO_Jd, &BX_CPU_C::JNO_Jd, NULL, 0) -bx_define_opcode(BX_IA_JNO_Jw, &BX_CPU_C::JNO_Jw, NULL, 0) -bx_define_opcode(BX_IA_JNP_Jd, &BX_CPU_C::JNP_Jd, NULL, 0) -bx_define_opcode(BX_IA_JNP_Jw, &BX_CPU_C::JNP_Jw, NULL, 0) -bx_define_opcode(BX_IA_JNS_Jd, &BX_CPU_C::JNS_Jd, NULL, 0) -bx_define_opcode(BX_IA_JNS_Jw, &BX_CPU_C::JNS_Jw, NULL, 0) -bx_define_opcode(BX_IA_JNZ_Jd, &BX_CPU_C::JNZ_Jd, NULL, 0) -bx_define_opcode(BX_IA_JNZ_Jw, &BX_CPU_C::JNZ_Jw, NULL, 0) -bx_define_opcode(BX_IA_JO_Jd, &BX_CPU_C::JO_Jd, NULL, 0) -bx_define_opcode(BX_IA_JO_Jw, &BX_CPU_C::JO_Jw, NULL, 0) -bx_define_opcode(BX_IA_JP_Jd, &BX_CPU_C::JP_Jd, NULL, 0) -bx_define_opcode(BX_IA_JP_Jw, &BX_CPU_C::JP_Jw, NULL, 0) -bx_define_opcode(BX_IA_JS_Jd, &BX_CPU_C::JS_Jd, NULL, 0) -bx_define_opcode(BX_IA_JS_Jw, &BX_CPU_C::JS_Jw, NULL, 0) -bx_define_opcode(BX_IA_JZ_Jd, &BX_CPU_C::JZ_Jd, NULL, 0) -bx_define_opcode(BX_IA_JZ_Jw, &BX_CPU_C::JZ_Jw, NULL, 0) -bx_define_opcode(BX_IA_LAHF, &BX_CPU_C::LAHF, NULL, 0) -bx_define_opcode(BX_IA_LAR_GvEw, &BX_CPU_C::LAR_GvEw, NULL, 0) -bx_define_opcode(BX_IA_LDS_GdMp, &BX_CPU_C::LDS_GdMp, NULL, 0) -bx_define_opcode(BX_IA_LDS_GwMp, &BX_CPU_C::LDS_GwMp, NULL, 0) -bx_define_opcode(BX_IA_LEA_GdM, &BX_CPU_C::LEA_GdM, NULL, 0) -bx_define_opcode(BX_IA_LEA_GwM, &BX_CPU_C::LEA_GwM, NULL, 0) -bx_define_opcode(BX_IA_LEAVE16, &BX_CPU_C::LEAVE16, NULL, 0) -bx_define_opcode(BX_IA_LEAVE32, &BX_CPU_C::LEAVE32, NULL, 0) -bx_define_opcode(BX_IA_LES_GdMp, &BX_CPU_C::LES_GdMp, NULL, 0) -bx_define_opcode(BX_IA_LES_GwMp, &BX_CPU_C::LES_GwMp, NULL, 0) -bx_define_opcode(BX_IA_LFS_GdMp, &BX_CPU_C::LFS_GdMp, NULL, 0) -bx_define_opcode(BX_IA_LFS_GwMp, &BX_CPU_C::LFS_GwMp, NULL, 0) -bx_define_opcode(BX_IA_LGDT_Ms, &BX_CPU_C::LGDT_Ms, NULL, 0) -bx_define_opcode(BX_IA_LGS_GdMp, &BX_CPU_C::LGS_GdMp, NULL, 0) -bx_define_opcode(BX_IA_LGS_GwMp, &BX_CPU_C::LGS_GwMp, NULL, 0) -bx_define_opcode(BX_IA_LIDT_Ms, &BX_CPU_C::LIDT_Ms, NULL, 0) -bx_define_opcode(BX_IA_LLDT_Ew, &BX_CPU_C::LLDT_Ew, NULL, 0) -bx_define_opcode(BX_IA_LMSW_Ew, &BX_CPU_C::LMSW_Ew, NULL, 0) -bx_define_opcode(BX_IA_LOOP16_Jb, &BX_CPU_C::LOOP16_Jb, NULL, 0) -bx_define_opcode(BX_IA_LOOPE16_Jb, &BX_CPU_C::LOOPE16_Jb, NULL, 0) -bx_define_opcode(BX_IA_LOOPNE16_Jb, &BX_CPU_C::LOOPNE16_Jb, NULL, 0) -bx_define_opcode(BX_IA_LOOP32_Jb, &BX_CPU_C::LOOP32_Jb, NULL, 0) -bx_define_opcode(BX_IA_LOOPE32_Jb, &BX_CPU_C::LOOPE32_Jb, NULL, 0) -bx_define_opcode(BX_IA_LOOPNE32_Jb, &BX_CPU_C::LOOPNE32_Jb, NULL, 0) -bx_define_opcode(BX_IA_LSL_GvEw, &BX_CPU_C::LSL_GvEw, NULL, 0) -bx_define_opcode(BX_IA_LSS_GdMp, &BX_CPU_C::LSS_GdMp, NULL, 0) -bx_define_opcode(BX_IA_LSS_GwMp, &BX_CPU_C::LSS_GwMp, NULL, 0) -bx_define_opcode(BX_IA_LTR_Ew, &BX_CPU_C::LTR_Ew, NULL, 0) -bx_define_opcode(BX_IA_MONITOR, &BX_CPU_C::MONITOR, NULL, 0) -bx_define_opcode(BX_IA_MWAIT, &BX_CPU_C::MWAIT, NULL, 0) -bx_define_opcode(BX_IA_MOV_ALOd, &BX_CPU_C::MOV_ALOd, NULL, 0) -bx_define_opcode(BX_IA_MOV_AXOd, &BX_CPU_C::MOV_AXOd, NULL, 0) -bx_define_opcode(BX_IA_MOV_CdRd, &BX_CPU_C::MOV_CdRd, NULL, 0) -bx_define_opcode(BX_IA_MOV_DdRd, &BX_CPU_C::MOV_DdRd, NULL, 0) -bx_define_opcode(BX_IA_MOV_EAXOd, &BX_CPU_C::MOV_EAXOd, NULL, 0) -bx_define_opcode(BX_IA_MOV_EbGbM, &BX_CPU_C::MOV_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_MOV_EbGbR, &BX_CPU_C::MOV_GbEbR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_MOV_EbIbM, &BX_CPU_C::MOV_EbIbM, NULL, 0) -bx_define_opcode(BX_IA_MOV_EbIbR, &BX_CPU_C::MOV_RLIb, NULL, 0) -bx_define_opcode(BX_IA_MOV_EdGdM, &BX_CPU_C::MOV_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_MOV_EdGdR, &BX_CPU_C::MOV_GdEdR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_MOV_EdIdM, &BX_CPU_C::MOV_EdIdM, NULL, 0) -bx_define_opcode(BX_IA_MOV_EdIdR, &BX_CPU_C::MOV_ERXId, NULL, 0) -bx_define_opcode(BX_IA_MOV_ERXId, &BX_CPU_C::MOV_ERXId, NULL, 0) -bx_define_opcode(BX_IA_MOV_EwGwM, &BX_CPU_C::MOV_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_MOV_EwGwR, &BX_CPU_C::MOV_GwEwR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_MOV_EwIwM, &BX_CPU_C::MOV_EwIwM, NULL, 0) -bx_define_opcode(BX_IA_MOV_EwIwR, &BX_CPU_C::MOV_RXIw, NULL, 0) -bx_define_opcode(BX_IA_MOV_EwSwM, &BX_CPU_C::MOV_EwSwM, NULL, 0) -bx_define_opcode(BX_IA_MOV_EwSwR, &BX_CPU_C::MOV_EwSwR, NULL, 0) -bx_define_opcode(BX_IA_MOV_GbEbM, &BX_CPU_C::MOV_GbEbM, NULL, 0) -bx_define_opcode(BX_IA_MOV_GbEbR, &BX_CPU_C::MOV_GbEbR, NULL, 0) -bx_define_opcode(BX_IA_MOV_GdEdM, &BX_CPU_C::MOV_GdEdM, NULL, 0) -bx_define_opcode(BX_IA_MOV_GdEdR, &BX_CPU_C::MOV_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_MOV_GwEwM, &BX_CPU_C::MOV_GwEwM, NULL, 0) -bx_define_opcode(BX_IA_MOV_GwEwR, &BX_CPU_C::MOV_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_MOV_OdAL, &BX_CPU_C::MOV_OdAL, NULL, 0) -bx_define_opcode(BX_IA_MOV_OdAX, &BX_CPU_C::MOV_OdAX, NULL, 0) -bx_define_opcode(BX_IA_MOV_OdEAX, &BX_CPU_C::MOV_OdEAX, NULL, 0) -bx_define_opcode(BX_IA_MOV_RdCd, &BX_CPU_C::MOV_RdCd, NULL, 0) -bx_define_opcode(BX_IA_MOV_RdDd, &BX_CPU_C::MOV_RdDd, NULL, 0) -bx_define_opcode(BX_IA_MOV_RdTd, &BX_CPU_C::MOV_RdTd, NULL, 0) -bx_define_opcode(BX_IA_MOV_RHIb, &BX_CPU_C::MOV_RHIb, NULL, 0) -bx_define_opcode(BX_IA_MOV_RLIb, &BX_CPU_C::MOV_RLIb, NULL, 0) -bx_define_opcode(BX_IA_MOV_RXIw, &BX_CPU_C::MOV_RXIw, NULL, 0) -bx_define_opcode(BX_IA_MOV_SwEw, &BX_CPU_C::MOV_SwEw, NULL, 0) -bx_define_opcode(BX_IA_MOV_TdRd, &BX_CPU_C::MOV_TdRd, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GdEbM, &BX_CPU_C::MOVSX_GdEbM, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GdEbR, &BX_CPU_C::MOVSX_GdEbR, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GdEwM, &BX_CPU_C::MOVSX_GdEwM, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GdEwR, &BX_CPU_C::MOVSX_GdEwR, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GwEbM, &BX_CPU_C::MOVSX_GwEbM, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GwEbR, &BX_CPU_C::MOVSX_GwEbR, NULL, 0) -bx_define_opcode(BX_IA_MOVZX_GdEbM, &BX_CPU_C::MOVZX_GdEbM, NULL, 0) -bx_define_opcode(BX_IA_MOVZX_GdEbR, &BX_CPU_C::MOVZX_GdEbR, NULL, 0) -bx_define_opcode(BX_IA_MOVZX_GdEwM, &BX_CPU_C::MOVZX_GdEwM, NULL, 0) -bx_define_opcode(BX_IA_MOVZX_GdEwR, &BX_CPU_C::MOVZX_GdEwR, NULL, 0) -bx_define_opcode(BX_IA_MOVZX_GwEbM, &BX_CPU_C::MOVZX_GwEbM, NULL, 0) -bx_define_opcode(BX_IA_MOVZX_GwEbR, &BX_CPU_C::MOVZX_GwEbR, NULL, 0) -bx_define_opcode(BX_IA_MUL_ALEbR, &BX_CPU_C::MUL_ALEbR, NULL, 0) -bx_define_opcode(BX_IA_MUL_ALEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::MUL_ALEbR, 0) -bx_define_opcode(BX_IA_MUL_AXEwR, &BX_CPU_C::MUL_AXEwR, NULL, 0) -bx_define_opcode(BX_IA_MUL_AXEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::MUL_AXEwR, 0) -bx_define_opcode(BX_IA_MUL_EAXEdR, &BX_CPU_C::MUL_EAXEdR, NULL, 0) -bx_define_opcode(BX_IA_MUL_EAXEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::MUL_EAXEdR, 0) -bx_define_opcode(BX_IA_NEG_EbM, &BX_CPU_C::NEG_EbM, NULL, 0) -bx_define_opcode(BX_IA_NEG_EbR, &BX_CPU_C::NEG_EbR, NULL, 0) -bx_define_opcode(BX_IA_NEG_EdM, &BX_CPU_C::NEG_EdM, NULL, 0) -bx_define_opcode(BX_IA_NEG_EdR, &BX_CPU_C::NEG_EdR, NULL, 0) -bx_define_opcode(BX_IA_NEG_EwM, &BX_CPU_C::NEG_EwM, NULL, 0) -bx_define_opcode(BX_IA_NEG_EwR, &BX_CPU_C::NEG_EwR, NULL, 0) -bx_define_opcode(BX_IA_NOP, &BX_CPU_C::NOP, NULL, 0) -bx_define_opcode(BX_IA_NOT_EbM, &BX_CPU_C::NOT_EbM, NULL, 0) -bx_define_opcode(BX_IA_NOT_EbR, &BX_CPU_C::NOT_EbR, NULL, 0) -bx_define_opcode(BX_IA_NOT_EdM, &BX_CPU_C::NOT_EdM, NULL, 0) -bx_define_opcode(BX_IA_NOT_EdR, &BX_CPU_C::NOT_EdR, NULL, 0) -bx_define_opcode(BX_IA_NOT_EwM, &BX_CPU_C::NOT_EwM, NULL, 0) -bx_define_opcode(BX_IA_NOT_EwR, &BX_CPU_C::NOT_EwR, NULL, 0) -bx_define_opcode(BX_IA_OR_ALIb, &BX_CPU_C::OR_ALIb, NULL, 0) -bx_define_opcode(BX_IA_OR_AXIw, &BX_CPU_C::OR_AXIw, NULL, 0) -bx_define_opcode(BX_IA_OR_EAXId, &BX_CPU_C::OR_EAXId, NULL, 0) -bx_define_opcode(BX_IA_OR_EbGbM, &BX_CPU_C::OR_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_OR_EbGbR, &BX_CPU_C::OR_GbEbR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_OR_EbIbM, &BX_CPU_C::OR_EbIbM, NULL, 0) -bx_define_opcode(BX_IA_OR_EbIbR, &BX_CPU_C::OR_EbIbR, NULL, 0) -bx_define_opcode(BX_IA_OR_EdGdM, &BX_CPU_C::OR_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_OR_EdGdR, &BX_CPU_C::OR_GdEdR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_OR_EdIdM, &BX_CPU_C::OR_EdIdM, NULL, 0) -bx_define_opcode(BX_IA_OR_EdIdR, &BX_CPU_C::OR_EdIdR, NULL, 0) -bx_define_opcode(BX_IA_OR_EwGwM, &BX_CPU_C::OR_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_OR_EwGwR, &BX_CPU_C::OR_GwEwR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_OR_EwIwM, &BX_CPU_C::OR_EwIwM, NULL, 0) -bx_define_opcode(BX_IA_OR_EwIwR, &BX_CPU_C::OR_EwIwR, NULL, 0) -bx_define_opcode(BX_IA_OR_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::OR_GbEbR, 0) -bx_define_opcode(BX_IA_OR_GbEbR, &BX_CPU_C::OR_GbEbR, NULL, 0) -bx_define_opcode(BX_IA_OR_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::OR_GdEdR, 0) -bx_define_opcode(BX_IA_OR_GdEdR, &BX_CPU_C::OR_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_OR_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::OR_GwEwR, 0) -bx_define_opcode(BX_IA_OR_GwEwR, &BX_CPU_C::OR_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_OUT_DXAL, &BX_CPU_C::OUT_DXAL, NULL, 0) -bx_define_opcode(BX_IA_OUT_DXAX, &BX_CPU_C::OUT_DXAX, NULL, 0) -bx_define_opcode(BX_IA_OUT_DXEAX, &BX_CPU_C::OUT_DXEAX, NULL, 0) -bx_define_opcode(BX_IA_OUT_IbAL, &BX_CPU_C::OUT_IbAL, NULL, 0) -bx_define_opcode(BX_IA_OUT_IbAX, &BX_CPU_C::OUT_IbAX, NULL, 0) -bx_define_opcode(BX_IA_OUT_IbEAX, &BX_CPU_C::OUT_IbEAX, NULL, 0) -bx_define_opcode(BX_IA_POP_EdM, &BX_CPU_C::POP_EdM, NULL, 0) -bx_define_opcode(BX_IA_POP_EdR, &BX_CPU_C::POP_ERX, NULL, 0) -bx_define_opcode(BX_IA_POP_ERX, &BX_CPU_C::POP_ERX, NULL, 0) -bx_define_opcode(BX_IA_POP_EwM, &BX_CPU_C::POP_EwM, NULL, 0) -bx_define_opcode(BX_IA_POP_EwR, &BX_CPU_C::POP_RX, NULL, 0) -bx_define_opcode(BX_IA_POP_RX, &BX_CPU_C::POP_RX, NULL, 0) -bx_define_opcode(BX_IA_POP16_DS, &BX_CPU_C::POP16_DS, NULL, 0) -bx_define_opcode(BX_IA_POP16_ES, &BX_CPU_C::POP16_ES, NULL, 0) -bx_define_opcode(BX_IA_POP16_FS, &BX_CPU_C::POP16_FS, NULL, 0) -bx_define_opcode(BX_IA_POP16_GS, &BX_CPU_C::POP16_GS, NULL, 0) -bx_define_opcode(BX_IA_POP16_SS, &BX_CPU_C::POP16_SS, NULL, 0) -bx_define_opcode(BX_IA_POP32_DS, &BX_CPU_C::POP32_DS, NULL, 0) -bx_define_opcode(BX_IA_POP32_ES, &BX_CPU_C::POP32_ES, NULL, 0) -bx_define_opcode(BX_IA_POP32_FS, &BX_CPU_C::POP32_FS, NULL, 0) -bx_define_opcode(BX_IA_POP32_GS, &BX_CPU_C::POP32_GS, NULL, 0) -bx_define_opcode(BX_IA_POP32_SS, &BX_CPU_C::POP32_SS, NULL, 0) -bx_define_opcode(BX_IA_POPAD16, &BX_CPU_C::POPAD16, NULL, 0) -bx_define_opcode(BX_IA_POPAD32, &BX_CPU_C::POPAD32, NULL, 0) -bx_define_opcode(BX_IA_POPCNT_GdEdR, &BX_CPU_C::POPCNT_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_POPCNT_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::POPCNT_GdEdR, 0) -bx_define_opcode(BX_IA_POPCNT_GwEwR, &BX_CPU_C::POPCNT_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_POPCNT_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::POPCNT_GwEwR, 0) -bx_define_opcode(BX_IA_POPF_Fd, &BX_CPU_C::POPF_Fd, NULL, 0) -bx_define_opcode(BX_IA_POPF_Fw, &BX_CPU_C::POPF_Fw, NULL, 0) -bx_define_opcode(BX_IA_PUSH_EdM, &BX_CPU_C::PUSH_EdM, NULL, 0) -bx_define_opcode(BX_IA_PUSH_EdR, &BX_CPU_C::PUSH_ERX, NULL, 0) -bx_define_opcode(BX_IA_PUSH_ERX, &BX_CPU_C::PUSH_ERX, NULL, 0) -bx_define_opcode(BX_IA_PUSH_EwM, &BX_CPU_C::PUSH_EwM, NULL, 0) -bx_define_opcode(BX_IA_PUSH_EwR, &BX_CPU_C::PUSH_RX, NULL, 0) -bx_define_opcode(BX_IA_PUSH_Id, &BX_CPU_C::PUSH_Id, NULL, 0) -bx_define_opcode(BX_IA_PUSH_Iw, &BX_CPU_C::PUSH_Iw, NULL, 0) -bx_define_opcode(BX_IA_PUSH_RX, &BX_CPU_C::PUSH_RX, NULL, 0) -bx_define_opcode(BX_IA_PUSH16_CS, &BX_CPU_C::PUSH16_CS, NULL, 0) -bx_define_opcode(BX_IA_PUSH16_DS, &BX_CPU_C::PUSH16_DS, NULL, 0) -bx_define_opcode(BX_IA_PUSH16_ES, &BX_CPU_C::PUSH16_ES, NULL, 0) -bx_define_opcode(BX_IA_PUSH16_FS, &BX_CPU_C::PUSH16_FS, NULL, 0) -bx_define_opcode(BX_IA_PUSH16_GS, &BX_CPU_C::PUSH16_GS, NULL, 0) -bx_define_opcode(BX_IA_PUSH16_SS, &BX_CPU_C::PUSH16_SS, NULL, 0) -bx_define_opcode(BX_IA_PUSH32_CS, &BX_CPU_C::PUSH32_CS, NULL, 0) -bx_define_opcode(BX_IA_PUSH32_DS, &BX_CPU_C::PUSH32_DS, NULL, 0) -bx_define_opcode(BX_IA_PUSH32_ES, &BX_CPU_C::PUSH32_ES, NULL, 0) -bx_define_opcode(BX_IA_PUSH32_FS, &BX_CPU_C::PUSH32_FS, NULL, 0) -bx_define_opcode(BX_IA_PUSH32_GS, &BX_CPU_C::PUSH32_GS, NULL, 0) -bx_define_opcode(BX_IA_PUSH32_SS, &BX_CPU_C::PUSH32_SS, NULL, 0) -bx_define_opcode(BX_IA_PUSHAD16, &BX_CPU_C::PUSHAD16, NULL, 0) -bx_define_opcode(BX_IA_PUSHAD32, &BX_CPU_C::PUSHAD32, NULL, 0) -bx_define_opcode(BX_IA_PUSHF_Fd, &BX_CPU_C::PUSHF_Fd, NULL, 0) -bx_define_opcode(BX_IA_PUSHF_Fw, &BX_CPU_C::PUSHF_Fw, NULL, 0) -bx_define_opcode(BX_IA_RCL_Eb, &BX_CPU_C::RCL_Eb, NULL, 0) -bx_define_opcode(BX_IA_RCL_Ew, &BX_CPU_C::RCL_Ew, NULL, 0) -bx_define_opcode(BX_IA_RCR_Eb, &BX_CPU_C::RCR_Eb, NULL, 0) -bx_define_opcode(BX_IA_RCR_Ew, &BX_CPU_C::RCR_Ew, NULL, 0) -bx_define_opcode(BX_IA_RDMSR, &BX_CPU_C::RDMSR, NULL, 0) -bx_define_opcode(BX_IA_RDPMC, &BX_CPU_C::RDPMC, NULL, 0) -bx_define_opcode(BX_IA_RDTSC, &BX_CPU_C::RDTSC, NULL, 0) -bx_define_opcode(BX_IA_REP_CMPSB_XbYb, &BX_CPU_C::REP_CMPSB_XbYb, NULL, 0) -bx_define_opcode(BX_IA_REP_CMPSD_XdYd, &BX_CPU_C::REP_CMPSD_XdYd, NULL, 0) -bx_define_opcode(BX_IA_REP_CMPSW_XwYw, &BX_CPU_C::REP_CMPSW_XwYw, NULL, 0) -bx_define_opcode(BX_IA_REP_INSB_YbDX, &BX_CPU_C::REP_INSB_YbDX, NULL, 0) -bx_define_opcode(BX_IA_REP_INSD_YdDX, &BX_CPU_C::REP_INSD_YdDX, NULL, 0) -bx_define_opcode(BX_IA_REP_INSW_YwDX, &BX_CPU_C::REP_INSW_YwDX, NULL, 0) -bx_define_opcode(BX_IA_REP_LODSB_ALXb, &BX_CPU_C::REP_LODSB_ALXb, NULL, 0) -bx_define_opcode(BX_IA_REP_LODSD_EAXXd, &BX_CPU_C::REP_LODSD_EAXXd, NULL, 0) -bx_define_opcode(BX_IA_REP_LODSW_AXXw, &BX_CPU_C::REP_LODSW_AXXw, NULL, 0) -bx_define_opcode(BX_IA_REP_MOVSB_XbYb, &BX_CPU_C::REP_MOVSB_XbYb, NULL, 0) -bx_define_opcode(BX_IA_REP_MOVSD_XdYd, &BX_CPU_C::REP_MOVSD_XdYd, NULL, 0) -bx_define_opcode(BX_IA_REP_MOVSW_XwYw, &BX_CPU_C::REP_MOVSW_XwYw, NULL, 0) -bx_define_opcode(BX_IA_REP_OUTSB_DXXb, &BX_CPU_C::REP_OUTSB_DXXb, NULL, 0) -bx_define_opcode(BX_IA_REP_OUTSD_DXXd, &BX_CPU_C::REP_OUTSD_DXXd, NULL, 0) -bx_define_opcode(BX_IA_REP_OUTSW_DXXw, &BX_CPU_C::REP_OUTSW_DXXw, NULL, 0) -bx_define_opcode(BX_IA_REP_SCASB_ALXb, &BX_CPU_C::REP_SCASB_ALXb, NULL, 0) -bx_define_opcode(BX_IA_REP_SCASD_EAXXd, &BX_CPU_C::REP_SCASD_EAXXd, NULL, 0) -bx_define_opcode(BX_IA_REP_SCASW_AXXw, &BX_CPU_C::REP_SCASW_AXXw, NULL, 0) -bx_define_opcode(BX_IA_REP_STOSB_YbAL, &BX_CPU_C::REP_STOSB_YbAL, NULL, 0) -bx_define_opcode(BX_IA_REP_STOSD_YdEAX, &BX_CPU_C::REP_STOSD_YdEAX, NULL, 0) -bx_define_opcode(BX_IA_REP_STOSW_YwAX, &BX_CPU_C::REP_STOSW_YwAX, NULL, 0) -bx_define_opcode(BX_IA_RETfar16, &BX_CPU_C::RETfar16, NULL, 0) -bx_define_opcode(BX_IA_RETfar16_Iw, &BX_CPU_C::RETfar16_Iw, NULL, 0) -bx_define_opcode(BX_IA_RETfar32, &BX_CPU_C::RETfar32, NULL, 0) -bx_define_opcode(BX_IA_RETfar32_Iw, &BX_CPU_C::RETfar32_Iw, NULL, 0) -bx_define_opcode(BX_IA_RETnear16, &BX_CPU_C::RETnear16, NULL, 0) -bx_define_opcode(BX_IA_RETnear16_Iw, &BX_CPU_C::RETnear16_Iw, NULL, 0) -bx_define_opcode(BX_IA_RETnear32, &BX_CPU_C::RETnear32, NULL, 0) -bx_define_opcode(BX_IA_RETnear32_Iw, &BX_CPU_C::RETnear32_Iw, NULL, 0) -bx_define_opcode(BX_IA_ROL_Eb, &BX_CPU_C::ROL_Eb, NULL, 0) -bx_define_opcode(BX_IA_ROL_Ew, &BX_CPU_C::ROL_Ew, NULL, 0) -bx_define_opcode(BX_IA_ROR_Eb, &BX_CPU_C::ROR_Eb, NULL, 0) -bx_define_opcode(BX_IA_ROR_Ew, &BX_CPU_C::ROR_Ew, NULL, 0) -bx_define_opcode(BX_IA_RCR_EdM, &BX_CPU_C::RCR_EdM, NULL, 0) -bx_define_opcode(BX_IA_RCL_EdM, &BX_CPU_C::RCL_EdM, NULL, 0) -bx_define_opcode(BX_IA_ROL_EdM, &BX_CPU_C::ROL_EdM, NULL, 0) -bx_define_opcode(BX_IA_ROR_EdM, &BX_CPU_C::ROR_EdM, NULL, 0) -bx_define_opcode(BX_IA_SAR_EdM, &BX_CPU_C::SAR_EdM, NULL, 0) -bx_define_opcode(BX_IA_SHL_EdM, &BX_CPU_C::SHL_EdM, NULL, 0) -bx_define_opcode(BX_IA_SHR_EdM, &BX_CPU_C::SHR_EdM, NULL, 0) -bx_define_opcode(BX_IA_RCR_EdR, &BX_CPU_C::RCR_EdR, NULL, 0) -bx_define_opcode(BX_IA_RCL_EdR, &BX_CPU_C::RCL_EdR, NULL, 0) -bx_define_opcode(BX_IA_ROL_EdR, &BX_CPU_C::ROL_EdR, NULL, 0) -bx_define_opcode(BX_IA_ROR_EdR, &BX_CPU_C::ROR_EdR, NULL, 0) -bx_define_opcode(BX_IA_SAR_EdR, &BX_CPU_C::SAR_EdR, NULL, 0) -bx_define_opcode(BX_IA_SHL_EdR, &BX_CPU_C::SHL_EdR, NULL, 0) -bx_define_opcode(BX_IA_SHR_EdR, &BX_CPU_C::SHR_EdR, NULL, 0) -bx_define_opcode(BX_IA_RSM, &BX_CPU_C::RSM, NULL, 0) -bx_define_opcode(BX_IA_SAHF, &BX_CPU_C::SAHF, NULL, 0) -bx_define_opcode(BX_IA_SALC, &BX_CPU_C::SALC, NULL, 0) -bx_define_opcode(BX_IA_SAR_Eb, &BX_CPU_C::SAR_Eb, NULL, 0) -bx_define_opcode(BX_IA_SAR_Ew, &BX_CPU_C::SAR_Ew, NULL, 0) -bx_define_opcode(BX_IA_SBB_ALIb, &BX_CPU_C::SBB_ALIb, NULL, 0) -bx_define_opcode(BX_IA_SBB_AXIw, &BX_CPU_C::SBB_AXIw, NULL, 0) -bx_define_opcode(BX_IA_SBB_EAXId, &BX_CPU_C::SBB_EAXId, NULL, 0) -bx_define_opcode(BX_IA_SBB_EbGbM, &BX_CPU_C::SBB_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_SBB_EbGbR, &BX_CPU_C::SBB_GbEbR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_SBB_EbIbM, &BX_CPU_C::SBB_EbIbM, NULL, 0) -bx_define_opcode(BX_IA_SBB_EbIbR, &BX_CPU_C::SBB_EbIbR, NULL, 0) -bx_define_opcode(BX_IA_SBB_EdGdM, &BX_CPU_C::SBB_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_SBB_EdGdR, &BX_CPU_C::SBB_GdEdR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_SBB_EdIdM, &BX_CPU_C::SBB_EdIdM, NULL, 0) -bx_define_opcode(BX_IA_SBB_EdIdR, &BX_CPU_C::SBB_EdIdR, NULL, 0) -bx_define_opcode(BX_IA_SBB_EwGwM, &BX_CPU_C::SBB_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_SBB_EwGwR, &BX_CPU_C::SBB_GwEwR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_SBB_EwIwM, &BX_CPU_C::SBB_EwIwM, NULL, 0) -bx_define_opcode(BX_IA_SBB_EwIwR, &BX_CPU_C::SBB_EwIwR, NULL, 0) -bx_define_opcode(BX_IA_SBB_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::SBB_GbEbR, 0) -bx_define_opcode(BX_IA_SBB_GbEbR, &BX_CPU_C::SBB_GbEbR, NULL, 0) -bx_define_opcode(BX_IA_SBB_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::SBB_GdEdR, 0) -bx_define_opcode(BX_IA_SBB_GdEdR, &BX_CPU_C::SBB_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_SBB_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::SBB_GwEwR, 0) -bx_define_opcode(BX_IA_SBB_GwEwR, &BX_CPU_C::SBB_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_SETB_EbM, &BX_CPU_C::SETB_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETB_EbR, &BX_CPU_C::SETB_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETBE_EbM, &BX_CPU_C::SETBE_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETBE_EbR, &BX_CPU_C::SETBE_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETL_EbM, &BX_CPU_C::SETL_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETL_EbR, &BX_CPU_C::SETL_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETLE_EbM, &BX_CPU_C::SETLE_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETLE_EbR, &BX_CPU_C::SETLE_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETNB_EbM, &BX_CPU_C::SETNB_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETNB_EbR, &BX_CPU_C::SETNB_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETNBE_EbM, &BX_CPU_C::SETNBE_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETNBE_EbR, &BX_CPU_C::SETNBE_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETNL_EbM, &BX_CPU_C::SETNL_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETNL_EbR, &BX_CPU_C::SETNL_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETNLE_EbM, &BX_CPU_C::SETNLE_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETNLE_EbR, &BX_CPU_C::SETNLE_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETNO_EbM, &BX_CPU_C::SETNO_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETNO_EbR, &BX_CPU_C::SETNO_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETNP_EbM, &BX_CPU_C::SETNP_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETNP_EbR, &BX_CPU_C::SETNP_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETNS_EbM, &BX_CPU_C::SETNS_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETNS_EbR, &BX_CPU_C::SETNS_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETNZ_EbM, &BX_CPU_C::SETNZ_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETNZ_EbR, &BX_CPU_C::SETNZ_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETO_EbM, &BX_CPU_C::SETO_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETO_EbR, &BX_CPU_C::SETO_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETP_EbM, &BX_CPU_C::SETP_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETP_EbR, &BX_CPU_C::SETP_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETS_EbM, &BX_CPU_C::SETS_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETS_EbR, &BX_CPU_C::SETS_EbR, NULL, 0) -bx_define_opcode(BX_IA_SETZ_EbM, &BX_CPU_C::SETZ_EbM, NULL, 0) -bx_define_opcode(BX_IA_SETZ_EbR, &BX_CPU_C::SETZ_EbR, NULL, 0) -bx_define_opcode(BX_IA_SGDT_Ms, &BX_CPU_C::SGDT_Ms, NULL, 0) -bx_define_opcode(BX_IA_SHL_Eb, &BX_CPU_C::SHL_Eb, NULL, 0) -bx_define_opcode(BX_IA_SHL_Ew, &BX_CPU_C::SHL_Ew, NULL, 0) -bx_define_opcode(BX_IA_SHLD_EdGdR, &BX_CPU_C::SHLD_EdGdR, NULL, 0) -bx_define_opcode(BX_IA_SHLD_EdGdM, &BX_CPU_C::SHLD_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_SHLD_EwGwR, &BX_CPU_C::SHLD_EwGwR, NULL, 0) -bx_define_opcode(BX_IA_SHLD_EwGwM, &BX_CPU_C::SHLD_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_SHR_Eb, &BX_CPU_C::SHR_Eb, NULL, 0) -bx_define_opcode(BX_IA_SHR_Ew, &BX_CPU_C::SHR_Ew, NULL, 0) -bx_define_opcode(BX_IA_SHRD_EdGdR, &BX_CPU_C::SHRD_EdGdR, NULL, 0) -bx_define_opcode(BX_IA_SHRD_EdGdM, &BX_CPU_C::SHRD_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_SHRD_EwGwR, &BX_CPU_C::SHRD_EwGwR, NULL, 0) -bx_define_opcode(BX_IA_SHRD_EwGwM, &BX_CPU_C::SHRD_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_SIDT_Ms, &BX_CPU_C::SIDT_Ms, NULL, 0) -bx_define_opcode(BX_IA_SLDT_Ew, &BX_CPU_C::SLDT_Ew, NULL, 0) -bx_define_opcode(BX_IA_SMSW_EwR, &BX_CPU_C::SMSW_EwR, NULL, 0) -bx_define_opcode(BX_IA_SMSW_EwM, &BX_CPU_C::SMSW_EwM, NULL, 0) -bx_define_opcode(BX_IA_STC, &BX_CPU_C::STC, NULL, 0) -bx_define_opcode(BX_IA_STD, &BX_CPU_C::STD, NULL, 0) -bx_define_opcode(BX_IA_STI, &BX_CPU_C::STI, NULL, 0) -bx_define_opcode(BX_IA_STR_Ew, &BX_CPU_C::STR_Ew, NULL, 0) -bx_define_opcode(BX_IA_SUB_ALIb, &BX_CPU_C::SUB_ALIb, NULL, 0) -bx_define_opcode(BX_IA_SUB_AXIw, &BX_CPU_C::SUB_AXIw, NULL, 0) -bx_define_opcode(BX_IA_SUB_EAXId, &BX_CPU_C::SUB_EAXId, NULL, 0) -bx_define_opcode(BX_IA_SUB_EbGbM, &BX_CPU_C::SUB_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_SUB_EbGbR, &BX_CPU_C::SUB_GbEbR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_SUB_EbIbM, &BX_CPU_C::SUB_EbIbM, NULL, 0) -bx_define_opcode(BX_IA_SUB_EbIbR, &BX_CPU_C::SUB_EbIbR, NULL, 0) -bx_define_opcode(BX_IA_SUB_EdGdM, &BX_CPU_C::SUB_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_SUB_EdGdR, &BX_CPU_C::SUB_GdEdR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_SUB_EdIdM, &BX_CPU_C::SUB_EdIdM, NULL, 0) -bx_define_opcode(BX_IA_SUB_EdIdR, &BX_CPU_C::SUB_EdIdR, NULL, 0) -bx_define_opcode(BX_IA_SUB_EwGwM, &BX_CPU_C::SUB_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_SUB_EwGwR, &BX_CPU_C::SUB_GwEwR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_SUB_EwIwM, &BX_CPU_C::SUB_EwIwM, NULL, 0) -bx_define_opcode(BX_IA_SUB_EwIwR, &BX_CPU_C::SUB_EwIwR, NULL, 0) -bx_define_opcode(BX_IA_SUB_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::SUB_GbEbR, 0) -bx_define_opcode(BX_IA_SUB_GbEbR, &BX_CPU_C::SUB_GbEbR, NULL, 0) -bx_define_opcode(BX_IA_SUB_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::SUB_GdEdR, 0) -bx_define_opcode(BX_IA_SUB_GdEdR, &BX_CPU_C::SUB_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_SUB_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::SUB_GwEwR, 0) -bx_define_opcode(BX_IA_SUB_GwEwR, &BX_CPU_C::SUB_GwEwR, NULL, 0) -bx_define_opcode(BX_IA_SYSENTER, &BX_CPU_C::SYSENTER, NULL, 0) -bx_define_opcode(BX_IA_SYSEXIT, &BX_CPU_C::SYSEXIT, NULL, 0) -bx_define_opcode(BX_IA_TEST_ALIb, &BX_CPU_C::TEST_ALIb, NULL, 0) -bx_define_opcode(BX_IA_TEST_AXIw, &BX_CPU_C::TEST_AXIw, NULL, 0) -bx_define_opcode(BX_IA_TEST_EAXId, &BX_CPU_C::TEST_EAXId, NULL, 0) -bx_define_opcode(BX_IA_TEST_EbGbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::TEST_EbGbR, 0) -bx_define_opcode(BX_IA_TEST_EbGbR, &BX_CPU_C::TEST_EbGbR, NULL, 0) -bx_define_opcode(BX_IA_TEST_EbIbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::TEST_EbIbR, 0) -bx_define_opcode(BX_IA_TEST_EbIbR, &BX_CPU_C::TEST_EbIbR, NULL, 0) -bx_define_opcode(BX_IA_TEST_EdGdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::TEST_EdGdR, 0) -bx_define_opcode(BX_IA_TEST_EdGdR, &BX_CPU_C::TEST_EdGdR, NULL, 0) -bx_define_opcode(BX_IA_TEST_EdIdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::TEST_EdIdR, 0) -bx_define_opcode(BX_IA_TEST_EdIdR, &BX_CPU_C::TEST_EdIdR, NULL, 0) -bx_define_opcode(BX_IA_TEST_EwGwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::TEST_EwGwR, 0) -bx_define_opcode(BX_IA_TEST_EwGwR, &BX_CPU_C::TEST_EwGwR, NULL, 0) -bx_define_opcode(BX_IA_TEST_EwIwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::TEST_EwIwR, 0) -bx_define_opcode(BX_IA_TEST_EwIwR, &BX_CPU_C::TEST_EwIwR, NULL, 0) -bx_define_opcode(BX_IA_UD2A, &BX_CPU_C::UndefinedOpcode, NULL, 0) -bx_define_opcode(BX_IA_UD2B, &BX_CPU_C::UndefinedOpcode, NULL, 0) -bx_define_opcode(BX_IA_VERR_Ew, &BX_CPU_C::VERR_Ew, NULL, 0) -bx_define_opcode(BX_IA_VERW_Ew, &BX_CPU_C::VERW_Ew, NULL, 0) -bx_define_opcode(BX_IA_WBINVD, &BX_CPU_C::WBINVD, NULL, 0) -bx_define_opcode(BX_IA_WRMSR, &BX_CPU_C::WRMSR, NULL, 0) -bx_define_opcode(BX_IA_XADD_EbGbM, &BX_CPU_C::XADD_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_XADD_EbGbR, &BX_CPU_C::XADD_EbGbR, NULL, 0) -bx_define_opcode(BX_IA_XADD_EdGdM, &BX_CPU_C::XADD_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_XADD_EdGdR, &BX_CPU_C::XADD_EdGdR, NULL, 0) -bx_define_opcode(BX_IA_XADD_EwGwM, &BX_CPU_C::XADD_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_XADD_EwGwR, &BX_CPU_C::XADD_EwGwR, NULL, 0) -bx_define_opcode(BX_IA_XCHG_EbGbM, &BX_CPU_C::XCHG_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_XCHG_EbGbR, &BX_CPU_C::XCHG_EbGbR, NULL, 0) -bx_define_opcode(BX_IA_XCHG_EdGdM, &BX_CPU_C::XCHG_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_XCHG_EdGdR, &BX_CPU_C::XCHG_EdGdR, NULL, 0) -bx_define_opcode(BX_IA_XCHG_ERXEAX, &BX_CPU_C::XCHG_ERXEAX, NULL, 0) -bx_define_opcode(BX_IA_XCHG_EwGwM, &BX_CPU_C::XCHG_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_XCHG_EwGwR, &BX_CPU_C::XCHG_EwGwR, NULL, 0) -bx_define_opcode(BX_IA_XCHG_RXAX, &BX_CPU_C::XCHG_RXAX, NULL, 0) -bx_define_opcode(BX_IA_XLAT, &BX_CPU_C::XLAT, NULL, 0) -bx_define_opcode(BX_IA_XOR_ALIb, &BX_CPU_C::XOR_ALIb, NULL, 0) -bx_define_opcode(BX_IA_XOR_AXIw, &BX_CPU_C::XOR_AXIw, NULL, 0) -bx_define_opcode(BX_IA_XOR_EAXId, &BX_CPU_C::XOR_EAXId, NULL, 0) -bx_define_opcode(BX_IA_XOR_EbGbM, &BX_CPU_C::XOR_EbGbM, NULL, 0) -bx_define_opcode(BX_IA_XOR_EbGbR, &BX_CPU_C::XOR_GbEbR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_XOR_EbIbM, &BX_CPU_C::XOR_EbIbM, NULL, 0) -bx_define_opcode(BX_IA_XOR_EbIbR, &BX_CPU_C::XOR_EbIbR, NULL, 0) -bx_define_opcode(BX_IA_XOR_EdGdM, &BX_CPU_C::XOR_EdGdM, NULL, 0) -bx_define_opcode(BX_IA_XOR_EdGdR, &BX_CPU_C::XOR_GdEdR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_XOR_EdIdM, &BX_CPU_C::XOR_EdIdM, NULL, 0) -bx_define_opcode(BX_IA_XOR_EdIdR, &BX_CPU_C::XOR_EdIdR, NULL, 0) -bx_define_opcode(BX_IA_XOR_EwGwM, &BX_CPU_C::XOR_EwGwM, NULL, 0) -bx_define_opcode(BX_IA_XOR_EwGwR, &BX_CPU_C::XOR_GwEwR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_XOR_EwIwM, &BX_CPU_C::XOR_EwIwM, NULL, 0) -bx_define_opcode(BX_IA_XOR_EwIwR, &BX_CPU_C::XOR_EwIwR, NULL, 0) -bx_define_opcode(BX_IA_XOR_GbEbM, &BX_CPU_C::LOAD_Eb, &BX_CPU_C::XOR_GbEbR, 0) -bx_define_opcode(BX_IA_XOR_GbEbR, &BX_CPU_C::XOR_GbEbR, NULL, 0) -bx_define_opcode(BX_IA_XOR_GdEdM, &BX_CPU_C::LOAD_Ed, &BX_CPU_C::XOR_GdEdR, 0) -bx_define_opcode(BX_IA_XOR_GdEdR, &BX_CPU_C::XOR_GdEdR, NULL, 0) -bx_define_opcode(BX_IA_XOR_GwEwM, &BX_CPU_C::LOAD_Ew, &BX_CPU_C::XOR_GwEwR, 0) -bx_define_opcode(BX_IA_XOR_GwEwR, &BX_CPU_C::XOR_GwEwR, NULL, 0) - -bx_define_opcode(BX_IA_FWAIT, &BX_CPU_C::FWAIT, NULL, 0) +bx_define_opcode(BX_IA_FWAIT, &BX_CPU_C::FWAIT, NULL) #if BX_SUPPORT_FPU -bx_define_opcode(BX_IA_FLD_STi, &BX_CPU_C::FLD_STi, NULL, 0) -bx_define_opcode(BX_IA_FLD_SINGLE_REAL, &BX_CPU_C::FLD_SINGLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FLD_DOUBLE_REAL, &BX_CPU_C::FLD_DOUBLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FLD_EXTENDED_REAL, &BX_CPU_C::FLD_EXTENDED_REAL, NULL, 0) -bx_define_opcode(BX_IA_FILD_WORD_INTEGER, &BX_CPU_C::FILD_WORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FILD_DWORD_INTEGER, &BX_CPU_C::FILD_DWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FILD_QWORD_INTEGER, &BX_CPU_C::FILD_QWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FBLD_PACKED_BCD, &BX_CPU_C::FBLD_PACKED_BCD, NULL, 0) -bx_define_opcode(BX_IA_FST_STi, &BX_CPU_C::FST_STi, NULL, 0) -bx_define_opcode(BX_IA_FST_SINGLE_REAL, &BX_CPU_C::FST_SINGLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FST_DOUBLE_REAL, &BX_CPU_C::FST_DOUBLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FSTP_EXTENDED_REAL, &BX_CPU_C::FSTP_EXTENDED_REAL, NULL, 0) -bx_define_opcode(BX_IA_FIST_WORD_INTEGER, &BX_CPU_C::FIST_WORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FIST_DWORD_INTEGER, &BX_CPU_C::FIST_DWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FISTP_QWORD_INTEGER, &BX_CPU_C::FISTP_QWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FBSTP_PACKED_BCD, &BX_CPU_C::FBSTP_PACKED_BCD, NULL, 0) -bx_define_opcode(BX_IA_FISTTP16, &BX_CPU_C::FISTTP16, NULL, 0) -bx_define_opcode(BX_IA_FISTTP32, &BX_CPU_C::FISTTP32, NULL, 0) -bx_define_opcode(BX_IA_FISTTP64, &BX_CPU_C::FISTTP64, NULL, 0) -bx_define_opcode(BX_IA_FNINIT, &BX_CPU_C::FNINIT, NULL, 0) -bx_define_opcode(BX_IA_FNCLEX, &BX_CPU_C::FNCLEX, NULL, 0) -bx_define_opcode(BX_IA_FRSTOR, &BX_CPU_C::FRSTOR, NULL, 0) -bx_define_opcode(BX_IA_FNSAVE, &BX_CPU_C::FNSAVE, NULL, 0) -bx_define_opcode(BX_IA_FLDENV, &BX_CPU_C::FLDENV, NULL, 0) -bx_define_opcode(BX_IA_FNSTENV, &BX_CPU_C::FNSTENV, NULL, 0) -bx_define_opcode(BX_IA_FLDCW, &BX_CPU_C::FLDCW, NULL, 0) -bx_define_opcode(BX_IA_FNSTCW, &BX_CPU_C::FNSTCW, NULL, 0) -bx_define_opcode(BX_IA_FNSTSW, &BX_CPU_C::FNSTSW, NULL, 0) -bx_define_opcode(BX_IA_FNSTSW_AX, &BX_CPU_C::FNSTSW_AX, NULL, 0) -bx_define_opcode(BX_IA_FLD1, &BX_CPU_C::FLD1, NULL, 0) -bx_define_opcode(BX_IA_FLDL2T, &BX_CPU_C::FLDL2T, NULL, 0) -bx_define_opcode(BX_IA_FLDL2E, &BX_CPU_C::FLDL2E, NULL, 0) -bx_define_opcode(BX_IA_FLDPI, &BX_CPU_C::FLDPI, NULL, 0) -bx_define_opcode(BX_IA_FLDLG2, &BX_CPU_C::FLDLG2, NULL, 0) -bx_define_opcode(BX_IA_FLDLN2, &BX_CPU_C::FLDLN2, NULL, 0) -bx_define_opcode(BX_IA_FLDZ, &BX_CPU_C::FLDZ, NULL, 0) -bx_define_opcode(BX_IA_FADD_ST0_STj, &BX_CPU_C::FADD_ST0_STj, NULL, 0) -bx_define_opcode(BX_IA_FADD_STi_ST0, &BX_CPU_C::FADD_STi_ST0, NULL, 0) -bx_define_opcode(BX_IA_FADD_SINGLE_REAL, &BX_CPU_C::FADD_SINGLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FADD_DOUBLE_REAL, &BX_CPU_C::FADD_DOUBLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FIADD_WORD_INTEGER, &BX_CPU_C::FIADD_WORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FIADD_DWORD_INTEGER, &BX_CPU_C::FIADD_DWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FMUL_ST0_STj, &BX_CPU_C::FMUL_ST0_STj, NULL, 0) -bx_define_opcode(BX_IA_FMUL_STi_ST0, &BX_CPU_C::FMUL_STi_ST0, NULL, 0) -bx_define_opcode(BX_IA_FMUL_SINGLE_REAL, &BX_CPU_C::FMUL_SINGLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FMUL_DOUBLE_REAL, &BX_CPU_C::FMUL_DOUBLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FIMUL_WORD_INTEGER , &BX_CPU_C::FIMUL_WORD_INTEGER , NULL, 0) -bx_define_opcode(BX_IA_FIMUL_DWORD_INTEGER, &BX_CPU_C::FIMUL_DWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FSUB_ST0_STj, &BX_CPU_C::FSUB_ST0_STj, NULL, 0) -bx_define_opcode(BX_IA_FSUBR_ST0_STj, &BX_CPU_C::FSUBR_ST0_STj, NULL, 0) -bx_define_opcode(BX_IA_FSUB_STi_ST0, &BX_CPU_C::FSUB_STi_ST0, NULL, 0) -bx_define_opcode(BX_IA_FSUBR_STi_ST0, &BX_CPU_C::FSUBR_STi_ST0, NULL, 0) -bx_define_opcode(BX_IA_FSUB_SINGLE_REAL, &BX_CPU_C::FSUB_SINGLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FSUBR_SINGLE_REAL, &BX_CPU_C::FSUBR_SINGLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FSUB_DOUBLE_REAL, &BX_CPU_C::FSUB_DOUBLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FSUBR_DOUBLE_REAL, &BX_CPU_C::FSUBR_DOUBLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FISUB_WORD_INTEGER, &BX_CPU_C::FISUB_WORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FISUBR_WORD_INTEGER, &BX_CPU_C::FISUBR_WORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FISUB_DWORD_INTEGER, &BX_CPU_C::FISUB_DWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FISUBR_DWORD_INTEGER, &BX_CPU_C::FISUBR_DWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FDIV_ST0_STj, &BX_CPU_C::FDIV_ST0_STj, NULL, 0) -bx_define_opcode(BX_IA_FDIVR_ST0_STj, &BX_CPU_C::FDIVR_ST0_STj, NULL, 0) -bx_define_opcode(BX_IA_FDIV_STi_ST0, &BX_CPU_C::FDIV_STi_ST0, NULL, 0) -bx_define_opcode(BX_IA_FDIVR_STi_ST0, &BX_CPU_C::FDIVR_STi_ST0, NULL, 0) -bx_define_opcode(BX_IA_FDIV_SINGLE_REAL, &BX_CPU_C::FDIV_SINGLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FDIVR_SINGLE_REAL, &BX_CPU_C::FDIVR_SINGLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FDIV_DOUBLE_REAL, &BX_CPU_C::FDIV_DOUBLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FDIVR_DOUBLE_REAL, &BX_CPU_C::FDIVR_DOUBLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FIDIV_WORD_INTEGER, &BX_CPU_C::FIDIV_WORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FIDIVR_WORD_INTEGER, &BX_CPU_C::FIDIVR_WORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FIDIV_DWORD_INTEGER, &BX_CPU_C::FIDIV_DWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FIDIVR_DWORD_INTEGER, &BX_CPU_C::FIDIVR_DWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FCOM_STi, &BX_CPU_C::FCOM_STi, NULL, 0) -bx_define_opcode(BX_IA_FUCOM_STi, &BX_CPU_C::FUCOM_STi, NULL, 0) -bx_define_opcode(BX_IA_FCOMI_ST0_STj, &BX_CPU_C::FCOMI_ST0_STj, NULL, 0) -bx_define_opcode(BX_IA_FUCOMI_ST0_STj, &BX_CPU_C::FUCOMI_ST0_STj, NULL, 0) -bx_define_opcode(BX_IA_FCOM_SINGLE_REAL, &BX_CPU_C::FCOM_SINGLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FCOM_DOUBLE_REAL, &BX_CPU_C::FCOM_DOUBLE_REAL, NULL, 0) -bx_define_opcode(BX_IA_FICOM_WORD_INTEGER, &BX_CPU_C::FICOM_WORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FICOM_DWORD_INTEGER, &BX_CPU_C::FICOM_DWORD_INTEGER, NULL, 0) -bx_define_opcode(BX_IA_FCMOV_ST0_STj, &BX_CPU_C::FCMOV_ST0_STj, NULL, 0) -bx_define_opcode(BX_IA_FCOMPP, &BX_CPU_C::FCOMPP, NULL, 0) -bx_define_opcode(BX_IA_FUCOMPP, &BX_CPU_C::FUCOMPP, NULL, 0) -bx_define_opcode(BX_IA_FXCH_STi, &BX_CPU_C::FXCH_STi, NULL, 0) -bx_define_opcode(BX_IA_FNOP, &BX_CPU_C::FNOP, NULL, 0) -bx_define_opcode(BX_IA_FPLEGACY, &BX_CPU_C::FPLEGACY, NULL, 0) -bx_define_opcode(BX_IA_FCHS, &BX_CPU_C::FCHS, NULL, 0) -bx_define_opcode(BX_IA_FABS, &BX_CPU_C::FABS, NULL, 0) -bx_define_opcode(BX_IA_FTST, &BX_CPU_C::FTST, NULL, 0) -bx_define_opcode(BX_IA_FXAM, &BX_CPU_C::FXAM, NULL, 0) -bx_define_opcode(BX_IA_FDECSTP, &BX_CPU_C::FDECSTP, NULL, 0) -bx_define_opcode(BX_IA_FINCSTP, &BX_CPU_C::FINCSTP, NULL, 0) -bx_define_opcode(BX_IA_FFREE_STi, &BX_CPU_C::FFREE_STi, NULL, 0) -bx_define_opcode(BX_IA_FFREEP_STi, &BX_CPU_C::FFREEP_STi, NULL, 0) -bx_define_opcode(BX_IA_F2XM1, &BX_CPU_C::F2XM1, NULL, 0) -bx_define_opcode(BX_IA_FYL2X, &BX_CPU_C::FYL2X, NULL, 0) -bx_define_opcode(BX_IA_FPTAN, &BX_CPU_C::FPTAN, NULL, 0) -bx_define_opcode(BX_IA_FPATAN, &BX_CPU_C::FPATAN, NULL, 0) -bx_define_opcode(BX_IA_FXTRACT, &BX_CPU_C::FXTRACT, NULL, 0) -bx_define_opcode(BX_IA_FPREM1, &BX_CPU_C::FPREM1, NULL, 0) -bx_define_opcode(BX_IA_FPREM, &BX_CPU_C::FPREM, NULL, 0) -bx_define_opcode(BX_IA_FYL2XP1, &BX_CPU_C::FYL2XP1, NULL, 0) -bx_define_opcode(BX_IA_FSQRT, &BX_CPU_C::FSQRT, NULL, 0) -bx_define_opcode(BX_IA_FSINCOS, &BX_CPU_C::FSINCOS, NULL, 0) -bx_define_opcode(BX_IA_FRNDINT, &BX_CPU_C::FRNDINT, NULL, 0) -bx_define_opcode(BX_IA_FSCALE, &BX_CPU_C::FSCALE, NULL, 0) -bx_define_opcode(BX_IA_FSIN, &BX_CPU_C::FSIN, NULL, 0) -bx_define_opcode(BX_IA_FCOS, &BX_CPU_C::FCOS, NULL, 0) +bx_define_opcode(BX_IA_FLD_STi, &BX_CPU_C::FLD_STi, NULL) +bx_define_opcode(BX_IA_FLD_SINGLE_REAL, &BX_CPU_C::FLD_SINGLE_REAL, NULL) +bx_define_opcode(BX_IA_FLD_DOUBLE_REAL, &BX_CPU_C::FLD_DOUBLE_REAL, NULL) +bx_define_opcode(BX_IA_FLD_EXTENDED_REAL, &BX_CPU_C::FLD_EXTENDED_REAL, NULL) +bx_define_opcode(BX_IA_FILD_WORD_INTEGER, &BX_CPU_C::FILD_WORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FILD_DWORD_INTEGER, &BX_CPU_C::FILD_DWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FILD_QWORD_INTEGER, &BX_CPU_C::FILD_QWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FBLD_PACKED_BCD, &BX_CPU_C::FBLD_PACKED_BCD, NULL) +bx_define_opcode(BX_IA_FST_STi, &BX_CPU_C::FST_STi, NULL) +bx_define_opcode(BX_IA_FST_SINGLE_REAL, &BX_CPU_C::FST_SINGLE_REAL, NULL) +bx_define_opcode(BX_IA_FST_DOUBLE_REAL, &BX_CPU_C::FST_DOUBLE_REAL, NULL) +bx_define_opcode(BX_IA_FSTP_EXTENDED_REAL, &BX_CPU_C::FSTP_EXTENDED_REAL, NULL) +bx_define_opcode(BX_IA_FIST_WORD_INTEGER, &BX_CPU_C::FIST_WORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FIST_DWORD_INTEGER, &BX_CPU_C::FIST_DWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FISTP_QWORD_INTEGER, &BX_CPU_C::FISTP_QWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FBSTP_PACKED_BCD, &BX_CPU_C::FBSTP_PACKED_BCD, NULL) +bx_define_opcode(BX_IA_FISTTP16, &BX_CPU_C::FISTTP16, NULL) +bx_define_opcode(BX_IA_FISTTP32, &BX_CPU_C::FISTTP32, NULL) +bx_define_opcode(BX_IA_FISTTP64, &BX_CPU_C::FISTTP64, NULL) +bx_define_opcode(BX_IA_FNINIT, &BX_CPU_C::FNINIT, NULL) +bx_define_opcode(BX_IA_FNCLEX, &BX_CPU_C::FNCLEX, NULL) +bx_define_opcode(BX_IA_FRSTOR, &BX_CPU_C::FRSTOR, NULL) +bx_define_opcode(BX_IA_FNSAVE, &BX_CPU_C::FNSAVE, NULL) +bx_define_opcode(BX_IA_FLDENV, &BX_CPU_C::FLDENV, NULL) +bx_define_opcode(BX_IA_FNSTENV, &BX_CPU_C::FNSTENV, NULL) +bx_define_opcode(BX_IA_FLDCW, &BX_CPU_C::FLDCW, NULL) +bx_define_opcode(BX_IA_FNSTCW, &BX_CPU_C::FNSTCW, NULL) +bx_define_opcode(BX_IA_FNSTSW, &BX_CPU_C::FNSTSW, NULL) +bx_define_opcode(BX_IA_FNSTSW_AX, &BX_CPU_C::FNSTSW_AX, NULL) +bx_define_opcode(BX_IA_FLD1, &BX_CPU_C::FLD1, NULL) +bx_define_opcode(BX_IA_FLDL2T, &BX_CPU_C::FLDL2T, NULL) +bx_define_opcode(BX_IA_FLDL2E, &BX_CPU_C::FLDL2E, NULL) +bx_define_opcode(BX_IA_FLDPI, &BX_CPU_C::FLDPI, NULL) +bx_define_opcode(BX_IA_FLDLG2, &BX_CPU_C::FLDLG2, NULL) +bx_define_opcode(BX_IA_FLDLN2, &BX_CPU_C::FLDLN2, NULL) +bx_define_opcode(BX_IA_FLDZ, &BX_CPU_C::FLDZ, NULL) +bx_define_opcode(BX_IA_FADD_ST0_STj, &BX_CPU_C::FADD_ST0_STj, NULL) +bx_define_opcode(BX_IA_FADD_STi_ST0, &BX_CPU_C::FADD_STi_ST0, NULL) +bx_define_opcode(BX_IA_FADD_SINGLE_REAL, &BX_CPU_C::FADD_SINGLE_REAL, NULL) +bx_define_opcode(BX_IA_FADD_DOUBLE_REAL, &BX_CPU_C::FADD_DOUBLE_REAL, NULL) +bx_define_opcode(BX_IA_FIADD_WORD_INTEGER, &BX_CPU_C::FIADD_WORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FIADD_DWORD_INTEGER, &BX_CPU_C::FIADD_DWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FMUL_ST0_STj, &BX_CPU_C::FMUL_ST0_STj, NULL) +bx_define_opcode(BX_IA_FMUL_STi_ST0, &BX_CPU_C::FMUL_STi_ST0, NULL) +bx_define_opcode(BX_IA_FMUL_SINGLE_REAL, &BX_CPU_C::FMUL_SINGLE_REAL, NULL) +bx_define_opcode(BX_IA_FMUL_DOUBLE_REAL, &BX_CPU_C::FMUL_DOUBLE_REAL, NULL) +bx_define_opcode(BX_IA_FIMUL_WORD_INTEGER , &BX_CPU_C::FIMUL_WORD_INTEGER , NULL) +bx_define_opcode(BX_IA_FIMUL_DWORD_INTEGER, &BX_CPU_C::FIMUL_DWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FSUB_ST0_STj, &BX_CPU_C::FSUB_ST0_STj, NULL) +bx_define_opcode(BX_IA_FSUBR_ST0_STj, &BX_CPU_C::FSUBR_ST0_STj, NULL) +bx_define_opcode(BX_IA_FSUB_STi_ST0, &BX_CPU_C::FSUB_STi_ST0, NULL) +bx_define_opcode(BX_IA_FSUBR_STi_ST0, &BX_CPU_C::FSUBR_STi_ST0, NULL) +bx_define_opcode(BX_IA_FSUB_SINGLE_REAL, &BX_CPU_C::FSUB_SINGLE_REAL, NULL) +bx_define_opcode(BX_IA_FSUBR_SINGLE_REAL, &BX_CPU_C::FSUBR_SINGLE_REAL, NULL) +bx_define_opcode(BX_IA_FSUB_DOUBLE_REAL, &BX_CPU_C::FSUB_DOUBLE_REAL, NULL) +bx_define_opcode(BX_IA_FSUBR_DOUBLE_REAL, &BX_CPU_C::FSUBR_DOUBLE_REAL, NULL) +bx_define_opcode(BX_IA_FISUB_WORD_INTEGER, &BX_CPU_C::FISUB_WORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FISUBR_WORD_INTEGER, &BX_CPU_C::FISUBR_WORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FISUB_DWORD_INTEGER, &BX_CPU_C::FISUB_DWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FISUBR_DWORD_INTEGER, &BX_CPU_C::FISUBR_DWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FDIV_ST0_STj, &BX_CPU_C::FDIV_ST0_STj, NULL) +bx_define_opcode(BX_IA_FDIVR_ST0_STj, &BX_CPU_C::FDIVR_ST0_STj, NULL) +bx_define_opcode(BX_IA_FDIV_STi_ST0, &BX_CPU_C::FDIV_STi_ST0, NULL) +bx_define_opcode(BX_IA_FDIVR_STi_ST0, &BX_CPU_C::FDIVR_STi_ST0, NULL) +bx_define_opcode(BX_IA_FDIV_SINGLE_REAL, &BX_CPU_C::FDIV_SINGLE_REAL, NULL) +bx_define_opcode(BX_IA_FDIVR_SINGLE_REAL, &BX_CPU_C::FDIVR_SINGLE_REAL, NULL) +bx_define_opcode(BX_IA_FDIV_DOUBLE_REAL, &BX_CPU_C::FDIV_DOUBLE_REAL, NULL) +bx_define_opcode(BX_IA_FDIVR_DOUBLE_REAL, &BX_CPU_C::FDIVR_DOUBLE_REAL, NULL) +bx_define_opcode(BX_IA_FIDIV_WORD_INTEGER, &BX_CPU_C::FIDIV_WORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FIDIVR_WORD_INTEGER, &BX_CPU_C::FIDIVR_WORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FIDIV_DWORD_INTEGER, &BX_CPU_C::FIDIV_DWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FIDIVR_DWORD_INTEGER, &BX_CPU_C::FIDIVR_DWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FCOM_STi, &BX_CPU_C::FCOM_STi, NULL) +bx_define_opcode(BX_IA_FUCOM_STi, &BX_CPU_C::FUCOM_STi, NULL) +bx_define_opcode(BX_IA_FCOMI_ST0_STj, &BX_CPU_C::FCOMI_ST0_STj, NULL) +bx_define_opcode(BX_IA_FUCOMI_ST0_STj, &BX_CPU_C::FUCOMI_ST0_STj, NULL) +bx_define_opcode(BX_IA_FCOM_SINGLE_REAL, &BX_CPU_C::FCOM_SINGLE_REAL, NULL) +bx_define_opcode(BX_IA_FCOM_DOUBLE_REAL, &BX_CPU_C::FCOM_DOUBLE_REAL, NULL) +bx_define_opcode(BX_IA_FICOM_WORD_INTEGER, &BX_CPU_C::FICOM_WORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FICOM_DWORD_INTEGER, &BX_CPU_C::FICOM_DWORD_INTEGER, NULL) +bx_define_opcode(BX_IA_FCMOV_ST0_STj, &BX_CPU_C::FCMOV_ST0_STj, NULL) +bx_define_opcode(BX_IA_FCOMPP, &BX_CPU_C::FCOMPP, NULL) +bx_define_opcode(BX_IA_FUCOMPP, &BX_CPU_C::FUCOMPP, NULL) +bx_define_opcode(BX_IA_FXCH_STi, &BX_CPU_C::FXCH_STi, NULL) +bx_define_opcode(BX_IA_FNOP, &BX_CPU_C::FNOP, NULL) +bx_define_opcode(BX_IA_FPLEGACY, &BX_CPU_C::FPLEGACY, NULL) +bx_define_opcode(BX_IA_FCHS, &BX_CPU_C::FCHS, NULL) +bx_define_opcode(BX_IA_FABS, &BX_CPU_C::FABS, NULL) +bx_define_opcode(BX_IA_FTST, &BX_CPU_C::FTST, NULL) +bx_define_opcode(BX_IA_FXAM, &BX_CPU_C::FXAM, NULL) +bx_define_opcode(BX_IA_FDECSTP, &BX_CPU_C::FDECSTP, NULL) +bx_define_opcode(BX_IA_FINCSTP, &BX_CPU_C::FINCSTP, NULL) +bx_define_opcode(BX_IA_FFREE_STi, &BX_CPU_C::FFREE_STi, NULL) +bx_define_opcode(BX_IA_FFREEP_STi, &BX_CPU_C::FFREEP_STi, NULL) +bx_define_opcode(BX_IA_F2XM1, &BX_CPU_C::F2XM1, NULL) +bx_define_opcode(BX_IA_FYL2X, &BX_CPU_C::FYL2X, NULL) +bx_define_opcode(BX_IA_FPTAN, &BX_CPU_C::FPTAN, NULL) +bx_define_opcode(BX_IA_FPATAN, &BX_CPU_C::FPATAN, NULL) +bx_define_opcode(BX_IA_FXTRACT, &BX_CPU_C::FXTRACT, NULL) +bx_define_opcode(BX_IA_FPREM1, &BX_CPU_C::FPREM1, NULL) +bx_define_opcode(BX_IA_FPREM, &BX_CPU_C::FPREM, NULL) +bx_define_opcode(BX_IA_FYL2XP1, &BX_CPU_C::FYL2XP1, NULL) +bx_define_opcode(BX_IA_FSQRT, &BX_CPU_C::FSQRT, NULL) +bx_define_opcode(BX_IA_FSINCOS, &BX_CPU_C::FSINCOS, NULL) +bx_define_opcode(BX_IA_FRNDINT, &BX_CPU_C::FRNDINT, NULL) +bx_define_opcode(BX_IA_FSCALE, &BX_CPU_C::FSCALE, NULL) +bx_define_opcode(BX_IA_FSIN, &BX_CPU_C::FSIN, NULL) +bx_define_opcode(BX_IA_FCOS, &BX_CPU_C::FCOS, NULL) #else -bx_define_opcode(BX_IA_FPU_ESC, &BX_CPU_C::FPU_ESC, NULL, 0) +bx_define_opcode(BX_IA_FPU_ESC, &BX_CPU_C::FPU_ESC, NULL) #endif // MMX -bx_define_opcode(BX_IA_PUNPCKLBW_PqQd, &BX_CPU_C::PUNPCKLBW_PqQd, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKLWD_PqQd, &BX_CPU_C::PUNPCKLWD_PqQd, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKLDQ_PqQd, &BX_CPU_C::PUNPCKLDQ_PqQd, NULL, 0) -bx_define_opcode(BX_IA_PACKSSWB_PqQq, &BX_CPU_C::PACKSSWB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PCMPGTB_PqQq, &BX_CPU_C::PCMPGTB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PCMPGTW_PqQq, &BX_CPU_C::PCMPGTW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PCMPGTD_PqQq, &BX_CPU_C::PCMPGTD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PACKUSWB_PqQq, &BX_CPU_C::PACKUSWB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKHBW_PqQq, &BX_CPU_C::PUNPCKHBW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKHWD_PqQq, &BX_CPU_C::PUNPCKHWD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKHDQ_PqQq, &BX_CPU_C::PUNPCKHDQ_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PACKSSDW_PqQq, &BX_CPU_C::PACKSSDW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_MOVD_PqEd, &BX_CPU_C::MOVD_PqEd, NULL, 0) -bx_define_opcode(BX_IA_MOVQ_PqQq, &BX_CPU_C::MOVQ_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PCMPEQB_PqQq, &BX_CPU_C::PCMPEQB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PCMPEQW_PqQq, &BX_CPU_C::PCMPEQW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PCMPEQD_PqQq, &BX_CPU_C::PCMPEQD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_EMMS, &BX_CPU_C::EMMS, NULL, 0) -bx_define_opcode(BX_IA_MOVD_EdPd, &BX_CPU_C::MOVD_EdPd, NULL, 0) -bx_define_opcode(BX_IA_MOVQ_QqPq, &BX_CPU_C::MOVQ_QqPq, NULL, 0) -bx_define_opcode(BX_IA_PSRLW_PqQq, &BX_CPU_C::PSRLW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSRLD_PqQq, &BX_CPU_C::PSRLD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSRLQ_PqQq, &BX_CPU_C::PSRLQ_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PMULLW_PqQq, &BX_CPU_C::PMULLW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSUBUSB_PqQq, &BX_CPU_C::PSUBUSB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSUBUSW_PqQq, &BX_CPU_C::PSUBUSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PAND_PqQq, &BX_CPU_C::PAND_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PADDUSB_PqQq, &BX_CPU_C::PADDUSB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PADDUSW_PqQq, &BX_CPU_C::PADDUSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PANDN_PqQq, &BX_CPU_C::PANDN_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSRAW_PqQq, &BX_CPU_C::PSRAW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSRAD_PqQq, &BX_CPU_C::PSRAD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PMULHW_PqQq, &BX_CPU_C::PMULHW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSUBSB_PqQq, &BX_CPU_C::PSUBSB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSUBSW_PqQq, &BX_CPU_C::PSUBSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_POR_PqQq, &BX_CPU_C::POR_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PADDSB_PqQq, &BX_CPU_C::PADDSB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PADDSW_PqQq, &BX_CPU_C::PADDSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PXOR_PqQq, &BX_CPU_C::PXOR_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSLLW_PqQq, &BX_CPU_C::PSLLW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSLLD_PqQq, &BX_CPU_C::PSLLD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSLLQ_PqQq, &BX_CPU_C::PSLLQ_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PMADDWD_PqQq, &BX_CPU_C::PMADDWD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSUBB_PqQq, &BX_CPU_C::PSUBB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSUBW_PqQq, &BX_CPU_C::PSUBW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSUBD_PqQq, &BX_CPU_C::PSUBD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PADDB_PqQq, &BX_CPU_C::PADDB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PADDW_PqQq, &BX_CPU_C::PADDW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PADDD_PqQq, &BX_CPU_C::PADDD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSRLW_PqIb, &BX_CPU_C::PSRLW_PqIb, NULL, 0) -bx_define_opcode(BX_IA_PSRAW_PqIb, &BX_CPU_C::PSRAW_PqIb, NULL, 0) -bx_define_opcode(BX_IA_PSLLW_PqIb, &BX_CPU_C::PSLLW_PqIb, NULL, 0) -bx_define_opcode(BX_IA_PSRLD_PqIb, &BX_CPU_C::PSRLD_PqIb, NULL, 0) -bx_define_opcode(BX_IA_PSRAD_PqIb, &BX_CPU_C::PSRAD_PqIb, NULL, 0) -bx_define_opcode(BX_IA_PSLLD_PqIb, &BX_CPU_C::PSLLD_PqIb, NULL, 0) -bx_define_opcode(BX_IA_PSRLQ_PqIb, &BX_CPU_C::PSRLQ_PqIb, NULL, 0) -bx_define_opcode(BX_IA_PSLLQ_PqIb, &BX_CPU_C::PSLLQ_PqIb, NULL, 0) +bx_define_opcode(BX_IA_PUNPCKLBW_PqQd, &BX_CPU_C::PUNPCKLBW_PqQd, NULL) +bx_define_opcode(BX_IA_PUNPCKLWD_PqQd, &BX_CPU_C::PUNPCKLWD_PqQd, NULL) +bx_define_opcode(BX_IA_PUNPCKLDQ_PqQd, &BX_CPU_C::PUNPCKLDQ_PqQd, NULL) +bx_define_opcode(BX_IA_PACKSSWB_PqQq, &BX_CPU_C::PACKSSWB_PqQq, NULL) +bx_define_opcode(BX_IA_PCMPGTB_PqQq, &BX_CPU_C::PCMPGTB_PqQq, NULL) +bx_define_opcode(BX_IA_PCMPGTW_PqQq, &BX_CPU_C::PCMPGTW_PqQq, NULL) +bx_define_opcode(BX_IA_PCMPGTD_PqQq, &BX_CPU_C::PCMPGTD_PqQq, NULL) +bx_define_opcode(BX_IA_PACKUSWB_PqQq, &BX_CPU_C::PACKUSWB_PqQq, NULL) +bx_define_opcode(BX_IA_PUNPCKHBW_PqQq, &BX_CPU_C::PUNPCKHBW_PqQq, NULL) +bx_define_opcode(BX_IA_PUNPCKHWD_PqQq, &BX_CPU_C::PUNPCKHWD_PqQq, NULL) +bx_define_opcode(BX_IA_PUNPCKHDQ_PqQq, &BX_CPU_C::PUNPCKHDQ_PqQq, NULL) +bx_define_opcode(BX_IA_PACKSSDW_PqQq, &BX_CPU_C::PACKSSDW_PqQq, NULL) +bx_define_opcode(BX_IA_MOVD_PqEd, &BX_CPU_C::MOVD_PqEd, NULL) +bx_define_opcode(BX_IA_MOVQ_PqQq, &BX_CPU_C::MOVQ_PqQq, NULL) +bx_define_opcode(BX_IA_PCMPEQB_PqQq, &BX_CPU_C::PCMPEQB_PqQq, NULL) +bx_define_opcode(BX_IA_PCMPEQW_PqQq, &BX_CPU_C::PCMPEQW_PqQq, NULL) +bx_define_opcode(BX_IA_PCMPEQD_PqQq, &BX_CPU_C::PCMPEQD_PqQq, NULL) +bx_define_opcode(BX_IA_EMMS, &BX_CPU_C::EMMS, NULL) +bx_define_opcode(BX_IA_MOVD_EdPd, &BX_CPU_C::MOVD_EdPd, NULL) +bx_define_opcode(BX_IA_MOVQ_QqPq, &BX_CPU_C::MOVQ_QqPq, NULL) +bx_define_opcode(BX_IA_PSRLW_PqQq, &BX_CPU_C::PSRLW_PqQq, NULL) +bx_define_opcode(BX_IA_PSRLD_PqQq, &BX_CPU_C::PSRLD_PqQq, NULL) +bx_define_opcode(BX_IA_PSRLQ_PqQq, &BX_CPU_C::PSRLQ_PqQq, NULL) +bx_define_opcode(BX_IA_PMULLW_PqQq, &BX_CPU_C::PMULLW_PqQq, NULL) +bx_define_opcode(BX_IA_PSUBUSB_PqQq, &BX_CPU_C::PSUBUSB_PqQq, NULL) +bx_define_opcode(BX_IA_PSUBUSW_PqQq, &BX_CPU_C::PSUBUSW_PqQq, NULL) +bx_define_opcode(BX_IA_PAND_PqQq, &BX_CPU_C::PAND_PqQq, NULL) +bx_define_opcode(BX_IA_PADDUSB_PqQq, &BX_CPU_C::PADDUSB_PqQq, NULL) +bx_define_opcode(BX_IA_PADDUSW_PqQq, &BX_CPU_C::PADDUSW_PqQq, NULL) +bx_define_opcode(BX_IA_PANDN_PqQq, &BX_CPU_C::PANDN_PqQq, NULL) +bx_define_opcode(BX_IA_PSRAW_PqQq, &BX_CPU_C::PSRAW_PqQq, NULL) +bx_define_opcode(BX_IA_PSRAD_PqQq, &BX_CPU_C::PSRAD_PqQq, NULL) +bx_define_opcode(BX_IA_PMULHW_PqQq, &BX_CPU_C::PMULHW_PqQq, NULL) +bx_define_opcode(BX_IA_PSUBSB_PqQq, &BX_CPU_C::PSUBSB_PqQq, NULL) +bx_define_opcode(BX_IA_PSUBSW_PqQq, &BX_CPU_C::PSUBSW_PqQq, NULL) +bx_define_opcode(BX_IA_POR_PqQq, &BX_CPU_C::POR_PqQq, NULL) +bx_define_opcode(BX_IA_PADDSB_PqQq, &BX_CPU_C::PADDSB_PqQq, NULL) +bx_define_opcode(BX_IA_PADDSW_PqQq, &BX_CPU_C::PADDSW_PqQq, NULL) +bx_define_opcode(BX_IA_PXOR_PqQq, &BX_CPU_C::PXOR_PqQq, NULL) +bx_define_opcode(BX_IA_PSLLW_PqQq, &BX_CPU_C::PSLLW_PqQq, NULL) +bx_define_opcode(BX_IA_PSLLD_PqQq, &BX_CPU_C::PSLLD_PqQq, NULL) +bx_define_opcode(BX_IA_PSLLQ_PqQq, &BX_CPU_C::PSLLQ_PqQq, NULL) +bx_define_opcode(BX_IA_PMADDWD_PqQq, &BX_CPU_C::PMADDWD_PqQq, NULL) +bx_define_opcode(BX_IA_PSUBB_PqQq, &BX_CPU_C::PSUBB_PqQq, NULL) +bx_define_opcode(BX_IA_PSUBW_PqQq, &BX_CPU_C::PSUBW_PqQq, NULL) +bx_define_opcode(BX_IA_PSUBD_PqQq, &BX_CPU_C::PSUBD_PqQq, NULL) +bx_define_opcode(BX_IA_PADDB_PqQq, &BX_CPU_C::PADDB_PqQq, NULL) +bx_define_opcode(BX_IA_PADDW_PqQq, &BX_CPU_C::PADDW_PqQq, NULL) +bx_define_opcode(BX_IA_PADDD_PqQq, &BX_CPU_C::PADDD_PqQq, NULL) +bx_define_opcode(BX_IA_PSRLW_PqIb, &BX_CPU_C::PSRLW_PqIb, NULL) +bx_define_opcode(BX_IA_PSRAW_PqIb, &BX_CPU_C::PSRAW_PqIb, NULL) +bx_define_opcode(BX_IA_PSLLW_PqIb, &BX_CPU_C::PSLLW_PqIb, NULL) +bx_define_opcode(BX_IA_PSRLD_PqIb, &BX_CPU_C::PSRLD_PqIb, NULL) +bx_define_opcode(BX_IA_PSRAD_PqIb, &BX_CPU_C::PSRAD_PqIb, NULL) +bx_define_opcode(BX_IA_PSLLD_PqIb, &BX_CPU_C::PSLLD_PqIb, NULL) +bx_define_opcode(BX_IA_PSRLQ_PqIb, &BX_CPU_C::PSRLQ_PqIb, NULL) +bx_define_opcode(BX_IA_PSLLQ_PqIb, &BX_CPU_C::PSLLQ_PqIb, NULL) // MMX -bx_define_opcode(BX_IA_FEMMS, BX_3DNOW_ALIAS(&BX_CPU_C::EMMS), NULL, 0) +bx_define_opcode(BX_IA_FEMMS, BX_3DNOW_ALIAS(&BX_CPU_C::EMMS), NULL) #if BX_SUPPORT_3DNOW -bx_define_opcode(BX_IA_PF2ID_PqQq, &BX_CPU_C::PF2ID_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PF2IW_PqQq, &BX_CPU_C::PF2IW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFACC_PqQq, &BX_CPU_C::PFACC_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFADD_PqQq, &BX_CPU_C::PFADD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFCMPEQ_PqQq, &BX_CPU_C::PFCMPEQ_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFCMPGE_PqQq, &BX_CPU_C::PFCMPGE_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFCMPGT_PqQq, &BX_CPU_C::PFCMPGT_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFMAX_PqQq, &BX_CPU_C::PFMAX_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFMIN_PqQq, &BX_CPU_C::PFMIN_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFMUL_PqQq, &BX_CPU_C::PFMUL_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFNACC_PqQq, &BX_CPU_C::PFNACC_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFPNACC_PqQq, &BX_CPU_C::PFPNACC_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFRCP_PqQq, &BX_CPU_C::PFRCP_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFRCPIT1_PqQq, &BX_CPU_C::PFRCPIT1_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFRCPIT2_PqQq, &BX_CPU_C::PFRCPIT2_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFRSQIT1_PqQq, &BX_CPU_C::PFRSQIT1_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFRSQRT_PqQq, &BX_CPU_C::PFRSQRT_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFSUB_PqQq, &BX_CPU_C::PFSUB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PFSUBR_PqQq, &BX_CPU_C::PFSUBR_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PI2FD_PqQq, &BX_CPU_C::PI2FD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PI2FW_PqQq, &BX_CPU_C::PI2FW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PMULHRW_PqQq, &BX_CPU_C::PMULHRW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSWAPD_PqQq, &BX_CPU_C::PSWAPD_PqQq, NULL, 0) +bx_define_opcode(BX_IA_PF2ID_PqQq, &BX_CPU_C::PF2ID_PqQq, NULL) +bx_define_opcode(BX_IA_PF2IW_PqQq, &BX_CPU_C::PF2IW_PqQq, NULL) +bx_define_opcode(BX_IA_PFACC_PqQq, &BX_CPU_C::PFACC_PqQq, NULL) +bx_define_opcode(BX_IA_PFADD_PqQq, &BX_CPU_C::PFADD_PqQq, NULL) +bx_define_opcode(BX_IA_PFCMPEQ_PqQq, &BX_CPU_C::PFCMPEQ_PqQq, NULL) +bx_define_opcode(BX_IA_PFCMPGE_PqQq, &BX_CPU_C::PFCMPGE_PqQq, NULL) +bx_define_opcode(BX_IA_PFCMPGT_PqQq, &BX_CPU_C::PFCMPGT_PqQq, NULL) +bx_define_opcode(BX_IA_PFMAX_PqQq, &BX_CPU_C::PFMAX_PqQq, NULL) +bx_define_opcode(BX_IA_PFMIN_PqQq, &BX_CPU_C::PFMIN_PqQq, NULL) +bx_define_opcode(BX_IA_PFMUL_PqQq, &BX_CPU_C::PFMUL_PqQq, NULL) +bx_define_opcode(BX_IA_PFNACC_PqQq, &BX_CPU_C::PFNACC_PqQq, NULL) +bx_define_opcode(BX_IA_PFPNACC_PqQq, &BX_CPU_C::PFPNACC_PqQq, NULL) +bx_define_opcode(BX_IA_PFRCP_PqQq, &BX_CPU_C::PFRCP_PqQq, NULL) +bx_define_opcode(BX_IA_PFRCPIT1_PqQq, &BX_CPU_C::PFRCPIT1_PqQq, NULL) +bx_define_opcode(BX_IA_PFRCPIT2_PqQq, &BX_CPU_C::PFRCPIT2_PqQq, NULL) +bx_define_opcode(BX_IA_PFRSQIT1_PqQq, &BX_CPU_C::PFRSQIT1_PqQq, NULL) +bx_define_opcode(BX_IA_PFRSQRT_PqQq, &BX_CPU_C::PFRSQRT_PqQq, NULL) +bx_define_opcode(BX_IA_PFSUB_PqQq, &BX_CPU_C::PFSUB_PqQq, NULL) +bx_define_opcode(BX_IA_PFSUBR_PqQq, &BX_CPU_C::PFSUBR_PqQq, NULL) +bx_define_opcode(BX_IA_PI2FD_PqQq, &BX_CPU_C::PI2FD_PqQq, NULL) +bx_define_opcode(BX_IA_PI2FW_PqQq, &BX_CPU_C::PI2FW_PqQq, NULL) +bx_define_opcode(BX_IA_PMULHRW_PqQq, &BX_CPU_C::PMULHRW_PqQq, NULL) +bx_define_opcode(BX_IA_PSWAPD_PqQq, &BX_CPU_C::PSWAPD_PqQq, NULL) #endif // SSE -bx_define_opcode(BX_IA_FXSAVE, &BX_CPU_C::FXSAVE, NULL, 0) -bx_define_opcode(BX_IA_FXRSTOR, &BX_CPU_C::FXRSTOR, NULL, 0) -bx_define_opcode(BX_IA_LDMXCSR, &BX_CPU_C::LDMXCSR, NULL, 0) -bx_define_opcode(BX_IA_STMXCSR, &BX_CPU_C::STMXCSR, NULL, 0) -bx_define_opcode(BX_IA_PREFETCH, &BX_CPU_C::PREFETCH, NULL, 0) +bx_define_opcode(BX_IA_FXSAVE, &BX_CPU_C::FXSAVE, NULL) +bx_define_opcode(BX_IA_FXRSTOR, &BX_CPU_C::FXRSTOR, NULL) +bx_define_opcode(BX_IA_LDMXCSR, &BX_CPU_C::LDMXCSR, NULL) +bx_define_opcode(BX_IA_STMXCSR, &BX_CPU_C::STMXCSR, NULL) +bx_define_opcode(BX_IA_PREFETCH, &BX_CPU_C::PREFETCH, NULL) // SSE // SSE -bx_define_opcode(BX_IA_ANDPS_VpsWps, &BX_CPU_C::ANDPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_ORPS_VpsWps, &BX_CPU_C::ORPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_XORPS_VpsWps, &BX_CPU_C::XORPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_ANDNPS_VpsWps, &BX_CPU_C::ANDNPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_MOVUPS_VpsWps, &BX_CPU_C::MOVUPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_MOVSS_VssWss, &BX_CPU_C::MOVSS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_MOVUPS_WpsVps, &BX_CPU_C::MOVUPS_WpsVps, NULL, 0) -bx_define_opcode(BX_IA_MOVSS_WssVss, &BX_CPU_C::MOVSS_WssVss, NULL, 0) -bx_define_opcode(BX_IA_MOVLPS_VpsMq, &BX_CPU_C::MOVLPS_VpsMq, NULL, 0) -bx_define_opcode(BX_IA_MOVLPS_MqVps, &BX_CPU_C::MOVLPS_MqVps, NULL, 0) -bx_define_opcode(BX_IA_MOVHPS_VpsMq, &BX_CPU_C::MOVHPS_VpsMq, NULL, 0) -bx_define_opcode(BX_IA_MOVHPS_MqVps, &BX_CPU_C::MOVHPS_MqVps, NULL, 0) -bx_define_opcode(BX_IA_MOVAPS_VpsWps, &BX_CPU_C::MOVAPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_MOVAPS_WpsVps, &BX_CPU_C::MOVAPS_WpsVps, NULL, 0) -bx_define_opcode(BX_IA_CVTPI2PS_VpsQq, &BX_CPU_C::CVTPI2PS_VpsQq, NULL, 0) -bx_define_opcode(BX_IA_CVTSI2SS_VssEd, &BX_CPU_C::CVTSI2SS_VssEd, NULL, 0) -bx_define_opcode(BX_IA_MOVNTPS_MpsVps, &BX_CPU_C::MOVNTPS_MpsVps, NULL, 0) -bx_define_opcode(BX_IA_CVTTPS2PI_PqWps, &BX_CPU_C::CVTTPS2PI_PqWps, NULL, 0) -bx_define_opcode(BX_IA_CVTTSS2SI_GdWss, &BX_CPU_C::CVTTSS2SI_GdWss, NULL, 0) -bx_define_opcode(BX_IA_CVTPS2PI_PqWps, &BX_CPU_C::CVTPS2PI_PqWps, NULL, 0) -bx_define_opcode(BX_IA_CVTSS2SI_GdWss, &BX_CPU_C::CVTSS2SI_GdWss, NULL, 0) -bx_define_opcode(BX_IA_UCOMISS_VssWss, &BX_CPU_C::UCOMISS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_COMISS_VpsWps, &BX_CPU_C::COMISS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_MOVMSKPS_GdVRps, &BX_CPU_C::MOVMSKPS_GdVRps, NULL, 0) -bx_define_opcode(BX_IA_SQRTPS_VpsWps, &BX_CPU_C::SQRTPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_SQRTSS_VssWss, &BX_CPU_C::SQRTSS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_RSQRTPS_VpsWps, &BX_CPU_C::RSQRTPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_RSQRTSS_VssWss, &BX_CPU_C::RSQRTSS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_RCPPS_VpsWps, &BX_CPU_C::RCPPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_RCPSS_VssWss, &BX_CPU_C::RCPSS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_ADDPS_VpsWps, &BX_CPU_C::ADDPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_ADDSS_VssWss, &BX_CPU_C::ADDSS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_MULPS_VpsWps, &BX_CPU_C::MULPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_MULSS_VssWss, &BX_CPU_C::MULSS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_SUBPS_VpsWps, &BX_CPU_C::SUBPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_SUBSS_VssWss, &BX_CPU_C::SUBSS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_MINPS_VpsWps, &BX_CPU_C::MINPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_MINSS_VssWss, &BX_CPU_C::MINSS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_DIVPS_VpsWps, &BX_CPU_C::DIVPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_DIVSS_VssWss, &BX_CPU_C::DIVSS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_MAXPS_VpsWps, &BX_CPU_C::MAXPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_MAXSS_VssWss, &BX_CPU_C::MAXSS_VssWss, NULL, 0) -bx_define_opcode(BX_IA_PSHUFW_PqQqIb, &BX_CPU_C::PSHUFW_PqQqIb, NULL, 0) -bx_define_opcode(BX_IA_PSHUFLW_VdqWdqIb, &BX_CPU_C::PSHUFLW_VdqWdqIb, NULL, 0) -bx_define_opcode(BX_IA_CMPPS_VpsWpsIb, &BX_CPU_C::CMPPS_VpsWpsIb, NULL, 0) -bx_define_opcode(BX_IA_CMPSS_VssWssIb, &BX_CPU_C::CMPSS_VssWssIb, NULL, 0) -bx_define_opcode(BX_IA_PINSRW_PqEwIb, &BX_CPU_C::PINSRW_PqEwIb, NULL, 0) -bx_define_opcode(BX_IA_PEXTRW_GdPqIb, &BX_CPU_C::PEXTRW_GdPqIb, NULL, 0) -bx_define_opcode(BX_IA_SHUFPS_VpsWpsIb, &BX_CPU_C::SHUFPS_VpsWpsIb, NULL, 0) -bx_define_opcode(BX_IA_PMOVMSKB_GdPRq, &BX_CPU_C::PMOVMSKB_GdPRq, NULL, 0) -bx_define_opcode(BX_IA_PMINUB_PqQq, &BX_CPU_C::PMINUB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PMAXUB_PqQq, &BX_CPU_C::PMAXUB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PAVGB_PqQq, &BX_CPU_C::PAVGB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PAVGW_PqQq, &BX_CPU_C::PAVGW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PMULHUW_PqQq, &BX_CPU_C::PMULHUW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_MOVNTQ_MqPq, &BX_CPU_C::MOVNTQ_MqPq, NULL, 0) -bx_define_opcode(BX_IA_PMINSW_PqQq, &BX_CPU_C::PMINSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PMAXSW_PqQq, &BX_CPU_C::PMAXSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSADBW_PqQq, &BX_CPU_C::PSADBW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_MASKMOVQ_PqPRq, &BX_CPU_C::MASKMOVQ_PqPRq, NULL, 0) +bx_define_opcode(BX_IA_ANDPS_VpsWps, &BX_CPU_C::ANDPS_VpsWps, NULL) +bx_define_opcode(BX_IA_ORPS_VpsWps, &BX_CPU_C::ORPS_VpsWps, NULL) +bx_define_opcode(BX_IA_XORPS_VpsWps, &BX_CPU_C::XORPS_VpsWps, NULL) +bx_define_opcode(BX_IA_ANDNPS_VpsWps, &BX_CPU_C::ANDNPS_VpsWps, NULL) +bx_define_opcode(BX_IA_MOVUPS_VpsWps, &BX_CPU_C::MOVUPS_VpsWps, NULL) +bx_define_opcode(BX_IA_MOVSS_VssWss, &BX_CPU_C::MOVSS_VssWss, NULL) +bx_define_opcode(BX_IA_MOVUPS_WpsVps, &BX_CPU_C::MOVUPS_WpsVps, NULL) +bx_define_opcode(BX_IA_MOVSS_WssVss, &BX_CPU_C::MOVSS_WssVss, NULL) +bx_define_opcode(BX_IA_MOVLPS_VpsMq, &BX_CPU_C::MOVLPS_VpsMq, NULL) +bx_define_opcode(BX_IA_MOVLPS_MqVps, &BX_CPU_C::MOVLPS_MqVps, NULL) +bx_define_opcode(BX_IA_MOVHPS_VpsMq, &BX_CPU_C::MOVHPS_VpsMq, NULL) +bx_define_opcode(BX_IA_MOVHPS_MqVps, &BX_CPU_C::MOVHPS_MqVps, NULL) +bx_define_opcode(BX_IA_MOVAPS_VpsWps, &BX_CPU_C::MOVAPS_VpsWps, NULL) +bx_define_opcode(BX_IA_MOVAPS_WpsVps, &BX_CPU_C::MOVAPS_WpsVps, NULL) +bx_define_opcode(BX_IA_CVTPI2PS_VpsQq, &BX_CPU_C::CVTPI2PS_VpsQq, NULL) +bx_define_opcode(BX_IA_CVTSI2SS_VssEd, &BX_CPU_C::CVTSI2SS_VssEd, NULL) +bx_define_opcode(BX_IA_MOVNTPS_MpsVps, &BX_CPU_C::MOVNTPS_MpsVps, NULL) +bx_define_opcode(BX_IA_CVTTPS2PI_PqWps, &BX_CPU_C::CVTTPS2PI_PqWps, NULL) +bx_define_opcode(BX_IA_CVTTSS2SI_GdWss, &BX_CPU_C::CVTTSS2SI_GdWss, NULL) +bx_define_opcode(BX_IA_CVTPS2PI_PqWps, &BX_CPU_C::CVTPS2PI_PqWps, NULL) +bx_define_opcode(BX_IA_CVTSS2SI_GdWss, &BX_CPU_C::CVTSS2SI_GdWss, NULL) +bx_define_opcode(BX_IA_UCOMISS_VssWss, &BX_CPU_C::UCOMISS_VssWss, NULL) +bx_define_opcode(BX_IA_COMISS_VpsWps, &BX_CPU_C::COMISS_VpsWps, NULL) +bx_define_opcode(BX_IA_MOVMSKPS_GdVRps, &BX_CPU_C::MOVMSKPS_GdVRps, NULL) +bx_define_opcode(BX_IA_SQRTPS_VpsWps, &BX_CPU_C::SQRTPS_VpsWps, NULL) +bx_define_opcode(BX_IA_SQRTSS_VssWss, &BX_CPU_C::SQRTSS_VssWss, NULL) +bx_define_opcode(BX_IA_RSQRTPS_VpsWps, &BX_CPU_C::RSQRTPS_VpsWps, NULL) +bx_define_opcode(BX_IA_RSQRTSS_VssWss, &BX_CPU_C::RSQRTSS_VssWss, NULL) +bx_define_opcode(BX_IA_RCPPS_VpsWps, &BX_CPU_C::RCPPS_VpsWps, NULL) +bx_define_opcode(BX_IA_RCPSS_VssWss, &BX_CPU_C::RCPSS_VssWss, NULL) +bx_define_opcode(BX_IA_ADDPS_VpsWps, &BX_CPU_C::ADDPS_VpsWps, NULL) +bx_define_opcode(BX_IA_ADDSS_VssWss, &BX_CPU_C::ADDSS_VssWss, NULL) +bx_define_opcode(BX_IA_MULPS_VpsWps, &BX_CPU_C::MULPS_VpsWps, NULL) +bx_define_opcode(BX_IA_MULSS_VssWss, &BX_CPU_C::MULSS_VssWss, NULL) +bx_define_opcode(BX_IA_SUBPS_VpsWps, &BX_CPU_C::SUBPS_VpsWps, NULL) +bx_define_opcode(BX_IA_SUBSS_VssWss, &BX_CPU_C::SUBSS_VssWss, NULL) +bx_define_opcode(BX_IA_MINPS_VpsWps, &BX_CPU_C::MINPS_VpsWps, NULL) +bx_define_opcode(BX_IA_MINSS_VssWss, &BX_CPU_C::MINSS_VssWss, NULL) +bx_define_opcode(BX_IA_DIVPS_VpsWps, &BX_CPU_C::DIVPS_VpsWps, NULL) +bx_define_opcode(BX_IA_DIVSS_VssWss, &BX_CPU_C::DIVSS_VssWss, NULL) +bx_define_opcode(BX_IA_MAXPS_VpsWps, &BX_CPU_C::MAXPS_VpsWps, NULL) +bx_define_opcode(BX_IA_MAXSS_VssWss, &BX_CPU_C::MAXSS_VssWss, NULL) +bx_define_opcode(BX_IA_PSHUFW_PqQqIb, &BX_CPU_C::PSHUFW_PqQqIb, NULL) +bx_define_opcode(BX_IA_PSHUFLW_VdqWdqIb, &BX_CPU_C::PSHUFLW_VdqWdqIb, NULL) +bx_define_opcode(BX_IA_CMPPS_VpsWpsIb, &BX_CPU_C::CMPPS_VpsWpsIb, NULL) +bx_define_opcode(BX_IA_CMPSS_VssWssIb, &BX_CPU_C::CMPSS_VssWssIb, NULL) +bx_define_opcode(BX_IA_PINSRW_PqEwIb, &BX_CPU_C::PINSRW_PqEwIb, NULL) +bx_define_opcode(BX_IA_PEXTRW_GdPqIb, &BX_CPU_C::PEXTRW_GdPqIb, NULL) +bx_define_opcode(BX_IA_SHUFPS_VpsWpsIb, &BX_CPU_C::SHUFPS_VpsWpsIb, NULL) +bx_define_opcode(BX_IA_PMOVMSKB_GdPRq, &BX_CPU_C::PMOVMSKB_GdPRq, NULL) +bx_define_opcode(BX_IA_PMINUB_PqQq, &BX_CPU_C::PMINUB_PqQq, NULL) +bx_define_opcode(BX_IA_PMAXUB_PqQq, &BX_CPU_C::PMAXUB_PqQq, NULL) +bx_define_opcode(BX_IA_PAVGB_PqQq, &BX_CPU_C::PAVGB_PqQq, NULL) +bx_define_opcode(BX_IA_PAVGW_PqQq, &BX_CPU_C::PAVGW_PqQq, NULL) +bx_define_opcode(BX_IA_PMULHUW_PqQq, &BX_CPU_C::PMULHUW_PqQq, NULL) +bx_define_opcode(BX_IA_MOVNTQ_MqPq, &BX_CPU_C::MOVNTQ_MqPq, NULL) +bx_define_opcode(BX_IA_PMINSW_PqQq, &BX_CPU_C::PMINSW_PqQq, NULL) +bx_define_opcode(BX_IA_PMAXSW_PqQq, &BX_CPU_C::PMAXSW_PqQq, NULL) +bx_define_opcode(BX_IA_PSADBW_PqQq, &BX_CPU_C::PSADBW_PqQq, NULL) +bx_define_opcode(BX_IA_MASKMOVQ_PqPRq, &BX_CPU_C::MASKMOVQ_PqPRq, NULL) // SSE // SSE2 -bx_define_opcode(BX_IA_MOVSD_VsdWsd, &BX_CPU_C::MOVSD_VsdWsd, NULL, 0) -bx_define_opcode(BX_IA_MOVSD_WsdVsd, &BX_CPU_C::MOVSD_WsdVsd, NULL, 0) -bx_define_opcode(BX_IA_CVTPI2PD_VpdQq, &BX_CPU_C::CVTPI2PD_VpdQq, NULL, 0) -bx_define_opcode(BX_IA_CVTSI2SD_VsdEd, &BX_CPU_C::CVTSI2SD_VsdEd, NULL, 0) -bx_define_opcode(BX_IA_CVTTPD2PI_PqWpd, &BX_CPU_C::CVTTPD2PI_PqWpd, NULL, 0) -bx_define_opcode(BX_IA_CVTTSD2SI_GdWsd, &BX_CPU_C::CVTTSD2SI_GdWsd, NULL, 0) -bx_define_opcode(BX_IA_CVTPD2PI_PqWpd, &BX_CPU_C::CVTPD2PI_PqWpd, NULL, 0) -bx_define_opcode(BX_IA_CVTSD2SI_GdWsd, &BX_CPU_C::CVTSD2SI_GdWsd, NULL, 0) -bx_define_opcode(BX_IA_UCOMISD_VsdWsd, &BX_CPU_C::UCOMISD_VsdWsd, NULL, 0) -bx_define_opcode(BX_IA_COMISD_VpdWpd, &BX_CPU_C::COMISD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_MOVMSKPD_GdVRpd, &BX_CPU_C::MOVMSKPD_GdVRpd, NULL, 0) -bx_define_opcode(BX_IA_SQRTPD_VpdWpd, &BX_CPU_C::SQRTPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_SQRTSD_VsdWsd, &BX_CPU_C::SQRTSD_VsdWsd, NULL, 0) -bx_define_opcode(BX_IA_ADDPD_VpdWpd, &BX_CPU_C::ADDPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_ADDSD_VsdWsd, &BX_CPU_C::ADDSD_VsdWsd, NULL, 0) -bx_define_opcode(BX_IA_MULPD_VpdWpd, &BX_CPU_C::MULPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_MULSD_VsdWsd, &BX_CPU_C::MULSD_VsdWsd, NULL, 0) -bx_define_opcode(BX_IA_CVTPS2PD_VpsWps, &BX_CPU_C::CVTPS2PD_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_CVTPD2PS_VpdWpd, &BX_CPU_C::CVTPD2PS_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_CVTSD2SS_VsdWsd, &BX_CPU_C::CVTSD2SS_VsdWsd, NULL, 0) -bx_define_opcode(BX_IA_CVTSS2SD_VssWss, &BX_CPU_C::CVTSS2SD_VssWss, NULL, 0) -bx_define_opcode(BX_IA_CVTDQ2PS_VpsWdq, &BX_CPU_C::CVTDQ2PS_VpsWdq, NULL, 0) -bx_define_opcode(BX_IA_CVTPS2DQ_VdqWps, &BX_CPU_C::CVTPS2DQ_VdqWps, NULL, 0) -bx_define_opcode(BX_IA_CVTTPS2DQ_VdqWps, &BX_CPU_C::CVTTPS2DQ_VdqWps, NULL, 0) -bx_define_opcode(BX_IA_SUBPD_VpdWpd, &BX_CPU_C::SUBPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_SUBSD_VsdWsd, &BX_CPU_C::SUBSD_VsdWsd, NULL, 0) -bx_define_opcode(BX_IA_MINPD_VpdWpd, &BX_CPU_C::MINPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_MINSD_VsdWsd, &BX_CPU_C::MINSD_VsdWsd, NULL, 0) -bx_define_opcode(BX_IA_DIVPD_VpdWpd, &BX_CPU_C::DIVPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_DIVSD_VsdWsd, &BX_CPU_C::DIVSD_VsdWsd, NULL, 0) -bx_define_opcode(BX_IA_MAXPD_VpdWpd, &BX_CPU_C::MAXPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_MAXSD_VsdWsd, &BX_CPU_C::MAXSD_VsdWsd, NULL, 0) -bx_define_opcode(BX_IA_UNPCKHPD_VpdWdq, &BX_CPU_C::PUNPCKHQDQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_UNPCKLPD_VpdWdq, &BX_CPU_C::PUNPCKLQDQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKHDQ_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::UNPCKHPS_VpsWdq), NULL, 0) -bx_define_opcode(BX_IA_PUNPCKLDQ_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::UNPCKLPS_VpsWdq), NULL, 0) -bx_define_opcode(BX_IA_MOVAPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::MOVAPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_MOVAPD_WpdVpd, BX_SSE2_ALIAS(&BX_CPU_C::MOVAPS_WpsVps), NULL, 0) -bx_define_opcode(BX_IA_MOVDQA_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::MOVAPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_MOVDQA_WdqVdq, BX_SSE2_ALIAS(&BX_CPU_C::MOVAPS_WpsVps), NULL, 0) -bx_define_opcode(BX_IA_MOVDQU_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::MOVUPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_MOVDQU_WdqVdq, BX_SSE2_ALIAS(&BX_CPU_C::MOVUPS_WpsVps), NULL, 0) -bx_define_opcode(BX_IA_MOVHPD_MqVsd, BX_SSE2_ALIAS(&BX_CPU_C::MOVHPS_MqVps), NULL, 0) -bx_define_opcode(BX_IA_MOVHPD_VsdMq, BX_SSE2_ALIAS(&BX_CPU_C::MOVHPS_VpsMq), NULL, 0) -bx_define_opcode(BX_IA_MOVLPD_MqVsd, BX_SSE2_ALIAS(&BX_CPU_C::MOVLPS_MqVps), NULL, 0) -bx_define_opcode(BX_IA_MOVLPD_VsdMq, BX_SSE2_ALIAS(&BX_CPU_C::MOVLPS_VpsMq), NULL, 0) -bx_define_opcode(BX_IA_MOVNTDQ_MdqVdq, BX_SSE2_ALIAS(&BX_CPU_C::MOVNTPS_MpsVps), NULL, 0) -bx_define_opcode(BX_IA_MOVNTPD_MpdVpd, BX_SSE2_ALIAS(&BX_CPU_C::MOVNTPS_MpsVps), NULL, 0) -bx_define_opcode(BX_IA_MOVUPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::MOVUPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_MOVUPD_WpdVpd, BX_SSE2_ALIAS(&BX_CPU_C::MOVUPS_WpsVps), NULL, 0) -bx_define_opcode(BX_IA_ANDNPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::ANDNPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_ANDPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::ANDPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_ORPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::ORPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_PAND_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::ANDPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_PANDN_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::ANDNPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_POR_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::ORPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_PXOR_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::XORPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_XORPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::XORPS_VpsWps), NULL, 0) -bx_define_opcode(BX_IA_PUNPCKLBW_VdqWdq, &BX_CPU_C::PUNPCKLBW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKLWD_VdqWdq, &BX_CPU_C::PUNPCKLWD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_UNPCKLPS_VpsWdq, &BX_CPU_C::UNPCKLPS_VpsWdq, NULL, 0) -bx_define_opcode(BX_IA_PACKSSWB_VdqWdq, &BX_CPU_C::PACKSSWB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PCMPGTB_VdqWdq, &BX_CPU_C::PCMPGTB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PCMPGTW_VdqWdq, &BX_CPU_C::PCMPGTW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PCMPGTD_VdqWdq, &BX_CPU_C::PCMPGTD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PACKUSWB_VdqWdq, &BX_CPU_C::PACKUSWB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKHBW_VdqWdq, &BX_CPU_C::PUNPCKHBW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKHWD_VdqWdq, &BX_CPU_C::PUNPCKHWD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_UNPCKHPS_VpsWdq, &BX_CPU_C::UNPCKHPS_VpsWdq, NULL, 0) -bx_define_opcode(BX_IA_PACKSSDW_VdqWdq, &BX_CPU_C::PACKSSDW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKLQDQ_VdqWdq, &BX_CPU_C::PUNPCKLQDQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PUNPCKHQDQ_VdqWdq, &BX_CPU_C::PUNPCKHQDQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_MOVD_VdqEd, &BX_CPU_C::MOVD_VdqEd, NULL, 0) -bx_define_opcode(BX_IA_PSHUFD_VdqWdqIb, &BX_CPU_C::PSHUFD_VdqWdqIb, NULL, 0) -bx_define_opcode(BX_IA_PSHUFHW_VdqWdqIb, &BX_CPU_C::PSHUFHW_VdqWdqIb, NULL, 0) -bx_define_opcode(BX_IA_PCMPEQB_VdqWdq, &BX_CPU_C::PCMPEQB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PCMPEQW_VdqWdq, &BX_CPU_C::PCMPEQW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PCMPEQD_VdqWdq, &BX_CPU_C::PCMPEQD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_MOVD_EdVd, &BX_CPU_C::MOVD_EdVd, NULL, 0) -bx_define_opcode(BX_IA_MOVQ_VqWq, &BX_CPU_C::MOVQ_VqWq, NULL, 0) -bx_define_opcode(BX_IA_CMPPD_VpdWpdIb, &BX_CPU_C::CMPPD_VpdWpdIb, NULL, 0) -bx_define_opcode(BX_IA_CMPSD_VsdWsdIb, &BX_CPU_C::CMPSD_VsdWsdIb, NULL, 0) -bx_define_opcode(BX_IA_MOVNTI_MdGd, &BX_CPU_C::MOVNTI_MdGd, NULL, 0) -bx_define_opcode(BX_IA_PINSRW_VdqEwIb, &BX_CPU_C::PINSRW_VdqEwIb, NULL, 0) -bx_define_opcode(BX_IA_PEXTRW_GdUdqIb, &BX_CPU_C::PEXTRW_GdUdqIb, NULL, 0) -bx_define_opcode(BX_IA_SHUFPD_VpdWpdIb, &BX_CPU_C::SHUFPD_VpdWpdIb, NULL, 0) -bx_define_opcode(BX_IA_PSRLW_VdqWdq, &BX_CPU_C::PSRLW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSRLD_VdqWdq, &BX_CPU_C::PSRLD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSRLQ_VdqWdq, &BX_CPU_C::PSRLQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PADDQ_PqQq, &BX_CPU_C::PADDQ_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PADDQ_VdqWdq, &BX_CPU_C::PADDQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMULLW_VdqWdq, &BX_CPU_C::PMULLW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_MOVQ_WqVq, &BX_CPU_C::MOVQ_WqVq, NULL, 0) -bx_define_opcode(BX_IA_MOVDQ2Q_PqVRq, &BX_CPU_C::MOVDQ2Q_PqVRq, NULL, 0) -bx_define_opcode(BX_IA_MOVQ2DQ_VdqQq, &BX_CPU_C::MOVQ2DQ_VdqQq, NULL, 0) -bx_define_opcode(BX_IA_PMOVMSKB_GdUdq, &BX_CPU_C::PMOVMSKB_GdUdq, NULL, 0) -bx_define_opcode(BX_IA_PSUBUSB_VdqWdq, &BX_CPU_C::PSUBUSB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSUBUSW_VdqWdq, &BX_CPU_C::PSUBUSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMINUB_VdqWdq, &BX_CPU_C::PMINUB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PADDUSB_VdqWdq, &BX_CPU_C::PADDUSB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PADDUSW_VdqWdq, &BX_CPU_C::PADDUSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMAXUB_VdqWdq, &BX_CPU_C::PMAXUB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PAVGB_VdqWdq, &BX_CPU_C::PAVGB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSRAW_VdqWdq, &BX_CPU_C::PSRAW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSRAD_VdqWdq, &BX_CPU_C::PSRAD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PAVGW_VdqWdq, &BX_CPU_C::PAVGW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMULHUW_VdqWdq, &BX_CPU_C::PMULHUW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMULHW_VdqWdq, &BX_CPU_C::PMULHW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_CVTTPD2DQ_VqWpd, &BX_CPU_C::CVTTPD2DQ_VqWpd, NULL, 0) -bx_define_opcode(BX_IA_CVTPD2DQ_VqWpd, &BX_CPU_C::CVTPD2DQ_VqWpd, NULL, 0) -bx_define_opcode(BX_IA_CVTDQ2PD_VpdWq, &BX_CPU_C::CVTDQ2PD_VpdWq, NULL, 0) -bx_define_opcode(BX_IA_PSUBSB_VdqWdq, &BX_CPU_C::PSUBSB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSUBSW_VdqWdq, &BX_CPU_C::PSUBSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMINSW_VdqWdq, &BX_CPU_C::PMINSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PADDSB_VdqWdq, &BX_CPU_C::PADDSB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PADDSW_VdqWdq, &BX_CPU_C::PADDSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMAXSW_VdqWdq, &BX_CPU_C::PMAXSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSLLW_VdqWdq, &BX_CPU_C::PSLLW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSLLD_VdqWdq, &BX_CPU_C::PSLLD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSLLQ_VdqWdq, &BX_CPU_C::PSLLQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMULUDQ_PqQq, &BX_CPU_C::PMULUDQ_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PMULUDQ_VdqWdq, &BX_CPU_C::PMULUDQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMADDWD_VdqWdq, &BX_CPU_C::PMADDWD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSADBW_VdqWdq, &BX_CPU_C::PSADBW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_MASKMOVDQU_VdqUdq, &BX_CPU_C::MASKMOVDQU_VdqUdq, NULL, 0) -bx_define_opcode(BX_IA_PSUBB_VdqWdq, &BX_CPU_C::PSUBB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSUBW_VdqWdq, &BX_CPU_C::PSUBW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSUBD_VdqWdq, &BX_CPU_C::PSUBD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSUBQ_PqQq, &BX_CPU_C::PSUBQ_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSUBQ_VdqWdq, &BX_CPU_C::PSUBQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PADDB_VdqWdq, &BX_CPU_C::PADDB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PADDW_VdqWdq, &BX_CPU_C::PADDW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PADDD_VdqWdq, &BX_CPU_C::PADDD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSRLW_UdqIb, &BX_CPU_C::PSRLW_UdqIb, NULL, 0) -bx_define_opcode(BX_IA_PSRAW_UdqIb, &BX_CPU_C::PSRAW_UdqIb, NULL, 0) -bx_define_opcode(BX_IA_PSLLW_UdqIb, &BX_CPU_C::PSLLW_UdqIb, NULL, 0) -bx_define_opcode(BX_IA_PSRLD_UdqIb, &BX_CPU_C::PSRLD_UdqIb, NULL, 0) -bx_define_opcode(BX_IA_PSRAD_UdqIb, &BX_CPU_C::PSRAD_UdqIb, NULL, 0) -bx_define_opcode(BX_IA_PSLLD_UdqIb, &BX_CPU_C::PSLLD_UdqIb, NULL, 0) -bx_define_opcode(BX_IA_PSRLQ_UdqIb, &BX_CPU_C::PSRLQ_UdqIb, NULL, 0) -bx_define_opcode(BX_IA_PSRLDQ_UdqIb, &BX_CPU_C::PSRLDQ_UdqIb, NULL, 0) -bx_define_opcode(BX_IA_PSLLQ_UdqIb, &BX_CPU_C::PSLLQ_UdqIb, NULL, 0) -bx_define_opcode(BX_IA_PSLLDQ_UdqIb, &BX_CPU_C::PSLLDQ_UdqIb, NULL, 0) +bx_define_opcode(BX_IA_MOVSD_VsdWsd, &BX_CPU_C::MOVSD_VsdWsd, NULL) +bx_define_opcode(BX_IA_MOVSD_WsdVsd, &BX_CPU_C::MOVSD_WsdVsd, NULL) +bx_define_opcode(BX_IA_CVTPI2PD_VpdQq, &BX_CPU_C::CVTPI2PD_VpdQq, NULL) +bx_define_opcode(BX_IA_CVTSI2SD_VsdEd, &BX_CPU_C::CVTSI2SD_VsdEd, NULL) +bx_define_opcode(BX_IA_CVTTPD2PI_PqWpd, &BX_CPU_C::CVTTPD2PI_PqWpd, NULL) +bx_define_opcode(BX_IA_CVTTSD2SI_GdWsd, &BX_CPU_C::CVTTSD2SI_GdWsd, NULL) +bx_define_opcode(BX_IA_CVTPD2PI_PqWpd, &BX_CPU_C::CVTPD2PI_PqWpd, NULL) +bx_define_opcode(BX_IA_CVTSD2SI_GdWsd, &BX_CPU_C::CVTSD2SI_GdWsd, NULL) +bx_define_opcode(BX_IA_UCOMISD_VsdWsd, &BX_CPU_C::UCOMISD_VsdWsd, NULL) +bx_define_opcode(BX_IA_COMISD_VpdWpd, &BX_CPU_C::COMISD_VpdWpd, NULL) +bx_define_opcode(BX_IA_MOVMSKPD_GdVRpd, &BX_CPU_C::MOVMSKPD_GdVRpd, NULL) +bx_define_opcode(BX_IA_SQRTPD_VpdWpd, &BX_CPU_C::SQRTPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_SQRTSD_VsdWsd, &BX_CPU_C::SQRTSD_VsdWsd, NULL) +bx_define_opcode(BX_IA_ADDPD_VpdWpd, &BX_CPU_C::ADDPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_ADDSD_VsdWsd, &BX_CPU_C::ADDSD_VsdWsd, NULL) +bx_define_opcode(BX_IA_MULPD_VpdWpd, &BX_CPU_C::MULPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_MULSD_VsdWsd, &BX_CPU_C::MULSD_VsdWsd, NULL) +bx_define_opcode(BX_IA_CVTPS2PD_VpsWps, &BX_CPU_C::CVTPS2PD_VpsWps, NULL) +bx_define_opcode(BX_IA_CVTPD2PS_VpdWpd, &BX_CPU_C::CVTPD2PS_VpdWpd, NULL) +bx_define_opcode(BX_IA_CVTSD2SS_VsdWsd, &BX_CPU_C::CVTSD2SS_VsdWsd, NULL) +bx_define_opcode(BX_IA_CVTSS2SD_VssWss, &BX_CPU_C::CVTSS2SD_VssWss, NULL) +bx_define_opcode(BX_IA_CVTDQ2PS_VpsWdq, &BX_CPU_C::CVTDQ2PS_VpsWdq, NULL) +bx_define_opcode(BX_IA_CVTPS2DQ_VdqWps, &BX_CPU_C::CVTPS2DQ_VdqWps, NULL) +bx_define_opcode(BX_IA_CVTTPS2DQ_VdqWps, &BX_CPU_C::CVTTPS2DQ_VdqWps, NULL) +bx_define_opcode(BX_IA_SUBPD_VpdWpd, &BX_CPU_C::SUBPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_SUBSD_VsdWsd, &BX_CPU_C::SUBSD_VsdWsd, NULL) +bx_define_opcode(BX_IA_MINPD_VpdWpd, &BX_CPU_C::MINPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_MINSD_VsdWsd, &BX_CPU_C::MINSD_VsdWsd, NULL) +bx_define_opcode(BX_IA_DIVPD_VpdWpd, &BX_CPU_C::DIVPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_DIVSD_VsdWsd, &BX_CPU_C::DIVSD_VsdWsd, NULL) +bx_define_opcode(BX_IA_MAXPD_VpdWpd, &BX_CPU_C::MAXPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_MAXSD_VsdWsd, &BX_CPU_C::MAXSD_VsdWsd, NULL) +bx_define_opcode(BX_IA_UNPCKHPD_VpdWdq, &BX_CPU_C::PUNPCKHQDQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_UNPCKLPD_VpdWdq, &BX_CPU_C::PUNPCKLQDQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_PUNPCKHDQ_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::UNPCKHPS_VpsWdq), NULL) +bx_define_opcode(BX_IA_PUNPCKLDQ_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::UNPCKLPS_VpsWdq), NULL) +bx_define_opcode(BX_IA_MOVAPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::MOVAPS_VpsWps), NULL) +bx_define_opcode(BX_IA_MOVAPD_WpdVpd, BX_SSE2_ALIAS(&BX_CPU_C::MOVAPS_WpsVps), NULL) +bx_define_opcode(BX_IA_MOVDQA_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::MOVAPS_VpsWps), NULL) +bx_define_opcode(BX_IA_MOVDQA_WdqVdq, BX_SSE2_ALIAS(&BX_CPU_C::MOVAPS_WpsVps), NULL) +bx_define_opcode(BX_IA_MOVDQU_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::MOVUPS_VpsWps), NULL) +bx_define_opcode(BX_IA_MOVDQU_WdqVdq, BX_SSE2_ALIAS(&BX_CPU_C::MOVUPS_WpsVps), NULL) +bx_define_opcode(BX_IA_MOVHPD_MqVsd, BX_SSE2_ALIAS(&BX_CPU_C::MOVHPS_MqVps), NULL) +bx_define_opcode(BX_IA_MOVHPD_VsdMq, BX_SSE2_ALIAS(&BX_CPU_C::MOVHPS_VpsMq), NULL) +bx_define_opcode(BX_IA_MOVLPD_MqVsd, BX_SSE2_ALIAS(&BX_CPU_C::MOVLPS_MqVps), NULL) +bx_define_opcode(BX_IA_MOVLPD_VsdMq, BX_SSE2_ALIAS(&BX_CPU_C::MOVLPS_VpsMq), NULL) +bx_define_opcode(BX_IA_MOVNTDQ_MdqVdq, BX_SSE2_ALIAS(&BX_CPU_C::MOVNTPS_MpsVps), NULL) +bx_define_opcode(BX_IA_MOVNTPD_MpdVpd, BX_SSE2_ALIAS(&BX_CPU_C::MOVNTPS_MpsVps), NULL) +bx_define_opcode(BX_IA_MOVUPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::MOVUPS_VpsWps), NULL) +bx_define_opcode(BX_IA_MOVUPD_WpdVpd, BX_SSE2_ALIAS(&BX_CPU_C::MOVUPS_WpsVps), NULL) +bx_define_opcode(BX_IA_ANDNPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::ANDNPS_VpsWps), NULL) +bx_define_opcode(BX_IA_ANDPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::ANDPS_VpsWps), NULL) +bx_define_opcode(BX_IA_ORPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::ORPS_VpsWps), NULL) +bx_define_opcode(BX_IA_PAND_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::ANDPS_VpsWps), NULL) +bx_define_opcode(BX_IA_PANDN_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::ANDNPS_VpsWps), NULL) +bx_define_opcode(BX_IA_POR_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::ORPS_VpsWps), NULL) +bx_define_opcode(BX_IA_PXOR_VdqWdq, BX_SSE2_ALIAS(&BX_CPU_C::XORPS_VpsWps), NULL) +bx_define_opcode(BX_IA_XORPD_VpdWpd, BX_SSE2_ALIAS(&BX_CPU_C::XORPS_VpsWps), NULL) +bx_define_opcode(BX_IA_PUNPCKLBW_VdqWdq, &BX_CPU_C::PUNPCKLBW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PUNPCKLWD_VdqWdq, &BX_CPU_C::PUNPCKLWD_VdqWdq, NULL) +bx_define_opcode(BX_IA_UNPCKLPS_VpsWdq, &BX_CPU_C::UNPCKLPS_VpsWdq, NULL) +bx_define_opcode(BX_IA_PACKSSWB_VdqWdq, &BX_CPU_C::PACKSSWB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PCMPGTB_VdqWdq, &BX_CPU_C::PCMPGTB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PCMPGTW_VdqWdq, &BX_CPU_C::PCMPGTW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PCMPGTD_VdqWdq, &BX_CPU_C::PCMPGTD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PACKUSWB_VdqWdq, &BX_CPU_C::PACKUSWB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PUNPCKHBW_VdqWdq, &BX_CPU_C::PUNPCKHBW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PUNPCKHWD_VdqWdq, &BX_CPU_C::PUNPCKHWD_VdqWdq, NULL) +bx_define_opcode(BX_IA_UNPCKHPS_VpsWdq, &BX_CPU_C::UNPCKHPS_VpsWdq, NULL) +bx_define_opcode(BX_IA_PACKSSDW_VdqWdq, &BX_CPU_C::PACKSSDW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PUNPCKLQDQ_VdqWdq, &BX_CPU_C::PUNPCKLQDQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_PUNPCKHQDQ_VdqWdq, &BX_CPU_C::PUNPCKHQDQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_MOVD_VdqEd, &BX_CPU_C::MOVD_VdqEd, NULL) +bx_define_opcode(BX_IA_PSHUFD_VdqWdqIb, &BX_CPU_C::PSHUFD_VdqWdqIb, NULL) +bx_define_opcode(BX_IA_PSHUFHW_VdqWdqIb, &BX_CPU_C::PSHUFHW_VdqWdqIb, NULL) +bx_define_opcode(BX_IA_PCMPEQB_VdqWdq, &BX_CPU_C::PCMPEQB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PCMPEQW_VdqWdq, &BX_CPU_C::PCMPEQW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PCMPEQD_VdqWdq, &BX_CPU_C::PCMPEQD_VdqWdq, NULL) +bx_define_opcode(BX_IA_MOVD_EdVd, &BX_CPU_C::MOVD_EdVd, NULL) +bx_define_opcode(BX_IA_MOVQ_VqWq, &BX_CPU_C::MOVQ_VqWq, NULL) +bx_define_opcode(BX_IA_CMPPD_VpdWpdIb, &BX_CPU_C::CMPPD_VpdWpdIb, NULL) +bx_define_opcode(BX_IA_CMPSD_VsdWsdIb, &BX_CPU_C::CMPSD_VsdWsdIb, NULL) +bx_define_opcode(BX_IA_MOVNTI_MdGd, &BX_CPU_C::MOVNTI_MdGd, NULL) +bx_define_opcode(BX_IA_PINSRW_VdqEwIb, &BX_CPU_C::PINSRW_VdqEwIb, NULL) +bx_define_opcode(BX_IA_PEXTRW_GdUdqIb, &BX_CPU_C::PEXTRW_GdUdqIb, NULL) +bx_define_opcode(BX_IA_SHUFPD_VpdWpdIb, &BX_CPU_C::SHUFPD_VpdWpdIb, NULL) +bx_define_opcode(BX_IA_PSRLW_VdqWdq, &BX_CPU_C::PSRLW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSRLD_VdqWdq, &BX_CPU_C::PSRLD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSRLQ_VdqWdq, &BX_CPU_C::PSRLQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_PADDQ_PqQq, &BX_CPU_C::PADDQ_PqQq, NULL) +bx_define_opcode(BX_IA_PADDQ_VdqWdq, &BX_CPU_C::PADDQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMULLW_VdqWdq, &BX_CPU_C::PMULLW_VdqWdq, NULL) +bx_define_opcode(BX_IA_MOVQ_WqVq, &BX_CPU_C::MOVQ_WqVq, NULL) +bx_define_opcode(BX_IA_MOVDQ2Q_PqVRq, &BX_CPU_C::MOVDQ2Q_PqVRq, NULL) +bx_define_opcode(BX_IA_MOVQ2DQ_VdqQq, &BX_CPU_C::MOVQ2DQ_VdqQq, NULL) +bx_define_opcode(BX_IA_PMOVMSKB_GdUdq, &BX_CPU_C::PMOVMSKB_GdUdq, NULL) +bx_define_opcode(BX_IA_PSUBUSB_VdqWdq, &BX_CPU_C::PSUBUSB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSUBUSW_VdqWdq, &BX_CPU_C::PSUBUSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMINUB_VdqWdq, &BX_CPU_C::PMINUB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PADDUSB_VdqWdq, &BX_CPU_C::PADDUSB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PADDUSW_VdqWdq, &BX_CPU_C::PADDUSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMAXUB_VdqWdq, &BX_CPU_C::PMAXUB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PAVGB_VdqWdq, &BX_CPU_C::PAVGB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSRAW_VdqWdq, &BX_CPU_C::PSRAW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSRAD_VdqWdq, &BX_CPU_C::PSRAD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PAVGW_VdqWdq, &BX_CPU_C::PAVGW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMULHUW_VdqWdq, &BX_CPU_C::PMULHUW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMULHW_VdqWdq, &BX_CPU_C::PMULHW_VdqWdq, NULL) +bx_define_opcode(BX_IA_CVTTPD2DQ_VqWpd, &BX_CPU_C::CVTTPD2DQ_VqWpd, NULL) +bx_define_opcode(BX_IA_CVTPD2DQ_VqWpd, &BX_CPU_C::CVTPD2DQ_VqWpd, NULL) +bx_define_opcode(BX_IA_CVTDQ2PD_VpdWq, &BX_CPU_C::CVTDQ2PD_VpdWq, NULL) +bx_define_opcode(BX_IA_PSUBSB_VdqWdq, &BX_CPU_C::PSUBSB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSUBSW_VdqWdq, &BX_CPU_C::PSUBSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMINSW_VdqWdq, &BX_CPU_C::PMINSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PADDSB_VdqWdq, &BX_CPU_C::PADDSB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PADDSW_VdqWdq, &BX_CPU_C::PADDSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMAXSW_VdqWdq, &BX_CPU_C::PMAXSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSLLW_VdqWdq, &BX_CPU_C::PSLLW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSLLD_VdqWdq, &BX_CPU_C::PSLLD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSLLQ_VdqWdq, &BX_CPU_C::PSLLQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMULUDQ_PqQq, &BX_CPU_C::PMULUDQ_PqQq, NULL) +bx_define_opcode(BX_IA_PMULUDQ_VdqWdq, &BX_CPU_C::PMULUDQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMADDWD_VdqWdq, &BX_CPU_C::PMADDWD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSADBW_VdqWdq, &BX_CPU_C::PSADBW_VdqWdq, NULL) +bx_define_opcode(BX_IA_MASKMOVDQU_VdqUdq, &BX_CPU_C::MASKMOVDQU_VdqUdq, NULL) +bx_define_opcode(BX_IA_PSUBB_VdqWdq, &BX_CPU_C::PSUBB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSUBW_VdqWdq, &BX_CPU_C::PSUBW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSUBD_VdqWdq, &BX_CPU_C::PSUBD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSUBQ_PqQq, &BX_CPU_C::PSUBQ_PqQq, NULL) +bx_define_opcode(BX_IA_PSUBQ_VdqWdq, &BX_CPU_C::PSUBQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_PADDB_VdqWdq, &BX_CPU_C::PADDB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PADDW_VdqWdq, &BX_CPU_C::PADDW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PADDD_VdqWdq, &BX_CPU_C::PADDD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSRLW_UdqIb, &BX_CPU_C::PSRLW_UdqIb, NULL) +bx_define_opcode(BX_IA_PSRAW_UdqIb, &BX_CPU_C::PSRAW_UdqIb, NULL) +bx_define_opcode(BX_IA_PSLLW_UdqIb, &BX_CPU_C::PSLLW_UdqIb, NULL) +bx_define_opcode(BX_IA_PSRLD_UdqIb, &BX_CPU_C::PSRLD_UdqIb, NULL) +bx_define_opcode(BX_IA_PSRAD_UdqIb, &BX_CPU_C::PSRAD_UdqIb, NULL) +bx_define_opcode(BX_IA_PSLLD_UdqIb, &BX_CPU_C::PSLLD_UdqIb, NULL) +bx_define_opcode(BX_IA_PSRLQ_UdqIb, &BX_CPU_C::PSRLQ_UdqIb, NULL) +bx_define_opcode(BX_IA_PSRLDQ_UdqIb, &BX_CPU_C::PSRLDQ_UdqIb, NULL) +bx_define_opcode(BX_IA_PSLLQ_UdqIb, &BX_CPU_C::PSLLQ_UdqIb, NULL) +bx_define_opcode(BX_IA_PSLLDQ_UdqIb, &BX_CPU_C::PSLLDQ_UdqIb, NULL) // SSE2 // SSE3 -bx_define_opcode(BX_IA_MOVDDUP_VpdWq, &BX_CPU_C::MOVDDUP_VpdWq, NULL, 0) -bx_define_opcode(BX_IA_MOVSLDUP_VpsWps, &BX_CPU_C::MOVSLDUP_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_MOVSHDUP_VpsWps, &BX_CPU_C::MOVSHDUP_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_HADDPD_VpdWpd, &BX_CPU_C::HADDPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_HADDPS_VpsWps, &BX_CPU_C::HADDPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_HSUBPD_VpdWpd, &BX_CPU_C::HSUBPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_HSUBPS_VpsWps, &BX_CPU_C::HSUBPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_ADDSUBPD_VpdWpd, &BX_CPU_C::ADDSUBPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_ADDSUBPS_VpsWps, &BX_CPU_C::ADDSUBPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_LDDQU_VdqMdq, &BX_CPU_C::LDDQU_VdqMdq, NULL, 0) +bx_define_opcode(BX_IA_MOVDDUP_VpdWq, &BX_CPU_C::MOVDDUP_VpdWq, NULL) +bx_define_opcode(BX_IA_MOVSLDUP_VpsWps, &BX_CPU_C::MOVSLDUP_VpsWps, NULL) +bx_define_opcode(BX_IA_MOVSHDUP_VpsWps, &BX_CPU_C::MOVSHDUP_VpsWps, NULL) +bx_define_opcode(BX_IA_HADDPD_VpdWpd, &BX_CPU_C::HADDPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_HADDPS_VpsWps, &BX_CPU_C::HADDPS_VpsWps, NULL) +bx_define_opcode(BX_IA_HSUBPD_VpdWpd, &BX_CPU_C::HSUBPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_HSUBPS_VpsWps, &BX_CPU_C::HSUBPS_VpsWps, NULL) +bx_define_opcode(BX_IA_ADDSUBPD_VpdWpd, &BX_CPU_C::ADDSUBPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_ADDSUBPS_VpsWps, &BX_CPU_C::ADDSUBPS_VpsWps, NULL) +bx_define_opcode(BX_IA_LDDQU_VdqMdq, &BX_CPU_C::LDDQU_VdqMdq, NULL) // SSE3 #if (BX_SUPPORT_SSE >= 4) || (BX_SUPPORT_SSE >= 3 && BX_SUPPORT_SSE_EXTENSION > 0) // SSSE3 -bx_define_opcode(BX_IA_PSHUFB_PqQq, &BX_CPU_C::PSHUFB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PHADDW_PqQq, &BX_CPU_C::PHADDW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PHADDD_PqQq, &BX_CPU_C::PHADDD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PHADDSW_PqQq, &BX_CPU_C::PHADDSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PMADDUBSW_PqQq, &BX_CPU_C::PMADDUBSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PHSUBSW_PqQq, &BX_CPU_C::PHSUBSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PHSUBW_PqQq, &BX_CPU_C::PHSUBW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PHSUBD_PqQq, &BX_CPU_C::PHSUBD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSIGNB_PqQq, &BX_CPU_C::PSIGNB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSIGNW_PqQq, &BX_CPU_C::PSIGNW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PSIGND_PqQq, &BX_CPU_C::PSIGND_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PMULHRSW_PqQq, &BX_CPU_C::PMULHRSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PABSB_PqQq, &BX_CPU_C::PABSB_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PABSW_PqQq, &BX_CPU_C::PABSW_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PABSD_PqQq, &BX_CPU_C::PABSD_PqQq, NULL, 0) -bx_define_opcode(BX_IA_PALIGNR_PqQqIb, &BX_CPU_C::PALIGNR_PqQqIb, NULL, 0) -bx_define_opcode(BX_IA_PSHUFB_VdqWdq, &BX_CPU_C::PSHUFB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PHADDW_VdqWdq, &BX_CPU_C::PHADDW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PHADDD_VdqWdq, &BX_CPU_C::PHADDD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PHADDSW_VdqWdq, &BX_CPU_C::PHADDSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMADDUBSW_VdqWdq, &BX_CPU_C::PMADDUBSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PHSUBSW_VdqWdq, &BX_CPU_C::PHSUBSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PHSUBW_VdqWdq, &BX_CPU_C::PHSUBW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PHSUBD_VdqWdq, &BX_CPU_C::PHSUBD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSIGNB_VdqWdq, &BX_CPU_C::PSIGNB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSIGNW_VdqWdq, &BX_CPU_C::PSIGNW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PSIGND_VdqWdq, &BX_CPU_C::PSIGND_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMULHRSW_VdqWdq, &BX_CPU_C::PMULHRSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PABSB_VdqWdq, &BX_CPU_C::PABSB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PABSW_VdqWdq, &BX_CPU_C::PABSW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PABSD_VdqWdq, &BX_CPU_C::PABSD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PALIGNR_VdqWdqIb, &BX_CPU_C::PALIGNR_VdqWdqIb, NULL, 0) +bx_define_opcode(BX_IA_PSHUFB_PqQq, &BX_CPU_C::PSHUFB_PqQq, NULL) +bx_define_opcode(BX_IA_PHADDW_PqQq, &BX_CPU_C::PHADDW_PqQq, NULL) +bx_define_opcode(BX_IA_PHADDD_PqQq, &BX_CPU_C::PHADDD_PqQq, NULL) +bx_define_opcode(BX_IA_PHADDSW_PqQq, &BX_CPU_C::PHADDSW_PqQq, NULL) +bx_define_opcode(BX_IA_PMADDUBSW_PqQq, &BX_CPU_C::PMADDUBSW_PqQq, NULL) +bx_define_opcode(BX_IA_PHSUBSW_PqQq, &BX_CPU_C::PHSUBSW_PqQq, NULL) +bx_define_opcode(BX_IA_PHSUBW_PqQq, &BX_CPU_C::PHSUBW_PqQq, NULL) +bx_define_opcode(BX_IA_PHSUBD_PqQq, &BX_CPU_C::PHSUBD_PqQq, NULL) +bx_define_opcode(BX_IA_PSIGNB_PqQq, &BX_CPU_C::PSIGNB_PqQq, NULL) +bx_define_opcode(BX_IA_PSIGNW_PqQq, &BX_CPU_C::PSIGNW_PqQq, NULL) +bx_define_opcode(BX_IA_PSIGND_PqQq, &BX_CPU_C::PSIGND_PqQq, NULL) +bx_define_opcode(BX_IA_PMULHRSW_PqQq, &BX_CPU_C::PMULHRSW_PqQq, NULL) +bx_define_opcode(BX_IA_PABSB_PqQq, &BX_CPU_C::PABSB_PqQq, NULL) +bx_define_opcode(BX_IA_PABSW_PqQq, &BX_CPU_C::PABSW_PqQq, NULL) +bx_define_opcode(BX_IA_PABSD_PqQq, &BX_CPU_C::PABSD_PqQq, NULL) +bx_define_opcode(BX_IA_PALIGNR_PqQqIb, &BX_CPU_C::PALIGNR_PqQqIb, NULL) +bx_define_opcode(BX_IA_PSHUFB_VdqWdq, &BX_CPU_C::PSHUFB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PHADDW_VdqWdq, &BX_CPU_C::PHADDW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PHADDD_VdqWdq, &BX_CPU_C::PHADDD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PHADDSW_VdqWdq, &BX_CPU_C::PHADDSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMADDUBSW_VdqWdq, &BX_CPU_C::PMADDUBSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PHSUBSW_VdqWdq, &BX_CPU_C::PHSUBSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PHSUBW_VdqWdq, &BX_CPU_C::PHSUBW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PHSUBD_VdqWdq, &BX_CPU_C::PHSUBD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSIGNB_VdqWdq, &BX_CPU_C::PSIGNB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSIGNW_VdqWdq, &BX_CPU_C::PSIGNW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PSIGND_VdqWdq, &BX_CPU_C::PSIGND_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMULHRSW_VdqWdq, &BX_CPU_C::PMULHRSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PABSB_VdqWdq, &BX_CPU_C::PABSB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PABSW_VdqWdq, &BX_CPU_C::PABSW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PABSD_VdqWdq, &BX_CPU_C::PABSD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PALIGNR_VdqWdqIb, &BX_CPU_C::PALIGNR_VdqWdqIb, NULL) // SSSE3 // SSE4.1 -bx_define_opcode(BX_IA_PBLENDVB_VdqWdq, &BX_CPU_C::PBLENDVB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_BLENDVPS_VpsWps, &BX_CPU_C::BLENDVPS_VpsWps, NULL, 0) -bx_define_opcode(BX_IA_BLENDVPD_VpdWpd, &BX_CPU_C::BLENDVPD_VpdWpd, NULL, 0) -bx_define_opcode(BX_IA_PTEST_VdqWdq, &BX_CPU_C::PTEST_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMULDQ_VdqWdq, &BX_CPU_C::PMULDQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PCMPEQQ_VdqWdq, &BX_CPU_C::PCMPEQQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PACKUSDW_VdqWdq, &BX_CPU_C::PACKUSDW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMOVSXBW_VdqWq, &BX_CPU_C::PMOVSXBW_VdqWq, NULL, 0) -bx_define_opcode(BX_IA_PMOVSXBD_VdqWd, &BX_CPU_C::PMOVSXBD_VdqWd, NULL, 0) -bx_define_opcode(BX_IA_PMOVSXBQ_VdqWw, &BX_CPU_C::PMOVSXBQ_VdqWw, NULL, 0) -bx_define_opcode(BX_IA_PMOVSXWD_VdqWq, &BX_CPU_C::PMOVSXWD_VdqWq, NULL, 0) -bx_define_opcode(BX_IA_PMOVSXWQ_VdqWd, &BX_CPU_C::PMOVSXWQ_VdqWd, NULL, 0) -bx_define_opcode(BX_IA_PMOVSXDQ_VdqWq, &BX_CPU_C::PMOVSXDQ_VdqWq, NULL, 0) -bx_define_opcode(BX_IA_PMOVZXBW_VdqWq, &BX_CPU_C::PMOVZXBW_VdqWq, NULL, 0) -bx_define_opcode(BX_IA_PMOVZXBD_VdqWd, &BX_CPU_C::PMOVZXBD_VdqWd, NULL, 0) -bx_define_opcode(BX_IA_PMOVZXBQ_VdqWw, &BX_CPU_C::PMOVZXBQ_VdqWw, NULL, 0) -bx_define_opcode(BX_IA_PMOVZXWD_VdqWq, &BX_CPU_C::PMOVZXWD_VdqWq, NULL, 0) -bx_define_opcode(BX_IA_PMOVZXWQ_VdqWd, &BX_CPU_C::PMOVZXWQ_VdqWd, NULL, 0) -bx_define_opcode(BX_IA_PMOVZXDQ_VdqWq, &BX_CPU_C::PMOVZXDQ_VdqWq, NULL, 0) -bx_define_opcode(BX_IA_PMINSB_VdqWdq, &BX_CPU_C::PMINSB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMINSD_VdqWdq, &BX_CPU_C::PMINSD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMINUW_VdqWdq, &BX_CPU_C::PMINUW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMINUD_VdqWdq, &BX_CPU_C::PMINUD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMAXSB_VdqWdq, &BX_CPU_C::PMAXSB_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMAXSD_VdqWdq, &BX_CPU_C::PMAXSD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMAXUW_VdqWdq, &BX_CPU_C::PMAXUW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMAXUD_VdqWdq, &BX_CPU_C::PMAXUD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PMULLD_VdqWdq, &BX_CPU_C::PMULLD_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PHMINPOSUW_VdqWdq, &BX_CPU_C::PHMINPOSUW_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_ROUNDPS_VpsWpsIb, &BX_CPU_C::ROUNDPS_VpsWpsIb, NULL, 0) -bx_define_opcode(BX_IA_ROUNDPD_VpdWpdIb, &BX_CPU_C::ROUNDPD_VpdWpdIb, NULL, 0) -bx_define_opcode(BX_IA_ROUNDSS_VssWssIb, &BX_CPU_C::ROUNDSS_VssWssIb, NULL, 0) -bx_define_opcode(BX_IA_ROUNDSD_VsdWsdIb, &BX_CPU_C::ROUNDSD_VsdWsdIb, NULL, 0) -bx_define_opcode(BX_IA_BLENDPS_VpsWpsIb, &BX_CPU_C::BLENDPS_VpsWpsIb, NULL, 0) -bx_define_opcode(BX_IA_BLENDPD_VpdWpdIb, &BX_CPU_C::BLENDPD_VpdWpdIb, NULL, 0) -bx_define_opcode(BX_IA_PBLENDW_VdqWdqIb, &BX_CPU_C::PBLENDW_VdqWdqIb, NULL, 0) -bx_define_opcode(BX_IA_PEXTRB_HbdUdqIb, &BX_CPU_C::PEXTRB_HbdUdqIb, NULL, 0) -bx_define_opcode(BX_IA_PEXTRW_HwdUdqIb, &BX_CPU_C::PEXTRW_HwdUdqIb, NULL, 0) -bx_define_opcode(BX_IA_PEXTRD_HdUdqIb, &BX_CPU_C::PEXTRD_HdUdqIb, NULL, 0) -bx_define_opcode(BX_IA_EXTRACTPS_HdUpsIb, &BX_CPU_C::EXTRACTPS_HdUpsIb, NULL, 0) -bx_define_opcode(BX_IA_PINSRB_VdqEbIb, &BX_CPU_C::PINSRB_VdqEbIb, NULL, 0) -bx_define_opcode(BX_IA_INSERTPS_VpsWssIb, &BX_CPU_C::INSERTPS_VpsWssIb, NULL, 0) -bx_define_opcode(BX_IA_PINSRD_VdqEdIb, &BX_CPU_C::PINSRD_VdqEdIb, NULL, 0) -bx_define_opcode(BX_IA_DPPS_VpsWpsIb, &BX_CPU_C::DPPS_VpsWpsIb, NULL, 0) -bx_define_opcode(BX_IA_DPPD_VpdWpdIb, &BX_CPU_C::DPPD_VpdWpdIb, NULL, 0) -bx_define_opcode(BX_IA_MPSADBW_VdqWdqIb, &BX_CPU_C::MPSADBW_VdqWdqIb, NULL, 0) -bx_define_opcode(BX_IA_MOVNTDQA_VdqMdq, &BX_CPU_C::MOVNTDQA_VdqMdq, NULL, 0) +bx_define_opcode(BX_IA_PBLENDVB_VdqWdq, &BX_CPU_C::PBLENDVB_VdqWdq, NULL) +bx_define_opcode(BX_IA_BLENDVPS_VpsWps, &BX_CPU_C::BLENDVPS_VpsWps, NULL) +bx_define_opcode(BX_IA_BLENDVPD_VpdWpd, &BX_CPU_C::BLENDVPD_VpdWpd, NULL) +bx_define_opcode(BX_IA_PTEST_VdqWdq, &BX_CPU_C::PTEST_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMULDQ_VdqWdq, &BX_CPU_C::PMULDQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_PCMPEQQ_VdqWdq, &BX_CPU_C::PCMPEQQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_PACKUSDW_VdqWdq, &BX_CPU_C::PACKUSDW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMOVSXBW_VdqWq, &BX_CPU_C::PMOVSXBW_VdqWq, NULL) +bx_define_opcode(BX_IA_PMOVSXBD_VdqWd, &BX_CPU_C::PMOVSXBD_VdqWd, NULL) +bx_define_opcode(BX_IA_PMOVSXBQ_VdqWw, &BX_CPU_C::PMOVSXBQ_VdqWw, NULL) +bx_define_opcode(BX_IA_PMOVSXWD_VdqWq, &BX_CPU_C::PMOVSXWD_VdqWq, NULL) +bx_define_opcode(BX_IA_PMOVSXWQ_VdqWd, &BX_CPU_C::PMOVSXWQ_VdqWd, NULL) +bx_define_opcode(BX_IA_PMOVSXDQ_VdqWq, &BX_CPU_C::PMOVSXDQ_VdqWq, NULL) +bx_define_opcode(BX_IA_PMOVZXBW_VdqWq, &BX_CPU_C::PMOVZXBW_VdqWq, NULL) +bx_define_opcode(BX_IA_PMOVZXBD_VdqWd, &BX_CPU_C::PMOVZXBD_VdqWd, NULL) +bx_define_opcode(BX_IA_PMOVZXBQ_VdqWw, &BX_CPU_C::PMOVZXBQ_VdqWw, NULL) +bx_define_opcode(BX_IA_PMOVZXWD_VdqWq, &BX_CPU_C::PMOVZXWD_VdqWq, NULL) +bx_define_opcode(BX_IA_PMOVZXWQ_VdqWd, &BX_CPU_C::PMOVZXWQ_VdqWd, NULL) +bx_define_opcode(BX_IA_PMOVZXDQ_VdqWq, &BX_CPU_C::PMOVZXDQ_VdqWq, NULL) +bx_define_opcode(BX_IA_PMINSB_VdqWdq, &BX_CPU_C::PMINSB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMINSD_VdqWdq, &BX_CPU_C::PMINSD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMINUW_VdqWdq, &BX_CPU_C::PMINUW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMINUD_VdqWdq, &BX_CPU_C::PMINUD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMAXSB_VdqWdq, &BX_CPU_C::PMAXSB_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMAXSD_VdqWdq, &BX_CPU_C::PMAXSD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMAXUW_VdqWdq, &BX_CPU_C::PMAXUW_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMAXUD_VdqWdq, &BX_CPU_C::PMAXUD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PMULLD_VdqWdq, &BX_CPU_C::PMULLD_VdqWdq, NULL) +bx_define_opcode(BX_IA_PHMINPOSUW_VdqWdq, &BX_CPU_C::PHMINPOSUW_VdqWdq, NULL) +bx_define_opcode(BX_IA_ROUNDPS_VpsWpsIb, &BX_CPU_C::ROUNDPS_VpsWpsIb, NULL) +bx_define_opcode(BX_IA_ROUNDPD_VpdWpdIb, &BX_CPU_C::ROUNDPD_VpdWpdIb, NULL) +bx_define_opcode(BX_IA_ROUNDSS_VssWssIb, &BX_CPU_C::ROUNDSS_VssWssIb, NULL) +bx_define_opcode(BX_IA_ROUNDSD_VsdWsdIb, &BX_CPU_C::ROUNDSD_VsdWsdIb, NULL) +bx_define_opcode(BX_IA_BLENDPS_VpsWpsIb, &BX_CPU_C::BLENDPS_VpsWpsIb, NULL) +bx_define_opcode(BX_IA_BLENDPD_VpdWpdIb, &BX_CPU_C::BLENDPD_VpdWpdIb, NULL) +bx_define_opcode(BX_IA_PBLENDW_VdqWdqIb, &BX_CPU_C::PBLENDW_VdqWdqIb, NULL) +bx_define_opcode(BX_IA_PEXTRB_HbdUdqIb, &BX_CPU_C::PEXTRB_HbdUdqIb, NULL) +bx_define_opcode(BX_IA_PEXTRW_HwdUdqIb, &BX_CPU_C::PEXTRW_HwdUdqIb, NULL) +bx_define_opcode(BX_IA_PEXTRD_HdUdqIb, &BX_CPU_C::PEXTRD_HdUdqIb, NULL) +bx_define_opcode(BX_IA_EXTRACTPS_HdUpsIb, &BX_CPU_C::EXTRACTPS_HdUpsIb, NULL) +bx_define_opcode(BX_IA_PINSRB_VdqEbIb, &BX_CPU_C::PINSRB_VdqEbIb, NULL) +bx_define_opcode(BX_IA_INSERTPS_VpsWssIb, &BX_CPU_C::INSERTPS_VpsWssIb, NULL) +bx_define_opcode(BX_IA_PINSRD_VdqEdIb, &BX_CPU_C::PINSRD_VdqEdIb, NULL) +bx_define_opcode(BX_IA_DPPS_VpsWpsIb, &BX_CPU_C::DPPS_VpsWpsIb, NULL) +bx_define_opcode(BX_IA_DPPD_VpdWpdIb, &BX_CPU_C::DPPD_VpdWpdIb, NULL) +bx_define_opcode(BX_IA_MPSADBW_VdqWdqIb, &BX_CPU_C::MPSADBW_VdqWdqIb, NULL) +bx_define_opcode(BX_IA_MOVNTDQA_VdqMdq, &BX_CPU_C::MOVNTDQA_VdqMdq, NULL) // SSE4.1 // SSE4.2 -bx_define_opcode(BX_IA_CRC32_GdEb, &BX_CPU_C::CRC32_GdEb, NULL, 0) -bx_define_opcode(BX_IA_CRC32_GdEw, &BX_CPU_C::CRC32_GdEw, NULL, 0) -bx_define_opcode(BX_IA_CRC32_GdEd, &BX_CPU_C::CRC32_GdEd, NULL, 0) +bx_define_opcode(BX_IA_CRC32_GdEb, &BX_CPU_C::CRC32_GdEb, NULL) +bx_define_opcode(BX_IA_CRC32_GdEw, &BX_CPU_C::CRC32_GdEw, NULL) +bx_define_opcode(BX_IA_CRC32_GdEd, &BX_CPU_C::CRC32_GdEd, NULL) #if BX_SUPPORT_X86_64 -bx_define_opcode(BX_IA_CRC32_GdEq, &BX_CPU_C::CRC32_GdEq, NULL, 0) +bx_define_opcode(BX_IA_CRC32_GdEq, &BX_CPU_C::CRC32_GdEq, NULL) #endif -bx_define_opcode(BX_IA_PCMPGTQ_VdqWdq, &BX_CPU_C::PCMPGTQ_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_PCMPESTRM_VdqWdqIb, &BX_CPU_C::PCMPESTRM_VdqWdqIb, NULL, 0) -bx_define_opcode(BX_IA_PCMPESTRI_VdqWdqIb, &BX_CPU_C::PCMPESTRI_VdqWdqIb, NULL, 0) -bx_define_opcode(BX_IA_PCMPISTRM_VdqWdqIb, &BX_CPU_C::PCMPISTRM_VdqWdqIb, NULL, 0) -bx_define_opcode(BX_IA_PCMPISTRI_VdqWdqIb, &BX_CPU_C::PCMPISTRI_VdqWdqIb, NULL, 0) +bx_define_opcode(BX_IA_PCMPGTQ_VdqWdq, &BX_CPU_C::PCMPGTQ_VdqWdq, NULL) +bx_define_opcode(BX_IA_PCMPESTRM_VdqWdqIb, &BX_CPU_C::PCMPESTRM_VdqWdqIb, NULL) +bx_define_opcode(BX_IA_PCMPESTRI_VdqWdqIb, &BX_CPU_C::PCMPESTRI_VdqWdqIb, NULL) +bx_define_opcode(BX_IA_PCMPISTRM_VdqWdqIb, &BX_CPU_C::PCMPISTRM_VdqWdqIb, NULL) +bx_define_opcode(BX_IA_PCMPISTRI_VdqWdqIb, &BX_CPU_C::PCMPISTRI_VdqWdqIb, NULL) // SSE4.2 // MOVBE instruction -bx_define_opcode(BX_IA_MOVBE_GwEw, &BX_CPU_C::MOVBE_GwEw, NULL, 0) -bx_define_opcode(BX_IA_MOVBE_GdEd, &BX_CPU_C::MOVBE_GdEd, NULL, 0) -bx_define_opcode(BX_IA_MOVBE_EwGw, &BX_CPU_C::MOVBE_EwGw, NULL, 0) -bx_define_opcode(BX_IA_MOVBE_EdGd, &BX_CPU_C::MOVBE_EdGd, NULL, 0) +bx_define_opcode(BX_IA_MOVBE_GwEw, &BX_CPU_C::MOVBE_GwEw, NULL) +bx_define_opcode(BX_IA_MOVBE_GdEd, &BX_CPU_C::MOVBE_GdEd, NULL) +bx_define_opcode(BX_IA_MOVBE_EwGw, &BX_CPU_C::MOVBE_EwGw, NULL) +bx_define_opcode(BX_IA_MOVBE_EdGd, &BX_CPU_C::MOVBE_EdGd, NULL) #if BX_SUPPORT_X86_64 -bx_define_opcode(BX_IA_MOVBE_GqEq, &BX_CPU_C::MOVBE_GqEq, NULL, 0) -bx_define_opcode(BX_IA_MOVBE_EqGq, &BX_CPU_C::MOVBE_EqGq, NULL, 0) +bx_define_opcode(BX_IA_MOVBE_GqEq, &BX_CPU_C::MOVBE_GqEq, NULL) +bx_define_opcode(BX_IA_MOVBE_EqGq, &BX_CPU_C::MOVBE_EqGq, NULL) #endif // MOVBE instruction #endif // XSAVE extensions -bx_define_opcode(BX_IA_XRSTOR, &BX_CPU_C::XRSTOR, NULL, 0) -bx_define_opcode(BX_IA_XSAVE, &BX_CPU_C::XSAVE, NULL, 0) -bx_define_opcode(BX_IA_XSETBV, &BX_CPU_C::XSETBV, NULL, 0) -bx_define_opcode(BX_IA_XGETBV, &BX_CPU_C::XGETBV, NULL, 0) +bx_define_opcode(BX_IA_XRSTOR, &BX_CPU_C::XRSTOR, NULL) +bx_define_opcode(BX_IA_XSAVE, &BX_CPU_C::XSAVE, NULL) +bx_define_opcode(BX_IA_XSETBV, &BX_CPU_C::XSETBV, NULL) +bx_define_opcode(BX_IA_XGETBV, &BX_CPU_C::XGETBV, NULL) // AES instructions -bx_define_opcode(BX_IA_AESIMC_VdqWdq, &BX_CPU_C::AESIMC_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_AESENC_VdqWdq, &BX_CPU_C::AESENC_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_AESENCLAST_VdqWdq, &BX_CPU_C::AESENCLAST_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_AESDEC_VdqWdq, &BX_CPU_C::AESDEC_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_AESDECLAST_VdqWdq, &BX_CPU_C::AESDECLAST_VdqWdq, NULL, 0) -bx_define_opcode(BX_IA_AESKEYGENASSIST_VdqWdqIb, &BX_CPU_C::AESKEYGENASSIST_VdqWdqIb, NULL, 0) +bx_define_opcode(BX_IA_AESIMC_VdqWdq, &BX_CPU_C::AESIMC_VdqWdq, NULL) +bx_define_opcode(BX_IA_AESENC_VdqWdq, &BX_CPU_C::AESENC_VdqWdq, NULL) +bx_define_opcode(BX_IA_AESENCLAST_VdqWdq, &BX_CPU_C::AESENCLAST_VdqWdq, NULL) +bx_define_opcode(BX_IA_AESDEC_VdqWdq, &BX_CPU_C::AESDEC_VdqWdq, NULL) +bx_define_opcode(BX_IA_AESDECLAST_VdqWdq, &BX_CPU_C::AESDECLAST_VdqWdq, NULL) +bx_define_opcode(BX_IA_AESKEYGENASSIST_VdqWdqIb, &BX_CPU_C::AESKEYGENASSIST_VdqWdqIb, NULL) #if BX_SUPPORT_X86_64 -bx_define_opcode(BX_IA_ADD_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ADD_GqEqR, 0) -bx_define_opcode(BX_IA_OR_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::OR_GqEqR, 0) -bx_define_opcode(BX_IA_ADC_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ADC_GqEqR, 0) -bx_define_opcode(BX_IA_SBB_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::SBB_GqEqR, 0) -bx_define_opcode(BX_IA_AND_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::AND_GqEqR, 0) -bx_define_opcode(BX_IA_SUB_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::SUB_GqEqR, 0) -bx_define_opcode(BX_IA_XOR_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::XOR_GqEqR, 0) -bx_define_opcode(BX_IA_CMP_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMP_GqEqR, 0) -bx_define_opcode(BX_IA_ADD_GqEqR, &BX_CPU_C::ADD_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_OR_GqEqR, &BX_CPU_C::OR_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_ADC_GqEqR, &BX_CPU_C::ADC_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_SBB_GqEqR, &BX_CPU_C::SBB_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_AND_GqEqR, &BX_CPU_C::AND_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_SUB_GqEqR, &BX_CPU_C::SUB_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_XOR_GqEqR, &BX_CPU_C::XOR_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMP_GqEqR, &BX_CPU_C::CMP_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_ADD_RAXId, &BX_CPU_C::ADD_RAXId, NULL, 0) -bx_define_opcode(BX_IA_OR_RAXId, &BX_CPU_C::OR_RAXId, NULL, 0) -bx_define_opcode(BX_IA_ADC_RAXId, &BX_CPU_C::ADC_RAXId, NULL, 0) -bx_define_opcode(BX_IA_SBB_RAXId, &BX_CPU_C::SBB_RAXId, NULL, 0) -bx_define_opcode(BX_IA_AND_RAXId, &BX_CPU_C::AND_RAXId, NULL, 0) -bx_define_opcode(BX_IA_SUB_RAXId, &BX_CPU_C::SUB_RAXId, NULL, 0) -bx_define_opcode(BX_IA_XOR_RAXId, &BX_CPU_C::XOR_RAXId, NULL, 0) -bx_define_opcode(BX_IA_CMP_RAXId, &BX_CPU_C::CMP_RAXId, NULL, 0) -bx_define_opcode(BX_IA_ADD_EqGqM, &BX_CPU_C::ADD_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_OR_EqGqM, &BX_CPU_C::OR_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_ADC_EqGqM, &BX_CPU_C::ADC_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_SBB_EqGqM, &BX_CPU_C::SBB_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_AND_EqGqM, &BX_CPU_C::AND_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_SUB_EqGqM, &BX_CPU_C::SUB_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_XOR_EqGqM, &BX_CPU_C::XOR_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_CMP_EqGqM, &BX_CPU_C::CMP_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_ADD_EqGqR, &BX_CPU_C::ADD_GqEqR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_OR_EqGqR, &BX_CPU_C::OR_GqEqR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_ADC_EqGqR, &BX_CPU_C::ADC_GqEqR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_SBB_EqGqR, &BX_CPU_C::SBB_GqEqR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_AND_EqGqR, &BX_CPU_C::AND_GqEqR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_SUB_EqGqR, &BX_CPU_C::SUB_GqEqR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_XOR_EqGqR, &BX_CPU_C::XOR_GqEqR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_CMP_EqGqR, &BX_CPU_C::CMP_GqEqR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_ADD_EqIdM, &BX_CPU_C::ADD_EqIdM, NULL, 0) -bx_define_opcode(BX_IA_OR_EqIdM, &BX_CPU_C::OR_EqIdM, NULL, 0) -bx_define_opcode(BX_IA_ADC_EqIdM, &BX_CPU_C::ADC_EqIdM, NULL, 0) -bx_define_opcode(BX_IA_SBB_EqIdM, &BX_CPU_C::SBB_EqIdM, NULL, 0) -bx_define_opcode(BX_IA_AND_EqIdM, &BX_CPU_C::AND_EqIdM, NULL, 0) -bx_define_opcode(BX_IA_SUB_EqIdM, &BX_CPU_C::SUB_EqIdM, NULL, 0) -bx_define_opcode(BX_IA_XOR_EqIdM, &BX_CPU_C::XOR_EqIdM, NULL, 0) -bx_define_opcode(BX_IA_CMP_EqIdM, &BX_CPU_C::CMP_EqIdM, NULL, 0) -bx_define_opcode(BX_IA_ADD_EqIdR, &BX_CPU_C::ADD_EqIdR, NULL, 0) -bx_define_opcode(BX_IA_OR_EqIdR, &BX_CPU_C::OR_EqIdR, NULL, 0) -bx_define_opcode(BX_IA_ADC_EqIdR, &BX_CPU_C::ADC_EqIdR, NULL, 0) -bx_define_opcode(BX_IA_SBB_EqIdR, &BX_CPU_C::SBB_EqIdR, NULL, 0) -bx_define_opcode(BX_IA_AND_EqIdR, &BX_CPU_C::AND_EqIdR, NULL, 0) -bx_define_opcode(BX_IA_SUB_EqIdR, &BX_CPU_C::SUB_EqIdR, NULL, 0) -bx_define_opcode(BX_IA_XOR_EqIdR, &BX_CPU_C::XOR_EqIdR, NULL, 0) -bx_define_opcode(BX_IA_CMP_EqIdR, &BX_CPU_C::CMP_EqIdR, NULL, 0) -bx_define_opcode(BX_IA_TEST_EqGqR, &BX_CPU_C::TEST_EqGqR, NULL, 0) -bx_define_opcode(BX_IA_TEST_EqGqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::TEST_EqGqR, 0) -bx_define_opcode(BX_IA_TEST_RAXId, &BX_CPU_C::TEST_RAXId, NULL, 0) -bx_define_opcode(BX_IA_XCHG_EqGqR, &BX_CPU_C::XCHG_EqGqR, NULL, 0) -bx_define_opcode(BX_IA_XCHG_EqGqM, &BX_CPU_C::XCHG_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_LEA_GqM, &BX_CPU_C::LEA_GqM, NULL, 0) -bx_define_opcode(BX_IA_MOV_RAXOq, &BX_CPU_C::MOV_RAXOq, NULL, 0) -bx_define_opcode(BX_IA_MOV_OqRAX, &BX_CPU_C::MOV_OqRAX, NULL, 0) -bx_define_opcode(BX_IA_MOV_EAXOq, &BX_CPU_C::MOV_EAXOq, NULL, 0) -bx_define_opcode(BX_IA_MOV_OqEAX, &BX_CPU_C::MOV_OqEAX, NULL, 0) -bx_define_opcode(BX_IA_MOV_AXOq, &BX_CPU_C::MOV_AXOq, NULL, 0) -bx_define_opcode(BX_IA_MOV_OqAX, &BX_CPU_C::MOV_OqAX, NULL, 0) -bx_define_opcode(BX_IA_MOV_ALOq, &BX_CPU_C::MOV_ALOq, NULL, 0) -bx_define_opcode(BX_IA_MOV_OqAL, &BX_CPU_C::MOV_OqAL, NULL, 0) -bx_define_opcode(BX_IA_MOV_EqGqR, &BX_CPU_C::MOV_GqEqR, NULL, BxArithDstRM) -bx_define_opcode(BX_IA_MOV_EqGqM, &BX_CPU_C::MOV_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_MOV_GqEqR, &BX_CPU_C::MOV_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_MOV_GqEqM, &BX_CPU_C::MOV_GqEqM, NULL, 0) -bx_define_opcode(BX_IA_MOV_EqIdR, &BX_CPU_C::MOV_EqIdR, NULL, 0) -bx_define_opcode(BX_IA_MOV_EqIdM, &BX_CPU_C::MOV_EqIdM, NULL, 0) -bx_define_opcode(BX_IA_REP_MOVSQ_XqYq, &BX_CPU_C::REP_MOVSQ_XqYq, NULL, 0) -bx_define_opcode(BX_IA_REP_CMPSQ_XqYq, &BX_CPU_C::REP_CMPSQ_XqYq, NULL, 0) -bx_define_opcode(BX_IA_REP_STOSQ_YqRAX, &BX_CPU_C::REP_STOSQ_YqRAX, NULL, 0) -bx_define_opcode(BX_IA_REP_LODSQ_RAXXq, &BX_CPU_C::REP_LODSQ_RAXXq, NULL, 0) -bx_define_opcode(BX_IA_REP_SCASQ_RAXXq, &BX_CPU_C::REP_SCASQ_RAXXq, NULL, 0) -bx_define_opcode(BX_IA_CMPSB64_XbYb, &BX_CPU_C::CMPSB64_XbYb, NULL, 0) -bx_define_opcode(BX_IA_CMPSW64_XwYw, &BX_CPU_C::CMPSW64_XwYw, NULL, 0) -bx_define_opcode(BX_IA_CMPSD64_XdYd, &BX_CPU_C::CMPSD64_XdYd, NULL, 0) -bx_define_opcode(BX_IA_SCASB64_ALXb, &BX_CPU_C::SCASB64_ALXb, NULL, 0) -bx_define_opcode(BX_IA_SCASW64_AXXw, &BX_CPU_C::SCASW64_AXXw, NULL, 0) -bx_define_opcode(BX_IA_SCASD64_EAXXd, &BX_CPU_C::SCASD64_EAXXd, NULL, 0) -bx_define_opcode(BX_IA_LODSB64_ALXb, &BX_CPU_C::LODSB64_ALXb, NULL, 0) -bx_define_opcode(BX_IA_LODSW64_AXXw, &BX_CPU_C::LODSW64_AXXw, NULL, 0) -bx_define_opcode(BX_IA_LODSD64_EAXXd, &BX_CPU_C::LODSD64_EAXXd, NULL, 0) -bx_define_opcode(BX_IA_STOSB64_YbAL, &BX_CPU_C::STOSB64_YbAL, NULL, 0) -bx_define_opcode(BX_IA_STOSW64_YwAX, &BX_CPU_C::STOSW64_YwAX, NULL, 0) -bx_define_opcode(BX_IA_STOSD64_YdEAX, &BX_CPU_C::STOSD64_YdEAX, NULL, 0) -bx_define_opcode(BX_IA_MOVSB64_XbYb, &BX_CPU_C::MOVSB64_XbYb, NULL, 0) -bx_define_opcode(BX_IA_MOVSW64_XwYw, &BX_CPU_C::MOVSW64_XwYw, NULL, 0) -bx_define_opcode(BX_IA_MOVSD64_XdYd, &BX_CPU_C::MOVSD64_XdYd, NULL, 0) -bx_define_opcode(BX_IA_CMPSQ32_XqYq, &BX_CPU_C::CMPSQ32_XqYq, NULL, 0) -bx_define_opcode(BX_IA_CMPSQ64_XqYq, &BX_CPU_C::CMPSQ64_XqYq, NULL, 0) -bx_define_opcode(BX_IA_SCASQ32_RAXXq, &BX_CPU_C::SCASQ32_RAXXq, NULL, 0) -bx_define_opcode(BX_IA_SCASQ64_RAXXq, &BX_CPU_C::SCASQ64_RAXXq, NULL, 0) -bx_define_opcode(BX_IA_LODSQ32_RAXXq, &BX_CPU_C::LODSQ32_RAXXq, NULL, 0) -bx_define_opcode(BX_IA_LODSQ64_RAXXq, &BX_CPU_C::LODSQ64_RAXXq, NULL, 0) -bx_define_opcode(BX_IA_STOSQ32_YqRAX, &BX_CPU_C::STOSQ32_YqRAX, NULL, 0) -bx_define_opcode(BX_IA_STOSQ64_YqRAX, &BX_CPU_C::STOSQ64_YqRAX, NULL, 0) -bx_define_opcode(BX_IA_MOVSQ32_XqYq, &BX_CPU_C::MOVSQ32_XqYq, NULL, 0) -bx_define_opcode(BX_IA_MOVSQ64_XqYq, &BX_CPU_C::MOVSQ64_XqYq, NULL, 0) -bx_define_opcode(BX_IA_CALL_Jq, &BX_CPU_C::CALL_Jq, NULL, 0) -bx_define_opcode(BX_IA_JMP_Jq, &BX_CPU_C::JMP_Jq, NULL, 0) -bx_define_opcode(BX_IA_JO_Jq, &BX_CPU_C::JO_Jq, NULL, 0) -bx_define_opcode(BX_IA_JNO_Jq, &BX_CPU_C::JNO_Jq, NULL, 0) -bx_define_opcode(BX_IA_JB_Jq, &BX_CPU_C::JB_Jq, NULL, 0) -bx_define_opcode(BX_IA_JNB_Jq, &BX_CPU_C::JNB_Jq, NULL, 0) -bx_define_opcode(BX_IA_JZ_Jq, &BX_CPU_C::JZ_Jq, NULL, 0) -bx_define_opcode(BX_IA_JNZ_Jq, &BX_CPU_C::JNZ_Jq, NULL, 0) -bx_define_opcode(BX_IA_JBE_Jq, &BX_CPU_C::JBE_Jq, NULL, 0) -bx_define_opcode(BX_IA_JNBE_Jq, &BX_CPU_C::JNBE_Jq, NULL, 0) -bx_define_opcode(BX_IA_JS_Jq, &BX_CPU_C::JS_Jq, NULL, 0) -bx_define_opcode(BX_IA_JNS_Jq, &BX_CPU_C::JNS_Jq, NULL, 0) -bx_define_opcode(BX_IA_JP_Jq, &BX_CPU_C::JP_Jq, NULL, 0) -bx_define_opcode(BX_IA_JNP_Jq, &BX_CPU_C::JNP_Jq, NULL, 0) -bx_define_opcode(BX_IA_JL_Jq, &BX_CPU_C::JL_Jq, NULL, 0) -bx_define_opcode(BX_IA_JNL_Jq, &BX_CPU_C::JNL_Jq, NULL, 0) -bx_define_opcode(BX_IA_JLE_Jq, &BX_CPU_C::JLE_Jq, NULL, 0) -bx_define_opcode(BX_IA_JNLE_Jq, &BX_CPU_C::JNLE_Jq, NULL, 0) -bx_define_opcode(BX_IA_ENTER64_IwIb, &BX_CPU_C::ENTER64_IwIb, NULL, 0) -bx_define_opcode(BX_IA_LEAVE64, &BX_CPU_C::LEAVE64, NULL, 0) -bx_define_opcode(BX_IA_IRET64, &BX_CPU_C::IRET64, NULL, 0) -bx_define_opcode(BX_IA_MOV_CqRq, &BX_CPU_C::MOV_CqRq, NULL, 0) -bx_define_opcode(BX_IA_MOV_DqRq, &BX_CPU_C::MOV_DqRq, NULL, 0) -bx_define_opcode(BX_IA_MOV_RqCq, &BX_CPU_C::MOV_RqCq, NULL, 0) -bx_define_opcode(BX_IA_MOV_RqDq, &BX_CPU_C::MOV_RqDq, NULL, 0) -bx_define_opcode(BX_IA_SHLD_EqGqR, &BX_CPU_C::SHLD_EqGqR, NULL, 0) -bx_define_opcode(BX_IA_SHLD_EqGqM, &BX_CPU_C::SHLD_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_SHRD_EqGqR, &BX_CPU_C::SHRD_EqGqR, NULL, 0) -bx_define_opcode(BX_IA_SHRD_EqGqM, &BX_CPU_C::SHRD_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_IMUL_GqEqR, &BX_CPU_C::IMUL_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_IMUL_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_GqEqR, 0) -bx_define_opcode(BX_IA_IMUL_GqEqIdR, &BX_CPU_C::IMUL_GqEqIdR, NULL, 0) -bx_define_opcode(BX_IA_IMUL_GqEqIdM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_GqEqIdR, 0) -bx_define_opcode(BX_IA_MOVZX_GqEbM, &BX_CPU_C::MOVZX_GqEbM, NULL, 0) -bx_define_opcode(BX_IA_MOVZX_GqEwM, &BX_CPU_C::MOVZX_GqEwM, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GqEbM, &BX_CPU_C::MOVSX_GqEbM, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GqEwM, &BX_CPU_C::MOVSX_GqEwM, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GqEdM, &BX_CPU_C::MOVSX_GqEdM, NULL, 0) -bx_define_opcode(BX_IA_MOVZX_GqEbR, &BX_CPU_C::MOVZX_GqEbR, NULL, 0) -bx_define_opcode(BX_IA_MOVZX_GqEwR, &BX_CPU_C::MOVZX_GqEwR, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GqEbR, &BX_CPU_C::MOVSX_GqEbR, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GqEwR, &BX_CPU_C::MOVSX_GqEwR, NULL, 0) -bx_define_opcode(BX_IA_MOVSX_GqEdR, &BX_CPU_C::MOVSX_GqEdR, NULL, 0) -bx_define_opcode(BX_IA_BSF_GqEqR, &BX_CPU_C::BSF_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_BSF_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BSF_GqEqR, 0) -bx_define_opcode(BX_IA_BSR_GqEqR, &BX_CPU_C::BSR_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_BSR_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BSR_GqEqR, 0) -bx_define_opcode(BX_IA_BT_EqGqM, &BX_CPU_C::BT_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_BTS_EqGqM, &BX_CPU_C::BTS_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_BTR_EqGqM, &BX_CPU_C::BTR_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_BTC_EqGqM, &BX_CPU_C::BTC_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_BT_EqGqR, &BX_CPU_C::BT_EqGqR, NULL, 0) -bx_define_opcode(BX_IA_BTS_EqGqR, &BX_CPU_C::BTS_EqGqR, NULL, 0) -bx_define_opcode(BX_IA_BTR_EqGqR, &BX_CPU_C::BTR_EqGqR, NULL, 0) -bx_define_opcode(BX_IA_BTC_EqGqR, &BX_CPU_C::BTC_EqGqR, NULL, 0) -bx_define_opcode(BX_IA_BT_EqIbM, &BX_CPU_C::BT_EqIbM, NULL, 0) -bx_define_opcode(BX_IA_BTS_EqIbM, &BX_CPU_C::BTS_EqIbM, NULL, 0) -bx_define_opcode(BX_IA_BTR_EqIbM, &BX_CPU_C::BTR_EqIbM, NULL, 0) -bx_define_opcode(BX_IA_BTC_EqIbM, &BX_CPU_C::BTC_EqIbM, NULL, 0) -bx_define_opcode(BX_IA_BT_EqIbR, &BX_CPU_C::BT_EqIbR, NULL, 0) -bx_define_opcode(BX_IA_BTS_EqIbR, &BX_CPU_C::BTS_EqIbR, NULL, 0) -bx_define_opcode(BX_IA_BTR_EqIbR, &BX_CPU_C::BTR_EqIbR, NULL, 0) -bx_define_opcode(BX_IA_BTC_EqIbR, &BX_CPU_C::BTC_EqIbR, NULL, 0) -bx_define_opcode(BX_IA_BSWAP_RRX, &BX_CPU_C::BSWAP_RRX, NULL, 0) -bx_define_opcode(BX_IA_ROL_EqM, &BX_CPU_C::ROL_EqM, NULL, 0) -bx_define_opcode(BX_IA_ROR_EqM, &BX_CPU_C::ROR_EqM, NULL, 0) -bx_define_opcode(BX_IA_RCL_EqM, &BX_CPU_C::RCL_EqM, NULL, 0) -bx_define_opcode(BX_IA_RCR_EqM, &BX_CPU_C::RCR_EqM, NULL, 0) -bx_define_opcode(BX_IA_SHL_EqM, &BX_CPU_C::SHL_EqM, NULL, 0) -bx_define_opcode(BX_IA_SHR_EqM, &BX_CPU_C::SHR_EqM, NULL, 0) -bx_define_opcode(BX_IA_SAR_EqM, &BX_CPU_C::SAR_EqM, NULL, 0) -bx_define_opcode(BX_IA_ROL_EqR, &BX_CPU_C::ROL_EqR, NULL, 0) -bx_define_opcode(BX_IA_ROR_EqR, &BX_CPU_C::ROR_EqR, NULL, 0) -bx_define_opcode(BX_IA_RCL_EqR, &BX_CPU_C::RCL_EqR, NULL, 0) -bx_define_opcode(BX_IA_RCR_EqR, &BX_CPU_C::RCR_EqR, NULL, 0) -bx_define_opcode(BX_IA_SHL_EqR, &BX_CPU_C::SHL_EqR, NULL, 0) -bx_define_opcode(BX_IA_SHR_EqR, &BX_CPU_C::SHR_EqR, NULL, 0) -bx_define_opcode(BX_IA_SAR_EqR, &BX_CPU_C::SAR_EqR, NULL, 0) -bx_define_opcode(BX_IA_NOT_EqM, &BX_CPU_C::NOT_EqM, NULL, 0) -bx_define_opcode(BX_IA_NEG_EqM, &BX_CPU_C::NEG_EqM, NULL, 0) -bx_define_opcode(BX_IA_NOT_EqR, &BX_CPU_C::NOT_EqR, NULL, 0) -bx_define_opcode(BX_IA_NEG_EqR, &BX_CPU_C::NEG_EqR, NULL, 0) -bx_define_opcode(BX_IA_TEST_EqIdM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::TEST_EqIdR, 0) -bx_define_opcode(BX_IA_TEST_EqIdR, &BX_CPU_C::TEST_EqIdR, NULL, 0) -bx_define_opcode(BX_IA_MUL_RAXEqR, &BX_CPU_C::MUL_RAXEqR, NULL, 0) -bx_define_opcode(BX_IA_MUL_RAXEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::MUL_RAXEqR, 0) -bx_define_opcode(BX_IA_IMUL_RAXEqR, &BX_CPU_C::IMUL_RAXEqR, NULL, 0) -bx_define_opcode(BX_IA_IMUL_RAXEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_RAXEqR, 0) -bx_define_opcode(BX_IA_DIV_RAXEqR, &BX_CPU_C::DIV_RAXEqR, NULL, 0) -bx_define_opcode(BX_IA_DIV_RAXEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::DIV_RAXEqR, 0) -bx_define_opcode(BX_IA_IDIV_RAXEqR, &BX_CPU_C::IDIV_RAXEqR, NULL, 0) -bx_define_opcode(BX_IA_IDIV_RAXEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IDIV_RAXEqR, 0) -bx_define_opcode(BX_IA_INC_EqM, &BX_CPU_C::INC_EqM, NULL, 0) -bx_define_opcode(BX_IA_DEC_EqM, &BX_CPU_C::DEC_EqM, NULL, 0) -bx_define_opcode(BX_IA_INC_EqR, &BX_CPU_C::INC_EqR, NULL, 0) -bx_define_opcode(BX_IA_DEC_EqR, &BX_CPU_C::DEC_EqR, NULL, 0) -bx_define_opcode(BX_IA_CALL_EqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CALL_EqR, 0) -bx_define_opcode(BX_IA_CALL_EqR, &BX_CPU_C::CALL_EqR, NULL, 0) -bx_define_opcode(BX_IA_CALL64_Ep, &BX_CPU_C::CALL64_Ep, NULL, 0) -bx_define_opcode(BX_IA_JMP_EqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::JMP_EqR, 0) -bx_define_opcode(BX_IA_JMP_EqR, &BX_CPU_C::JMP_EqR, NULL, 0) -bx_define_opcode(BX_IA_JMP64_Ep, &BX_CPU_C::JMP64_Ep, NULL, 0) -bx_define_opcode(BX_IA_PUSHF_Fq, &BX_CPU_C::PUSHF_Fq, NULL, 0) -bx_define_opcode(BX_IA_POPF_Fq, &BX_CPU_C::POPF_Fq, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG_EqGqR, &BX_CPU_C::CMPXCHG_EqGqR, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG_EqGqM, &BX_CPU_C::CMPXCHG_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_CDQE, &BX_CPU_C::CDQE, NULL, 0) -bx_define_opcode(BX_IA_CQO, &BX_CPU_C::CQO, NULL, 0) -bx_define_opcode(BX_IA_XADD_EqGqR, &BX_CPU_C::XADD_EqGqR, NULL, 0) -bx_define_opcode(BX_IA_XADD_EqGqM, &BX_CPU_C::XADD_EqGqM, NULL, 0) -bx_define_opcode(BX_IA_RETnear64_Iw, &BX_CPU_C::RETnear64_Iw, NULL, 0) -bx_define_opcode(BX_IA_RETnear64, &BX_CPU_C::RETnear64, NULL, 0) -bx_define_opcode(BX_IA_RETfar64_Iw, &BX_CPU_C::RETfar64_Iw, NULL, 0) -bx_define_opcode(BX_IA_RETfar64, &BX_CPU_C::RETfar64, NULL, 0) -bx_define_opcode(BX_IA_CMOVO_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVO_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVNO_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNO_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVB_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVB_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVNB_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNB_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVZ_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVZ_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVNZ_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNZ_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVBE_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVBE_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVNBE_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNBE_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVS_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVS_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVNS_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNS_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVP_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVP_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVNP_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNP_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVL_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVL_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVNL_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNL_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVLE_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVLE_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVNLE_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNLE_GqEqR, 0) -bx_define_opcode(BX_IA_CMOVO_GqEqR, &BX_CPU_C::CMOVO_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNO_GqEqR, &BX_CPU_C::CMOVNO_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVB_GqEqR, &BX_CPU_C::CMOVB_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNB_GqEqR, &BX_CPU_C::CMOVNB_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVZ_GqEqR, &BX_CPU_C::CMOVZ_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNZ_GqEqR, &BX_CPU_C::CMOVNZ_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVBE_GqEqR, &BX_CPU_C::CMOVBE_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNBE_GqEqR, &BX_CPU_C::CMOVNBE_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVS_GqEqR, &BX_CPU_C::CMOVS_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNS_GqEqR, &BX_CPU_C::CMOVNS_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVP_GqEqR, &BX_CPU_C::CMOVP_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNP_GqEqR, &BX_CPU_C::CMOVNP_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVL_GqEqR, &BX_CPU_C::CMOVL_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNL_GqEqR, &BX_CPU_C::CMOVNL_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVLE_GqEqR, &BX_CPU_C::CMOVLE_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_CMOVNLE_GqEqR, &BX_CPU_C::CMOVNLE_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_MOV_RRXIq, &BX_CPU_C::MOV_RRXIq, NULL, 0) -bx_define_opcode(BX_IA_PUSH_EqM, &BX_CPU_C::PUSH_EqM, NULL, 0) -bx_define_opcode(BX_IA_PUSH_EqR, &BX_CPU_C::PUSH_RRX, NULL, 0) -bx_define_opcode(BX_IA_PUSH_RRX, &BX_CPU_C::PUSH_RRX, NULL, 0) -bx_define_opcode(BX_IA_POP_EqM, &BX_CPU_C::POP_EqM, NULL, 0) -bx_define_opcode(BX_IA_POP_EqR, &BX_CPU_C::POP_RRX, NULL, 0) -bx_define_opcode(BX_IA_POP_RRX, &BX_CPU_C::POP_RRX, NULL, 0) -bx_define_opcode(BX_IA_XCHG_RRXRAX, &BX_CPU_C::XCHG_RRXRAX, NULL, 0) -bx_define_opcode(BX_IA_PUSH64_Id, &BX_CPU_C::PUSH64_Id, NULL, 0) -bx_define_opcode(BX_IA_PUSH64_FS, &BX_CPU_C::PUSH64_FS, NULL, 0) -bx_define_opcode(BX_IA_POP64_FS, &BX_CPU_C::POP64_FS, NULL, 0) -bx_define_opcode(BX_IA_PUSH64_GS, &BX_CPU_C::PUSH64_GS, NULL, 0) -bx_define_opcode(BX_IA_POP64_GS, &BX_CPU_C::POP64_GS, NULL, 0) -bx_define_opcode(BX_IA_LSS_GqMp, &BX_CPU_C::LSS_GqMp, NULL, 0) -bx_define_opcode(BX_IA_LFS_GqMp, &BX_CPU_C::LFS_GqMp, NULL, 0) -bx_define_opcode(BX_IA_LGS_GqMp, &BX_CPU_C::LGS_GqMp, NULL, 0) -bx_define_opcode(BX_IA_SGDT64_Ms, &BX_CPU_C::SGDT64_Ms, NULL, 0) -bx_define_opcode(BX_IA_SIDT64_Ms, &BX_CPU_C::SIDT64_Ms, NULL, 0) -bx_define_opcode(BX_IA_LGDT64_Ms, &BX_CPU_C::LGDT64_Ms, NULL, 0) -bx_define_opcode(BX_IA_LIDT64_Ms, &BX_CPU_C::LIDT64_Ms, NULL, 0) -bx_define_opcode(BX_IA_SYSCALL, &BX_CPU_C::SYSCALL, NULL, 0) -bx_define_opcode(BX_IA_SYSRET, &BX_CPU_C::SYSRET, NULL, 0) -bx_define_opcode(BX_IA_SWAPGS, &BX_CPU_C::SWAPGS, NULL, 0) -bx_define_opcode(BX_IA_RDTSCP, &BX_CPU_C::RDTSCP, NULL, 0) -bx_define_opcode(BX_IA_CMPXCHG16B, &BX_CPU_C::CMPXCHG16B, NULL, 0) -bx_define_opcode(BX_IA_LOOPNE64_Jb, &BX_CPU_C::LOOPNE64_Jb, NULL, 0) -bx_define_opcode(BX_IA_LOOPE64_Jb, &BX_CPU_C::LOOPE64_Jb, NULL, 0) -bx_define_opcode(BX_IA_LOOP64_Jb, &BX_CPU_C::LOOP64_Jb, NULL, 0) -bx_define_opcode(BX_IA_JRCXZ_Jb, &BX_CPU_C::JRCXZ_Jb, NULL, 0) -bx_define_opcode(BX_IA_MOVQ_EqPq, &BX_CPU_C::MOVQ_EqPq, NULL, 0) -bx_define_opcode(BX_IA_MOVQ_EqVq, &BX_CPU_C::MOVQ_EqVq, NULL, 0) -bx_define_opcode(BX_IA_MOVQ_PqEq, &BX_CPU_C::MOVQ_PqEq, NULL, 0) -bx_define_opcode(BX_IA_MOVQ_VdqEq, &BX_CPU_C::MOVQ_VdqEq, NULL, 0) -bx_define_opcode(BX_IA_MOVNTI_MqGq, &BX_CPU_C::MOVNTI_MqGq, NULL, 0) -bx_define_opcode(BX_IA_POPCNT_GqEqR, &BX_CPU_C::POPCNT_GqEqR, NULL, 0) -bx_define_opcode(BX_IA_POPCNT_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::POPCNT_GqEqR, 0) +bx_define_opcode(BX_IA_ADD_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ADD_GqEqR) +bx_define_opcode(BX_IA_OR_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::OR_GqEqR) +bx_define_opcode(BX_IA_ADC_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::ADC_GqEqR) +bx_define_opcode(BX_IA_SBB_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::SBB_GqEqR) +bx_define_opcode(BX_IA_AND_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::AND_GqEqR) +bx_define_opcode(BX_IA_SUB_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::SUB_GqEqR) +bx_define_opcode(BX_IA_XOR_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::XOR_GqEqR) +bx_define_opcode(BX_IA_CMP_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMP_GqEqR) +bx_define_opcode(BX_IA_ADD_GqEqR, &BX_CPU_C::ADD_GqEqR, NULL) +bx_define_opcode(BX_IA_OR_GqEqR, &BX_CPU_C::OR_GqEqR, NULL) +bx_define_opcode(BX_IA_ADC_GqEqR, &BX_CPU_C::ADC_GqEqR, NULL) +bx_define_opcode(BX_IA_SBB_GqEqR, &BX_CPU_C::SBB_GqEqR, NULL) +bx_define_opcode(BX_IA_AND_GqEqR, &BX_CPU_C::AND_GqEqR, NULL) +bx_define_opcode(BX_IA_SUB_GqEqR, &BX_CPU_C::SUB_GqEqR, NULL) +bx_define_opcode(BX_IA_XOR_GqEqR, &BX_CPU_C::XOR_GqEqR, NULL) +bx_define_opcode(BX_IA_CMP_GqEqR, &BX_CPU_C::CMP_GqEqR, NULL) +bx_define_opcode(BX_IA_ADD_RAXId, &BX_CPU_C::ADD_RAXId, NULL) +bx_define_opcode(BX_IA_OR_RAXId, &BX_CPU_C::OR_RAXId, NULL) +bx_define_opcode(BX_IA_ADC_RAXId, &BX_CPU_C::ADC_RAXId, NULL) +bx_define_opcode(BX_IA_SBB_RAXId, &BX_CPU_C::SBB_RAXId, NULL) +bx_define_opcode(BX_IA_AND_RAXId, &BX_CPU_C::AND_RAXId, NULL) +bx_define_opcode(BX_IA_SUB_RAXId, &BX_CPU_C::SUB_RAXId, NULL) +bx_define_opcode(BX_IA_XOR_RAXId, &BX_CPU_C::XOR_RAXId, NULL) +bx_define_opcode(BX_IA_CMP_RAXId, &BX_CPU_C::CMP_RAXId, NULL) +bx_define_opcode(BX_IA_ADD_EqGqM, &BX_CPU_C::ADD_EqGqM, NULL) +bx_define_opcode(BX_IA_OR_EqGqM, &BX_CPU_C::OR_EqGqM, NULL) +bx_define_opcode(BX_IA_ADC_EqGqM, &BX_CPU_C::ADC_EqGqM, NULL) +bx_define_opcode(BX_IA_SBB_EqGqM, &BX_CPU_C::SBB_EqGqM, NULL) +bx_define_opcode(BX_IA_AND_EqGqM, &BX_CPU_C::AND_EqGqM, NULL) +bx_define_opcode(BX_IA_SUB_EqGqM, &BX_CPU_C::SUB_EqGqM, NULL) +bx_define_opcode(BX_IA_XOR_EqGqM, &BX_CPU_C::XOR_EqGqM, NULL) +bx_define_opcode(BX_IA_CMP_EqGqM, &BX_CPU_C::CMP_EqGqM, NULL) +bx_define_opcode(BX_IA_ADD_EqIdM, &BX_CPU_C::ADD_EqIdM, NULL) +bx_define_opcode(BX_IA_OR_EqIdM, &BX_CPU_C::OR_EqIdM, NULL) +bx_define_opcode(BX_IA_ADC_EqIdM, &BX_CPU_C::ADC_EqIdM, NULL) +bx_define_opcode(BX_IA_SBB_EqIdM, &BX_CPU_C::SBB_EqIdM, NULL) +bx_define_opcode(BX_IA_AND_EqIdM, &BX_CPU_C::AND_EqIdM, NULL) +bx_define_opcode(BX_IA_SUB_EqIdM, &BX_CPU_C::SUB_EqIdM, NULL) +bx_define_opcode(BX_IA_XOR_EqIdM, &BX_CPU_C::XOR_EqIdM, NULL) +bx_define_opcode(BX_IA_CMP_EqIdM, &BX_CPU_C::CMP_EqIdM, NULL) +bx_define_opcode(BX_IA_ADD_EqIdR, &BX_CPU_C::ADD_EqIdR, NULL) +bx_define_opcode(BX_IA_OR_EqIdR, &BX_CPU_C::OR_EqIdR, NULL) +bx_define_opcode(BX_IA_ADC_EqIdR, &BX_CPU_C::ADC_EqIdR, NULL) +bx_define_opcode(BX_IA_SBB_EqIdR, &BX_CPU_C::SBB_EqIdR, NULL) +bx_define_opcode(BX_IA_AND_EqIdR, &BX_CPU_C::AND_EqIdR, NULL) +bx_define_opcode(BX_IA_SUB_EqIdR, &BX_CPU_C::SUB_EqIdR, NULL) +bx_define_opcode(BX_IA_XOR_EqIdR, &BX_CPU_C::XOR_EqIdR, NULL) +bx_define_opcode(BX_IA_CMP_EqIdR, &BX_CPU_C::CMP_EqIdR, NULL) +bx_define_opcode(BX_IA_TEST_EqGqR, &BX_CPU_C::TEST_EqGqR, NULL) +bx_define_opcode(BX_IA_TEST_EqGqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::TEST_EqGqR) +bx_define_opcode(BX_IA_TEST_RAXId, &BX_CPU_C::TEST_RAXId, NULL) +bx_define_opcode(BX_IA_XCHG_EqGqR, &BX_CPU_C::XCHG_EqGqR, NULL) +bx_define_opcode(BX_IA_XCHG_EqGqM, &BX_CPU_C::XCHG_EqGqM, NULL) +bx_define_opcode(BX_IA_LEA_GqM, &BX_CPU_C::LEA_GqM, NULL) +bx_define_opcode(BX_IA_MOV_RAXOq, &BX_CPU_C::MOV_RAXOq, NULL) +bx_define_opcode(BX_IA_MOV_OqRAX, &BX_CPU_C::MOV_OqRAX, NULL) +bx_define_opcode(BX_IA_MOV_EAXOq, &BX_CPU_C::MOV_EAXOq, NULL) +bx_define_opcode(BX_IA_MOV_OqEAX, &BX_CPU_C::MOV_OqEAX, NULL) +bx_define_opcode(BX_IA_MOV_AXOq, &BX_CPU_C::MOV_AXOq, NULL) +bx_define_opcode(BX_IA_MOV_OqAX, &BX_CPU_C::MOV_OqAX, NULL) +bx_define_opcode(BX_IA_MOV_ALOq, &BX_CPU_C::MOV_ALOq, NULL) +bx_define_opcode(BX_IA_MOV_OqAL, &BX_CPU_C::MOV_OqAL, NULL) +bx_define_opcode(BX_IA_MOV_EqGqM, &BX_CPU_C::MOV_EqGqM, NULL) +bx_define_opcode(BX_IA_MOV_GqEqR, &BX_CPU_C::MOV_GqEqR, NULL) +bx_define_opcode(BX_IA_MOV_GqEqM, &BX_CPU_C::MOV_GqEqM, NULL) +bx_define_opcode(BX_IA_MOV_EqIdR, &BX_CPU_C::MOV_EqIdR, NULL) +bx_define_opcode(BX_IA_MOV_EqIdM, &BX_CPU_C::MOV_EqIdM, NULL) +bx_define_opcode(BX_IA_REP_MOVSQ_XqYq, &BX_CPU_C::REP_MOVSQ_XqYq, NULL) +bx_define_opcode(BX_IA_REP_CMPSQ_XqYq, &BX_CPU_C::REP_CMPSQ_XqYq, NULL) +bx_define_opcode(BX_IA_REP_STOSQ_YqRAX, &BX_CPU_C::REP_STOSQ_YqRAX, NULL) +bx_define_opcode(BX_IA_REP_LODSQ_RAXXq, &BX_CPU_C::REP_LODSQ_RAXXq, NULL) +bx_define_opcode(BX_IA_REP_SCASQ_RAXXq, &BX_CPU_C::REP_SCASQ_RAXXq, NULL) +bx_define_opcode(BX_IA_CMPSB64_XbYb, &BX_CPU_C::CMPSB64_XbYb, NULL) +bx_define_opcode(BX_IA_CMPSW64_XwYw, &BX_CPU_C::CMPSW64_XwYw, NULL) +bx_define_opcode(BX_IA_CMPSD64_XdYd, &BX_CPU_C::CMPSD64_XdYd, NULL) +bx_define_opcode(BX_IA_SCASB64_ALXb, &BX_CPU_C::SCASB64_ALXb, NULL) +bx_define_opcode(BX_IA_SCASW64_AXXw, &BX_CPU_C::SCASW64_AXXw, NULL) +bx_define_opcode(BX_IA_SCASD64_EAXXd, &BX_CPU_C::SCASD64_EAXXd, NULL) +bx_define_opcode(BX_IA_LODSB64_ALXb, &BX_CPU_C::LODSB64_ALXb, NULL) +bx_define_opcode(BX_IA_LODSW64_AXXw, &BX_CPU_C::LODSW64_AXXw, NULL) +bx_define_opcode(BX_IA_LODSD64_EAXXd, &BX_CPU_C::LODSD64_EAXXd, NULL) +bx_define_opcode(BX_IA_STOSB64_YbAL, &BX_CPU_C::STOSB64_YbAL, NULL) +bx_define_opcode(BX_IA_STOSW64_YwAX, &BX_CPU_C::STOSW64_YwAX, NULL) +bx_define_opcode(BX_IA_STOSD64_YdEAX, &BX_CPU_C::STOSD64_YdEAX, NULL) +bx_define_opcode(BX_IA_MOVSB64_XbYb, &BX_CPU_C::MOVSB64_XbYb, NULL) +bx_define_opcode(BX_IA_MOVSW64_XwYw, &BX_CPU_C::MOVSW64_XwYw, NULL) +bx_define_opcode(BX_IA_MOVSD64_XdYd, &BX_CPU_C::MOVSD64_XdYd, NULL) +bx_define_opcode(BX_IA_CMPSQ32_XqYq, &BX_CPU_C::CMPSQ32_XqYq, NULL) +bx_define_opcode(BX_IA_CMPSQ64_XqYq, &BX_CPU_C::CMPSQ64_XqYq, NULL) +bx_define_opcode(BX_IA_SCASQ32_RAXXq, &BX_CPU_C::SCASQ32_RAXXq, NULL) +bx_define_opcode(BX_IA_SCASQ64_RAXXq, &BX_CPU_C::SCASQ64_RAXXq, NULL) +bx_define_opcode(BX_IA_LODSQ32_RAXXq, &BX_CPU_C::LODSQ32_RAXXq, NULL) +bx_define_opcode(BX_IA_LODSQ64_RAXXq, &BX_CPU_C::LODSQ64_RAXXq, NULL) +bx_define_opcode(BX_IA_STOSQ32_YqRAX, &BX_CPU_C::STOSQ32_YqRAX, NULL) +bx_define_opcode(BX_IA_STOSQ64_YqRAX, &BX_CPU_C::STOSQ64_YqRAX, NULL) +bx_define_opcode(BX_IA_MOVSQ32_XqYq, &BX_CPU_C::MOVSQ32_XqYq, NULL) +bx_define_opcode(BX_IA_MOVSQ64_XqYq, &BX_CPU_C::MOVSQ64_XqYq, NULL) +bx_define_opcode(BX_IA_CALL_Jq, &BX_CPU_C::CALL_Jq, NULL) +bx_define_opcode(BX_IA_JMP_Jq, &BX_CPU_C::JMP_Jq, NULL) +bx_define_opcode(BX_IA_JO_Jq, &BX_CPU_C::JO_Jq, NULL) +bx_define_opcode(BX_IA_JNO_Jq, &BX_CPU_C::JNO_Jq, NULL) +bx_define_opcode(BX_IA_JB_Jq, &BX_CPU_C::JB_Jq, NULL) +bx_define_opcode(BX_IA_JNB_Jq, &BX_CPU_C::JNB_Jq, NULL) +bx_define_opcode(BX_IA_JZ_Jq, &BX_CPU_C::JZ_Jq, NULL) +bx_define_opcode(BX_IA_JNZ_Jq, &BX_CPU_C::JNZ_Jq, NULL) +bx_define_opcode(BX_IA_JBE_Jq, &BX_CPU_C::JBE_Jq, NULL) +bx_define_opcode(BX_IA_JNBE_Jq, &BX_CPU_C::JNBE_Jq, NULL) +bx_define_opcode(BX_IA_JS_Jq, &BX_CPU_C::JS_Jq, NULL) +bx_define_opcode(BX_IA_JNS_Jq, &BX_CPU_C::JNS_Jq, NULL) +bx_define_opcode(BX_IA_JP_Jq, &BX_CPU_C::JP_Jq, NULL) +bx_define_opcode(BX_IA_JNP_Jq, &BX_CPU_C::JNP_Jq, NULL) +bx_define_opcode(BX_IA_JL_Jq, &BX_CPU_C::JL_Jq, NULL) +bx_define_opcode(BX_IA_JNL_Jq, &BX_CPU_C::JNL_Jq, NULL) +bx_define_opcode(BX_IA_JLE_Jq, &BX_CPU_C::JLE_Jq, NULL) +bx_define_opcode(BX_IA_JNLE_Jq, &BX_CPU_C::JNLE_Jq, NULL) +bx_define_opcode(BX_IA_ENTER64_IwIb, &BX_CPU_C::ENTER64_IwIb, NULL) +bx_define_opcode(BX_IA_LEAVE64, &BX_CPU_C::LEAVE64, NULL) +bx_define_opcode(BX_IA_IRET64, &BX_CPU_C::IRET64, NULL) +bx_define_opcode(BX_IA_MOV_CqRq, &BX_CPU_C::MOV_CqRq, NULL) +bx_define_opcode(BX_IA_MOV_DqRq, &BX_CPU_C::MOV_DqRq, NULL) +bx_define_opcode(BX_IA_MOV_RqCq, &BX_CPU_C::MOV_RqCq, NULL) +bx_define_opcode(BX_IA_MOV_RqDq, &BX_CPU_C::MOV_RqDq, NULL) +bx_define_opcode(BX_IA_SHLD_EqGqR, &BX_CPU_C::SHLD_EqGqR, NULL) +bx_define_opcode(BX_IA_SHLD_EqGqM, &BX_CPU_C::SHLD_EqGqM, NULL) +bx_define_opcode(BX_IA_SHRD_EqGqR, &BX_CPU_C::SHRD_EqGqR, NULL) +bx_define_opcode(BX_IA_SHRD_EqGqM, &BX_CPU_C::SHRD_EqGqM, NULL) +bx_define_opcode(BX_IA_IMUL_GqEqR, &BX_CPU_C::IMUL_GqEqR, NULL) +bx_define_opcode(BX_IA_IMUL_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_GqEqR) +bx_define_opcode(BX_IA_IMUL_GqEqIdR, &BX_CPU_C::IMUL_GqEqIdR, NULL) +bx_define_opcode(BX_IA_IMUL_GqEqIdM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_GqEqIdR) +bx_define_opcode(BX_IA_MOVZX_GqEbM, &BX_CPU_C::MOVZX_GqEbM, NULL) +bx_define_opcode(BX_IA_MOVZX_GqEwM, &BX_CPU_C::MOVZX_GqEwM, NULL) +bx_define_opcode(BX_IA_MOVSX_GqEbM, &BX_CPU_C::MOVSX_GqEbM, NULL) +bx_define_opcode(BX_IA_MOVSX_GqEwM, &BX_CPU_C::MOVSX_GqEwM, NULL) +bx_define_opcode(BX_IA_MOVSX_GqEdM, &BX_CPU_C::MOVSX_GqEdM, NULL) +bx_define_opcode(BX_IA_MOVZX_GqEbR, &BX_CPU_C::MOVZX_GqEbR, NULL) +bx_define_opcode(BX_IA_MOVZX_GqEwR, &BX_CPU_C::MOVZX_GqEwR, NULL) +bx_define_opcode(BX_IA_MOVSX_GqEbR, &BX_CPU_C::MOVSX_GqEbR, NULL) +bx_define_opcode(BX_IA_MOVSX_GqEwR, &BX_CPU_C::MOVSX_GqEwR, NULL) +bx_define_opcode(BX_IA_MOVSX_GqEdR, &BX_CPU_C::MOVSX_GqEdR, NULL) +bx_define_opcode(BX_IA_BSF_GqEqR, &BX_CPU_C::BSF_GqEqR, NULL) +bx_define_opcode(BX_IA_BSF_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BSF_GqEqR) +bx_define_opcode(BX_IA_BSR_GqEqR, &BX_CPU_C::BSR_GqEqR, NULL) +bx_define_opcode(BX_IA_BSR_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::BSR_GqEqR) +bx_define_opcode(BX_IA_BT_EqGqM, &BX_CPU_C::BT_EqGqM, NULL) +bx_define_opcode(BX_IA_BTS_EqGqM, &BX_CPU_C::BTS_EqGqM, NULL) +bx_define_opcode(BX_IA_BTR_EqGqM, &BX_CPU_C::BTR_EqGqM, NULL) +bx_define_opcode(BX_IA_BTC_EqGqM, &BX_CPU_C::BTC_EqGqM, NULL) +bx_define_opcode(BX_IA_BT_EqGqR, &BX_CPU_C::BT_EqGqR, NULL) +bx_define_opcode(BX_IA_BTS_EqGqR, &BX_CPU_C::BTS_EqGqR, NULL) +bx_define_opcode(BX_IA_BTR_EqGqR, &BX_CPU_C::BTR_EqGqR, NULL) +bx_define_opcode(BX_IA_BTC_EqGqR, &BX_CPU_C::BTC_EqGqR, NULL) +bx_define_opcode(BX_IA_BT_EqIbM, &BX_CPU_C::BT_EqIbM, NULL) +bx_define_opcode(BX_IA_BTS_EqIbM, &BX_CPU_C::BTS_EqIbM, NULL) +bx_define_opcode(BX_IA_BTR_EqIbM, &BX_CPU_C::BTR_EqIbM, NULL) +bx_define_opcode(BX_IA_BTC_EqIbM, &BX_CPU_C::BTC_EqIbM, NULL) +bx_define_opcode(BX_IA_BT_EqIbR, &BX_CPU_C::BT_EqIbR, NULL) +bx_define_opcode(BX_IA_BTS_EqIbR, &BX_CPU_C::BTS_EqIbR, NULL) +bx_define_opcode(BX_IA_BTR_EqIbR, &BX_CPU_C::BTR_EqIbR, NULL) +bx_define_opcode(BX_IA_BTC_EqIbR, &BX_CPU_C::BTC_EqIbR, NULL) +bx_define_opcode(BX_IA_BSWAP_RRX, &BX_CPU_C::BSWAP_RRX, NULL) +bx_define_opcode(BX_IA_ROL_EqM, &BX_CPU_C::ROL_EqM, NULL) +bx_define_opcode(BX_IA_ROR_EqM, &BX_CPU_C::ROR_EqM, NULL) +bx_define_opcode(BX_IA_RCL_EqM, &BX_CPU_C::RCL_EqM, NULL) +bx_define_opcode(BX_IA_RCR_EqM, &BX_CPU_C::RCR_EqM, NULL) +bx_define_opcode(BX_IA_SHL_EqM, &BX_CPU_C::SHL_EqM, NULL) +bx_define_opcode(BX_IA_SHR_EqM, &BX_CPU_C::SHR_EqM, NULL) +bx_define_opcode(BX_IA_SAR_EqM, &BX_CPU_C::SAR_EqM, NULL) +bx_define_opcode(BX_IA_ROL_EqR, &BX_CPU_C::ROL_EqR, NULL) +bx_define_opcode(BX_IA_ROR_EqR, &BX_CPU_C::ROR_EqR, NULL) +bx_define_opcode(BX_IA_RCL_EqR, &BX_CPU_C::RCL_EqR, NULL) +bx_define_opcode(BX_IA_RCR_EqR, &BX_CPU_C::RCR_EqR, NULL) +bx_define_opcode(BX_IA_SHL_EqR, &BX_CPU_C::SHL_EqR, NULL) +bx_define_opcode(BX_IA_SHR_EqR, &BX_CPU_C::SHR_EqR, NULL) +bx_define_opcode(BX_IA_SAR_EqR, &BX_CPU_C::SAR_EqR, NULL) +bx_define_opcode(BX_IA_NOT_EqM, &BX_CPU_C::NOT_EqM, NULL) +bx_define_opcode(BX_IA_NEG_EqM, &BX_CPU_C::NEG_EqM, NULL) +bx_define_opcode(BX_IA_NOT_EqR, &BX_CPU_C::NOT_EqR, NULL) +bx_define_opcode(BX_IA_NEG_EqR, &BX_CPU_C::NEG_EqR, NULL) +bx_define_opcode(BX_IA_TEST_EqIdM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::TEST_EqIdR) +bx_define_opcode(BX_IA_TEST_EqIdR, &BX_CPU_C::TEST_EqIdR, NULL) +bx_define_opcode(BX_IA_MUL_RAXEqR, &BX_CPU_C::MUL_RAXEqR, NULL) +bx_define_opcode(BX_IA_MUL_RAXEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::MUL_RAXEqR) +bx_define_opcode(BX_IA_IMUL_RAXEqR, &BX_CPU_C::IMUL_RAXEqR, NULL) +bx_define_opcode(BX_IA_IMUL_RAXEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IMUL_RAXEqR) +bx_define_opcode(BX_IA_DIV_RAXEqR, &BX_CPU_C::DIV_RAXEqR, NULL) +bx_define_opcode(BX_IA_DIV_RAXEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::DIV_RAXEqR) +bx_define_opcode(BX_IA_IDIV_RAXEqR, &BX_CPU_C::IDIV_RAXEqR, NULL) +bx_define_opcode(BX_IA_IDIV_RAXEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::IDIV_RAXEqR) +bx_define_opcode(BX_IA_INC_EqM, &BX_CPU_C::INC_EqM, NULL) +bx_define_opcode(BX_IA_DEC_EqM, &BX_CPU_C::DEC_EqM, NULL) +bx_define_opcode(BX_IA_INC_EqR, &BX_CPU_C::INC_EqR, NULL) +bx_define_opcode(BX_IA_DEC_EqR, &BX_CPU_C::DEC_EqR, NULL) +bx_define_opcode(BX_IA_CALL_EqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CALL_EqR) +bx_define_opcode(BX_IA_CALL_EqR, &BX_CPU_C::CALL_EqR, NULL) +bx_define_opcode(BX_IA_CALL64_Ep, &BX_CPU_C::CALL64_Ep, NULL) +bx_define_opcode(BX_IA_JMP_EqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::JMP_EqR) +bx_define_opcode(BX_IA_JMP_EqR, &BX_CPU_C::JMP_EqR, NULL) +bx_define_opcode(BX_IA_JMP64_Ep, &BX_CPU_C::JMP64_Ep, NULL) +bx_define_opcode(BX_IA_PUSHF_Fq, &BX_CPU_C::PUSHF_Fq, NULL) +bx_define_opcode(BX_IA_POPF_Fq, &BX_CPU_C::POPF_Fq, NULL) +bx_define_opcode(BX_IA_CMPXCHG_EqGqR, &BX_CPU_C::CMPXCHG_EqGqR, NULL) +bx_define_opcode(BX_IA_CMPXCHG_EqGqM, &BX_CPU_C::CMPXCHG_EqGqM, NULL) +bx_define_opcode(BX_IA_CDQE, &BX_CPU_C::CDQE, NULL) +bx_define_opcode(BX_IA_CQO, &BX_CPU_C::CQO, NULL) +bx_define_opcode(BX_IA_XADD_EqGqR, &BX_CPU_C::XADD_EqGqR, NULL) +bx_define_opcode(BX_IA_XADD_EqGqM, &BX_CPU_C::XADD_EqGqM, NULL) +bx_define_opcode(BX_IA_RETnear64_Iw, &BX_CPU_C::RETnear64_Iw, NULL) +bx_define_opcode(BX_IA_RETnear64, &BX_CPU_C::RETnear64, NULL) +bx_define_opcode(BX_IA_RETfar64_Iw, &BX_CPU_C::RETfar64_Iw, NULL) +bx_define_opcode(BX_IA_RETfar64, &BX_CPU_C::RETfar64, NULL) +bx_define_opcode(BX_IA_CMOVO_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVO_GqEqR) +bx_define_opcode(BX_IA_CMOVNO_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNO_GqEqR) +bx_define_opcode(BX_IA_CMOVB_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVB_GqEqR) +bx_define_opcode(BX_IA_CMOVNB_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNB_GqEqR) +bx_define_opcode(BX_IA_CMOVZ_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVZ_GqEqR) +bx_define_opcode(BX_IA_CMOVNZ_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNZ_GqEqR) +bx_define_opcode(BX_IA_CMOVBE_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVBE_GqEqR) +bx_define_opcode(BX_IA_CMOVNBE_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNBE_GqEqR) +bx_define_opcode(BX_IA_CMOVS_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVS_GqEqR) +bx_define_opcode(BX_IA_CMOVNS_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNS_GqEqR) +bx_define_opcode(BX_IA_CMOVP_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVP_GqEqR) +bx_define_opcode(BX_IA_CMOVNP_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNP_GqEqR) +bx_define_opcode(BX_IA_CMOVL_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVL_GqEqR) +bx_define_opcode(BX_IA_CMOVNL_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNL_GqEqR) +bx_define_opcode(BX_IA_CMOVLE_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVLE_GqEqR) +bx_define_opcode(BX_IA_CMOVNLE_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::CMOVNLE_GqEqR) +bx_define_opcode(BX_IA_CMOVO_GqEqR, &BX_CPU_C::CMOVO_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVNO_GqEqR, &BX_CPU_C::CMOVNO_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVB_GqEqR, &BX_CPU_C::CMOVB_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVNB_GqEqR, &BX_CPU_C::CMOVNB_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVZ_GqEqR, &BX_CPU_C::CMOVZ_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVNZ_GqEqR, &BX_CPU_C::CMOVNZ_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVBE_GqEqR, &BX_CPU_C::CMOVBE_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVNBE_GqEqR, &BX_CPU_C::CMOVNBE_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVS_GqEqR, &BX_CPU_C::CMOVS_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVNS_GqEqR, &BX_CPU_C::CMOVNS_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVP_GqEqR, &BX_CPU_C::CMOVP_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVNP_GqEqR, &BX_CPU_C::CMOVNP_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVL_GqEqR, &BX_CPU_C::CMOVL_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVNL_GqEqR, &BX_CPU_C::CMOVNL_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVLE_GqEqR, &BX_CPU_C::CMOVLE_GqEqR, NULL) +bx_define_opcode(BX_IA_CMOVNLE_GqEqR, &BX_CPU_C::CMOVNLE_GqEqR, NULL) +bx_define_opcode(BX_IA_MOV_RRXIq, &BX_CPU_C::MOV_RRXIq, NULL) +bx_define_opcode(BX_IA_PUSH_EqM, &BX_CPU_C::PUSH_EqM, NULL) +bx_define_opcode(BX_IA_PUSH_EqR, &BX_CPU_C::PUSH_RRX, NULL) +bx_define_opcode(BX_IA_PUSH_RRX, &BX_CPU_C::PUSH_RRX, NULL) +bx_define_opcode(BX_IA_POP_EqM, &BX_CPU_C::POP_EqM, NULL) +bx_define_opcode(BX_IA_POP_EqR, &BX_CPU_C::POP_RRX, NULL) +bx_define_opcode(BX_IA_POP_RRX, &BX_CPU_C::POP_RRX, NULL) +bx_define_opcode(BX_IA_XCHG_RRXRAX, &BX_CPU_C::XCHG_RRXRAX, NULL) +bx_define_opcode(BX_IA_PUSH64_Id, &BX_CPU_C::PUSH64_Id, NULL) +bx_define_opcode(BX_IA_PUSH64_FS, &BX_CPU_C::PUSH64_FS, NULL) +bx_define_opcode(BX_IA_POP64_FS, &BX_CPU_C::POP64_FS, NULL) +bx_define_opcode(BX_IA_PUSH64_GS, &BX_CPU_C::PUSH64_GS, NULL) +bx_define_opcode(BX_IA_POP64_GS, &BX_CPU_C::POP64_GS, NULL) +bx_define_opcode(BX_IA_LSS_GqMp, &BX_CPU_C::LSS_GqMp, NULL) +bx_define_opcode(BX_IA_LFS_GqMp, &BX_CPU_C::LFS_GqMp, NULL) +bx_define_opcode(BX_IA_LGS_GqMp, &BX_CPU_C::LGS_GqMp, NULL) +bx_define_opcode(BX_IA_SGDT64_Ms, &BX_CPU_C::SGDT64_Ms, NULL) +bx_define_opcode(BX_IA_SIDT64_Ms, &BX_CPU_C::SIDT64_Ms, NULL) +bx_define_opcode(BX_IA_LGDT64_Ms, &BX_CPU_C::LGDT64_Ms, NULL) +bx_define_opcode(BX_IA_LIDT64_Ms, &BX_CPU_C::LIDT64_Ms, NULL) +bx_define_opcode(BX_IA_SYSCALL, &BX_CPU_C::SYSCALL, NULL) +bx_define_opcode(BX_IA_SYSRET, &BX_CPU_C::SYSRET, NULL) +bx_define_opcode(BX_IA_SWAPGS, &BX_CPU_C::SWAPGS, NULL) +bx_define_opcode(BX_IA_RDTSCP, &BX_CPU_C::RDTSCP, NULL) +bx_define_opcode(BX_IA_CMPXCHG16B, &BX_CPU_C::CMPXCHG16B, NULL) +bx_define_opcode(BX_IA_LOOPNE64_Jb, &BX_CPU_C::LOOPNE64_Jb, NULL) +bx_define_opcode(BX_IA_LOOPE64_Jb, &BX_CPU_C::LOOPE64_Jb, NULL) +bx_define_opcode(BX_IA_LOOP64_Jb, &BX_CPU_C::LOOP64_Jb, NULL) +bx_define_opcode(BX_IA_JRCXZ_Jb, &BX_CPU_C::JRCXZ_Jb, NULL) +bx_define_opcode(BX_IA_MOVQ_EqPq, &BX_CPU_C::MOVQ_EqPq, NULL) +bx_define_opcode(BX_IA_MOVQ_EqVq, &BX_CPU_C::MOVQ_EqVq, NULL) +bx_define_opcode(BX_IA_MOVQ_PqEq, &BX_CPU_C::MOVQ_PqEq, NULL) +bx_define_opcode(BX_IA_MOVQ_VdqEq, &BX_CPU_C::MOVQ_VdqEq, NULL) +bx_define_opcode(BX_IA_MOVNTI_MqGq, &BX_CPU_C::MOVNTI_MqGq, NULL) +bx_define_opcode(BX_IA_POPCNT_GqEqR, &BX_CPU_C::POPCNT_GqEqR, NULL) +bx_define_opcode(BX_IA_POPCNT_GqEqM, &BX_CPU_C::LOAD_Eq, &BX_CPU_C::POPCNT_GqEqR) #endif