1181 lines
42 KiB
C
1181 lines
42 KiB
C
/////////////////////////////////////////////////////////////////////////
|
|
// $Id$
|
|
/////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) 2011 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_AVX_FETCHDECODE_TABLES_H
|
|
#define BX_AVX_FETCHDECODE_TABLES_H
|
|
|
|
#if BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6
|
|
|
|
/* ************************************************************************ */
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVX_VexW_f30f2a[2] = {
|
|
/* 0 */ { 0, BX_IA_VCVTSI2SS_VssEd },
|
|
/* 1 */ { 0, BX_IA_VCVTSI2SS_VssEq }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVX_VexW_f20f2a[2] = {
|
|
/* 0 */ { 0, BX_IA_VCVTSI2SD_VsdEd },
|
|
/* 1 */ { 0, BX_IA_VCVTSI2SD_VsdEq }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVX_VexW_f30f2c[2] = {
|
|
/* 0 */ { 0, BX_IA_VCVTTSS2SI_GdWss },
|
|
/* 1 */ { 0, BX_IA_VCVTTSS2SI_GqWss }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVX_VexW_f20f2c[2] = {
|
|
/* 0 */ { 0, BX_IA_VCVTTSD2SI_GdWsd },
|
|
/* 1 */ { 0, BX_IA_VCVTTSD2SI_GqWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVX_VexW_f30f2d[2] = {
|
|
/* 0 */ { 0, BX_IA_VCVTSS2SI_GdWss },
|
|
/* 1 */ { 0, BX_IA_VCVTSS2SI_GqWss }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVX_VexW_f20f2d[2] = {
|
|
/* 0 */ { 0, BX_IA_VCVTSD2SI_GdWsd },
|
|
/* 1 */ { 0, BX_IA_VCVTSD2SI_GqWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVX_VexW_0f6e[2] = {
|
|
/* 0 */ { BxPrefixSSE66, BX_IA_VMOVD_VdqEd },
|
|
/* 1 */ { BxPrefixSSE66, BX_IA_VMOVQ_VdqEq },
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVX_VexW_660f7e[2] = {
|
|
/* 0 */ { 0, BX_IA_VMOVD_EdVd },
|
|
/* 1 */ { 0, BX_IA_VMOVQ_EqVq },
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVX_VexW_0f3a16[2] = {
|
|
/* 0 */ { BxPrefixSSE66, BX_IA_VPEXTRD_EdVdqIb },
|
|
/* 1 */ { BxPrefixSSE66, BX_IA_VPEXTRQ_EqVdqIb }
|
|
};
|
|
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVX_VexW_0f3a22[2] = {
|
|
/* 0 */ { BxPrefixSSE66, BX_IA_VPINSRD_VdqEdIb },
|
|
/* 1 */ { BxPrefixSSE66, BX_IA_VPINSRQ_VdqEqIb }
|
|
};
|
|
|
|
/* ************************************************************************ */
|
|
|
|
/* ********** */
|
|
/* SSE Groups */
|
|
/* ********** */
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f10[6] = {
|
|
/* 66 */ { 0, BX_IA_VMOVUPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_VMOVSS_VssWss },
|
|
/* F2 */ { 0, BX_IA_VMOVSD_VsdWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f11[6] = {
|
|
/* 66 */ { BxArithDstRM, BX_IA_VMOVUPD_WpdVpd },
|
|
/* F3 */ { BxArithDstRM, BX_IA_VMOVSS_WssVss },
|
|
/* F2 */ { BxArithDstRM, BX_IA_VMOVSD_WsdVsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f12[6] = {
|
|
/* 66 */ { 0, BX_IA_VMOVLPD_VpdMq },
|
|
/* F3 */ { 0, BX_IA_VMOVSLDUP_VpsWps },
|
|
/* F2 */ { 0, BX_IA_VMOVDDUP_VpdWpd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f13M[6] = {
|
|
/* 66 */ { 0, BX_IA_VMOVLPD_MqVsd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f14[6] = {
|
|
/* 66 */ { 0, BX_IA_VUNPCKLPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f15[6] = {
|
|
/* 66 */ { 0, BX_IA_VUNPCKHPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f16[6] = {
|
|
/* 66 */ { 0, BX_IA_VMOVHPD_VpdMq },
|
|
/* F3 */ { 0, BX_IA_VMOVSHDUP_VpsWps },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f17M[6] = {
|
|
/* 66 */ { 0, BX_IA_VMOVHPD_MqVsd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f28[6] = {
|
|
/* 66 */ { 0, BX_IA_VMOVAPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f29[6] = {
|
|
/* 66 */ { BxArithDstRM, BX_IA_VMOVAPD_WpdVpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f2a[6] = {
|
|
/* 66 */ { 0, BX_IA_ERROR },
|
|
/* F3 */ { BxSplitVexW, BX_IA_ERROR, BxOpcodeInfoAVX_VexW_f30f2a },
|
|
/* F2 */ { BxSplitVexW, BX_IA_ERROR, BxOpcodeInfoAVX_VexW_f20f2a }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f2bM[6] = {
|
|
/* 66 */ { 0, BX_IA_VMOVNTPD_MpdVpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f2c[6] = {
|
|
/* 66 */ { 0, BX_IA_ERROR },
|
|
/* F3 */ { BxSplitVexW, BX_IA_ERROR, BxOpcodeInfoAVX_VexW_f30f2c },
|
|
/* F2 */ { BxSplitVexW, BX_IA_ERROR, BxOpcodeInfoAVX_VexW_f20f2c }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f2d[6] = {
|
|
/* 66 */ { 0, BX_IA_ERROR },
|
|
/* F3 */ { BxSplitVexW, BX_IA_ERROR, BxOpcodeInfoAVX_VexW_f30f2d },
|
|
/* F2 */ { BxSplitVexW, BX_IA_ERROR, BxOpcodeInfoAVX_VexW_f20f2d }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f2e[6] = {
|
|
/* 66 */ { 0, BX_IA_VUCOMISD_VsdWsd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f2f[6] = {
|
|
/* 66 */ { 0, BX_IA_VCOMISD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f50R[6] = {
|
|
/* 66 */ { 0, BX_IA_VMOVMSKPD_GdVRpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f51[6] = {
|
|
/* 66 */ { 0, BX_IA_VSQRTPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_VSQRTSS_VssWss },
|
|
/* F2 */ { 0, BX_IA_VSQRTSD_VsdWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f52[6] = {
|
|
/* 66 */ { 0, BX_IA_ERROR },
|
|
/* F3 */ { 0, BX_IA_VRSQRTSS_VssWss },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f53[6] = {
|
|
/* 66 */ { 0, BX_IA_ERROR },
|
|
/* F3 */ { 0, BX_IA_VRCPSS_VssWss },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f54[6] = {
|
|
/* 66 */ { 0, BX_IA_VANDPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f55[6] = {
|
|
/* 66 */ { 0, BX_IA_VANDNPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f56[6] = {
|
|
/* 66 */ { 0, BX_IA_VORPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f57[6] = {
|
|
/* 66 */ { 0, BX_IA_VXORPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f58[6] = {
|
|
/* 66 */ { 0, BX_IA_VADDPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_VADDSS_VssWss },
|
|
/* F2 */ { 0, BX_IA_VADDSD_VsdWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f59[6] = {
|
|
/* 66 */ { 0, BX_IA_VMULPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_VMULSS_VssWss },
|
|
/* F2 */ { 0, BX_IA_VMULSD_VsdWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f5a[6] = {
|
|
/* 66 */ { 0, BX_IA_VCVTPD2PS_VpsWpd },
|
|
/* F3 */ { 0, BX_IA_VCVTSS2SD_VsdWss },
|
|
/* F2 */ { 0, BX_IA_VCVTSD2SS_VssWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f5b[6] = {
|
|
/* 66 */ { 0, BX_IA_VCVTPS2DQ_VdqWps },
|
|
/* F3 */ { 0, BX_IA_VCVTTPS2DQ_VdqWps },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f5c[6] = {
|
|
/* 66 */ { 0, BX_IA_VSUBPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_VSUBSS_VssWss },
|
|
/* F2 */ { 0, BX_IA_VSUBSD_VsdWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f5d[6] = {
|
|
/* 66 */ { 0, BX_IA_VMINPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_VMINSS_VssWss },
|
|
/* F2 */ { 0, BX_IA_VMINSD_VsdWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f5e[6] = {
|
|
/* 66 */ { 0, BX_IA_VDIVPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_VDIVSS_VssWss },
|
|
/* F2 */ { 0, BX_IA_VDIVSD_VsdWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f5f[6] = {
|
|
/* 66 */ { 0, BX_IA_VMAXPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_VMAXSS_VssWss },
|
|
/* F2 */ { 0, BX_IA_VMAXSD_VsdWsd }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f6f[6] = {
|
|
/* 66 */ { 0, BX_IA_VMOVDQA_VdqWdq },
|
|
/* F3 */ { 0, BX_IA_VMOVDQU_VdqWdq },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f70[6] = {
|
|
/* 66 */ { 0, BX_IA_VPSHUFD_VdqWdqIb },
|
|
/* F3 */ { 0, BX_IA_VPSHUFHW_VdqWdqIb },
|
|
/* F2 */ { 0, BX_IA_VPSHUFLW_VdqWdqIb }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f7c[6] = {
|
|
/* 66 */ { 0, BX_IA_VHADDPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_VHADDPS_VpsWps }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f7d[6] = {
|
|
/* 66 */ { 0, BX_IA_VHSUBPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_VHSUBPS_VpsWps }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f7e[6] = {
|
|
/* 66 */ { BxSplitVexW, BX_IA_ERROR, BxOpcodeInfoAVX_VexW_660f7e },
|
|
/* F3 */ { 0, BX_IA_VMOVQ_VqWq },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0f7f[6] = {
|
|
/* 66 */ { BxArithDstRM, BX_IA_VMOVDQA_WdqVdq },
|
|
/* F3 */ { BxArithDstRM, BX_IA_VMOVDQU_WdqVdq },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0fc2[6] = {
|
|
/* 66 */ { 0, BX_IA_VCMPPD_VpdWpdIb },
|
|
/* F3 */ { 0, BX_IA_VCMPSS_VssWssIb },
|
|
/* F2 */ { 0, BX_IA_VCMPSD_VsdWsdIb }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0fc6[6] = {
|
|
/* 66 */ { 0, BX_IA_VSHUFPD_VpdWpdIb },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0fd0[6] = {
|
|
/* 66 */ { 0, BX_IA_VADDSUBPD_VpdWpd },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_VADDSUBPS_VpsWps }
|
|
};
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeGroupAVX_0fe6[6] = {
|
|
/* 66 */ { 0, BX_IA_VCVTTPD2DQ_VqWpd },
|
|
/* F3 */ { 0, BX_IA_VCVTDQ2PD_VpdWq },
|
|
/* F2 */ { 0, BX_IA_VCVTPD2DQ_VqWpd }
|
|
};
|
|
|
|
/* ******** */
|
|
/* Group 12 */
|
|
/* ******** */
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVXG12R[8] = {
|
|
/* 0 */ { 0, BX_IA_ERROR },
|
|
/* 1 */ { 0, BX_IA_ERROR },
|
|
/* 2 */ { BxImmediate_Ib | BxPrefixSSE66, BX_IA_VPSRLW_UdqIb },
|
|
/* 3 */ { 0, BX_IA_ERROR },
|
|
/* 4 */ { BxImmediate_Ib | BxPrefixSSE66, BX_IA_VPSRAW_UdqIb },
|
|
/* 5 */ { 0, BX_IA_ERROR },
|
|
/* 6 */ { BxImmediate_Ib | BxPrefixSSE66, BX_IA_VPSLLW_UdqIb },
|
|
/* 7 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
/* ******** */
|
|
/* Group 13 */
|
|
/* ******** */
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVXG13R[8] = {
|
|
/* 0 */ { 0, BX_IA_ERROR },
|
|
/* 1 */ { 0, BX_IA_ERROR },
|
|
/* 2 */ { BxImmediate_Ib | BxPrefixSSE66, BX_IA_VPSRLD_UdqIb },
|
|
/* 3 */ { 0, BX_IA_ERROR },
|
|
/* 4 */ { BxImmediate_Ib | BxPrefixSSE66, BX_IA_VPSRAD_UdqIb },
|
|
/* 5 */ { 0, BX_IA_ERROR },
|
|
/* 6 */ { BxImmediate_Ib | BxPrefixSSE66, BX_IA_VPSLLD_UdqIb },
|
|
/* 7 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
/* ******** */
|
|
/* Group 14 */
|
|
/* ******** */
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVXG14R[8] = {
|
|
/* 0 */ { 0, BX_IA_ERROR },
|
|
/* 1 */ { 0, BX_IA_ERROR },
|
|
/* 2 */ { BxImmediate_Ib | BxPrefixSSE66, BX_IA_VPSRLQ_UdqIb },
|
|
/* 3 */ { BxImmediate_Ib | BxPrefixSSE66, BX_IA_VPSRLDQ_UdqIb },
|
|
/* 4 */ { 0, BX_IA_ERROR },
|
|
/* 5 */ { 0, BX_IA_ERROR },
|
|
/* 6 */ { BxImmediate_Ib | BxPrefixSSE66, BX_IA_VPSLLQ_UdqIb },
|
|
/* 7 */ { BxImmediate_Ib | BxPrefixSSE66, BX_IA_VPSLLDQ_UdqIb }
|
|
};
|
|
|
|
/* ******** */
|
|
/* Group 15 */
|
|
/* ******** */
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeInfoAVXG15M[8] = {
|
|
/* 0 */ { 0, BX_IA_ERROR },
|
|
/* 1 */ { 0, BX_IA_ERROR },
|
|
/* 2 */ { BxPrefixSSE, BX_IA_VLDMXCSR, BxOpcodeGroupSSE_ERR },
|
|
/* 3 */ { BxPrefixSSE, BX_IA_VSTMXCSR, BxOpcodeGroupSSE_ERR },
|
|
/* 4 */ { 0, BX_IA_ERROR },
|
|
/* 5 */ { 0, BX_IA_ERROR },
|
|
/* 6 */ { 0, BX_IA_ERROR },
|
|
/* 7 */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
/* ************************************************************************ */
|
|
|
|
static const BxOpcodeInfo_t BxOpcodeTableAVX[256*3] = {
|
|
// 256 entries for VEX-encoded 0x0F opcodes
|
|
/* 00 */ { 0, BX_IA_ERROR },
|
|
/* 01 */ { 0, BX_IA_ERROR },
|
|
/* 02 */ { 0, BX_IA_ERROR },
|
|
/* 03 */ { 0, BX_IA_ERROR },
|
|
/* 04 */ { 0, BX_IA_ERROR },
|
|
/* 05 */ { 0, BX_IA_ERROR },
|
|
/* 06 */ { 0, BX_IA_ERROR },
|
|
/* 07 */ { 0, BX_IA_ERROR },
|
|
/* 08 */ { 0, BX_IA_ERROR },
|
|
/* 09 */ { 0, BX_IA_ERROR },
|
|
/* 0A */ { 0, BX_IA_ERROR },
|
|
/* 0B */ { 0, BX_IA_ERROR },
|
|
/* 0C */ { 0, BX_IA_ERROR },
|
|
/* 0D */ { 0, BX_IA_ERROR },
|
|
/* 0E */ { 0, BX_IA_ERROR },
|
|
/* 0F */ { 0, BX_IA_ERROR },
|
|
/* 10 */ { BxPrefixSSE, BX_IA_VMOVUPS_VpsWps, BxOpcodeGroupAVX_0f10 },
|
|
/* 11 */ { BxPrefixSSE | BxArithDstRM, BX_IA_VMOVUPS_WpsVps, BxOpcodeGroupAVX_0f11 },
|
|
/* 12 */ { BxPrefixSSE, BX_IA_VMOVLPS_VpsMq, BxOpcodeGroupAVX_0f12 },
|
|
/* 13 */ { BxPrefixSSE, BX_IA_VMOVLPS_MqVps, BxOpcodeGroupAVX_0f13M },
|
|
/* 14 */ { BxPrefixSSE, BX_IA_VUNPCKLPS_VpsWps, BxOpcodeGroupAVX_0f14 },
|
|
/* 15 */ { BxPrefixSSE, BX_IA_VUNPCKHPS_VpsWps, BxOpcodeGroupAVX_0f15 },
|
|
/* 16 */ { BxPrefixSSE, BX_IA_VMOVHPS_VpsMq, BxOpcodeGroupAVX_0f16 },
|
|
/* 17 */ { BxPrefixSSE, BX_IA_VMOVHPS_MqVps, BxOpcodeGroupAVX_0f17M },
|
|
/* 18 */ { 0, BX_IA_ERROR },
|
|
/* 19 */ { 0, BX_IA_ERROR },
|
|
/* 1A */ { 0, BX_IA_ERROR },
|
|
/* 1B */ { 0, BX_IA_ERROR },
|
|
/* 1C */ { 0, BX_IA_ERROR },
|
|
/* 1D */ { 0, BX_IA_ERROR },
|
|
/* 1E */ { 0, BX_IA_ERROR },
|
|
/* 1F */ { 0, BX_IA_ERROR },
|
|
/* 20 */ { 0, BX_IA_ERROR },
|
|
/* 21 */ { 0, BX_IA_ERROR },
|
|
/* 22 */ { 0, BX_IA_ERROR },
|
|
/* 23 */ { 0, BX_IA_ERROR },
|
|
/* 24 */ { 0, BX_IA_ERROR },
|
|
/* 25 */ { 0, BX_IA_ERROR },
|
|
/* 26 */ { 0, BX_IA_ERROR },
|
|
/* 27 */ { 0, BX_IA_ERROR },
|
|
/* 28 */ { BxPrefixSSE, BX_IA_VMOVAPS_VpsWps, BxOpcodeGroupAVX_0f28 },
|
|
/* 29 */ { BxPrefixSSE | BxArithDstRM, BX_IA_VMOVAPS_WpsVps, BxOpcodeGroupAVX_0f29 },
|
|
/* 2A */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupAVX_0f2a },
|
|
/* 2B */ { BxPrefixSSE, BX_IA_VMOVNTPS_MpsVps, BxOpcodeGroupAVX_0f2bM },
|
|
/* 2C */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupAVX_0f2c },
|
|
/* 2D */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupAVX_0f2d },
|
|
/* 2E */ { BxPrefixSSE, BX_IA_VUCOMISS_VssWss, BxOpcodeGroupAVX_0f2e },
|
|
/* 2F */ { BxPrefixSSE, BX_IA_VCOMISS_VpsWps, BxOpcodeGroupAVX_0f2f },
|
|
/* 30 */ { 0, BX_IA_ERROR },
|
|
/* 31 */ { 0, BX_IA_ERROR },
|
|
/* 32 */ { 0, BX_IA_ERROR },
|
|
/* 33 */ { 0, BX_IA_ERROR },
|
|
/* 34 */ { 0, BX_IA_ERROR },
|
|
/* 35 */ { 0, BX_IA_ERROR },
|
|
/* 36 */ { 0, BX_IA_ERROR },
|
|
/* 37 */ { 0, BX_IA_ERROR },
|
|
/* 38 */ { 0, BX_IA_ERROR }, // 3-Byte Escape
|
|
/* 39 */ { 0, BX_IA_ERROR },
|
|
/* 3A */ { 0, BX_IA_ERROR }, // 3-Byte Escape
|
|
/* 3B */ { 0, BX_IA_ERROR },
|
|
/* 3C */ { 0, BX_IA_ERROR },
|
|
/* 3D */ { 0, BX_IA_ERROR },
|
|
/* 3E */ { 0, BX_IA_ERROR },
|
|
/* 3F */ { 0, BX_IA_ERROR },
|
|
/* 40 */ { 0, BX_IA_ERROR },
|
|
/* 41 */ { 0, BX_IA_ERROR },
|
|
/* 42 */ { 0, BX_IA_ERROR },
|
|
/* 43 */ { 0, BX_IA_ERROR },
|
|
/* 44 */ { 0, BX_IA_ERROR },
|
|
/* 45 */ { 0, BX_IA_ERROR },
|
|
/* 46 */ { 0, BX_IA_ERROR },
|
|
/* 47 */ { 0, BX_IA_ERROR },
|
|
/* 48 */ { 0, BX_IA_ERROR },
|
|
/* 49 */ { 0, BX_IA_ERROR },
|
|
/* 4A */ { 0, BX_IA_ERROR },
|
|
/* 4B */ { 0, BX_IA_ERROR },
|
|
/* 4C */ { 0, BX_IA_ERROR },
|
|
/* 4D */ { 0, BX_IA_ERROR },
|
|
/* 4E */ { 0, BX_IA_ERROR },
|
|
/* 4F */ { 0, BX_IA_ERROR },
|
|
/* 50 */ { BxPrefixSSE, BX_IA_VMOVMSKPS_GdVRps, BxOpcodeGroupAVX_0f50R },
|
|
/* 51 */ { BxPrefixSSE, BX_IA_VSQRTPS_VpsWps, BxOpcodeGroupAVX_0f51 },
|
|
/* 52 */ { BxPrefixSSE, BX_IA_VRSQRTPS_VpsWps, BxOpcodeGroupAVX_0f52 },
|
|
/* 53 */ { BxPrefixSSE, BX_IA_VRCPPS_VpsWps, BxOpcodeGroupAVX_0f53 },
|
|
/* 54 */ { BxPrefixSSE, BX_IA_VANDPS_VpsWps, BxOpcodeGroupAVX_0f54 },
|
|
/* 55 */ { BxPrefixSSE, BX_IA_VANDNPS_VpsWps, BxOpcodeGroupAVX_0f55 },
|
|
/* 56 */ { BxPrefixSSE, BX_IA_VORPS_VpsWps, BxOpcodeGroupAVX_0f56 },
|
|
/* 57 */ { BxPrefixSSE, BX_IA_VXORPS_VpsWps, BxOpcodeGroupAVX_0f57 },
|
|
/* 58 */ { BxPrefixSSE, BX_IA_VADDPS_VpsWps, BxOpcodeGroupAVX_0f58 },
|
|
/* 59 */ { BxPrefixSSE, BX_IA_VMULPS_VpsWps, BxOpcodeGroupAVX_0f59 },
|
|
/* 5A */ { BxPrefixSSE, BX_IA_VCVTPS2PD_VpdWps, BxOpcodeGroupAVX_0f5a },
|
|
/* 5B */ { BxPrefixSSE, BX_IA_VCVTDQ2PS_VpsWdq, BxOpcodeGroupAVX_0f5b },
|
|
/* 5C */ { BxPrefixSSE, BX_IA_VSUBPS_VpsWps, BxOpcodeGroupAVX_0f5c },
|
|
/* 5D */ { BxPrefixSSE, BX_IA_VMINPS_VpsWps, BxOpcodeGroupAVX_0f5d },
|
|
/* 5E */ { BxPrefixSSE, BX_IA_VDIVPS_VpsWps, BxOpcodeGroupAVX_0f5e },
|
|
/* 5F */ { BxPrefixSSE, BX_IA_VMAXPS_VpsWps, BxOpcodeGroupAVX_0f5f },
|
|
/* 60 */ { BxPrefixSSE66, BX_IA_VPUNPCKLBW_VdqWdq },
|
|
/* 61 */ { BxPrefixSSE66, BX_IA_VPUNPCKLWD_VdqWdq },
|
|
/* 62 */ { BxPrefixSSE66, BX_IA_VPUNPCKLDQ_VdqWdq },
|
|
/* 63 */ { BxPrefixSSE66, BX_IA_VPACKSSWB_VdqWdq },
|
|
/* 64 */ { BxPrefixSSE66, BX_IA_VPCMPGTB_VdqWdq },
|
|
/* 65 */ { BxPrefixSSE66, BX_IA_VPCMPGTW_VdqWdq },
|
|
/* 66 */ { BxPrefixSSE66, BX_IA_VPCMPGTD_VdqWdq },
|
|
/* 67 */ { BxPrefixSSE66, BX_IA_VPACKUSWB_VdqWdq },
|
|
/* 68 */ { BxPrefixSSE66, BX_IA_VPUNPCKHBW_VdqWdq },
|
|
/* 69 */ { BxPrefixSSE66, BX_IA_VPUNPCKHWD_VdqWdq },
|
|
/* 6A */ { BxPrefixSSE66, BX_IA_VPUNPCKHDQ_VdqWdq },
|
|
/* 6B */ { BxPrefixSSE66, BX_IA_VPACKSSDW_VdqWdq },
|
|
/* 6C */ { BxPrefixSSE66, BX_IA_VPUNPCKLQDQ_VdqWdq },
|
|
/* 6D */ { BxPrefixSSE66, BX_IA_VPUNPCKHQDQ_VdqWdq },
|
|
/* 6E */ { BxSplitVexW, BX_IA_ERROR, BxOpcodeInfoAVX_VexW_0f6e },
|
|
/* 6F */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupAVX_0f6f },
|
|
/* 70 */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeGroupAVX_0f70 },
|
|
/* 71 */ { BxGroup12, BX_IA_ERROR, BxOpcodeInfoAVXG12R },
|
|
/* 72 */ { BxGroup13, BX_IA_ERROR, BxOpcodeInfoAVXG13R },
|
|
/* 73 */ { BxGroup14, BX_IA_ERROR, BxOpcodeInfoAVXG14R },
|
|
/* 74 */ { BxPrefixSSE66, BX_IA_VPCMPEQB_VdqWdq },
|
|
/* 75 */ { BxPrefixSSE66, BX_IA_VPCMPEQW_VdqWdq },
|
|
/* 76 */ { BxPrefixSSE66, BX_IA_VPCMPEQD_VdqWdq },
|
|
/* 77 */ { BxPrefixSSE, BX_IA_VZEROUPPER, BxOpcodeGroupSSE_ERR },
|
|
/* 78 */ { 0, BX_IA_ERROR },
|
|
/* 79 */ { 0, BX_IA_ERROR },
|
|
/* 7A */ { 0, BX_IA_ERROR },
|
|
/* 7B */ { 0, BX_IA_ERROR },
|
|
/* 7C */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupAVX_0f7c },
|
|
/* 7D */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupAVX_0f7d },
|
|
/* 7E */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupAVX_0f7e },
|
|
/* 7F */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupAVX_0f7f },
|
|
/* 80 */ { 0, BX_IA_ERROR },
|
|
/* 81 */ { 0, BX_IA_ERROR },
|
|
/* 82 */ { 0, BX_IA_ERROR },
|
|
/* 83 */ { 0, BX_IA_ERROR },
|
|
/* 84 */ { 0, BX_IA_ERROR },
|
|
/* 85 */ { 0, BX_IA_ERROR },
|
|
/* 86 */ { 0, BX_IA_ERROR },
|
|
/* 87 */ { 0, BX_IA_ERROR },
|
|
/* 88 */ { 0, BX_IA_ERROR },
|
|
/* 89 */ { 0, BX_IA_ERROR },
|
|
/* 8A */ { 0, BX_IA_ERROR },
|
|
/* 8B */ { 0, BX_IA_ERROR },
|
|
/* 8C */ { 0, BX_IA_ERROR },
|
|
/* 8D */ { 0, BX_IA_ERROR },
|
|
/* 8E */ { 0, BX_IA_ERROR },
|
|
/* 8F */ { 0, BX_IA_ERROR },
|
|
/* 90 */ { 0, BX_IA_ERROR },
|
|
/* 91 */ { 0, BX_IA_ERROR },
|
|
/* 92 */ { 0, BX_IA_ERROR },
|
|
/* 93 */ { 0, BX_IA_ERROR },
|
|
/* 94 */ { 0, BX_IA_ERROR },
|
|
/* 95 */ { 0, BX_IA_ERROR },
|
|
/* 96 */ { 0, BX_IA_ERROR },
|
|
/* 97 */ { 0, BX_IA_ERROR },
|
|
/* 98 */ { 0, BX_IA_ERROR },
|
|
/* 99 */ { 0, BX_IA_ERROR },
|
|
/* 9A */ { 0, BX_IA_ERROR },
|
|
/* 9B */ { 0, BX_IA_ERROR },
|
|
/* 9C */ { 0, BX_IA_ERROR },
|
|
/* 9D */ { 0, BX_IA_ERROR },
|
|
/* 9E */ { 0, BX_IA_ERROR },
|
|
/* 9F */ { 0, BX_IA_ERROR },
|
|
/* A0 */ { 0, BX_IA_ERROR },
|
|
/* A1 */ { 0, BX_IA_ERROR },
|
|
/* A2 */ { 0, BX_IA_ERROR },
|
|
/* A3 */ { 0, BX_IA_ERROR },
|
|
/* A4 */ { 0, BX_IA_ERROR },
|
|
/* A5 */ { 0, BX_IA_ERROR },
|
|
/* A6 */ { 0, BX_IA_ERROR },
|
|
/* A7 */ { 0, BX_IA_ERROR },
|
|
/* A8 */ { 0, BX_IA_ERROR },
|
|
/* A9 */ { 0, BX_IA_ERROR },
|
|
/* AA */ { 0, BX_IA_ERROR },
|
|
/* AB */ { 0, BX_IA_ERROR },
|
|
/* AC */ { 0, BX_IA_ERROR },
|
|
/* AD */ { 0, BX_IA_ERROR },
|
|
/* AE */ { BxGroupN, BX_IA_ERROR, BxOpcodeInfoAVXG15M },
|
|
/* AF */ { 0, BX_IA_ERROR },
|
|
/* B0 */ { 0, BX_IA_ERROR },
|
|
/* B1 */ { 0, BX_IA_ERROR },
|
|
/* B2 */ { 0, BX_IA_ERROR },
|
|
/* B3 */ { 0, BX_IA_ERROR },
|
|
/* B4 */ { 0, BX_IA_ERROR },
|
|
/* B5 */ { 0, BX_IA_ERROR },
|
|
/* B6 */ { 0, BX_IA_ERROR },
|
|
/* B7 */ { 0, BX_IA_ERROR },
|
|
/* B8 */ { 0, BX_IA_ERROR },
|
|
/* B9 */ { 0, BX_IA_ERROR },
|
|
/* BA */ { 0, BX_IA_ERROR },
|
|
/* BB */ { 0, BX_IA_ERROR },
|
|
/* BC */ { 0, BX_IA_ERROR },
|
|
/* BD */ { 0, BX_IA_ERROR },
|
|
/* BE */ { 0, BX_IA_ERROR },
|
|
/* BF */ { 0, BX_IA_ERROR },
|
|
/* C0 */ { 0, BX_IA_ERROR },
|
|
/* C1 */ { 0, BX_IA_ERROR },
|
|
/* C2 */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_VCMPPS_VpsWpsIb, BxOpcodeGroupAVX_0fc2 },
|
|
/* C3 */ { 0, BX_IA_ERROR },
|
|
/* C4 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPINSRW_VdqEwIb },
|
|
/* C5 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPEXTRW_GdUdqIb },
|
|
/* C6 */ { BxPrefixSSE | BxImmediate_Ib, BX_IA_VSHUFPS_VpsWpsIb, BxOpcodeGroupAVX_0fc6 },
|
|
/* C7 */ { 0, BX_IA_ERROR },
|
|
/* C8 */ { 0, BX_IA_ERROR },
|
|
/* C9 */ { 0, BX_IA_ERROR },
|
|
/* CA */ { 0, BX_IA_ERROR },
|
|
/* CB */ { 0, BX_IA_ERROR },
|
|
/* CC */ { 0, BX_IA_ERROR },
|
|
/* CD */ { 0, BX_IA_ERROR },
|
|
/* CE */ { 0, BX_IA_ERROR },
|
|
/* CF */ { 0, BX_IA_ERROR },
|
|
/* D0 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupAVX_0fd0 },
|
|
/* D1 */ { BxPrefixSSE66, BX_IA_VPSRLW_VdqWdq },
|
|
/* D2 */ { BxPrefixSSE66, BX_IA_VPSRLD_VdqWdq },
|
|
/* D3 */ { BxPrefixSSE66, BX_IA_VPSRLQ_VdqWdq },
|
|
/* D4 */ { BxPrefixSSE66, BX_IA_VPADDQ_VdqWdq },
|
|
/* D5 */ { BxPrefixSSE66, BX_IA_VPMULLW_VdqWdq },
|
|
/* D6 */ { BxPrefixSSE66 | BxArithDstRM, BX_IA_VMOVQ_WqVq },
|
|
/* D7 */ { BxPrefixSSE66, BX_IA_VPMOVMSKB_GdUdq },
|
|
/* D8 */ { BxPrefixSSE66, BX_IA_VPSUBUSB_VdqWdq },
|
|
/* D9 */ { BxPrefixSSE66, BX_IA_VPSUBUSW_VdqWdq },
|
|
/* DA */ { BxPrefixSSE66, BX_IA_VPMINUB_VdqWdq },
|
|
/* DB */ { BxPrefixSSE66, BX_IA_VPAND_VdqWdq },
|
|
/* DC */ { BxPrefixSSE66, BX_IA_VPADDUSB_VdqWdq },
|
|
/* DD */ { BxPrefixSSE66, BX_IA_VPADDUSW_VdqWdq },
|
|
/* DE */ { BxPrefixSSE66, BX_IA_VPMAXUB_VdqWdq },
|
|
/* DF */ { BxPrefixSSE66, BX_IA_VPANDN_VdqWdq },
|
|
/* E0 */ { BxPrefixSSE66, BX_IA_VPAVGB_VdqWdq },
|
|
/* E1 */ { BxPrefixSSE66, BX_IA_VPSRAW_VdqWdq },
|
|
/* E2 */ { BxPrefixSSE66, BX_IA_VPSRAD_VdqWdq },
|
|
/* E3 */ { BxPrefixSSE66, BX_IA_VPAVGW_VdqWdq },
|
|
/* E4 */ { BxPrefixSSE66, BX_IA_VPMULHUW_VdqWdq },
|
|
/* E5 */ { BxPrefixSSE66, BX_IA_VPMULHW_VdqWdq },
|
|
/* E6 */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupAVX_0fe6 },
|
|
/* E7 */ { BxPrefixSSE66, BX_IA_VMOVNTDQ_MdqVdq },
|
|
/* E8 */ { BxPrefixSSE66, BX_IA_VPSUBSB_VdqWdq },
|
|
/* E9 */ { BxPrefixSSE66, BX_IA_VPSUBSW_VdqWdq },
|
|
/* EA */ { BxPrefixSSE66, BX_IA_VPMINSW_VdqWdq },
|
|
/* EB */ { BxPrefixSSE66, BX_IA_VPOR_VdqWdq },
|
|
/* EC */ { BxPrefixSSE66, BX_IA_VPADDSB_VdqWdq },
|
|
/* ED */ { BxPrefixSSE66, BX_IA_VPADDSW_VdqWdq },
|
|
/* EE */ { BxPrefixSSE66, BX_IA_VPMAXSW_VdqWdq },
|
|
/* EF */ { BxPrefixSSE66, BX_IA_VPXOR_VdqWdq },
|
|
/* F0 */ { BxPrefixSSEF2, BX_IA_VLDDQU_VdqMdq },
|
|
/* F1 */ { BxPrefixSSE66, BX_IA_VPSLLW_VdqWdq },
|
|
/* F2 */ { BxPrefixSSE66, BX_IA_VPSLLD_VdqWdq },
|
|
/* F3 */ { BxPrefixSSE66, BX_IA_VPSLLQ_VdqWdq },
|
|
/* F4 */ { BxPrefixSSE66, BX_IA_VPMULUDQ_VdqWdq },
|
|
/* F5 */ { BxPrefixSSE66, BX_IA_VPMADDWD_VdqWdq },
|
|
/* F6 */ { BxPrefixSSE66, BX_IA_VPSADBW_VdqWdq },
|
|
/* F7 */ { BxPrefixSSE66, BX_IA_VMASKMOVDQU_VdqUdq },
|
|
/* F8 */ { BxPrefixSSE66, BX_IA_VPSUBB_VdqWdq },
|
|
/* F9 */ { BxPrefixSSE66, BX_IA_VPSUBW_VdqWdq },
|
|
/* FA */ { BxPrefixSSE66, BX_IA_VPSUBD_VdqWdq },
|
|
/* FB */ { BxPrefixSSE66, BX_IA_VPSUBQ_VdqWdq },
|
|
/* FC */ { BxPrefixSSE66, BX_IA_VPADDB_VdqWdq },
|
|
/* FD */ { BxPrefixSSE66, BX_IA_VPADDW_VdqWdq },
|
|
/* FE */ { BxPrefixSSE66, BX_IA_VPADDD_VdqWdq },
|
|
/* FF */ { 0, BX_IA_ERROR },
|
|
|
|
// 256 entries for VEX-encoded 0x0F 0x38 opcodes
|
|
/* 00 */ { BxPrefixSSE66, BX_IA_VPSHUFB_VdqWdq },
|
|
/* 01 */ { BxPrefixSSE66, BX_IA_VPHADDW_VdqWdq },
|
|
/* 02 */ { BxPrefixSSE66, BX_IA_VPHADDD_VdqWdq },
|
|
/* 03 */ { BxPrefixSSE66, BX_IA_VPHADDSW_VdqWdq },
|
|
/* 04 */ { BxPrefixSSE66, BX_IA_VPMADDUBSW_VdqWdq },
|
|
/* 05 */ { BxPrefixSSE66, BX_IA_VPHSUBW_VdqWdq },
|
|
/* 06 */ { BxPrefixSSE66, BX_IA_VPHSUBD_VdqWdq },
|
|
/* 07 */ { BxPrefixSSE66, BX_IA_VPHSUBSW_VdqWdq },
|
|
/* 08 */ { BxPrefixSSE66, BX_IA_VPSIGNB_VdqWdq },
|
|
/* 09 */ { BxPrefixSSE66, BX_IA_VPSIGNW_VdqWdq },
|
|
/* 0A */ { BxPrefixSSE66, BX_IA_VPSIGND_VdqWdq },
|
|
/* 0B */ { BxPrefixSSE66, BX_IA_VPMULHRSW_VdqWdq },
|
|
/* 0C */ { BxPrefixSSE66 | BxVexW0, BX_IA_VPERMILPS_VpsWps },
|
|
/* 0D */ { BxPrefixSSE66 | BxVexW0, BX_IA_VPERMILPD_VpdWpd },
|
|
/* 0E */ { BxPrefixSSE66 | BxVexW0, BX_IA_VTESTPS_VpsWps },
|
|
/* 0F */ { BxPrefixSSE66 | BxVexW0, BX_IA_VTESTPD_VpdWpd },
|
|
/* 10 */ { 0, BX_IA_ERROR },
|
|
/* 11 */ { 0, BX_IA_ERROR },
|
|
/* 12 */ { 0, BX_IA_ERROR },
|
|
/* 13 */ { BxPrefixSSE66 | BxVexW0, BX_IA_VCVTPH2PS_VpsWps },
|
|
/* 14 */ { 0, BX_IA_ERROR },
|
|
/* 15 */ { 0, BX_IA_ERROR },
|
|
/* 16 */ { 0, BX_IA_ERROR },
|
|
/* 17 */ { BxPrefixSSE66, BX_IA_VPTEST_VdqWdq },
|
|
/* 18 */ { BxPrefixSSE66 | BxVexW0, BX_IA_VBROADCASTSS_VpsMss },
|
|
/* 19 */ { BxPrefixSSE66 | BxVexW0, BX_IA_VBROADCASTSD_VpdMsd },
|
|
/* 1A */ { BxPrefixSSE66 | BxVexW0, BX_IA_VBROADCASTF128_VdqMdq },
|
|
/* 1B */ { 0, BX_IA_ERROR },
|
|
/* 1C */ { BxPrefixSSE66, BX_IA_VPABSB_VdqWdq },
|
|
/* 1D */ { BxPrefixSSE66, BX_IA_VPABSW_VdqWdq },
|
|
/* 1E */ { BxPrefixSSE66, BX_IA_VPABSD_VdqWdq },
|
|
/* 1F */ { 0, BX_IA_ERROR },
|
|
/* 20 */ { BxPrefixSSE66, BX_IA_VPMOVSXBW_VdqWq },
|
|
/* 21 */ { BxPrefixSSE66, BX_IA_VPMOVSXBD_VdqWd },
|
|
/* 22 */ { BxPrefixSSE66, BX_IA_VPMOVSXBQ_VdqWw },
|
|
/* 23 */ { BxPrefixSSE66, BX_IA_VPMOVSXWD_VdqWq },
|
|
/* 24 */ { BxPrefixSSE66, BX_IA_VPMOVSXWQ_VdqWd },
|
|
/* 25 */ { BxPrefixSSE66, BX_IA_VPMOVSXDQ_VdqWq },
|
|
/* 26 */ { 0, BX_IA_ERROR },
|
|
/* 27 */ { 0, BX_IA_ERROR },
|
|
/* 28 */ { BxPrefixSSE66, BX_IA_VPMULDQ_VdqWdq },
|
|
/* 29 */ { BxPrefixSSE66, BX_IA_VPCMPEQQ_VdqWdq },
|
|
/* 2A */ { BxPrefixSSE66, BX_IA_VMOVNTDQA_VdqMdq },
|
|
/* 2B */ { BxPrefixSSE66, BX_IA_VPACKUSDW_VdqWdq },
|
|
/* 2C */ { BxPrefixSSE66 | BxVexW0, BX_IA_VMASKMOVPS_VpsMps },
|
|
/* 2D */ { BxPrefixSSE66 | BxVexW0, BX_IA_VMASKMOVPD_VpdMpd },
|
|
/* 2E */ { BxPrefixSSE66 | BxVexW0, BX_IA_VMASKMOVPS_MpsVps },
|
|
/* 2F */ { BxPrefixSSE66 | BxVexW0, BX_IA_VMASKMOVPD_MpdVpd },
|
|
/* 30 */ { BxPrefixSSE66, BX_IA_VPMOVZXBW_VdqWq },
|
|
/* 31 */ { BxPrefixSSE66, BX_IA_VPMOVZXBD_VdqWd },
|
|
/* 32 */ { BxPrefixSSE66, BX_IA_VPMOVZXBQ_VdqWw },
|
|
/* 33 */ { BxPrefixSSE66, BX_IA_VPMOVZXWD_VdqWq },
|
|
/* 34 */ { BxPrefixSSE66, BX_IA_VPMOVZXWQ_VdqWd },
|
|
/* 35 */ { BxPrefixSSE66, BX_IA_VPMOVZXDQ_VdqWq },
|
|
/* 36 */ { 0, BX_IA_ERROR },
|
|
/* 37 */ { BxPrefixSSE66, BX_IA_VPCMPGTQ_VdqWdq },
|
|
/* 38 */ { BxPrefixSSE66, BX_IA_VPMINSB_VdqWdq },
|
|
/* 39 */ { BxPrefixSSE66, BX_IA_VPMINSD_VdqWdq },
|
|
/* 3A */ { BxPrefixSSE66, BX_IA_VPMINUW_VdqWdq },
|
|
/* 3B */ { BxPrefixSSE66, BX_IA_VPMINUD_VdqWdq },
|
|
/* 3C */ { BxPrefixSSE66, BX_IA_VPMAXSB_VdqWdq },
|
|
/* 3D */ { BxPrefixSSE66, BX_IA_VPMAXSD_VdqWdq },
|
|
/* 3E */ { BxPrefixSSE66, BX_IA_VPMAXUW_VdqWdq },
|
|
/* 3F */ { BxPrefixSSE66, BX_IA_VPMAXUD_VdqWdq },
|
|
/* 40 */ { BxPrefixSSE66, BX_IA_VPMULLD_VdqWdq },
|
|
/* 41 */ { BxPrefixSSE66, BX_IA_VPHMINPOSUW_VdqWdq },
|
|
/* 42 */ { 0, BX_IA_ERROR },
|
|
/* 43 */ { 0, BX_IA_ERROR },
|
|
/* 44 */ { 0, BX_IA_ERROR },
|
|
/* 45 */ { 0, BX_IA_ERROR },
|
|
/* 46 */ { 0, BX_IA_ERROR },
|
|
/* 47 */ { 0, BX_IA_ERROR },
|
|
/* 48 */ { 0, BX_IA_ERROR },
|
|
/* 49 */ { 0, BX_IA_ERROR },
|
|
/* 4A */ { 0, BX_IA_ERROR },
|
|
/* 4B */ { 0, BX_IA_ERROR },
|
|
/* 4C */ { 0, BX_IA_ERROR },
|
|
/* 4D */ { 0, BX_IA_ERROR },
|
|
/* 4E */ { 0, BX_IA_ERROR },
|
|
/* 4F */ { 0, BX_IA_ERROR },
|
|
/* 50 */ { 0, BX_IA_ERROR },
|
|
/* 51 */ { 0, BX_IA_ERROR },
|
|
/* 52 */ { 0, BX_IA_ERROR },
|
|
/* 53 */ { 0, BX_IA_ERROR },
|
|
/* 54 */ { 0, BX_IA_ERROR },
|
|
/* 55 */ { 0, BX_IA_ERROR },
|
|
/* 56 */ { 0, BX_IA_ERROR },
|
|
/* 57 */ { 0, BX_IA_ERROR },
|
|
/* 58 */ { 0, BX_IA_ERROR },
|
|
/* 59 */ { 0, BX_IA_ERROR },
|
|
/* 5A */ { 0, BX_IA_ERROR },
|
|
/* 5B */ { 0, BX_IA_ERROR },
|
|
/* 5C */ { 0, BX_IA_ERROR },
|
|
/* 5D */ { 0, BX_IA_ERROR },
|
|
/* 5E */ { 0, BX_IA_ERROR },
|
|
/* 5F */ { 0, BX_IA_ERROR },
|
|
/* 60 */ { 0, BX_IA_ERROR },
|
|
/* 61 */ { 0, BX_IA_ERROR },
|
|
/* 62 */ { 0, BX_IA_ERROR },
|
|
/* 63 */ { 0, BX_IA_ERROR },
|
|
/* 64 */ { 0, BX_IA_ERROR },
|
|
/* 65 */ { 0, BX_IA_ERROR },
|
|
/* 66 */ { 0, BX_IA_ERROR },
|
|
/* 67 */ { 0, BX_IA_ERROR },
|
|
/* 68 */ { 0, BX_IA_ERROR },
|
|
/* 69 */ { 0, BX_IA_ERROR },
|
|
/* 6A */ { 0, BX_IA_ERROR },
|
|
/* 6B */ { 0, BX_IA_ERROR },
|
|
/* 6C */ { 0, BX_IA_ERROR },
|
|
/* 6D */ { 0, BX_IA_ERROR },
|
|
/* 6E */ { 0, BX_IA_ERROR },
|
|
/* 6F */ { 0, BX_IA_ERROR },
|
|
/* 70 */ { 0, BX_IA_ERROR },
|
|
/* 71 */ { 0, BX_IA_ERROR },
|
|
/* 72 */ { 0, BX_IA_ERROR },
|
|
/* 73 */ { 0, BX_IA_ERROR },
|
|
/* 74 */ { 0, BX_IA_ERROR },
|
|
/* 75 */ { 0, BX_IA_ERROR },
|
|
/* 76 */ { 0, BX_IA_ERROR },
|
|
/* 77 */ { 0, BX_IA_ERROR },
|
|
/* 78 */ { 0, BX_IA_ERROR },
|
|
/* 79 */ { 0, BX_IA_ERROR },
|
|
/* 7A */ { 0, BX_IA_ERROR },
|
|
/* 7B */ { 0, BX_IA_ERROR },
|
|
/* 7C */ { 0, BX_IA_ERROR },
|
|
/* 7D */ { 0, BX_IA_ERROR },
|
|
/* 7E */ { 0, BX_IA_ERROR },
|
|
/* 7F */ { 0, BX_IA_ERROR },
|
|
/* 80 */ { 0, BX_IA_ERROR },
|
|
/* 81 */ { 0, BX_IA_ERROR },
|
|
/* 82 */ { 0, BX_IA_ERROR },
|
|
/* 83 */ { 0, BX_IA_ERROR },
|
|
/* 84 */ { 0, BX_IA_ERROR },
|
|
/* 85 */ { 0, BX_IA_ERROR },
|
|
/* 86 */ { 0, BX_IA_ERROR },
|
|
/* 87 */ { 0, BX_IA_ERROR },
|
|
/* 88 */ { 0, BX_IA_ERROR },
|
|
/* 89 */ { 0, BX_IA_ERROR },
|
|
/* 8A */ { 0, BX_IA_ERROR },
|
|
/* 8B */ { 0, BX_IA_ERROR },
|
|
/* 8C */ { 0, BX_IA_ERROR },
|
|
/* 8D */ { 0, BX_IA_ERROR },
|
|
/* 8E */ { 0, BX_IA_ERROR },
|
|
/* 8F */ { 0, BX_IA_ERROR },
|
|
/* 90 */ { 0, BX_IA_ERROR },
|
|
/* 91 */ { 0, BX_IA_ERROR },
|
|
/* 92 */ { 0, BX_IA_ERROR },
|
|
/* 93 */ { 0, BX_IA_ERROR },
|
|
/* 94 */ { 0, BX_IA_ERROR },
|
|
/* 95 */ { 0, BX_IA_ERROR },
|
|
/* 96 */ { 0, BX_IA_ERROR },
|
|
/* 97 */ { 0, BX_IA_ERROR },
|
|
/* 98 */ { 0, BX_IA_ERROR },
|
|
/* 99 */ { 0, BX_IA_ERROR },
|
|
/* 9A */ { 0, BX_IA_ERROR },
|
|
/* 9B */ { 0, BX_IA_ERROR },
|
|
/* 9C */ { 0, BX_IA_ERROR },
|
|
/* 9D */ { 0, BX_IA_ERROR },
|
|
/* 9E */ { 0, BX_IA_ERROR },
|
|
/* 9F */ { 0, BX_IA_ERROR },
|
|
/* A0 */ { 0, BX_IA_ERROR },
|
|
/* A1 */ { 0, BX_IA_ERROR },
|
|
/* A2 */ { 0, BX_IA_ERROR },
|
|
/* A3 */ { 0, BX_IA_ERROR },
|
|
/* A4 */ { 0, BX_IA_ERROR },
|
|
/* A5 */ { 0, BX_IA_ERROR },
|
|
/* A6 */ { 0, BX_IA_ERROR },
|
|
/* A7 */ { 0, BX_IA_ERROR },
|
|
/* A8 */ { 0, BX_IA_ERROR },
|
|
/* A9 */ { 0, BX_IA_ERROR },
|
|
/* AA */ { 0, BX_IA_ERROR },
|
|
/* AB */ { 0, BX_IA_ERROR },
|
|
/* AC */ { 0, BX_IA_ERROR },
|
|
/* AD */ { 0, BX_IA_ERROR },
|
|
/* AE */ { 0, BX_IA_ERROR },
|
|
/* AF */ { 0, BX_IA_ERROR },
|
|
/* B0 */ { 0, BX_IA_ERROR },
|
|
/* B1 */ { 0, BX_IA_ERROR },
|
|
/* B2 */ { 0, BX_IA_ERROR },
|
|
/* B3 */ { 0, BX_IA_ERROR },
|
|
/* B4 */ { 0, BX_IA_ERROR },
|
|
/* B5 */ { 0, BX_IA_ERROR },
|
|
/* B6 */ { 0, BX_IA_ERROR },
|
|
/* B7 */ { 0, BX_IA_ERROR },
|
|
/* B8 */ { 0, BX_IA_ERROR },
|
|
/* B9 */ { 0, BX_IA_ERROR },
|
|
/* BA */ { 0, BX_IA_ERROR },
|
|
/* BB */ { 0, BX_IA_ERROR },
|
|
/* BC */ { 0, BX_IA_ERROR },
|
|
/* BD */ { 0, BX_IA_ERROR },
|
|
/* BE */ { 0, BX_IA_ERROR },
|
|
/* BF */ { 0, BX_IA_ERROR },
|
|
/* C0 */ { 0, BX_IA_ERROR },
|
|
/* C1 */ { 0, BX_IA_ERROR },
|
|
/* C2 */ { 0, BX_IA_ERROR },
|
|
/* C3 */ { 0, BX_IA_ERROR },
|
|
/* C4 */ { 0, BX_IA_ERROR },
|
|
/* C5 */ { 0, BX_IA_ERROR },
|
|
/* C6 */ { 0, BX_IA_ERROR },
|
|
/* C7 */ { 0, BX_IA_ERROR },
|
|
/* C8 */ { 0, BX_IA_ERROR },
|
|
/* C9 */ { 0, BX_IA_ERROR },
|
|
/* CA */ { 0, BX_IA_ERROR },
|
|
/* CB */ { 0, BX_IA_ERROR },
|
|
/* CC */ { 0, BX_IA_ERROR },
|
|
/* CD */ { 0, BX_IA_ERROR },
|
|
/* CE */ { 0, BX_IA_ERROR },
|
|
/* CF */ { 0, BX_IA_ERROR },
|
|
/* D0 */ { 0, BX_IA_ERROR },
|
|
/* D1 */ { 0, BX_IA_ERROR },
|
|
/* D2 */ { 0, BX_IA_ERROR },
|
|
/* D3 */ { 0, BX_IA_ERROR },
|
|
/* D4 */ { 0, BX_IA_ERROR },
|
|
/* D5 */ { 0, BX_IA_ERROR },
|
|
/* D6 */ { 0, BX_IA_ERROR },
|
|
/* D7 */ { 0, BX_IA_ERROR },
|
|
/* D8 */ { 0, BX_IA_ERROR },
|
|
/* D9 */ { 0, BX_IA_ERROR },
|
|
/* DA */ { 0, BX_IA_ERROR },
|
|
/* DB */ { BxPrefixSSE66, BX_IA_VAESIMC_VdqWdq },
|
|
/* DC */ { BxPrefixSSE66, BX_IA_VAESENC_VdqWdq },
|
|
/* DD */ { BxPrefixSSE66, BX_IA_VAESENCLAST_VdqWdq },
|
|
/* DE */ { BxPrefixSSE66, BX_IA_VAESDEC_VdqWdq },
|
|
/* DF */ { BxPrefixSSE66, BX_IA_VAESDECLAST_VdqWdq },
|
|
/* E0 */ { 0, BX_IA_ERROR },
|
|
/* E1 */ { 0, BX_IA_ERROR },
|
|
/* E2 */ { 0, BX_IA_ERROR },
|
|
/* E3 */ { 0, BX_IA_ERROR },
|
|
/* E4 */ { 0, BX_IA_ERROR },
|
|
/* E5 */ { 0, BX_IA_ERROR },
|
|
/* E6 */ { 0, BX_IA_ERROR },
|
|
/* E7 */ { 0, BX_IA_ERROR },
|
|
/* E8 */ { 0, BX_IA_ERROR },
|
|
/* E9 */ { 0, BX_IA_ERROR },
|
|
/* EA */ { 0, BX_IA_ERROR },
|
|
/* EB */ { 0, BX_IA_ERROR },
|
|
/* EC */ { 0, BX_IA_ERROR },
|
|
/* ED */ { 0, BX_IA_ERROR },
|
|
/* EE */ { 0, BX_IA_ERROR },
|
|
/* EF */ { 0, BX_IA_ERROR },
|
|
/* F0 */ { 0, BX_IA_ERROR },
|
|
/* F1 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F4 */ { 0, BX_IA_ERROR },
|
|
/* F5 */ { 0, BX_IA_ERROR },
|
|
/* F6 */ { 0, BX_IA_ERROR },
|
|
/* F7 */ { 0, BX_IA_ERROR },
|
|
/* F8 */ { 0, BX_IA_ERROR },
|
|
/* F9 */ { 0, BX_IA_ERROR },
|
|
/* FA */ { 0, BX_IA_ERROR },
|
|
/* FB */ { 0, BX_IA_ERROR },
|
|
/* FC */ { 0, BX_IA_ERROR },
|
|
/* FD */ { 0, BX_IA_ERROR },
|
|
/* FE */ { 0, BX_IA_ERROR },
|
|
/* FF */ { 0, BX_IA_ERROR },
|
|
|
|
// 256 entries for VEX-encoded 0x0F 0x3A opcodes
|
|
/* 00 */ { 0, BX_IA_ERROR },
|
|
/* 01 */ { 0, BX_IA_ERROR },
|
|
/* 02 */ { 0, BX_IA_ERROR },
|
|
/* 03 */ { 0, BX_IA_ERROR },
|
|
/* 04 */ { BxPrefixSSE66 | BxVexW0 | BxImmediate_Ib, BX_IA_VPERMILPS_VpsWpsIb },
|
|
/* 05 */ { BxPrefixSSE66 | BxVexW0 | BxImmediate_Ib, BX_IA_VPERMILPD_VpdWpdIb },
|
|
/* 06 */ { BxPrefixSSE66 | BxVexW0 | BxImmediate_Ib, BX_IA_VPERM2F128_VdqWdqIb },
|
|
/* 07 */ { 0, BX_IA_ERROR },
|
|
/* 08 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VROUNDPS_VpsWpsIb },
|
|
/* 09 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VROUNDPD_VpdWpdIb },
|
|
/* 0A */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VROUNDSS_VssWssIb },
|
|
/* 0B */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VROUNDSD_VsdWsdIb },
|
|
/* 0C */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VBLENDPS_VpsWpsIb },
|
|
/* 0D */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VBLENDPD_VpdWpdIb },
|
|
/* 0E */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPBLENDW_VdqWdqIb },
|
|
/* 0F */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPALIGNR_VdqWdqIb },
|
|
/* 10 */ { 0, BX_IA_ERROR },
|
|
/* 11 */ { 0, BX_IA_ERROR },
|
|
/* 12 */ { 0, BX_IA_ERROR },
|
|
/* 13 */ { 0, BX_IA_ERROR },
|
|
/* 14 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPEXTRB_EbdVdqIb },
|
|
/* 15 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPEXTRW_EwdVdqIb },
|
|
/* 16 */ { BxSplitVexW | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoAVX_VexW_0f3a16 },
|
|
/* 17 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VEXTRACTPS_EdVpsIb },
|
|
/* 18 */ { BxPrefixSSE66 | BxVexW0 | BxImmediate_Ib, BX_IA_VINSERTF128_VdqWdqIb },
|
|
/* 19 */ { BxPrefixSSE66 | BxVexW0 | BxImmediate_Ib, BX_IA_VEXTRACTF128_WdqVdqIb },
|
|
/* 1A */ { 0, BX_IA_ERROR },
|
|
/* 1B */ { 0, BX_IA_ERROR },
|
|
/* 1C */ { 0, BX_IA_ERROR },
|
|
/* 1D */ { BxPrefixSSE66 | BxVexW0 | BxImmediate_Ib, BX_IA_VCVTPS2PH_WpsVpsIb },
|
|
/* 1E */ { 0, BX_IA_ERROR },
|
|
/* 1F */ { 0, BX_IA_ERROR },
|
|
/* 20 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPINSRB_VdqEbIb },
|
|
/* 21 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VINSERTPS_VpsWssIb },
|
|
/* 22 */ { BxSplitVexW | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoAVX_VexW_0f3a22 },
|
|
/* 23 */ { 0, BX_IA_ERROR },
|
|
/* 24 */ { 0, BX_IA_ERROR },
|
|
/* 25 */ { 0, BX_IA_ERROR },
|
|
/* 26 */ { 0, BX_IA_ERROR },
|
|
/* 27 */ { 0, BX_IA_ERROR },
|
|
/* 28 */ { 0, BX_IA_ERROR },
|
|
/* 29 */ { 0, BX_IA_ERROR },
|
|
/* 2A */ { 0, BX_IA_ERROR },
|
|
/* 2B */ { 0, BX_IA_ERROR },
|
|
/* 2C */ { 0, BX_IA_ERROR },
|
|
/* 2D */ { 0, BX_IA_ERROR },
|
|
/* 2E */ { 0, BX_IA_ERROR },
|
|
/* 2F */ { 0, BX_IA_ERROR },
|
|
/* 30 */ { 0, BX_IA_ERROR },
|
|
/* 31 */ { 0, BX_IA_ERROR },
|
|
/* 32 */ { 0, BX_IA_ERROR },
|
|
/* 33 */ { 0, BX_IA_ERROR },
|
|
/* 34 */ { 0, BX_IA_ERROR },
|
|
/* 35 */ { 0, BX_IA_ERROR },
|
|
/* 36 */ { 0, BX_IA_ERROR },
|
|
/* 37 */ { 0, BX_IA_ERROR },
|
|
/* 38 */ { 0, BX_IA_ERROR },
|
|
/* 39 */ { 0, BX_IA_ERROR },
|
|
/* 3A */ { 0, BX_IA_ERROR },
|
|
/* 3B */ { 0, BX_IA_ERROR },
|
|
/* 3C */ { 0, BX_IA_ERROR },
|
|
/* 3D */ { 0, BX_IA_ERROR },
|
|
/* 3E */ { 0, BX_IA_ERROR },
|
|
/* 3F */ { 0, BX_IA_ERROR },
|
|
/* 40 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VDPPS_VpsWpsIb },
|
|
/* 41 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VDPPD_VpdWpdIb },
|
|
/* 42 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VMPSADBW_VdqWdqIb },
|
|
/* 43 */ { 0, BX_IA_ERROR },
|
|
/* 44 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPCLMULQDQ_VdqWdqIb },
|
|
/* 45 */ { 0, BX_IA_ERROR },
|
|
/* 46 */ { 0, BX_IA_ERROR },
|
|
/* 47 */ { 0, BX_IA_ERROR },
|
|
/* 48 */ { 0, BX_IA_ERROR },
|
|
/* 49 */ { 0, BX_IA_ERROR },
|
|
/* 4A */ { BxPrefixSSE66 | BxVexW0 | BxImmediate_Ib4, BX_IA_VBLENDVPS_VpsWpsIb },
|
|
/* 4B */ { BxPrefixSSE66 | BxVexW0 | BxImmediate_Ib4, BX_IA_VBLENDVPD_VpdWpdIb },
|
|
/* 4C */ { BxPrefixSSE66 | BxVexW0 | BxImmediate_Ib4, BX_IA_VPBLENDVB_VdqWdqIb },
|
|
/* 4D */ { 0, BX_IA_ERROR },
|
|
/* 4E */ { 0, BX_IA_ERROR },
|
|
/* 4F */ { 0, BX_IA_ERROR },
|
|
/* 50 */ { 0, BX_IA_ERROR },
|
|
/* 51 */ { 0, BX_IA_ERROR },
|
|
/* 52 */ { 0, BX_IA_ERROR },
|
|
/* 53 */ { 0, BX_IA_ERROR },
|
|
/* 54 */ { 0, BX_IA_ERROR },
|
|
/* 55 */ { 0, BX_IA_ERROR },
|
|
/* 56 */ { 0, BX_IA_ERROR },
|
|
/* 57 */ { 0, BX_IA_ERROR },
|
|
/* 58 */ { 0, BX_IA_ERROR },
|
|
/* 59 */ { 0, BX_IA_ERROR },
|
|
/* 5A */ { 0, BX_IA_ERROR },
|
|
/* 5B */ { 0, BX_IA_ERROR },
|
|
/* 5C */ { 0, BX_IA_ERROR },
|
|
/* 5D */ { 0, BX_IA_ERROR },
|
|
/* 5E */ { 0, BX_IA_ERROR },
|
|
/* 5F */ { 0, BX_IA_ERROR },
|
|
/* 60 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPCMPESTRM_VdqWdqIb },
|
|
/* 61 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPCMPESTRI_VdqWdqIb },
|
|
/* 62 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPCMPISTRM_VdqWdqIb },
|
|
/* 63 */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VPCMPISTRI_VdqWdqIb },
|
|
/* 64 */ { 0, BX_IA_ERROR },
|
|
/* 65 */ { 0, BX_IA_ERROR },
|
|
/* 66 */ { 0, BX_IA_ERROR },
|
|
/* 67 */ { 0, BX_IA_ERROR },
|
|
/* 68 */ { 0, BX_IA_ERROR },
|
|
/* 69 */ { 0, BX_IA_ERROR },
|
|
/* 6A */ { 0, BX_IA_ERROR },
|
|
/* 6B */ { 0, BX_IA_ERROR },
|
|
/* 6C */ { 0, BX_IA_ERROR },
|
|
/* 6D */ { 0, BX_IA_ERROR },
|
|
/* 6E */ { 0, BX_IA_ERROR },
|
|
/* 6F */ { 0, BX_IA_ERROR },
|
|
/* 70 */ { 0, BX_IA_ERROR },
|
|
/* 71 */ { 0, BX_IA_ERROR },
|
|
/* 72 */ { 0, BX_IA_ERROR },
|
|
/* 73 */ { 0, BX_IA_ERROR },
|
|
/* 74 */ { 0, BX_IA_ERROR },
|
|
/* 75 */ { 0, BX_IA_ERROR },
|
|
/* 76 */ { 0, BX_IA_ERROR },
|
|
/* 77 */ { 0, BX_IA_ERROR },
|
|
/* 78 */ { 0, BX_IA_ERROR },
|
|
/* 79 */ { 0, BX_IA_ERROR },
|
|
/* 7A */ { 0, BX_IA_ERROR },
|
|
/* 7B */ { 0, BX_IA_ERROR },
|
|
/* 7C */ { 0, BX_IA_ERROR },
|
|
/* 7D */ { 0, BX_IA_ERROR },
|
|
/* 7E */ { 0, BX_IA_ERROR },
|
|
/* 7F */ { 0, BX_IA_ERROR },
|
|
/* 80 */ { 0, BX_IA_ERROR },
|
|
/* 81 */ { 0, BX_IA_ERROR },
|
|
/* 82 */ { 0, BX_IA_ERROR },
|
|
/* 83 */ { 0, BX_IA_ERROR },
|
|
/* 84 */ { 0, BX_IA_ERROR },
|
|
/* 85 */ { 0, BX_IA_ERROR },
|
|
/* 86 */ { 0, BX_IA_ERROR },
|
|
/* 87 */ { 0, BX_IA_ERROR },
|
|
/* 88 */ { 0, BX_IA_ERROR },
|
|
/* 89 */ { 0, BX_IA_ERROR },
|
|
/* 8A */ { 0, BX_IA_ERROR },
|
|
/* 8B */ { 0, BX_IA_ERROR },
|
|
/* 8C */ { 0, BX_IA_ERROR },
|
|
/* 8D */ { 0, BX_IA_ERROR },
|
|
/* 8E */ { 0, BX_IA_ERROR },
|
|
/* 8F */ { 0, BX_IA_ERROR },
|
|
/* 90 */ { 0, BX_IA_ERROR },
|
|
/* 91 */ { 0, BX_IA_ERROR },
|
|
/* 92 */ { 0, BX_IA_ERROR },
|
|
/* 93 */ { 0, BX_IA_ERROR },
|
|
/* 94 */ { 0, BX_IA_ERROR },
|
|
/* 95 */ { 0, BX_IA_ERROR },
|
|
/* 96 */ { 0, BX_IA_ERROR },
|
|
/* 97 */ { 0, BX_IA_ERROR },
|
|
/* 98 */ { 0, BX_IA_ERROR },
|
|
/* 99 */ { 0, BX_IA_ERROR },
|
|
/* 9A */ { 0, BX_IA_ERROR },
|
|
/* 9B */ { 0, BX_IA_ERROR },
|
|
/* 9C */ { 0, BX_IA_ERROR },
|
|
/* 9D */ { 0, BX_IA_ERROR },
|
|
/* 9E */ { 0, BX_IA_ERROR },
|
|
/* 9F */ { 0, BX_IA_ERROR },
|
|
/* A0 */ { 0, BX_IA_ERROR },
|
|
/* A1 */ { 0, BX_IA_ERROR },
|
|
/* A2 */ { 0, BX_IA_ERROR },
|
|
/* A3 */ { 0, BX_IA_ERROR },
|
|
/* A4 */ { 0, BX_IA_ERROR },
|
|
/* A5 */ { 0, BX_IA_ERROR },
|
|
/* A6 */ { 0, BX_IA_ERROR },
|
|
/* A7 */ { 0, BX_IA_ERROR },
|
|
/* A8 */ { 0, BX_IA_ERROR },
|
|
/* A9 */ { 0, BX_IA_ERROR },
|
|
/* AA */ { 0, BX_IA_ERROR },
|
|
/* AB */ { 0, BX_IA_ERROR },
|
|
/* AC */ { 0, BX_IA_ERROR },
|
|
/* AD */ { 0, BX_IA_ERROR },
|
|
/* AE */ { 0, BX_IA_ERROR },
|
|
/* AF */ { 0, BX_IA_ERROR },
|
|
/* B0 */ { 0, BX_IA_ERROR },
|
|
/* B1 */ { 0, BX_IA_ERROR },
|
|
/* B2 */ { 0, BX_IA_ERROR },
|
|
/* B3 */ { 0, BX_IA_ERROR },
|
|
/* B4 */ { 0, BX_IA_ERROR },
|
|
/* B5 */ { 0, BX_IA_ERROR },
|
|
/* B6 */ { 0, BX_IA_ERROR },
|
|
/* B7 */ { 0, BX_IA_ERROR },
|
|
/* B8 */ { 0, BX_IA_ERROR },
|
|
/* B9 */ { 0, BX_IA_ERROR },
|
|
/* BA */ { 0, BX_IA_ERROR },
|
|
/* BB */ { 0, BX_IA_ERROR },
|
|
/* BC */ { 0, BX_IA_ERROR },
|
|
/* BD */ { 0, BX_IA_ERROR },
|
|
/* BE */ { 0, BX_IA_ERROR },
|
|
/* BF */ { 0, BX_IA_ERROR },
|
|
/* C0 */ { 0, BX_IA_ERROR },
|
|
/* C1 */ { 0, BX_IA_ERROR },
|
|
/* C2 */ { 0, BX_IA_ERROR },
|
|
/* C3 */ { 0, BX_IA_ERROR },
|
|
/* C4 */ { 0, BX_IA_ERROR },
|
|
/* C5 */ { 0, BX_IA_ERROR },
|
|
/* C6 */ { 0, BX_IA_ERROR },
|
|
/* C7 */ { 0, BX_IA_ERROR },
|
|
/* C8 */ { 0, BX_IA_ERROR },
|
|
/* C9 */ { 0, BX_IA_ERROR },
|
|
/* CA */ { 0, BX_IA_ERROR },
|
|
/* CB */ { 0, BX_IA_ERROR },
|
|
/* CC */ { 0, BX_IA_ERROR },
|
|
/* CD */ { 0, BX_IA_ERROR },
|
|
/* CE */ { 0, BX_IA_ERROR },
|
|
/* CF */ { 0, BX_IA_ERROR },
|
|
/* D0 */ { 0, BX_IA_ERROR },
|
|
/* D1 */ { 0, BX_IA_ERROR },
|
|
/* D2 */ { 0, BX_IA_ERROR },
|
|
/* D3 */ { 0, BX_IA_ERROR },
|
|
/* D4 */ { 0, BX_IA_ERROR },
|
|
/* D5 */ { 0, BX_IA_ERROR },
|
|
/* D6 */ { 0, BX_IA_ERROR },
|
|
/* D7 */ { 0, BX_IA_ERROR },
|
|
/* D8 */ { 0, BX_IA_ERROR },
|
|
/* D9 */ { 0, BX_IA_ERROR },
|
|
/* DA */ { 0, BX_IA_ERROR },
|
|
/* DB */ { 0, BX_IA_ERROR },
|
|
/* DC */ { 0, BX_IA_ERROR },
|
|
/* DD */ { 0, BX_IA_ERROR },
|
|
/* DE */ { 0, BX_IA_ERROR },
|
|
/* DF */ { BxPrefixSSE66 | BxImmediate_Ib, BX_IA_VAESKEYGENASSIST_VdqWdqIb },
|
|
/* E0 */ { 0, BX_IA_ERROR },
|
|
/* E1 */ { 0, BX_IA_ERROR },
|
|
/* E2 */ { 0, BX_IA_ERROR },
|
|
/* E3 */ { 0, BX_IA_ERROR },
|
|
/* E4 */ { 0, BX_IA_ERROR },
|
|
/* E5 */ { 0, BX_IA_ERROR },
|
|
/* E6 */ { 0, BX_IA_ERROR },
|
|
/* E7 */ { 0, BX_IA_ERROR },
|
|
/* E8 */ { 0, BX_IA_ERROR },
|
|
/* E9 */ { 0, BX_IA_ERROR },
|
|
/* EA */ { 0, BX_IA_ERROR },
|
|
/* EB */ { 0, BX_IA_ERROR },
|
|
/* EC */ { 0, BX_IA_ERROR },
|
|
/* ED */ { 0, BX_IA_ERROR },
|
|
/* EE */ { 0, BX_IA_ERROR },
|
|
/* EF */ { 0, BX_IA_ERROR },
|
|
/* F0 */ { 0, BX_IA_ERROR },
|
|
/* F1 */ { 0, BX_IA_ERROR },
|
|
/* F2 */ { 0, BX_IA_ERROR },
|
|
/* F3 */ { 0, BX_IA_ERROR },
|
|
/* F4 */ { 0, BX_IA_ERROR },
|
|
/* F5 */ { 0, BX_IA_ERROR },
|
|
/* F6 */ { 0, BX_IA_ERROR },
|
|
/* F7 */ { 0, BX_IA_ERROR },
|
|
/* F8 */ { 0, BX_IA_ERROR },
|
|
/* F9 */ { 0, BX_IA_ERROR },
|
|
/* FA */ { 0, BX_IA_ERROR },
|
|
/* FB */ { 0, BX_IA_ERROR },
|
|
/* FC */ { 0, BX_IA_ERROR },
|
|
/* FD */ { 0, BX_IA_ERROR },
|
|
/* FE */ { 0, BX_IA_ERROR },
|
|
/* FF */ { 0, BX_IA_ERROR }
|
|
};
|
|
|
|
#endif // BX_SUPPORT_AVX && BX_CPU_LEVEL >= 6
|
|
|
|
#endif // BX_AVX_FETCHDECODE_TABLES_H
|