Bochs/bochs/cpu/fetchdecode_evex.h

2178 lines
91 KiB
C
Raw Normal View History

/////////////////////////////////////////////////////////////////////////
// $Id$
/////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2013-2014 Stanislav Shwartsman
// Written by Stanislav Shwartsman [sshwarts at sourceforge net]
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA B 02110-1301 USA
//
/////////////////////////////////////////////////////////////////////////
#ifndef BX_EVEX_FETCHDECODE_TABLES_H
#define BX_EVEX_FETCHDECODE_TABLES_H
#if BX_SUPPORT_EVEX
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10R[4] = {
2013-12-01 23:39:18 +04:00
/* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_VpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_VpdWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_VssHpsWss },
/* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_VsdHpdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10M[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_VpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_VpdWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_VssWss },
/* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_VsdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10[2] = {
/* R */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10R },
/* M */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10M },
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10R_Mask[4] = {
2013-12-01 23:39:18 +04:00
/* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_VpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_VpdWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_VssHpsWss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_VsdHpdWsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10M_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_VpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_VpdWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_VssWss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_VsdWsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f10_Mask[2] = {
/* R */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10R_Mask },
/* M */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10M_Mask },
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11R[4] = {
2013-12-01 23:39:18 +04:00
/* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_WpsVps },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_WpdVpd },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_WssHpsVss },
/* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_WsdHpdVsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11M[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_WpsVps },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_WpdVpd },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_WssVss },
/* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_WsdVsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11[2] = {
/* R */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11R },
/* M */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11M },
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11R_Mask[4] = {
2013-12-01 23:39:18 +04:00
/* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_WpsVps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_WpdVpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_WssHpsVss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_WsdHpdVsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11M_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VMOVUPS_WpsVps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVUPD_WpdVpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSS_WssVss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VMOVSD_WsdVsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f11_Mask[2] = {
/* R */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11R_Mask },
/* M */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11M_Mask },
};
2014-01-01 03:51:25 +04:00
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f12[4] = {
/* -- */ { BxVexW0 | BxVexL0, BX_IA_V512_VMOVLPS_VpsHpsMq },
/* 66 */ { BxVexW1 | BxVexL0, BX_IA_V512_VMOVLPD_VpdHpdMq },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSLDUP_VpsWps },
/* F2 */ { BxVexW1, BX_IA_V512_VMOVDDUP_VpdWpd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f12_Mask[3] = {
/* 66 */ { 0, BX_IA_ERROR },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSLDUP_VpsWps_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VMOVDDUP_VpdWpd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f13M[2] = {
/* -- */ { BxVexW0 | BxVexL0, BX_IA_V512_VMOVLPS_MqVps },
/* 66 */ { BxVexW1 | BxVexL0, BX_IA_V512_VMOVLPD_MqVsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f14[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VUNPCKLPS_VpsHpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VUNPCKLPD_VpdHpdWpd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f14_Mask[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VUNPCKLPS_VpsHpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VUNPCKLPD_VpdHpdWpd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f15[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VUNPCKHPS_VpsHpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VUNPCKHPD_VpdHpdWpd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f15_Mask[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VUNPCKHPS_VpsHpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VUNPCKHPD_VpdHpdWpd_Kmask }
};
2014-01-01 03:51:25 +04:00
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f16[4] = {
/* -- */ { BxVexW0 | BxVexL0, BX_IA_V512_VMOVHPS_VpsHpsMq },
/* 66 */ { BxVexW1 | BxVexL0, BX_IA_V512_VMOVHPD_VpdHpdMq },
/* F3 */ { BxVexW0, BX_IA_V512_VMOVSHDUP_VpsWps },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f17M[2] = {
/* -- */ { BxVexW0 | BxVexL0, BX_IA_V512_VMOVHPS_MqVps },
/* 66 */ { BxVexW1 | BxVexL0, BX_IA_V512_VMOVHPD_MqVsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f28[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VMOVAPS_VpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVAPD_VpdWpd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f28_Mask[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VMOVAPS_VpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVAPD_VpdWpd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f29[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VMOVAPS_WpsVps },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVAPD_WpdVpd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f29_Mask[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VMOVAPS_WpsVps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVAPD_WpdVpd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2a[3] = {
/* 66 */ { 0, BX_IA_ERROR },
/* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTSI2SS_VssEd },
/* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTSI2SD_VsdEd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2b[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VMOVNTPS_MpsVps },
/* 66 */ { BxVexW1, BX_IA_V512_VMOVNTPD_MpdVpd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2c[3] = {
/* 66 */ { 0, BX_IA_ERROR },
/* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTTSS2SI_GdWss },
/* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTTSD2SI_GdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2d[3] = {
/* 66 */ { 0, BX_IA_ERROR },
/* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTSS2SI_GdWss },
/* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTSD2SI_GdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2e[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VUCOMISS_VssWss },
/* 66 */ { BxVexW1, BX_IA_V512_VUCOMISD_VsdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f2f[2] = {
/* -- */ { BxVexW0, BX_IA_V512_VCOMISS_VssWss },
/* 66 */ { BxVexW1, BX_IA_V512_VCOMISD_VsdWsd }
};
2013-11-30 23:33:08 +04:00
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f51[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VSQRTPS_VpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VSQRTPD_VpdWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VSQRTSS_VssHpsWss },
/* F2 */ { BxVexW1, BX_IA_V512_VSQRTSD_VsdHpdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f51_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VSQRTPS_VpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VSQRTPD_VpdWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VSQRTSS_VssHpsWss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VSQRTSD_VsdHpdWsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f58[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VADDPS_VpsHpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VADDPD_VpdHpdWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VADDSS_VssHpsWss },
/* F2 */ { BxVexW1, BX_IA_V512_VADDSD_VsdHpdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f58_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VADDPS_VpsHpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VADDPD_VpdHpdWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VADDSS_VssHpsWss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VADDSD_VsdHpdWsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f59[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VMULPS_VpsHpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VMULPD_VpdHpdWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VMULSS_VssHpsWss },
/* F2 */ { BxVexW1, BX_IA_V512_VMULSD_VsdHpdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f59_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VMULPS_VpsHpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VMULPD_VpdHpdWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VMULSS_VssHpsWss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VMULSD_VsdHpdWsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5a[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VCVTPS2PD_VpdWps },
/* 66 */ { BxVexW1, BX_IA_V512_VCVTPD2PS_VpsWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VCVTSS2SD_VsdWss },
/* F2 */ { BxVexW1, BX_IA_V512_VCVTSD2SS_VssWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5a_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VCVTPS2PD_VpdWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VCVTPD2PS_VpsWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VCVTSS2SD_VsdWss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VCVTSD2SS_VssWsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5b[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VCVTDQ2PS_VpsWdq },
/* 66 */ { BxVexW0, BX_IA_V512_VCVTPS2DQ_VdqWps },
/* F3 */ { BxVexW0, BX_IA_V512_VCVTTPS2DQ_VdqWps },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5b_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VCVTDQ2PS_VpsWdq_Kmask },
/* 66 */ { BxVexW0, BX_IA_V512_VCVTPS2DQ_VdqWps_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VCVTTPS2DQ_VdqWps_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5c[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VSUBPS_VpsHpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VSUBPD_VpdHpdWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VSUBSS_VssHpsWss },
/* F2 */ { BxVexW1, BX_IA_V512_VSUBSD_VsdHpdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5c_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VSUBPS_VpsHpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VSUBPD_VpdHpdWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VSUBSS_VssHpsWss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VSUBSD_VsdHpdWsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5d[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VMINPS_VpsHpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VMINPD_VpdHpdWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VMINSS_VssHpsWss },
/* F2 */ { BxVexW1, BX_IA_V512_VMINSD_VsdHpdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5d_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VMINPS_VpsHpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VMINPD_VpdHpdWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VMINSS_VssHpsWss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VMINSD_VsdHpdWsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5e[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VDIVPS_VpsHpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VDIVPD_VpdHpdWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VDIVSS_VssHpsWss },
/* F2 */ { BxVexW1, BX_IA_V512_VDIVSD_VsdHpdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5e_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VDIVPS_VpsHpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VDIVPD_VpdHpdWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VDIVSS_VssHpsWss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VDIVSD_VsdHpdWsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5f[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VMAXPS_VpsHpsWps },
/* 66 */ { BxVexW1, BX_IA_V512_VMAXPD_VpdHpdWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VMAXSS_VssHpsWss },
/* F2 */ { BxVexW1, BX_IA_V512_VMAXSD_VsdHpdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f5f_Mask[4] = {
/* -- */ { BxVexW0, BX_IA_V512_VMAXPS_VpsHpsWps_Kmask },
/* 66 */ { BxVexW1, BX_IA_V512_VMAXPD_VpdHpdWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VMAXSS_VssHpsWss_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VMAXSD_VsdHpdWsd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f6f[3] = {
/* 66 */ { BxAliasVexW, BX_IA_V512_VMOVDQA32_VdqWdq },
/* F3 */ { BxAliasVexW, BX_IA_V512_VMOVDQU32_VdqWdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f6f_Mask[3] = {
/* 66 */ { BxAliasVexW, BX_IA_V512_VMOVDQA32_VdqWdq_Kmask },
/* F3 */ { BxAliasVexW, BX_IA_V512_VMOVDQU32_VdqWdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f78[4] = {
/* -- */ { BxAliasVexW, BX_IA_V512_VCVTTPS2UDQ_VdqWps },
/* 66 */ { 0, BX_IA_ERROR },
/* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTTSS2USI_GdWss },
/* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTTSD2USI_GdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f79[4] = {
/* -- */ { BxAliasVexW, BX_IA_V512_VCVTPS2UDQ_VdqWps },
/* 66 */ { 0, BX_IA_ERROR },
/* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTSS2USI_GdWss },
/* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTSD2USI_GdWsd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7a[3] = {
/* 66 */ { 0, BX_IA_ERROR },
/* F3 */ { BxVexW0, BX_IA_V512_VCVTUDQ2PD_VpdWdq },
/* F2 */ { BxVexW0, BX_IA_V512_VCVTUDQ2PS_VpsWdq }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7a_Mask[3] = {
/* 66 */ { 0, BX_IA_ERROR },
/* F3 */ { BxVexW0, BX_IA_V512_VCVTUDQ2PD_VpdWdq_Kmask },
/* F2 */ { BxVexW0, BX_IA_V512_VCVTUDQ2PS_VpsWdq_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7b[3] = {
/* 66 */ { 0, BX_IA_ERROR },
/* F3 */ { BxAliasVexW64, BX_IA_V512_VCVTUSI2SS_VssEd },
/* F2 */ { BxAliasVexW64, BX_IA_V512_VCVTUSI2SD_VsdEd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7e[3] = {
/* 66 */ { BxAliasVexW64, BX_IA_V512_VMOVD_EdVd },
/* F3 */ { BxVexW1, BX_IA_V512_VMOVQ_VqWq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7f[3] = {
/* 66 */ { BxAliasVexW, BX_IA_V512_VMOVDQA32_WdqVdq },
/* F3 */ { BxAliasVexW, BX_IA_V512_VMOVDQU32_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f7f_Mask[3] = {
/* 66 */ { BxAliasVexW, BX_IA_V512_VMOVDQA32_WdqVdq_Kmask },
/* F3 */ { BxAliasVexW, BX_IA_V512_VMOVDQU32_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0fc2[4] = {
/* -- */ { BxVexW0 | BxImmediate_Ib, BX_IA_V512_VCMPPS_KGwHpsWpsIb },
/* 66 */ { BxVexW1 | BxImmediate_Ib, BX_IA_V512_VCMPPD_KGbHpdWpdIb },
/* F3 */ { BxVexW0 | BxImmediate_Ib, BX_IA_V512_VCMPSS_KGbHssWssIb },
/* F2 */ { BxVexW1 | BxImmediate_Ib, BX_IA_V512_VCMPSD_KGbHsdWsdIb }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0fc6[2] = {
/* -- */ { BxVexW0 | BxImmediate_Ib, BX_IA_V512_VSHUFPS_VpsHpsWpsIb },
/* 66 */ { BxVexW1 | BxImmediate_Ib, BX_IA_V512_VSHUFPD_VpdHpdWpdIb }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0fc6_Mask[2] = {
/* -- */ { BxVexW0 | BxImmediate_Ib, BX_IA_V512_VSHUFPS_VpsHpsWpsIb_Kmask },
/* 66 */ { BxVexW1 | BxImmediate_Ib, BX_IA_V512_VSHUFPD_VpdHpdWpdIb_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0fe6[3] = {
/* 66 */ { BxVexW1, BX_IA_V512_VCVTTPD2DQ_VdqWpd },
/* F3 */ { BxVexW0, BX_IA_V512_VCVTDQ2PD_VpdWdq },
/* F2 */ { BxVexW1, BX_IA_V512_VCVTPD2DQ_VdqWpd }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0fe6_Mask[3] = {
/* 66 */ { BxVexW1, BX_IA_V512_VCVTTPD2DQ_VdqWpd_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VCVTDQ2PD_VpdWdq_Kmask },
/* F2 */ { BxVexW1, BX_IA_V512_VCVTPD2DQ_VdqWpd_Kmask }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3814[3] = {
/* 66 */ { BxAliasVexW, BX_IA_V512_VPRORVD_VdqHdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVUSQW_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3814_Mask[3] = {
/* 66 */ { BxAliasVexW, BX_IA_V512_VPRORVD_VdqHdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVUSQW_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3815[3] = {
/* 66 */ { BxAliasVexW, BX_IA_V512_VPROLVD_VdqHdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVUSQD_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3815_Mask[3] = {
/* 66 */ { BxAliasVexW, BX_IA_V512_VPROLVD_VdqHdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVUSQD_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3821[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVSXBD_VdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVSDB_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3821_Mask[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVSXBD_VdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVSDB_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3822[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVSXBQ_VdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQB_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3822_Mask[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVSXBQ_VdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQB_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3823[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVSXWD_VdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVSDW_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3823_Mask[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVSXWQ_VdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVSDW_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3824[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVSXWQ_VdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQW_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3824_Mask[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVSXWD_VdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQW_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3825[3] = {
/* 66 */ { BxVexW0, BX_IA_V512_VPMOVSXDQ_VdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQD_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3825_Mask[3] = {
/* 66 */ { BxVexW0, BX_IA_V512_VPMOVSXDQ_VdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVSQD_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3827[3] = {
/* 66 */ { BxAliasVexW, BX_IA_V512_VPTESTMD_KGwHdqWdq },
/* F3 */ { BxAliasVexW, BX_IA_V512_VPTESTNMD_KGwHdqWdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3831[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVZXBD_VdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVDB_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3831_Mask[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVZXBD_VdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVDB_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3832[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVZXBQ_VdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVQB_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3832_Mask[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVZXBQ_VdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVQB_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3833[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVZXWD_VdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVDW_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3833_Mask[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVZXWQ_VdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVDW_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3834[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVZXWQ_VdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVQW_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3834_Mask[3] = {
/* 66 */ { 0, BX_IA_V512_VPMOVZXWD_VdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVQW_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3835[3] = {
/* 66 */ { BxVexW0, BX_IA_V512_VPMOVZXDQ_VdqWdq },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVQD_WdqVdq },
/* F2 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeGroupEVEX_0f3835_Mask[3] = {
/* 66 */ { BxVexW0, BX_IA_V512_VPMOVZXDQ_VdqWdq_Kmask },
/* F3 */ { BxVexW0, BX_IA_V512_VPMOVQD_WdqVdq_Kmask },
/* F2 */ { 0, BX_IA_ERROR }
};
/* ************************************************************************ */
/* ******** */
/* Group 13 */
/* ******** */
static const BxOpcodeInfo_t BxOpcodeInfoEVEX_G13R[8] = {
/* 0 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPRORD_UdqIb },
/* 1 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPROLD_UdqIb },
/* 2 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW0, BX_IA_V512_VPSRLD_UdqIb },
/* 3 */ { 0, BX_IA_ERROR },
/* 4 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPSRAD_UdqIb },
/* 5 */ { 0, BX_IA_ERROR },
/* 6 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW0, BX_IA_V512_VPSLLD_UdqIb },
/* 7 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeInfoEVEX_G13R_Mask[8] = {
/* 0 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPRORD_UdqIb_Kmask },
/* 1 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPROLD_UdqIb_Kmask },
/* 2 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW0, BX_IA_V512_VPSRLD_UdqIb_Kmask },
/* 3 */ { 0, BX_IA_ERROR },
/* 4 */ { BxImmediate_Ib | BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPSRAD_UdqIb_Kmask },
/* 5 */ { 0, BX_IA_ERROR },
/* 6 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW0, BX_IA_V512_VPSLLD_UdqIb_Kmask },
/* 7 */ { 0, BX_IA_ERROR }
};
/* ******** */
/* Group 14 */
/* ******** */
static const BxOpcodeInfo_t BxOpcodeInfoEVEX_G14R[8] = {
/* 0 */ { 0, BX_IA_ERROR },
/* 1 */ { 0, BX_IA_ERROR },
/* 2 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW1, BX_IA_V512_VPSRLQ_UdqIb },
/* 3 */ { 0, BX_IA_ERROR },
/* 4 */ { 0, BX_IA_ERROR },
/* 5 */ { 0, BX_IA_ERROR },
/* 6 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW1, BX_IA_V512_VPSLLQ_UdqIb },
/* 7 */ { 0, BX_IA_ERROR }
};
static const BxOpcodeInfo_t BxOpcodeInfoEVEX_G14R_Mask[8] = {
/* 0 */ { 0, BX_IA_ERROR },
/* 1 */ { 0, BX_IA_ERROR },
/* 2 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW1, BX_IA_V512_VPSRLQ_UdqIb_Kmask },
/* 3 */ { 0, BX_IA_ERROR },
/* 4 */ { 0, BX_IA_ERROR },
/* 5 */ { 0, BX_IA_ERROR },
/* 6 */ { BxImmediate_Ib | BxPrefixSSE66 | BxVexW1, BX_IA_V512_VPSLLQ_UdqIb_Kmask },
/* 7 */ { 0, BX_IA_ERROR }
};
/* ************************************************************************ */
static const BxOpcodeInfo_t BxOpcodeTableEVEX[256*3*2] = {
// 256 entries for EVEX-encoded 0x0F opcodes
/* 00 k0 */ { 0, BX_IA_ERROR },
/* 00 */ { 0, BX_IA_ERROR },
/* 01 k0 */ { 0, BX_IA_ERROR },
/* 01 */ { 0, BX_IA_ERROR },
/* 02 k0 */ { 0, BX_IA_ERROR },
/* 02 */ { 0, BX_IA_ERROR },
/* 03 k0 */ { 0, BX_IA_ERROR },
/* 03 */ { 0, BX_IA_ERROR },
/* 04 k0 */ { 0, BX_IA_ERROR },
/* 04 */ { 0, BX_IA_ERROR },
/* 05 k0 */ { 0, BX_IA_ERROR },
/* 05 */ { 0, BX_IA_ERROR },
/* 06 k0 */ { 0, BX_IA_ERROR },
/* 06 */ { 0, BX_IA_ERROR },
/* 07 k0 */ { 0, BX_IA_ERROR },
/* 07 */ { 0, BX_IA_ERROR },
/* 08 k0 */ { 0, BX_IA_ERROR },
/* 08 */ { 0, BX_IA_ERROR },
/* 09 k0 */ { 0, BX_IA_ERROR },
/* 09 */ { 0, BX_IA_ERROR },
/* 0A k0 */ { 0, BX_IA_ERROR },
/* 0A */ { 0, BX_IA_ERROR },
/* 0B k0 */ { 0, BX_IA_ERROR },
/* 0B */ { 0, BX_IA_ERROR },
/* 0C k0 */ { 0, BX_IA_ERROR },
/* 0C */ { 0, BX_IA_ERROR },
/* 0D k0 */ { 0, BX_IA_ERROR },
/* 0D */ { 0, BX_IA_ERROR },
/* 0E k0 */ { 0, BX_IA_ERROR },
/* 0E */ { 0, BX_IA_ERROR },
/* 0F k0 */ { 0, BX_IA_ERROR },
/* 0F */ { 0, BX_IA_ERROR },
/* 10 k0 */ { BxSplitMod11B, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10 }, // split because of VMOVSS/VMOVSD encoding issue
/* 10 */ { BxSplitMod11B, BX_IA_ERROR, BxOpcodeGroupEVEX_0f10_Mask }, // split because of VMOVSS/VMOVSD encoding issue
/* 11 k0 */ { BxSplitMod11B, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11 }, // split because of VMOVSS/VMOVSD encoding issue
/* 11 */ { BxSplitMod11B, BX_IA_ERROR, BxOpcodeGroupEVEX_0f11_Mask }, // split because of VMOVSS/VMOVSD encoding issue
2014-01-01 03:51:25 +04:00
/* 12 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f12 },
/* 12 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f12_Mask },
/* 13 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f13M },
/* 13 */ { 0, BX_IA_ERROR }, // #UD
/* 14 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f14 },
/* 14 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f14_Mask },
/* 15 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f15 },
/* 15 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f15_Mask },
2014-01-01 03:51:25 +04:00
/* 16 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f16 },
/* 16 */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VMOVSHDUP_VpsWps_Kmask },
/* 17 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f17M },
/* 17 */ { 0, BX_IA_ERROR }, // #UD
/* 18 k0 */ { 0, BX_IA_ERROR },
/* 18 */ { 0, BX_IA_ERROR },
/* 19 k0 */ { 0, BX_IA_ERROR },
/* 19 */ { 0, BX_IA_ERROR },
/* 1A k0 */ { 0, BX_IA_ERROR },
/* 1A */ { 0, BX_IA_ERROR },
/* 1B k0 */ { 0, BX_IA_ERROR },
/* 1B */ { 0, BX_IA_ERROR },
/* 1C k0 */ { 0, BX_IA_ERROR },
/* 1C */ { 0, BX_IA_ERROR },
/* 1D k0 */ { 0, BX_IA_ERROR },
/* 1D */ { 0, BX_IA_ERROR },
/* 1E k0 */ { 0, BX_IA_ERROR },
/* 1E */ { 0, BX_IA_ERROR },
/* 1F k0 */ { 0, BX_IA_ERROR },
/* 1F */ { 0, BX_IA_ERROR },
/* 20 k0 */ { 0, BX_IA_ERROR },
/* 20 */ { 0, BX_IA_ERROR },
/* 21 k0 */ { 0, BX_IA_ERROR },
/* 21 */ { 0, BX_IA_ERROR },
/* 22 k0 */ { 0, BX_IA_ERROR },
/* 22 */ { 0, BX_IA_ERROR },
/* 23 k0 */ { 0, BX_IA_ERROR },
/* 23 */ { 0, BX_IA_ERROR },
/* 24 k0 */ { 0, BX_IA_ERROR },
/* 24 */ { 0, BX_IA_ERROR },
/* 25 k0 */ { 0, BX_IA_ERROR },
/* 25 */ { 0, BX_IA_ERROR },
/* 26 k0 */ { 0, BX_IA_ERROR },
/* 26 */ { 0, BX_IA_ERROR },
/* 27 k0 */ { 0, BX_IA_ERROR },
/* 27 */ { 0, BX_IA_ERROR },
/* 28 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f28 },
/* 28 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f28_Mask },
/* 29 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f29 },
/* 29 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f29_Mask },
2013-12-16 00:33:24 +04:00
/* 2A k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2a },
/* 2A */ { 0, BX_IA_ERROR }, // #UD
/* 2B k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2b },
/* 2B */ { 0, BX_IA_ERROR }, // #UD
/* 2C k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2c },
/* 2C */ { 0, BX_IA_ERROR }, // #UD
/* 2D k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2d },
/* 2D */ { 0, BX_IA_ERROR }, // #UD
/* 2E k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2e },
/* 2E */ { 0, BX_IA_ERROR }, // #UD
/* 2F k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0f2f },
/* 2F */ { 0, BX_IA_ERROR }, // #UD
/* 30 k0 */ { 0, BX_IA_ERROR },
/* 30 */ { 0, BX_IA_ERROR },
/* 31 k0 */ { 0, BX_IA_ERROR },
/* 31 */ { 0, BX_IA_ERROR },
/* 32 k0 */ { 0, BX_IA_ERROR },
/* 32 */ { 0, BX_IA_ERROR },
/* 33 k0 */ { 0, BX_IA_ERROR },
/* 33 */ { 0, BX_IA_ERROR },
/* 34 k0 */ { 0, BX_IA_ERROR },
/* 34 */ { 0, BX_IA_ERROR },
/* 35 k0 */ { 0, BX_IA_ERROR },
/* 35 */ { 0, BX_IA_ERROR },
/* 36 k0 */ { 0, BX_IA_ERROR },
/* 36 */ { 0, BX_IA_ERROR },
/* 37 k0 */ { 0, BX_IA_ERROR },
/* 37 */ { 0, BX_IA_ERROR },
/* 38 k0 */ { 0, BX_IA_ERROR }, // 3-Byte Escape
/* 38 */ { 0, BX_IA_ERROR }, // 3-Byte Escape
/* 39 k0 */ { 0, BX_IA_ERROR },
/* 39 */ { 0, BX_IA_ERROR },
/* 3A k0 */ { 0, BX_IA_ERROR }, // 3-Byte Escape
/* 3A */ { 0, BX_IA_ERROR }, // 3-Byte Escape
/* 3B k0 */ { 0, BX_IA_ERROR },
/* 3B */ { 0, BX_IA_ERROR },
/* 3C k0 */ { 0, BX_IA_ERROR },
/* 3C */ { 0, BX_IA_ERROR },
/* 3D k0 */ { 0, BX_IA_ERROR },
/* 3D */ { 0, BX_IA_ERROR },
/* 3E k0 */ { 0, BX_IA_ERROR },
/* 3E */ { 0, BX_IA_ERROR },
/* 3F k0 */ { 0, BX_IA_ERROR },
/* 3F */ { 0, BX_IA_ERROR },
/* 40 k0 */ { 0, BX_IA_ERROR },
/* 40 */ { 0, BX_IA_ERROR },
/* 41 k0 */ { 0, BX_IA_ERROR },
/* 41 */ { 0, BX_IA_ERROR },
/* 42 k0 */ { 0, BX_IA_ERROR },
/* 42 */ { 0, BX_IA_ERROR },
/* 43 k0 */ { 0, BX_IA_ERROR },
/* 43 */ { 0, BX_IA_ERROR },
/* 44 k0 */ { 0, BX_IA_ERROR },
/* 44 */ { 0, BX_IA_ERROR },
/* 45 k0 */ { 0, BX_IA_ERROR },
/* 45 */ { 0, BX_IA_ERROR },
/* 46 k0 */ { 0, BX_IA_ERROR },
/* 46 */ { 0, BX_IA_ERROR },
/* 47 k0 */ { 0, BX_IA_ERROR },
/* 47 */ { 0, BX_IA_ERROR },
/* 48 k0 */ { 0, BX_IA_ERROR },
/* 48 */ { 0, BX_IA_ERROR },
/* 49 k0 */ { 0, BX_IA_ERROR },
/* 49 */ { 0, BX_IA_ERROR },
/* 4A k0 */ { 0, BX_IA_ERROR },
/* 4A */ { 0, BX_IA_ERROR },
/* 4B k0 */ { 0, BX_IA_ERROR },
/* 4B */ { 0, BX_IA_ERROR },
/* 4C k0 */ { 0, BX_IA_ERROR },
/* 4C */ { 0, BX_IA_ERROR },
/* 4D k0 */ { 0, BX_IA_ERROR },
/* 4D */ { 0, BX_IA_ERROR },
/* 4E k0 */ { 0, BX_IA_ERROR },
/* 4E */ { 0, BX_IA_ERROR },
/* 4F k0 */ { 0, BX_IA_ERROR },
/* 4F */ { 0, BX_IA_ERROR },
/* 50 k0 */ { 0, BX_IA_ERROR },
/* 50 */ { 0, BX_IA_ERROR },
2013-11-30 23:33:08 +04:00
/* 51 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f51 },
/* 51 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f51_Mask },
/* 52 k0 */ { 0, BX_IA_ERROR },
/* 52 */ { 0, BX_IA_ERROR },
/* 53 k0 */ { 0, BX_IA_ERROR },
/* 53 */ { 0, BX_IA_ERROR },
2013-12-16 00:50:02 +04:00
/* 54 k0 */ { 0, BX_IA_ERROR },
/* 54 */ { 0, BX_IA_ERROR },
/* 55 k0 */ { 0, BX_IA_ERROR },
/* 55 */ { 0, BX_IA_ERROR },
/* 56 k0 */ { 0, BX_IA_ERROR },
/* 56 */ { 0, BX_IA_ERROR },
/* 57 k0 */ { 0, BX_IA_ERROR },
/* 57 */ { 0, BX_IA_ERROR },
/* 58 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f58 },
/* 58 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f58_Mask },
/* 59 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f59 },
/* 59 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f59_Mask },
/* 5A k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5a },
/* 5A */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5a_Mask },
/* 5B k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5b },
/* 5B */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5b_Mask },
/* 5C k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5c },
/* 5C */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5c_Mask },
/* 5D k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5d },
/* 5D */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5d_Mask },
/* 5E k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5e },
/* 5E */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5e_Mask },
/* 5F k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5f },
/* 5F */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f5f_Mask },
/* 60 k0 */ { 0, BX_IA_ERROR },
/* 60 */ { 0, BX_IA_ERROR },
/* 61 k0 */ { 0, BX_IA_ERROR },
/* 61 */ { 0, BX_IA_ERROR },
2013-12-01 23:39:18 +04:00
/* 62 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPUNPCKLDQ_VdqHdqWdq },
/* 62 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPUNPCKLDQ_VdqHdqWdq_Kmask },
/* 63 k0 */ { 0, BX_IA_ERROR },
/* 63 */ { 0, BX_IA_ERROR },
/* 64 k0 */ { 0, BX_IA_ERROR },
/* 64 */ { 0, BX_IA_ERROR },
/* 65 k0 */ { 0, BX_IA_ERROR },
/* 65 */ { 0, BX_IA_ERROR },
/* 66 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPCMPGTD_KGwHdqWdq },
/* 66 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPCMPGTD_KGwHdqWdq },
/* 67 k0 */ { 0, BX_IA_ERROR },
/* 67 */ { 0, BX_IA_ERROR },
/* 68 k0 */ { 0, BX_IA_ERROR },
/* 68 */ { 0, BX_IA_ERROR },
/* 69 k0 */ { 0, BX_IA_ERROR },
/* 69 */ { 0, BX_IA_ERROR },
2013-12-01 23:39:18 +04:00
/* 6A k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPUNPCKHDQ_VdqHdqWdq },
/* 6A */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPUNPCKHDQ_VdqHdqWdq_Kmask },
/* 6B k0 */ { 0, BX_IA_ERROR },
/* 6B */ { 0, BX_IA_ERROR },
2013-12-01 23:39:18 +04:00
/* 6C k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPUNPCKLQDQ_VdqHdqWdq },
/* 6C */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPUNPCKLQDQ_VdqHdqWdq_Kmask },
/* 6D k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPUNPCKHQDQ_VdqHdqWdq },
/* 6D */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPUNPCKHQDQ_VdqHdqWdq_Kmask },
/* 6E k0 */ { BxVexL0 | BxPrefixSSE66 | BxAliasVexW64, BX_IA_V512_VMOVD_VdqEd },
/* 6E */ { 0, BX_IA_ERROR }, // #UD
/* 6F k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f6f },
/* 6F */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f6f_Mask },
/* 70 k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPSHUFD_VdqWdqIb },
/* 70 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPSHUFD_VdqWdqIb_Kmask },
/* 71 k0 */ { 0, BX_IA_ERROR },
/* 71 */ { 0, BX_IA_ERROR },
/* 72 k0 */ { BxGroup13, BX_IA_ERROR, BxOpcodeInfoEVEX_G13R },
/* 72 */ { BxGroup13, BX_IA_ERROR, BxOpcodeInfoEVEX_G13R_Mask },
/* 73 k0 */ { BxGroup14, BX_IA_ERROR, BxOpcodeInfoEVEX_G14R },
/* 73 */ { BxGroup14, BX_IA_ERROR, BxOpcodeInfoEVEX_G14R_Mask },
/* 74 k0 */ { 0, BX_IA_ERROR },
/* 74 */ { 0, BX_IA_ERROR },
/* 75 k0 */ { 0, BX_IA_ERROR },
/* 75 */ { 0, BX_IA_ERROR },
/* 76 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPCMPEQD_KGwHdqWdq },
/* 76 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPCMPEQD_KGwHdqWdq },
/* 77 k0 */ { 0, BX_IA_ERROR },
/* 77 */ { 0, BX_IA_ERROR },
/* 78 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f78 },
/* 78 */ { BxPrefixSSE | BxAliasVexW, BX_IA_V512_VCVTTPS2UDQ_VdqWps_Kmask, BxOpcodeGroupSSE_ERR },
/* 79 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0f79 },
/* 79 */ { BxPrefixSSE | BxAliasVexW, BX_IA_V512_VCVTPS2UDQ_VdqWps_Kmask, BxOpcodeGroupSSE_ERR },
/* 7A k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7a },
/* 7A */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7a_Mask },
2013-12-16 00:33:24 +04:00
/* 7B k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7b },
/* 7B */ { 0, BX_IA_ERROR }, // #UD
/* 7C k0 */ { 0, BX_IA_ERROR },
/* 7C */ { 0, BX_IA_ERROR },
/* 7D k0 */ { 0, BX_IA_ERROR },
/* 7D */ { 0, BX_IA_ERROR },
/* 7E k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7e },
/* 7E */ { 0, BX_IA_ERROR }, // #UD
/* 7F k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7f },
/* 7F */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f7f_Mask },
/* 80 k0 */ { 0, BX_IA_ERROR },
/* 80 */ { 0, BX_IA_ERROR },
/* 81 k0 */ { 0, BX_IA_ERROR },
/* 81 */ { 0, BX_IA_ERROR },
/* 82 k0 */ { 0, BX_IA_ERROR },
/* 82 */ { 0, BX_IA_ERROR },
/* 83 k0 */ { 0, BX_IA_ERROR },
/* 83 */ { 0, BX_IA_ERROR },
/* 84 k0 */ { 0, BX_IA_ERROR },
/* 84 */ { 0, BX_IA_ERROR },
/* 85 k0 */ { 0, BX_IA_ERROR },
/* 85 */ { 0, BX_IA_ERROR },
/* 86 k0 */ { 0, BX_IA_ERROR },
/* 86 */ { 0, BX_IA_ERROR },
/* 87 k0 */ { 0, BX_IA_ERROR },
/* 87 */ { 0, BX_IA_ERROR },
/* 88 k0 */ { 0, BX_IA_ERROR },
/* 88 */ { 0, BX_IA_ERROR },
/* 89 k0 */ { 0, BX_IA_ERROR },
/* 89 */ { 0, BX_IA_ERROR },
/* 8A k0 */ { 0, BX_IA_ERROR },
/* 8A */ { 0, BX_IA_ERROR },
/* 8B k0 */ { 0, BX_IA_ERROR },
/* 8B */ { 0, BX_IA_ERROR },
/* 8C k0 */ { 0, BX_IA_ERROR },
/* 8C */ { 0, BX_IA_ERROR },
/* 8D k0 */ { 0, BX_IA_ERROR },
/* 8D */ { 0, BX_IA_ERROR },
/* 8E k0 */ { 0, BX_IA_ERROR },
/* 8E */ { 0, BX_IA_ERROR },
/* 8F k0 */ { 0, BX_IA_ERROR },
/* 8F */ { 0, BX_IA_ERROR },
/* 90 k0 */ { 0, BX_IA_ERROR },
/* 90 */ { 0, BX_IA_ERROR },
/* 91 k0 */ { 0, BX_IA_ERROR },
/* 91 */ { 0, BX_IA_ERROR },
/* 92 k0 */ { 0, BX_IA_ERROR },
/* 92 */ { 0, BX_IA_ERROR },
/* 93 k0 */ { 0, BX_IA_ERROR },
/* 93 */ { 0, BX_IA_ERROR },
/* 94 k0 */ { 0, BX_IA_ERROR },
/* 94 */ { 0, BX_IA_ERROR },
/* 95 k0 */ { 0, BX_IA_ERROR },
/* 95 */ { 0, BX_IA_ERROR },
/* 96 k0 */ { 0, BX_IA_ERROR },
/* 96 */ { 0, BX_IA_ERROR },
/* 97 k0 */ { 0, BX_IA_ERROR },
/* 97 */ { 0, BX_IA_ERROR },
/* 98 k0 */ { 0, BX_IA_ERROR },
/* 98 */ { 0, BX_IA_ERROR },
/* 99 k0 */ { 0, BX_IA_ERROR },
/* 99 */ { 0, BX_IA_ERROR },
/* 9A k0 */ { 0, BX_IA_ERROR },
/* 9A */ { 0, BX_IA_ERROR },
/* 9B k0 */ { 0, BX_IA_ERROR },
/* 9B */ { 0, BX_IA_ERROR },
/* 9C k0 */ { 0, BX_IA_ERROR },
/* 9C */ { 0, BX_IA_ERROR },
/* 9D k0 */ { 0, BX_IA_ERROR },
/* 9D */ { 0, BX_IA_ERROR },
/* 9E k0 */ { 0, BX_IA_ERROR },
/* 9E */ { 0, BX_IA_ERROR },
/* 9F k0 */ { 0, BX_IA_ERROR },
/* 9F */ { 0, BX_IA_ERROR },
/* A0 k0 */ { 0, BX_IA_ERROR },
/* A0 */ { 0, BX_IA_ERROR },
/* A1 k0 */ { 0, BX_IA_ERROR },
/* A1 */ { 0, BX_IA_ERROR },
/* A2 k0 */ { 0, BX_IA_ERROR },
/* A2 */ { 0, BX_IA_ERROR },
/* A3 k0 */ { 0, BX_IA_ERROR },
/* A3 */ { 0, BX_IA_ERROR },
/* A4 k0 */ { 0, BX_IA_ERROR },
/* A4 */ { 0, BX_IA_ERROR },
/* A5 k0 */ { 0, BX_IA_ERROR },
/* A5 */ { 0, BX_IA_ERROR },
/* A6 k0 */ { 0, BX_IA_ERROR },
/* A6 */ { 0, BX_IA_ERROR },
/* A7 k0 */ { 0, BX_IA_ERROR },
/* A7 */ { 0, BX_IA_ERROR },
/* A8 k0 */ { 0, BX_IA_ERROR },
/* A8 */ { 0, BX_IA_ERROR },
/* A9 k0 */ { 0, BX_IA_ERROR },
/* A9 */ { 0, BX_IA_ERROR },
/* AA k0 */ { 0, BX_IA_ERROR },
/* AA */ { 0, BX_IA_ERROR },
/* AB k0 */ { 0, BX_IA_ERROR },
/* AB */ { 0, BX_IA_ERROR },
/* AC k0 */ { 0, BX_IA_ERROR },
/* AC */ { 0, BX_IA_ERROR },
/* AD k0 */ { 0, BX_IA_ERROR },
/* AD */ { 0, BX_IA_ERROR },
/* AE k0 */ { 0, BX_IA_ERROR },
/* AE */ { 0, BX_IA_ERROR },
/* AF k0 */ { 0, BX_IA_ERROR },
/* AF */ { 0, BX_IA_ERROR },
/* B0 k0 */ { 0, BX_IA_ERROR },
/* B0 */ { 0, BX_IA_ERROR },
/* B1 k0 */ { 0, BX_IA_ERROR },
/* B1 */ { 0, BX_IA_ERROR },
/* B2 k0 */ { 0, BX_IA_ERROR },
/* B2 */ { 0, BX_IA_ERROR },
/* B3 k0 */ { 0, BX_IA_ERROR },
/* B3 */ { 0, BX_IA_ERROR },
/* B4 k0 */ { 0, BX_IA_ERROR },
/* B4 */ { 0, BX_IA_ERROR },
/* B5 k0 */ { 0, BX_IA_ERROR },
/* B5 */ { 0, BX_IA_ERROR },
/* B6 k0 */ { 0, BX_IA_ERROR },
/* B6 */ { 0, BX_IA_ERROR },
/* B7 k0 */ { 0, BX_IA_ERROR },
/* B7 */ { 0, BX_IA_ERROR },
/* B8 k0 */ { 0, BX_IA_ERROR },
/* B8 */ { 0, BX_IA_ERROR },
/* B9 k0 */ { 0, BX_IA_ERROR },
/* B9 */ { 0, BX_IA_ERROR },
/* BA k0 */ { 0, BX_IA_ERROR },
/* BA */ { 0, BX_IA_ERROR },
/* BB k0 */ { 0, BX_IA_ERROR },
/* BB */ { 0, BX_IA_ERROR },
/* BC k0 */ { 0, BX_IA_ERROR },
/* BC */ { 0, BX_IA_ERROR },
/* BD k0 */ { 0, BX_IA_ERROR },
/* BD */ { 0, BX_IA_ERROR },
/* BE k0 */ { 0, BX_IA_ERROR },
/* BE */ { 0, BX_IA_ERROR },
/* BF k0 */ { 0, BX_IA_ERROR },
/* BF */ { 0, BX_IA_ERROR },
/* C0 k0 */ { 0, BX_IA_ERROR },
/* C0 */ { 0, BX_IA_ERROR },
/* C1 k0 */ { 0, BX_IA_ERROR },
/* C1 */ { 0, BX_IA_ERROR },
/* C2 k0 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0fc2 },
/* C2 */ { BxPrefixSSE4, BX_IA_ERROR, BxOpcodeGroupEVEX_0fc2 },
/* C3 k0 */ { 0, BX_IA_ERROR },
/* C3 */ { 0, BX_IA_ERROR },
/* C4 k0 */ { 0, BX_IA_ERROR },
/* C4 */ { 0, BX_IA_ERROR },
/* C5 k0 */ { 0, BX_IA_ERROR },
/* C5 */ { 0, BX_IA_ERROR },
/* C6 k0 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0fc6 },
/* C6 */ { BxPrefixSSE2, BX_IA_ERROR, BxOpcodeGroupEVEX_0fc6_Mask },
/* C7 k0 */ { 0, BX_IA_ERROR },
/* C7 */ { 0, BX_IA_ERROR },
/* C8 k0 */ { 0, BX_IA_ERROR },
/* C8 */ { 0, BX_IA_ERROR },
/* C9 k0 */ { 0, BX_IA_ERROR },
/* C9 */ { 0, BX_IA_ERROR },
/* CA k0 */ { 0, BX_IA_ERROR },
/* CA */ { 0, BX_IA_ERROR },
/* CB k0 */ { 0, BX_IA_ERROR },
/* CB */ { 0, BX_IA_ERROR },
/* CC k0 */ { 0, BX_IA_ERROR },
/* CC */ { 0, BX_IA_ERROR },
/* CD k0 */ { 0, BX_IA_ERROR },
/* CD */ { 0, BX_IA_ERROR },
/* CE k0 */ { 0, BX_IA_ERROR },
/* CE */ { 0, BX_IA_ERROR },
/* CF k0 */ { 0, BX_IA_ERROR },
/* CF */ { 0, BX_IA_ERROR },
/* D0 k0 */ { 0, BX_IA_ERROR },
/* D0 */ { 0, BX_IA_ERROR },
/* D1 k0 */ { 0, BX_IA_ERROR },
/* D1 */ { 0, BX_IA_ERROR },
/* D2 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSRLD_VdqHdqWdq },
/* D2 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSRLD_VdqHdqWdq_Kmask },
/* D3 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSRLQ_VdqHdqWdq },
/* D3 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSRLQ_VdqHdqWdq_Kmask },
2013-10-09 23:45:36 +04:00
/* D4 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPADDQ_VdqHdqWdq },
/* D4 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPADDQ_VdqHdqWdq_Kmask },
/* D5 k0 */ { 0, BX_IA_ERROR },
/* D5 */ { 0, BX_IA_ERROR },
/* D6 k0 */ { BxVexL0 | BxVexW1 | BxPrefixSSE66, BX_IA_V512_VMOVQ_WqVq },
/* D6 */ { 0, BX_IA_ERROR }, // #UD
/* D7 k0 */ { 0, BX_IA_ERROR },
/* D7 */ { 0, BX_IA_ERROR },
/* D8 k0 */ { 0, BX_IA_ERROR },
/* D8 */ { 0, BX_IA_ERROR },
/* D9 k0 */ { 0, BX_IA_ERROR },
/* D9 */ { 0, BX_IA_ERROR },
/* DA k0 */ { 0, BX_IA_ERROR },
/* DA */ { 0, BX_IA_ERROR },
2013-10-09 23:45:36 +04:00
/* DB k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPANDD_VdqHdqWdq },
/* DB */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPANDD_VdqHdqWdq_Kmask },
/* DC k0 */ { 0, BX_IA_ERROR },
/* DC */ { 0, BX_IA_ERROR },
/* DD k0 */ { 0, BX_IA_ERROR },
/* DD */ { 0, BX_IA_ERROR },
/* DE k0 */ { 0, BX_IA_ERROR },
/* DE */ { 0, BX_IA_ERROR },
2013-10-09 23:45:36 +04:00
/* DF k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPANDND_VdqHdqWdq },
/* DF */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPANDND_VdqHdqWdq_Kmask },
/* E0 k0 */ { 0, BX_IA_ERROR },
/* E0 */ { 0, BX_IA_ERROR },
/* E1 k0 */ { 0, BX_IA_ERROR },
/* E1 */ { 0, BX_IA_ERROR },
/* E2 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRAD_VdqHdqWdq },
/* E2 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRAD_VdqHdqWdq_Kmask },
/* E3 k0 */ { 0, BX_IA_ERROR },
/* E3 */ { 0, BX_IA_ERROR },
/* E4 k0 */ { 0, BX_IA_ERROR },
/* E4 */ { 0, BX_IA_ERROR },
/* E5 k0 */ { 0, BX_IA_ERROR },
/* E5 */ { 0, BX_IA_ERROR },
/* E6 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0fe6 },
/* E6 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0fe6_Mask },
/* E7 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VMOVNTDQ_MdqVdq },
/* E7 */ { 0, BX_IA_ERROR }, // #UD
/* E8 k0 */ { 0, BX_IA_ERROR },
/* E8 */ { 0, BX_IA_ERROR },
/* E9 k0 */ { 0, BX_IA_ERROR },
/* E9 */ { 0, BX_IA_ERROR },
/* EA k0 */ { 0, BX_IA_ERROR },
/* EA */ { 0, BX_IA_ERROR },
2013-10-09 23:45:36 +04:00
/* EB k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPORD_VdqHdqWdq },
/* EB */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPORD_VdqHdqWdq_Kmask },
/* EC k0 */ { 0, BX_IA_ERROR },
/* EC */ { 0, BX_IA_ERROR },
/* ED k0 */ { 0, BX_IA_ERROR },
/* ED */ { 0, BX_IA_ERROR },
/* EE k0 */ { 0, BX_IA_ERROR },
/* EE */ { 0, BX_IA_ERROR },
2013-10-09 23:45:36 +04:00
/* EF k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPXORD_VdqHdqWdq },
/* EF */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPXORD_VdqHdqWdq_Kmask },
/* F0 k0 */ { 0, BX_IA_ERROR },
/* F0 */ { 0, BX_IA_ERROR },
/* F1 k0 */ { 0, BX_IA_ERROR },
/* F1 */ { 0, BX_IA_ERROR },
/* F2 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSLLD_VdqHdqWdq },
/* F2 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSLLD_VdqHdqWdq_Kmask },
/* F3 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSLLQ_VdqHdqWdq },
/* F3 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSLLQ_VdqHdqWdq_Kmask },
/* F4 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPMULUDQ_VdqHdqWdq },
/* F4 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPMULUDQ_VdqHdqWdq_Kmask },
/* F5 k0 */ { 0, BX_IA_ERROR },
/* F5 */ { 0, BX_IA_ERROR },
/* F6 k0 */ { 0, BX_IA_ERROR },
/* F6 */ { 0, BX_IA_ERROR },
/* F7 k0 */ { 0, BX_IA_ERROR },
/* F7 */ { 0, BX_IA_ERROR },
/* F8 k0 */ { 0, BX_IA_ERROR },
/* F8 */ { 0, BX_IA_ERROR },
/* F9 k0 */ { 0, BX_IA_ERROR },
/* F9 */ { 0, BX_IA_ERROR },
2013-10-09 23:45:36 +04:00
/* FA k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSUBD_VdqHdqWdq },
/* FA */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPSUBD_VdqHdqWdq_Kmask },
/* FB k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSUBQ_VdqHdqWdq },
/* FB */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPSUBQ_VdqHdqWdq_Kmask },
/* FC k0 */ { 0, BX_IA_ERROR },
/* FC */ { 0, BX_IA_ERROR },
/* FD k0 */ { 0, BX_IA_ERROR },
/* FD */ { 0, BX_IA_ERROR },
2013-10-09 23:45:36 +04:00
/* FE k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPADDD_VdqHdqWdq },
/* FE */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPADDD_VdqHdqWdq_Kmask },
/* FF k0 */ { 0, BX_IA_ERROR },
/* FF */ { 0, BX_IA_ERROR },
// 256 entries for EVEX-encoded 0x0F 0x38 opcodes
/* 00 k0 */ { 0, BX_IA_ERROR },
/* 00 */ { 0, BX_IA_ERROR },
/* 01 k0 */ { 0, BX_IA_ERROR },
/* 01 */ { 0, BX_IA_ERROR },
/* 02 k0 */ { 0, BX_IA_ERROR },
/* 02 */ { 0, BX_IA_ERROR },
/* 03 k0 */ { 0, BX_IA_ERROR },
/* 03 */ { 0, BX_IA_ERROR },
/* 04 k0 */ { 0, BX_IA_ERROR },
/* 04 */ { 0, BX_IA_ERROR },
/* 05 k0 */ { 0, BX_IA_ERROR },
/* 05 */ { 0, BX_IA_ERROR },
/* 06 k0 */ { 0, BX_IA_ERROR },
/* 06 */ { 0, BX_IA_ERROR },
/* 07 k0 */ { 0, BX_IA_ERROR },
/* 07 */ { 0, BX_IA_ERROR },
/* 08 k0 */ { 0, BX_IA_ERROR },
/* 08 */ { 0, BX_IA_ERROR },
/* 09 k0 */ { 0, BX_IA_ERROR },
/* 09 */ { 0, BX_IA_ERROR },
/* 0A k0 */ { 0, BX_IA_ERROR },
/* 0A */ { 0, BX_IA_ERROR },
/* 0B k0 */ { 0, BX_IA_ERROR },
/* 0B */ { 0, BX_IA_ERROR },
/* 0C k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPERMILPS_VpsHpsWps },
/* 0C */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPERMILPS_VpsHpsWps_Kmask },
/* 0D k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPERMILPD_VpdHpdWpd },
/* 0D */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPERMILPD_VpdHpdWpd_Kmask },
/* 0E k0 */ { 0, BX_IA_ERROR },
/* 0E */ { 0, BX_IA_ERROR },
/* 0F k0 */ { 0, BX_IA_ERROR },
/* 0F */ { 0, BX_IA_ERROR },
/* 10 k0 */ { 0, BX_IA_ERROR },
/* 10 */ { 0, BX_IA_ERROR },
/* 11 k0 */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VPMOVUSDB_WdqVdq },
/* 11 */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VPMOVUSDB_WdqVdq_Kmask },
/* 12 k0 */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VPMOVUSQB_WdqVdq },
/* 12 */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VPMOVUSQB_WdqVdq_Kmask },
/* 13 k0 */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VPMOVUSDW_WdqVdq },
/* 13 */ { BxVexW0 | BxPrefixSSEF3, BX_IA_V512_VPMOVUSDW_WdqVdq_Kmask },
/* 14 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3814 },
/* 14 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3814_Mask },
/* 15 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3815 },
/* 15 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3815_Mask },
2014-01-24 23:23:19 +04:00
/* 16 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxVexL1, BX_IA_V512_VPERMPS_VpsHpsWps_Kmask },
/* 16 */ { BxAliasVexW | BxPrefixSSE66 | BxVexL1, BX_IA_V512_VPERMPS_VpsHpsWps_Kmask },
/* 17 k0 */ { 0, BX_IA_ERROR },
/* 17 */ { 0, BX_IA_ERROR },
/* 18 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VBROADCASTSS_VpsWss },
/* 18 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VBROADCASTSS_VpsWss_Kmask },
/* 19 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTSD_VpdWsd },
/* 19 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTSD_VpdWsd_Kmask },
/* 1A k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTF32x4_VpsWps },
/* 1A */ { BxVexW0 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTF32x4_VpsWps_Kmask },
/* 1B k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTF64x4_VpdWpd },
/* 1B */ { BxVexW1 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTF64x4_VpdWpd_Kmask },
/* 1C k0 */ { 0, BX_IA_ERROR },
/* 1C */ { 0, BX_IA_ERROR },
/* 1D k0 */ { 0, BX_IA_ERROR },
/* 1D */ { 0, BX_IA_ERROR },
/* 1E k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPABSD_VdqWdq },
/* 1E */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPABSD_VdqWdq_Kmask },
/* 1F k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPABSQ_VdqWdq },
/* 1F */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPABSQ_VdqWdq_Kmask },
/* 20 k0 */ { 0, BX_IA_ERROR },
/* 20 */ { 0, BX_IA_ERROR },
/* 21 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3821 },
/* 21 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3821_Mask },
/* 22 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3822 },
/* 22 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3822_Mask },
/* 23 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3823 },
/* 23 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3823_Mask },
/* 24 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3824 },
/* 24 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3824_Mask },
/* 25 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3825 },
/* 25 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3825_Mask },
/* 26 k0 */ { 0, BX_IA_ERROR },
/* 26 */ { 0, BX_IA_ERROR },
/* 27 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3827 },
/* 27 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3827 },
/* 28 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPMULDQ_VdqHdqWdq },
/* 28 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPMULDQ_VdqHdqWdq_Kmask },
/* 29 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPCMPEQQ_KGbHdqWdq },
/* 29 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPCMPEQQ_KGbHdqWdq },
/* 2A k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VMOVNTDQA_VdqMdq },
/* 2A */ { 0, BX_IA_ERROR }, // #UD
/* 2B k0 */ { 0, BX_IA_ERROR },
/* 2B */ { 0, BX_IA_ERROR },
/* 2C k0 */ { 0, BX_IA_ERROR },
/* 2C */ { 0, BX_IA_ERROR },
/* 2D k0 */ { 0, BX_IA_ERROR },
/* 2D */ { 0, BX_IA_ERROR },
/* 2E k0 */ { 0, BX_IA_ERROR },
/* 2E */ { 0, BX_IA_ERROR },
/* 2F k0 */ { 0, BX_IA_ERROR },
/* 2F */ { 0, BX_IA_ERROR },
/* 30 k0 */ { 0, BX_IA_ERROR },
/* 30 */ { 0, BX_IA_ERROR },
/* 31 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3831 },
/* 31 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3831_Mask },
/* 32 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3832 },
/* 32 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3832_Mask },
/* 33 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3833 },
/* 33 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3833_Mask },
/* 34 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3834 },
/* 34 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3834_Mask },
/* 35 k0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3835 },
/* 35 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupEVEX_0f3835_Mask },
2014-01-24 23:23:19 +04:00
/* 36 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxVexL1, BX_IA_V512_VPERMD_VdqHdqWdq_Kmask },
/* 36 */ { BxAliasVexW | BxPrefixSSE66 | BxVexL1, BX_IA_V512_VPERMD_VdqHdqWdq_Kmask },
/* 37 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPCMPGTQ_KGbHdqWdq },
/* 37 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPCMPGTQ_KGbHdqWdq },
/* 38 k0 */ { 0, BX_IA_ERROR },
/* 38 */ { 0, BX_IA_ERROR },
/* 39 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMINSD_VdqHdqWdq },
/* 39 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMINSD_VdqHdqWdq_Kmask },
/* 3A k0 */ { 0, BX_IA_ERROR },
/* 3A */ { 0, BX_IA_ERROR },
/* 3B k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMINUD_VdqHdqWdq },
/* 3B */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMINUD_VdqHdqWdq_Kmask },
/* 3C k0 */ { 0, BX_IA_ERROR },
/* 3C */ { 0, BX_IA_ERROR },
/* 3D k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMAXSD_VdqHdqWdq },
/* 3D */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMAXSD_VdqHdqWdq_Kmask },
/* 3E k0 */ { 0, BX_IA_ERROR },
/* 3E */ { 0, BX_IA_ERROR },
/* 3F k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMAXUD_VdqHdqWdq },
/* 3F */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPMAXUD_VdqHdqWdq_Kmask },
2013-11-26 23:22:31 +04:00
/* 40 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPMULLD_VdqHdqWdq },
/* 40 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPMULLD_VdqHdqWdq_Kmask },
/* 41 k0 */ { 0, BX_IA_ERROR },
/* 41 */ { 0, BX_IA_ERROR },
/* 42 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGETEXPPS_VpsWps_Kmask },
/* 42 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGETEXPPS_VpsWps_Kmask },
/* 43 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGETEXPSS_VssHpsWss_Kmask },
/* 43 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGETEXPSS_VssHpsWss_Kmask },
/* 44 k0 */ { 0, BX_IA_ERROR },
/* 44 */ { 0, BX_IA_ERROR },
2013-12-02 23:16:48 +04:00
/* 45 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRLVD_VdqHdqWdq },
/* 45 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRLVD_VdqHdqWdq_Kmask },
/* 46 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRAVD_VdqHdqWdq },
/* 46 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSRAVD_VdqHdqWdq_Kmask },
/* 47 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSLLVD_VdqHdqWdq },
/* 47 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPSLLVD_VdqHdqWdq_Kmask },
/* 48 k0 */ { 0, BX_IA_ERROR },
/* 48 */ { 0, BX_IA_ERROR },
/* 49 k0 */ { 0, BX_IA_ERROR },
/* 49 */ { 0, BX_IA_ERROR },
/* 4A k0 */ { 0, BX_IA_ERROR },
/* 4A */ { 0, BX_IA_ERROR },
/* 4B k0 */ { 0, BX_IA_ERROR },
/* 4B */ { 0, BX_IA_ERROR },
/* 4C k0 */ { 0, BX_IA_ERROR },
/* 4C */ { 0, BX_IA_ERROR },
/* 4D k0 */ { 0, BX_IA_ERROR },
/* 4D */ { 0, BX_IA_ERROR },
/* 4E k0 */ { 0, BX_IA_ERROR },
/* 4E */ { 0, BX_IA_ERROR },
/* 4F k0 */ { 0, BX_IA_ERROR },
/* 4F */ { 0, BX_IA_ERROR },
/* 50 k0 */ { 0, BX_IA_ERROR },
/* 50 */ { 0, BX_IA_ERROR },
/* 51 k0 */ { 0, BX_IA_ERROR },
/* 51 */ { 0, BX_IA_ERROR },
/* 52 k0 */ { 0, BX_IA_ERROR },
/* 52 */ { 0, BX_IA_ERROR },
/* 53 k0 */ { 0, BX_IA_ERROR },
/* 53 */ { 0, BX_IA_ERROR },
/* 54 k0 */ { 0, BX_IA_ERROR },
/* 54 */ { 0, BX_IA_ERROR },
/* 55 k0 */ { 0, BX_IA_ERROR },
/* 55 */ { 0, BX_IA_ERROR },
/* 56 k0 */ { 0, BX_IA_ERROR },
/* 56 */ { 0, BX_IA_ERROR },
/* 57 k0 */ { 0, BX_IA_ERROR },
/* 57 */ { 0, BX_IA_ERROR },
/* 58 k0 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPBROADCASTD_VdqWd },
/* 58 */ { BxVexW0 | BxPrefixSSE66, BX_IA_V512_VPBROADCASTD_VdqWd_Kmask },
/* 59 k0 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPBROADCASTQ_VdqWq },
/* 59 */ { BxVexW1 | BxPrefixSSE66, BX_IA_V512_VPBROADCASTQ_VdqWq_Kmask },
/* 5A k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTI32x4_VdqWdq },
/* 5A */ { BxVexW0 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTI32x4_VdqWdq_Kmask },
/* 5B k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTI64x4_VdqWdq },
/* 5B */ { BxVexW1 | BxVexL1 | BxPrefixSSE66, BX_IA_V512_VBROADCASTI64x4_VdqWdq_Kmask },
/* 5C k0 */ { 0, BX_IA_ERROR },
/* 5C */ { 0, BX_IA_ERROR },
/* 5D k0 */ { 0, BX_IA_ERROR },
/* 5D */ { 0, BX_IA_ERROR },
/* 5E k0 */ { 0, BX_IA_ERROR },
/* 5E */ { 0, BX_IA_ERROR },
/* 5F k0 */ { 0, BX_IA_ERROR },
/* 5F */ { 0, BX_IA_ERROR },
/* 60 k0 */ { 0, BX_IA_ERROR },
/* 60 */ { 0, BX_IA_ERROR },
/* 61 k0 */ { 0, BX_IA_ERROR },
/* 61 */ { 0, BX_IA_ERROR },
/* 62 k0 */ { 0, BX_IA_ERROR },
/* 62 */ { 0, BX_IA_ERROR },
/* 63 k0 */ { 0, BX_IA_ERROR },
/* 63 */ { 0, BX_IA_ERROR },
/* 64 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPBLENDMD_VdqHdqWdq },
/* 64 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VPBLENDMD_VdqHdqWdq },
/* 65 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VBLENDMPS_VpsHpsWps },
/* 65 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VBLENDMPS_VpsHpsWps },
/* 66 k0 */ { 0, BX_IA_ERROR },
/* 66 */ { 0, BX_IA_ERROR },
/* 67 k0 */ { 0, BX_IA_ERROR },
/* 67 */ { 0, BX_IA_ERROR },
/* 68 k0 */ { 0, BX_IA_ERROR },
/* 68 */ { 0, BX_IA_ERROR },
/* 69 k0 */ { 0, BX_IA_ERROR },
/* 69 */ { 0, BX_IA_ERROR },
/* 6A k0 */ { 0, BX_IA_ERROR },
/* 6A */ { 0, BX_IA_ERROR },
/* 6B k0 */ { 0, BX_IA_ERROR },
/* 6B */ { 0, BX_IA_ERROR },
/* 6C k0 */ { 0, BX_IA_ERROR },
/* 6C */ { 0, BX_IA_ERROR },
/* 6D k0 */ { 0, BX_IA_ERROR },
/* 6D */ { 0, BX_IA_ERROR },
/* 6E k0 */ { 0, BX_IA_ERROR },
/* 6E */ { 0, BX_IA_ERROR },
/* 6F k0 */ { 0, BX_IA_ERROR },
/* 6F */ { 0, BX_IA_ERROR },
/* 70 k0 */ { 0, BX_IA_ERROR },
/* 70 */ { 0, BX_IA_ERROR },
/* 71 k0 */ { 0, BX_IA_ERROR },
/* 71 */ { 0, BX_IA_ERROR },
/* 72 k0 */ { 0, BX_IA_ERROR },
/* 72 */ { 0, BX_IA_ERROR },
/* 73 k0 */ { 0, BX_IA_ERROR },
/* 73 */ { 0, BX_IA_ERROR },
/* 74 k0 */ { 0, BX_IA_ERROR },
/* 74 */ { 0, BX_IA_ERROR },
/* 75 k0 */ { 0, BX_IA_ERROR },
/* 75 */ { 0, BX_IA_ERROR },
2014-01-24 16:02:47 +04:00
/* 76 k0 */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMI2D_VdqHdqWdq_Kmask },
/* 76 */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMI2D_VdqHdqWdq_Kmask },
/* 77 k0 */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMI2PS_VpsHpsWps_Kmask },
/* 77 */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMI2PS_VpsHpsWps_Kmask },
/* 78 k0 */ { 0, BX_IA_ERROR },
/* 78 */ { 0, BX_IA_ERROR },
/* 79 k0 */ { 0, BX_IA_ERROR },
/* 79 */ { 0, BX_IA_ERROR },
/* 7A k0 */ { 0, BX_IA_ERROR },
/* 7A */ { 0, BX_IA_ERROR },
/* 7B k0 */ { 0, BX_IA_ERROR },
/* 7B */ { 0, BX_IA_ERROR },
/* 7C k0 */ { BxPrefixSSE66 | BxAliasVexW64, BX_IA_V512_VPBROADCASTD_VdqEd },
/* 7C */ { BxPrefixSSE66 | BxAliasVexW64, BX_IA_V512_VPBROADCASTD_VdqEd_Kmask },
/* 7D k0 */ { 0, BX_IA_ERROR },
/* 7D */ { 0, BX_IA_ERROR },
2014-01-24 16:02:47 +04:00
/* 7E k0 */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMT2D_VdqHdqWdq_Kmask },
/* 7E */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMT2D_VdqHdqWdq_Kmask },
/* 7F k0 */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMT2PS_VpsHpsWps_Kmask },
/* 7F */ { BxPrefixSSE66 | BxAliasVexW, BX_IA_V512_VPERMT2PS_VpsHpsWps_Kmask },
/* 80 k0 */ { 0, BX_IA_ERROR },
/* 80 */ { 0, BX_IA_ERROR },
/* 81 k0 */ { 0, BX_IA_ERROR },
/* 81 */ { 0, BX_IA_ERROR },
/* 82 k0 */ { 0, BX_IA_ERROR },
/* 82 */ { 0, BX_IA_ERROR },
/* 83 k0 */ { 0, BX_IA_ERROR },
/* 83 */ { 0, BX_IA_ERROR },
/* 84 k0 */ { 0, BX_IA_ERROR },
/* 84 */ { 0, BX_IA_ERROR },
/* 85 k0 */ { 0, BX_IA_ERROR },
/* 85 */ { 0, BX_IA_ERROR },
/* 86 k0 */ { 0, BX_IA_ERROR },
/* 86 */ { 0, BX_IA_ERROR },
/* 87 k0 */ { 0, BX_IA_ERROR },
/* 87 */ { 0, BX_IA_ERROR },
/* 88 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VEXPANDPS_VpsWps },
/* 88 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VEXPANDPS_VpsWps_Kmask },
/* 89 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VEXPANDD_VdqWdq },
/* 89 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VEXPANDD_VdqWdq_Kmask },
/* 8A k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VCOMPRESSPS_WpsVps },
/* 8A */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VCOMPRESSPS_WpsVps_Kmask },
/* 8B k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VCOMPRESSD_WdqVdq },
2013-12-17 23:16:08 +04:00
/* 8B */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VCOMPRESSD_WdqVdq_Kmask },
/* 8C k0 */ { 0, BX_IA_ERROR },
/* 8C */ { 0, BX_IA_ERROR },
/* 8D k0 */ { 0, BX_IA_ERROR },
/* 8D */ { 0, BX_IA_ERROR },
/* 8E k0 */ { 0, BX_IA_ERROR },
/* 8E */ { 0, BX_IA_ERROR },
/* 8F k0 */ { 0, BX_IA_ERROR },
/* 8F */ { 0, BX_IA_ERROR },
2013-12-08 00:15:56 +04:00
/* 90 k0 */ { 0, BX_IA_ERROR }, // #UD
/* 90 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGATHERDD_VdqVSib },
/* 91 k0 */ { 0, BX_IA_ERROR }, // #UD
/* 91 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGATHERQD_VdqVSib },
/* 92 k0 */ { 0, BX_IA_ERROR }, // #UD
/* 92 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGATHERDPS_VpsVSib },
/* 93 k0 */ { 0, BX_IA_ERROR }, // #UD
/* 93 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VGATHERQPS_VpsVSib },
/* 94 k0 */ { 0, BX_IA_ERROR },
/* 94 */ { 0, BX_IA_ERROR },
/* 95 k0 */ { 0, BX_IA_ERROR },
/* 95 */ { 0, BX_IA_ERROR },
/* 96 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB132PS_VpsHpsWps },
/* 96 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB132PS_VpsHpsWps_Kmask },
/* 97 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD132PS_VpsHpsWps },
/* 97 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD132PS_VpsHpsWps_Kmask },
/* 98 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD132PS_VpsHpsWps },
/* 98 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD132PS_VpsHpsWps_Kmask },
/* 99 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD132SS_VpsHssWss },
/* 99 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD132SS_VpsHssWss_Kmask },
/* 9A k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB132PS_VpsHpsWps },
/* 9A */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB132PS_VpsHpsWps_Kmask },
/* 9B k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB132SS_VpsHssWss },
/* 9B */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB132SS_VpsHssWss_Kmask },
/* 9C k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD132PS_VpsHpsWps },
/* 9C */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD132PS_VpsHpsWps_Kmask },
/* 9D k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD132SS_VpsHssWss },
/* 9D */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD132SS_VpsHssWss_Kmask },
/* 9E k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB132PS_VpsHpsWps },
/* 9E */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB132PS_VpsHpsWps_Kmask },
/* 9F k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB132SS_VpsHssWss },
/* 9F */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB132SS_VpsHssWss_Kmask },
2013-12-08 00:15:56 +04:00
/* A0 k0 */ { 0, BX_IA_ERROR }, // #UD
/* A0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCATTERDD_VSibVdq },
/* A1 k0 */ { 0, BX_IA_ERROR }, // #UD
/* A1 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCATTERQD_VSibVdq },
/* A2 k0 */ { 0, BX_IA_ERROR }, // #UD
/* A2 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCATTERDPS_VSibVps },
/* A3 k0 */ { 0, BX_IA_ERROR }, // #UD
/* A3 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VSCATTERQPS_VSibVps },
/* A4 k0 */ { 0, BX_IA_ERROR },
/* A4 */ { 0, BX_IA_ERROR },
/* A5 k0 */ { 0, BX_IA_ERROR },
/* A5 */ { 0, BX_IA_ERROR },
/* A6 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB213PS_VpsHpsWps },
/* A6 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB213PS_VpsHpsWps_Kmask },
/* A7 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD213PS_VpsHpsWps },
/* A7 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD213PS_VpsHpsWps_Kmask },
/* A8 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD213PS_VpsHpsWps },
/* A8 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD213PS_VpsHpsWps_Kmask },
/* A9 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD213SS_VpsHssWss },
/* A9 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD213SS_VpsHssWss_Kmask },
/* AA k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB213PS_VpsHpsWps },
/* AA */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB213PS_VpsHpsWps_Kmask },
/* AB k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB213SS_VpsHssWss },
/* AB */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB213SS_VpsHssWss_Kmask },
/* AC k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD213PS_VpsHpsWps },
/* AC */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD213PS_VpsHpsWps_Kmask },
/* AD k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD213SS_VpsHssWss },
/* AD */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD213SS_VpsHssWss_Kmask },
/* AE k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB213PS_VpsHpsWps },
/* AE */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB213PS_VpsHpsWps_Kmask },
/* AF k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB213SS_VpsHssWss },
/* AF */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB213SS_VpsHssWss_Kmask },
/* B0 k0 */ { 0, BX_IA_ERROR },
/* B0 */ { 0, BX_IA_ERROR },
/* B1 k0 */ { 0, BX_IA_ERROR },
/* B1 */ { 0, BX_IA_ERROR },
/* B2 k0 */ { 0, BX_IA_ERROR },
/* B2 */ { 0, BX_IA_ERROR },
/* B3 k0 */ { 0, BX_IA_ERROR },
/* B3 */ { 0, BX_IA_ERROR },
/* B4 k0 */ { 0, BX_IA_ERROR },
/* B4 */ { 0, BX_IA_ERROR },
/* B5 k0 */ { 0, BX_IA_ERROR },
/* B5 */ { 0, BX_IA_ERROR },
/* B6 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB231PS_VpsHpsWps },
/* B6 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADDSUB231PS_VpsHpsWps_Kmask },
/* B7 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD231PS_VpsHpsWps },
/* B7 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUBADD231PS_VpsHpsWps_Kmask },
/* B8 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD231PS_VpsHpsWps },
/* B8 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD231PS_VpsHpsWps_Kmask },
/* B9 k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD231SS_VpsHssWss },
/* B9 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMADD231SS_VpsHssWss_Kmask },
/* BA k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB231PS_VpsHpsWps },
/* BA */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB231PS_VpsHpsWps_Kmask },
/* BB k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB231SS_VpsHssWss },
/* BB */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFMSUB231SS_VpsHssWss_Kmask },
/* BC k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD231PS_VpsHpsWps },
/* BC */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD231PS_VpsHpsWps_Kmask },
/* BD k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD231SS_VpsHssWss },
/* BD */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMADD231SS_VpsHssWss_Kmask },
/* BE k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB231PS_VpsHpsWps },
/* BE */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB231PS_VpsHpsWps_Kmask },
/* BF k0 */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB231SS_VpsHssWss },
/* BF */ { BxAliasVexW | BxPrefixSSE66, BX_IA_V512_VFNMSUB231SS_VpsHssWss_Kmask },
/* C0 k0 */ { 0, BX_IA_ERROR },
/* C0 */ { 0, BX_IA_ERROR },
/* C1 k0 */ { 0, BX_IA_ERROR },
/* C1 */ { 0, BX_IA_ERROR },
/* C2 k0 */ { 0, BX_IA_ERROR },
/* C2 */ { 0, BX_IA_ERROR },
/* C3 k0 */ { 0, BX_IA_ERROR },
/* C3 */ { 0, BX_IA_ERROR },
/* C4 k0 */ { 0, BX_IA_ERROR },
/* C4 */ { 0, BX_IA_ERROR },
/* C5 k0 */ { 0, BX_IA_ERROR },
/* C5 */ { 0, BX_IA_ERROR },
/* C6 k0 */ { 0, BX_IA_ERROR },
/* C6 */ { 0, BX_IA_ERROR },
/* C7 k0 */ { 0, BX_IA_ERROR },
/* C7 */ { 0, BX_IA_ERROR },
/* C8 k0 */ { 0, BX_IA_ERROR },
/* C8 */ { 0, BX_IA_ERROR },
/* C9 k0 */ { 0, BX_IA_ERROR },
/* C9 */ { 0, BX_IA_ERROR },
/* CA k0 */ { 0, BX_IA_ERROR },
/* CA */ { 0, BX_IA_ERROR },
/* CB k0 */ { 0, BX_IA_ERROR },
/* CB */ { 0, BX_IA_ERROR },
/* CC k0 */ { 0, BX_IA_ERROR },
/* CC */ { 0, BX_IA_ERROR },
/* CD k0 */ { 0, BX_IA_ERROR },
/* CD */ { 0, BX_IA_ERROR },
/* CE k0 */ { 0, BX_IA_ERROR },
/* CE */ { 0, BX_IA_ERROR },
/* CF k0 */ { 0, BX_IA_ERROR },
/* CF */ { 0, BX_IA_ERROR },
/* D0 k0 */ { 0, BX_IA_ERROR },
/* D0 */ { 0, BX_IA_ERROR },
/* D1 k0 */ { 0, BX_IA_ERROR },
/* D1 */ { 0, BX_IA_ERROR },
/* D2 k0 */ { 0, BX_IA_ERROR },
/* D2 */ { 0, BX_IA_ERROR },
/* D3 k0 */ { 0, BX_IA_ERROR },
/* D3 */ { 0, BX_IA_ERROR },
/* D4 k0 */ { 0, BX_IA_ERROR },
/* D4 */ { 0, BX_IA_ERROR },
/* D5 k0 */ { 0, BX_IA_ERROR },
/* D5 */ { 0, BX_IA_ERROR },
/* D6 k0 */ { 0, BX_IA_ERROR },
/* D6 */ { 0, BX_IA_ERROR },
/* D7 k0 */ { 0, BX_IA_ERROR },
/* D7 */ { 0, BX_IA_ERROR },
/* D8 k0 */ { 0, BX_IA_ERROR },
/* D8 */ { 0, BX_IA_ERROR },
/* D9 k0 */ { 0, BX_IA_ERROR },
/* D9 */ { 0, BX_IA_ERROR },
/* DA k0 */ { 0, BX_IA_ERROR },
/* DA */ { 0, BX_IA_ERROR },
/* DB k0 */ { 0, BX_IA_ERROR },
/* DB */ { 0, BX_IA_ERROR },
/* DC k0 */ { 0, BX_IA_ERROR },
/* DC */ { 0, BX_IA_ERROR },
/* DD k0 */ { 0, BX_IA_ERROR },
/* DD */ { 0, BX_IA_ERROR },
/* DE k0 */ { 0, BX_IA_ERROR },
/* DE */ { 0, BX_IA_ERROR },
/* DF k0 */ { 0, BX_IA_ERROR },
/* DF */ { 0, BX_IA_ERROR },
/* E0 k0 */ { 0, BX_IA_ERROR },
/* E0 */ { 0, BX_IA_ERROR },
/* E1 k0 */ { 0, BX_IA_ERROR },
/* E1 */ { 0, BX_IA_ERROR },
/* E2 k0 */ { 0, BX_IA_ERROR },
/* E2 */ { 0, BX_IA_ERROR },
/* E3 k0 */ { 0, BX_IA_ERROR },
/* E3 */ { 0, BX_IA_ERROR },
/* E4 k0 */ { 0, BX_IA_ERROR },
/* E4 */ { 0, BX_IA_ERROR },
/* E5 k0 */ { 0, BX_IA_ERROR },
/* E5 */ { 0, BX_IA_ERROR },
/* E6 k0 */ { 0, BX_IA_ERROR },
/* E6 */ { 0, BX_IA_ERROR },
/* E7 k0 */ { 0, BX_IA_ERROR },
/* E7 */ { 0, BX_IA_ERROR },
/* E8 k0 */ { 0, BX_IA_ERROR },
/* E8 */ { 0, BX_IA_ERROR },
/* E9 k0 */ { 0, BX_IA_ERROR },
/* E9 */ { 0, BX_IA_ERROR },
/* EA k0 */ { 0, BX_IA_ERROR },
/* EA */ { 0, BX_IA_ERROR },
/* EB k0 */ { 0, BX_IA_ERROR },
/* EB */ { 0, BX_IA_ERROR },
/* EC k0 */ { 0, BX_IA_ERROR },
/* EC */ { 0, BX_IA_ERROR },
/* ED k0 */ { 0, BX_IA_ERROR },
/* ED */ { 0, BX_IA_ERROR },
/* EE k0 */ { 0, BX_IA_ERROR },
/* EE */ { 0, BX_IA_ERROR },
/* EF k0 */ { 0, BX_IA_ERROR },
/* EF */ { 0, BX_IA_ERROR },
/* F0 k0 */ { 0, BX_IA_ERROR },
/* F0 */ { 0, BX_IA_ERROR },
/* F1 k0 */ { 0, BX_IA_ERROR },
/* F1 */ { 0, BX_IA_ERROR },
/* F2 k0 */ { 0, BX_IA_ERROR },
/* F2 */ { 0, BX_IA_ERROR },
/* F3 k0 */ { 0, BX_IA_ERROR },
/* F3 */ { 0, BX_IA_ERROR },
/* F4 k0 */ { 0, BX_IA_ERROR },
/* F4 */ { 0, BX_IA_ERROR },
/* F5 k0 */ { 0, BX_IA_ERROR },
/* F5 */ { 0, BX_IA_ERROR },
/* F6 k0 */ { 0, BX_IA_ERROR },
/* F6 */ { 0, BX_IA_ERROR },
/* F7 k0 */ { 0, BX_IA_ERROR },
/* F7 */ { 0, BX_IA_ERROR },
/* F8 k0 */ { 0, BX_IA_ERROR },
/* F8 */ { 0, BX_IA_ERROR },
/* F9 k0 */ { 0, BX_IA_ERROR },
/* F9 */ { 0, BX_IA_ERROR },
/* FA k0 */ { 0, BX_IA_ERROR },
/* FA */ { 0, BX_IA_ERROR },
/* FB k0 */ { 0, BX_IA_ERROR },
/* FB */ { 0, BX_IA_ERROR },
/* FC k0 */ { 0, BX_IA_ERROR },
/* FC */ { 0, BX_IA_ERROR },
/* FD k0 */ { 0, BX_IA_ERROR },
/* FD */ { 0, BX_IA_ERROR },
/* FE k0 */ { 0, BX_IA_ERROR },
/* FE */ { 0, BX_IA_ERROR },
/* FF k0 */ { 0, BX_IA_ERROR },
/* FF */ { 0, BX_IA_ERROR },
// 256 entries for EVEX-encoded 0x0F 0x3A opcodes
2014-01-23 01:21:32 +04:00
/* 00 k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMQ_VdqWdqIb_Kmask },
/* 00 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMQ_VdqWdqIb_Kmask },
/* 01 k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMPD_VpdWpdIb_Kmask },
/* 01 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMPD_VpdWpdIb_Kmask },
/* 02 k0 */ { 0, BX_IA_ERROR },
/* 02 */ { 0, BX_IA_ERROR },
/* 03 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VALIGND_VdqHdqWdqIb_Kmask },
/* 03 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VALIGND_VdqHdqWdqIb_Kmask },
/* 04 k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMILPS_VpsWpsIb },
/* 04 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMILPS_VpsWpsIb_Kmask },
/* 05 k0 */ { BxVexW1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMILPD_VpdWpdIb },
/* 05 */ { BxVexW1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPERMILPD_VpdWpdIb_Kmask },
/* 06 k0 */ { 0, BX_IA_ERROR },
/* 06 */ { 0, BX_IA_ERROR },
/* 07 k0 */ { 0, BX_IA_ERROR },
/* 07 */ { 0, BX_IA_ERROR },
/* 08 k0 */ { 0, BX_IA_ERROR },
/* 08 */ { 0, BX_IA_ERROR },
/* 09 k0 */ { 0, BX_IA_ERROR },
/* 09 */ { 0, BX_IA_ERROR },
/* 0A k0 */ { 0, BX_IA_ERROR },
/* 0A */ { 0, BX_IA_ERROR },
/* 0B k0 */ { 0, BX_IA_ERROR },
/* 0B */ { 0, BX_IA_ERROR },
/* 0C k0 */ { 0, BX_IA_ERROR },
/* 0C */ { 0, BX_IA_ERROR },
/* 0D k0 */ { 0, BX_IA_ERROR },
/* 0D */ { 0, BX_IA_ERROR },
/* 0E k0 */ { 0, BX_IA_ERROR },
/* 0E */ { 0, BX_IA_ERROR },
/* 0F k0 */ { 0, BX_IA_ERROR },
/* 0F */ { 0, BX_IA_ERROR },
/* 10 k0 */ { 0, BX_IA_ERROR },
/* 10 */ { 0, BX_IA_ERROR },
/* 11 k0 */ { 0, BX_IA_ERROR },
/* 11 */ { 0, BX_IA_ERROR },
/* 12 k0 */ { 0, BX_IA_ERROR },
/* 12 */ { 0, BX_IA_ERROR },
/* 13 k0 */ { 0, BX_IA_ERROR },
/* 13 */ { 0, BX_IA_ERROR },
/* 14 k0 */ { 0, BX_IA_ERROR },
/* 14 */ { 0, BX_IA_ERROR },
/* 15 k0 */ { 0, BX_IA_ERROR },
/* 15 */ { 0, BX_IA_ERROR },
/* 16 k0 */ { 0, BX_IA_ERROR },
/* 16 */ { 0, BX_IA_ERROR },
/* 17 k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTPS_EdVpsIb },
/* 17 */ { 0, BX_IA_ERROR }, // #UD
/* 18 k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTF32x4_VpsHpsWpsIb_Kmask },
/* 18 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTF32x4_VpsHpsWpsIb_Kmask },
2014-01-31 00:48:41 +04:00
/* 19 k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTF32x4_WpsVpsIb },
/* 19 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTF32x4_WpsVpsIb_Kmask },
2013-12-18 01:00:19 +04:00
/* 1A k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTF64x4_VpdHpdWpdIb_Kmask },
/* 1A */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTF64x4_VpdHpdWpdIb_Kmask },
2014-01-31 00:48:41 +04:00
/* 1B k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTF64x4_WpdVpdIb },
/* 1B */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTF64x4_WpdVpdIb_Kmask },
/* 1C k0 */ { 0, BX_IA_ERROR },
/* 1C */ { 0, BX_IA_ERROR },
/* 1D k0 */ { 0, BX_IA_ERROR },
/* 1D */ { 0, BX_IA_ERROR },
/* 1E k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPCMPUD_KGwHdqWdqIb },
/* 1E */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPCMPUD_KGwHdqWdqIb },
/* 1F k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPCMPD_KGwHdqWdqIb },
/* 1F */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPCMPD_KGwHdqWdqIb },
/* 20 k0 */ { 0, BX_IA_ERROR },
/* 20 */ { 0, BX_IA_ERROR },
/* 21 k0 */ { BxVexW0 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTPS_VpsWssIb },
/* 21 */ { 0, BX_IA_ERROR }, // #UD
/* 22 k0 */ { 0, BX_IA_ERROR },
/* 22 */ { 0, BX_IA_ERROR },
/* 23 k0 */ { BxAliasVexW | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VSHUFF32x4_VpsHpsWpsIb_Kmask },
/* 23 */ { BxAliasVexW | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VSHUFF32x4_VpsHpsWpsIb_Kmask },
/* 24 k0 */ { 0, BX_IA_ERROR },
/* 24 */ { 0, BX_IA_ERROR },
/* 25 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPTERNLOGD_VdqHdqWdqIb },
/* 25 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VPTERNLOGD_VdqHdqWdqIb_Kmask },
/* 26 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VGETMANTPS_VpsWpsIb_Kmask },
/* 26 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VGETMANTPS_VpsWpsIb_Kmask },
/* 27 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VGETMANTSS_VssHpsWssIb_Kmask },
/* 27 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VGETMANTSS_VssHpsWssIb_Kmask },
/* 28 k0 */ { 0, BX_IA_ERROR },
/* 28 */ { 0, BX_IA_ERROR },
/* 29 k0 */ { 0, BX_IA_ERROR },
/* 29 */ { 0, BX_IA_ERROR },
/* 2A k0 */ { 0, BX_IA_ERROR },
/* 2A */ { 0, BX_IA_ERROR },
/* 2B k0 */ { 0, BX_IA_ERROR },
/* 2B */ { 0, BX_IA_ERROR },
/* 2C k0 */ { 0, BX_IA_ERROR },
/* 2C */ { 0, BX_IA_ERROR },
/* 2D k0 */ { 0, BX_IA_ERROR },
/* 2D */ { 0, BX_IA_ERROR },
/* 2E k0 */ { 0, BX_IA_ERROR },
/* 2E */ { 0, BX_IA_ERROR },
/* 2F k0 */ { 0, BX_IA_ERROR },
/* 2F */ { 0, BX_IA_ERROR },
/* 30 k0 */ { 0, BX_IA_ERROR },
/* 30 */ { 0, BX_IA_ERROR },
/* 31 k0 */ { 0, BX_IA_ERROR },
/* 31 */ { 0, BX_IA_ERROR },
/* 32 k0 */ { 0, BX_IA_ERROR },
/* 32 */ { 0, BX_IA_ERROR },
/* 33 k0 */ { 0, BX_IA_ERROR },
/* 33 */ { 0, BX_IA_ERROR },
/* 34 k0 */ { 0, BX_IA_ERROR },
/* 34 */ { 0, BX_IA_ERROR },
/* 35 k0 */ { 0, BX_IA_ERROR },
/* 35 */ { 0, BX_IA_ERROR },
/* 36 k0 */ { 0, BX_IA_ERROR },
/* 36 */ { 0, BX_IA_ERROR },
/* 37 k0 */ { 0, BX_IA_ERROR },
/* 37 */ { 0, BX_IA_ERROR },
/* 38 k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTI32x4_VdqHdqWdqIb_Kmask },
/* 38 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTI32x4_VdqHdqWdqIb_Kmask },
2014-01-31 00:48:41 +04:00
/* 39 k0 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTI32x4_WdqVdqIb },
/* 39 */ { BxVexW0 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTI32x4_WdqVdqIb_Kmask },
2013-12-18 01:00:19 +04:00
/* 3A k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTI64x4_VdqHdqWdqIb_Kmask },
/* 3A */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VINSERTI64x4_VdqHdqWdqIb_Kmask },
2014-01-31 00:48:41 +04:00
/* 3B k0 */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTI64x4_WdqVdqIb },
/* 3B */ { BxVexW1 | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VEXTRACTI64x4_WdqVdqIb_Kmask },
/* 3C k0 */ { 0, BX_IA_ERROR },
/* 3C */ { 0, BX_IA_ERROR },
/* 3D k0 */ { 0, BX_IA_ERROR },
/* 3D */ { 0, BX_IA_ERROR },
/* 3E k0 */ { 0, BX_IA_ERROR },
/* 3E */ { 0, BX_IA_ERROR },
/* 3F k0 */ { 0, BX_IA_ERROR },
/* 3F */ { 0, BX_IA_ERROR },
/* 40 k0 */ { 0, BX_IA_ERROR },
/* 40 */ { 0, BX_IA_ERROR },
/* 41 k0 */ { 0, BX_IA_ERROR },
/* 41 */ { 0, BX_IA_ERROR },
/* 42 k0 */ { 0, BX_IA_ERROR },
/* 42 */ { 0, BX_IA_ERROR },
/* 43 k0 */ { BxAliasVexW | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VSHUFI32x4_VdqHdqWdqIb_Kmask },
/* 43 */ { BxAliasVexW | BxVexL1 | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VSHUFI32x4_VdqHdqWdqIb_Kmask },
/* 44 k0 */ { 0, BX_IA_ERROR },
/* 44 */ { 0, BX_IA_ERROR },
/* 45 k0 */ { 0, BX_IA_ERROR },
/* 45 */ { 0, BX_IA_ERROR },
/* 46 k0 */ { 0, BX_IA_ERROR },
/* 46 */ { 0, BX_IA_ERROR },
/* 47 k0 */ { 0, BX_IA_ERROR },
/* 47 */ { 0, BX_IA_ERROR },
/* 48 k0 */ { 0, BX_IA_ERROR },
/* 48 */ { 0, BX_IA_ERROR },
/* 49 k0 */ { 0, BX_IA_ERROR },
/* 49 */ { 0, BX_IA_ERROR },
/* 4A k0 */ { 0, BX_IA_ERROR },
/* 4A */ { 0, BX_IA_ERROR },
/* 4B k0 */ { 0, BX_IA_ERROR },
/* 4B */ { 0, BX_IA_ERROR },
/* 4C k0 */ { 0, BX_IA_ERROR },
/* 4C */ { 0, BX_IA_ERROR },
/* 4D k0 */ { 0, BX_IA_ERROR },
/* 4D */ { 0, BX_IA_ERROR },
/* 4E k0 */ { 0, BX_IA_ERROR },
/* 4E */ { 0, BX_IA_ERROR },
/* 4F k0 */ { 0, BX_IA_ERROR },
/* 4F */ { 0, BX_IA_ERROR },
/* 50 k0 */ { 0, BX_IA_ERROR },
/* 50 */ { 0, BX_IA_ERROR },
/* 51 k0 */ { 0, BX_IA_ERROR },
/* 51 */ { 0, BX_IA_ERROR },
/* 52 k0 */ { 0, BX_IA_ERROR },
/* 52 */ { 0, BX_IA_ERROR },
/* 53 k0 */ { 0, BX_IA_ERROR },
/* 53 */ { 0, BX_IA_ERROR },
2013-12-17 23:16:08 +04:00
/* 54 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VFIXUPIMMPS_VpsHpsWpsIb },
/* 54 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VFIXUPIMMPS_VpsHpsWpsIb_Kmask },
/* 55 k0 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VFIXUPIMMSS_VssHssWssIb_Kmask },
/* 55 */ { BxAliasVexW | BxPrefixSSE66 | BxImmediate_Ib, BX_IA_V512_VFIXUPIMMSS_VssHssWssIb_Kmask },
/* 56 k0 */ { 0, BX_IA_ERROR },
/* 56 */ { 0, BX_IA_ERROR },
/* 57 k0 */ { 0, BX_IA_ERROR },
/* 57 */ { 0, BX_IA_ERROR },
/* 58 k0 */ { 0, BX_IA_ERROR },
/* 58 */ { 0, BX_IA_ERROR },
/* 59 k0 */ { 0, BX_IA_ERROR },
/* 59 */ { 0, BX_IA_ERROR },
/* 5A k0 */ { 0, BX_IA_ERROR },
/* 5A */ { 0, BX_IA_ERROR },
/* 5B k0 */ { 0, BX_IA_ERROR },
/* 5B */ { 0, BX_IA_ERROR },
/* 5C k0 */ { 0, BX_IA_ERROR },
/* 5C */ { 0, BX_IA_ERROR },
/* 5D k0 */ { 0, BX_IA_ERROR },
/* 5D */ { 0, BX_IA_ERROR },
/* 5E k0 */ { 0, BX_IA_ERROR },
/* 5E */ { 0, BX_IA_ERROR },
/* 5F k0 */ { 0, BX_IA_ERROR },
/* 5F */ { 0, BX_IA_ERROR },
/* 60 k0 */ { 0, BX_IA_ERROR },
/* 60 */ { 0, BX_IA_ERROR },
/* 61 k0 */ { 0, BX_IA_ERROR },
/* 61 */ { 0, BX_IA_ERROR },
/* 62 k0 */ { 0, BX_IA_ERROR },
/* 62 */ { 0, BX_IA_ERROR },
/* 63 k0 */ { 0, BX_IA_ERROR },
/* 63 */ { 0, BX_IA_ERROR },
/* 64 k0 */ { 0, BX_IA_ERROR },
/* 64 */ { 0, BX_IA_ERROR },
/* 65 k0 */ { 0, BX_IA_ERROR },
/* 65 */ { 0, BX_IA_ERROR },
/* 66 k0 */ { 0, BX_IA_ERROR },
/* 66 */ { 0, BX_IA_ERROR },
/* 67 k0 */ { 0, BX_IA_ERROR },
/* 67 */ { 0, BX_IA_ERROR },
/* 68 k0 */ { 0, BX_IA_ERROR },
/* 68 */ { 0, BX_IA_ERROR },
/* 69 k0 */ { 0, BX_IA_ERROR },
/* 69 */ { 0, BX_IA_ERROR },
/* 6A k0 */ { 0, BX_IA_ERROR },
/* 6A */ { 0, BX_IA_ERROR },
/* 6B k0 */ { 0, BX_IA_ERROR },
/* 6B */ { 0, BX_IA_ERROR },
/* 6C k0 */ { 0, BX_IA_ERROR },
/* 6C */ { 0, BX_IA_ERROR },
/* 6D k0 */ { 0, BX_IA_ERROR },
/* 6D */ { 0, BX_IA_ERROR },
/* 6E k0 */ { 0, BX_IA_ERROR },
/* 6E */ { 0, BX_IA_ERROR },
/* 6F k0 */ { 0, BX_IA_ERROR },
/* 6F */ { 0, BX_IA_ERROR },
/* 70 k0 */ { 0, BX_IA_ERROR },
/* 70 */ { 0, BX_IA_ERROR },
/* 71 k0 */ { 0, BX_IA_ERROR },
/* 71 */ { 0, BX_IA_ERROR },
/* 72 k0 */ { 0, BX_IA_ERROR },
/* 72 */ { 0, BX_IA_ERROR },
/* 73 k0 */ { 0, BX_IA_ERROR },
/* 73 */ { 0, BX_IA_ERROR },
/* 74 k0 */ { 0, BX_IA_ERROR },
/* 74 */ { 0, BX_IA_ERROR },
/* 75 k0 */ { 0, BX_IA_ERROR },
/* 75 */ { 0, BX_IA_ERROR },
/* 76 k0 */ { 0, BX_IA_ERROR },
/* 76 */ { 0, BX_IA_ERROR },
/* 77 k0 */ { 0, BX_IA_ERROR },
/* 77 */ { 0, BX_IA_ERROR },
/* 78 k0 */ { 0, BX_IA_ERROR },
/* 78 */ { 0, BX_IA_ERROR },
/* 79 k0 */ { 0, BX_IA_ERROR },
/* 79 */ { 0, BX_IA_ERROR },
/* 7A k0 */ { 0, BX_IA_ERROR },
/* 7A */ { 0, BX_IA_ERROR },
/* 7B k0 */ { 0, BX_IA_ERROR },
/* 7B */ { 0, BX_IA_ERROR },
/* 7C k0 */ { 0, BX_IA_ERROR },
/* 7C */ { 0, BX_IA_ERROR },
/* 7D k0 */ { 0, BX_IA_ERROR },
/* 7D */ { 0, BX_IA_ERROR },
/* 7E k0 */ { 0, BX_IA_ERROR },
/* 7E */ { 0, BX_IA_ERROR },
/* 7F k0 */ { 0, BX_IA_ERROR },
/* 7F */ { 0, BX_IA_ERROR },
/* 80 k0 */ { 0, BX_IA_ERROR },
/* 80 */ { 0, BX_IA_ERROR },
/* 81 k0 */ { 0, BX_IA_ERROR },
/* 81 */ { 0, BX_IA_ERROR },
/* 82 k0 */ { 0, BX_IA_ERROR },
/* 82 */ { 0, BX_IA_ERROR },
/* 83 k0 */ { 0, BX_IA_ERROR },
/* 83 */ { 0, BX_IA_ERROR },
/* 84 k0 */ { 0, BX_IA_ERROR },
/* 84 */ { 0, BX_IA_ERROR },
/* 85 k0 */ { 0, BX_IA_ERROR },
/* 85 */ { 0, BX_IA_ERROR },
/* 86 k0 */ { 0, BX_IA_ERROR },
/* 86 */ { 0, BX_IA_ERROR },
/* 87 k0 */ { 0, BX_IA_ERROR },
/* 87 */ { 0, BX_IA_ERROR },
/* 88 k0 */ { 0, BX_IA_ERROR },
/* 88 */ { 0, BX_IA_ERROR },
/* 89 k0 */ { 0, BX_IA_ERROR },
/* 89 */ { 0, BX_IA_ERROR },
/* 8A k0 */ { 0, BX_IA_ERROR },
/* 8A */ { 0, BX_IA_ERROR },
/* 8B k0 */ { 0, BX_IA_ERROR },
/* 8B */ { 0, BX_IA_ERROR },
/* 8C k0 */ { 0, BX_IA_ERROR },
/* 8C */ { 0, BX_IA_ERROR },
/* 8D k0 */ { 0, BX_IA_ERROR },
/* 8D */ { 0, BX_IA_ERROR },
/* 8E k0 */ { 0, BX_IA_ERROR },
/* 8E */ { 0, BX_IA_ERROR },
/* 8F k0 */ { 0, BX_IA_ERROR },
/* 8F */ { 0, BX_IA_ERROR },
/* 90 k0 */ { 0, BX_IA_ERROR },
/* 90 */ { 0, BX_IA_ERROR },
/* 91 k0 */ { 0, BX_IA_ERROR },
/* 91 */ { 0, BX_IA_ERROR },
/* 92 k0 */ { 0, BX_IA_ERROR },
/* 92 */ { 0, BX_IA_ERROR },
/* 93 k0 */ { 0, BX_IA_ERROR },
/* 93 */ { 0, BX_IA_ERROR },
/* 94 k0 */ { 0, BX_IA_ERROR },
/* 94 */ { 0, BX_IA_ERROR },
/* 95 k0 */ { 0, BX_IA_ERROR },
/* 95 */ { 0, BX_IA_ERROR },
/* 96 k0 */ { 0, BX_IA_ERROR },
/* 96 */ { 0, BX_IA_ERROR },
/* 97 k0 */ { 0, BX_IA_ERROR },
/* 97 */ { 0, BX_IA_ERROR },
/* 98 k0 */ { 0, BX_IA_ERROR },
/* 98 */ { 0, BX_IA_ERROR },
/* 99 k0 */ { 0, BX_IA_ERROR },
/* 99 */ { 0, BX_IA_ERROR },
/* 9A k0 */ { 0, BX_IA_ERROR },
/* 9A */ { 0, BX_IA_ERROR },
/* 9B k0 */ { 0, BX_IA_ERROR },
/* 9B */ { 0, BX_IA_ERROR },
/* 9C k0 */ { 0, BX_IA_ERROR },
/* 9C */ { 0, BX_IA_ERROR },
/* 9D k0 */ { 0, BX_IA_ERROR },
/* 9D */ { 0, BX_IA_ERROR },
/* 9E k0 */ { 0, BX_IA_ERROR },
/* 9E */ { 0, BX_IA_ERROR },
/* 9F k0 */ { 0, BX_IA_ERROR },
/* 9F */ { 0, BX_IA_ERROR },
/* A0 k0 */ { 0, BX_IA_ERROR },
/* A0 */ { 0, BX_IA_ERROR },
/* A1 k0 */ { 0, BX_IA_ERROR },
/* A1 */ { 0, BX_IA_ERROR },
/* A2 k0 */ { 0, BX_IA_ERROR },
/* A2 */ { 0, BX_IA_ERROR },
/* A3 k0 */ { 0, BX_IA_ERROR },
/* A3 */ { 0, BX_IA_ERROR },
/* A4 k0 */ { 0, BX_IA_ERROR },
/* A4 */ { 0, BX_IA_ERROR },
/* A5 k0 */ { 0, BX_IA_ERROR },
/* A5 */ { 0, BX_IA_ERROR },
/* A6 k0 */ { 0, BX_IA_ERROR },
/* A6 */ { 0, BX_IA_ERROR },
/* A7 k0 */ { 0, BX_IA_ERROR },
/* A7 */ { 0, BX_IA_ERROR },
/* A8 k0 */ { 0, BX_IA_ERROR },
/* A8 */ { 0, BX_IA_ERROR },
/* A9 k0 */ { 0, BX_IA_ERROR },
/* A9 */ { 0, BX_IA_ERROR },
/* AA k0 */ { 0, BX_IA_ERROR },
/* AA */ { 0, BX_IA_ERROR },
/* AB k0 */ { 0, BX_IA_ERROR },
/* AB */ { 0, BX_IA_ERROR },
/* AC k0 */ { 0, BX_IA_ERROR },
/* AC */ { 0, BX_IA_ERROR },
/* AD k0 */ { 0, BX_IA_ERROR },
/* AD */ { 0, BX_IA_ERROR },
/* AE k0 */ { 0, BX_IA_ERROR },
/* AE */ { 0, BX_IA_ERROR },
/* AF k0 */ { 0, BX_IA_ERROR },
/* AF */ { 0, BX_IA_ERROR },
/* B0 k0 */ { 0, BX_IA_ERROR },
/* B0 */ { 0, BX_IA_ERROR },
/* B1 k0 */ { 0, BX_IA_ERROR },
/* B1 */ { 0, BX_IA_ERROR },
/* B2 k0 */ { 0, BX_IA_ERROR },
/* B2 */ { 0, BX_IA_ERROR },
/* B3 k0 */ { 0, BX_IA_ERROR },
/* B3 */ { 0, BX_IA_ERROR },
/* B4 k0 */ { 0, BX_IA_ERROR },
/* B4 */ { 0, BX_IA_ERROR },
/* B5 k0 */ { 0, BX_IA_ERROR },
/* B5 */ { 0, BX_IA_ERROR },
/* B6 k0 */ { 0, BX_IA_ERROR },
/* B6 */ { 0, BX_IA_ERROR },
/* B7 k0 */ { 0, BX_IA_ERROR },
/* B7 */ { 0, BX_IA_ERROR },
/* B8 k0 */ { 0, BX_IA_ERROR },
/* B8 */ { 0, BX_IA_ERROR },
/* B9 k0 */ { 0, BX_IA_ERROR },
/* B9 */ { 0, BX_IA_ERROR },
/* BA k0 */ { 0, BX_IA_ERROR },
/* BA */ { 0, BX_IA_ERROR },
/* BB k0 */ { 0, BX_IA_ERROR },
/* BB */ { 0, BX_IA_ERROR },
/* BC k0 */ { 0, BX_IA_ERROR },
/* BC */ { 0, BX_IA_ERROR },
/* BD k0 */ { 0, BX_IA_ERROR },
/* BD */ { 0, BX_IA_ERROR },
/* BE k0 */ { 0, BX_IA_ERROR },
/* BE */ { 0, BX_IA_ERROR },
/* BF k0 */ { 0, BX_IA_ERROR },
/* BF */ { 0, BX_IA_ERROR },
/* C0 k0 */ { 0, BX_IA_ERROR },
/* C0 */ { 0, BX_IA_ERROR },
/* C1 k0 */ { 0, BX_IA_ERROR },
/* C1 */ { 0, BX_IA_ERROR },
/* C2 k0 */ { 0, BX_IA_ERROR },
/* C2 */ { 0, BX_IA_ERROR },
/* C3 k0 */ { 0, BX_IA_ERROR },
/* C3 */ { 0, BX_IA_ERROR },
/* C4 k0 */ { 0, BX_IA_ERROR },
/* C4 */ { 0, BX_IA_ERROR },
/* C5 k0 */ { 0, BX_IA_ERROR },
/* C5 */ { 0, BX_IA_ERROR },
/* C6 k0 */ { 0, BX_IA_ERROR },
/* C6 */ { 0, BX_IA_ERROR },
/* C7 k0 */ { 0, BX_IA_ERROR },
/* C7 */ { 0, BX_IA_ERROR },
/* C8 k0 */ { 0, BX_IA_ERROR },
/* C8 */ { 0, BX_IA_ERROR },
/* C9 k0 */ { 0, BX_IA_ERROR },
/* C9 */ { 0, BX_IA_ERROR },
/* CA k0 */ { 0, BX_IA_ERROR },
/* CA */ { 0, BX_IA_ERROR },
/* CB k0 */ { 0, BX_IA_ERROR },
/* CB */ { 0, BX_IA_ERROR },
/* CC k0 */ { 0, BX_IA_ERROR },
/* CC */ { 0, BX_IA_ERROR },
/* CD k0 */ { 0, BX_IA_ERROR },
/* CD */ { 0, BX_IA_ERROR },
/* CE k0 */ { 0, BX_IA_ERROR },
/* CE */ { 0, BX_IA_ERROR },
/* CF k0 */ { 0, BX_IA_ERROR },
/* CF */ { 0, BX_IA_ERROR },
/* D0 k0 */ { 0, BX_IA_ERROR },
/* D0 */ { 0, BX_IA_ERROR },
/* D1 k0 */ { 0, BX_IA_ERROR },
/* D1 */ { 0, BX_IA_ERROR },
/* D2 k0 */ { 0, BX_IA_ERROR },
/* D2 */ { 0, BX_IA_ERROR },
/* D3 k0 */ { 0, BX_IA_ERROR },
/* D3 */ { 0, BX_IA_ERROR },
/* D4 k0 */ { 0, BX_IA_ERROR },
/* D4 */ { 0, BX_IA_ERROR },
/* D5 k0 */ { 0, BX_IA_ERROR },
/* D5 */ { 0, BX_IA_ERROR },
/* D6 k0 */ { 0, BX_IA_ERROR },
/* D6 */ { 0, BX_IA_ERROR },
/* D7 k0 */ { 0, BX_IA_ERROR },
/* D7 */ { 0, BX_IA_ERROR },
/* D8 k0 */ { 0, BX_IA_ERROR },
/* D8 */ { 0, BX_IA_ERROR },
/* D9 k0 */ { 0, BX_IA_ERROR },
/* D9 */ { 0, BX_IA_ERROR },
/* DA k0 */ { 0, BX_IA_ERROR },
/* DA */ { 0, BX_IA_ERROR },
/* DB k0 */ { 0, BX_IA_ERROR },
/* DB */ { 0, BX_IA_ERROR },
/* DC k0 */ { 0, BX_IA_ERROR },
/* DC */ { 0, BX_IA_ERROR },
/* DD k0 */ { 0, BX_IA_ERROR },
/* DD */ { 0, BX_IA_ERROR },
/* DE k0 */ { 0, BX_IA_ERROR },
/* DE */ { 0, BX_IA_ERROR },
/* DF k0 */ { 0, BX_IA_ERROR },
/* DF */ { 0, BX_IA_ERROR },
/* E0 k0 */ { 0, BX_IA_ERROR },
/* E0 */ { 0, BX_IA_ERROR },
/* E1 k0 */ { 0, BX_IA_ERROR },
/* E1 */ { 0, BX_IA_ERROR },
/* E2 k0 */ { 0, BX_IA_ERROR },
/* E2 */ { 0, BX_IA_ERROR },
/* E3 k0 */ { 0, BX_IA_ERROR },
/* E3 */ { 0, BX_IA_ERROR },
/* E4 k0 */ { 0, BX_IA_ERROR },
/* E4 */ { 0, BX_IA_ERROR },
/* E5 k0 */ { 0, BX_IA_ERROR },
/* E5 */ { 0, BX_IA_ERROR },
/* E6 k0 */ { 0, BX_IA_ERROR },
/* E6 */ { 0, BX_IA_ERROR },
/* E7 k0 */ { 0, BX_IA_ERROR },
/* E7 */ { 0, BX_IA_ERROR },
/* E8 k0 */ { 0, BX_IA_ERROR },
/* E8 */ { 0, BX_IA_ERROR },
/* E9 k0 */ { 0, BX_IA_ERROR },
/* E9 */ { 0, BX_IA_ERROR },
/* EA k0 */ { 0, BX_IA_ERROR },
/* EA */ { 0, BX_IA_ERROR },
/* EB k0 */ { 0, BX_IA_ERROR },
/* EB */ { 0, BX_IA_ERROR },
/* EC k0 */ { 0, BX_IA_ERROR },
/* EC */ { 0, BX_IA_ERROR },
/* ED k0 */ { 0, BX_IA_ERROR },
/* ED */ { 0, BX_IA_ERROR },
/* EE k0 */ { 0, BX_IA_ERROR },
/* EE */ { 0, BX_IA_ERROR },
/* EF k0 */ { 0, BX_IA_ERROR },
/* EF */ { 0, BX_IA_ERROR },
/* F0 k0 */ { 0, BX_IA_ERROR },
/* F0 */ { 0, BX_IA_ERROR },
/* F1 k0 */ { 0, BX_IA_ERROR },
/* F1 */ { 0, BX_IA_ERROR },
/* F2 k0 */ { 0, BX_IA_ERROR },
/* F2 */ { 0, BX_IA_ERROR },
/* F3 k0 */ { 0, BX_IA_ERROR },
/* F3 */ { 0, BX_IA_ERROR },
/* F4 k0 */ { 0, BX_IA_ERROR },
/* F4 */ { 0, BX_IA_ERROR },
/* F5 k0 */ { 0, BX_IA_ERROR },
/* F5 */ { 0, BX_IA_ERROR },
/* F6 k0 */ { 0, BX_IA_ERROR },
/* F6 */ { 0, BX_IA_ERROR },
/* F7 k0 */ { 0, BX_IA_ERROR },
/* F7 */ { 0, BX_IA_ERROR },
/* F8 k0 */ { 0, BX_IA_ERROR },
/* F8 */ { 0, BX_IA_ERROR },
/* F9 k0 */ { 0, BX_IA_ERROR },
/* F9 */ { 0, BX_IA_ERROR },
/* FA k0 */ { 0, BX_IA_ERROR },
/* FA */ { 0, BX_IA_ERROR },
/* FB k0 */ { 0, BX_IA_ERROR },
/* FB */ { 0, BX_IA_ERROR },
/* FC k0 */ { 0, BX_IA_ERROR },
/* FC */ { 0, BX_IA_ERROR },
/* FD k0 */ { 0, BX_IA_ERROR },
/* FD */ { 0, BX_IA_ERROR },
/* FE k0 */ { 0, BX_IA_ERROR },
/* FE */ { 0, BX_IA_ERROR },
/* FF k0 */ { 0, BX_IA_ERROR },
/* FF */ { 0, BX_IA_ERROR }
};
#endif // BX_SUPPORT_EVEX
#endif // BX_AVX_FETCHDECODE_TABLES_H