Bochs/bochs/cpu/decoder/fetchdecode_xop.h

964 lines
38 KiB
C

/////////////////////////////////////////////////////////////////////////
// $Id$
/////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2011-2019 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_XOP_FETCHDECODE_TABLES_H
#define BX_XOP_FETCHDECODE_TABLES_H
#if BX_SUPPORT_AVX
// 256 entries for XOP-encoded map 0x8 opcodes
static const Bit64u BxOpcodeGroup_XOP_0x8_01[] = {
form_opcode(ATTR_NNN1 | ATTR_IS64 | ATTR_VEX_L0 | ATTR_VEX_W0, BX_IA_BLCFILL_BqEq),
form_opcode(ATTR_NNN1 | ATTR_VEX_L0 | ATTR_VEX_W1, BX_IA_BLCFILL_BdEd),
form_opcode(ATTR_NNN2 | ATTR_IS64 | ATTR_VEX_L0 | ATTR_VEX_W0, BX_IA_BLSFILL_BqEq),
form_opcode(ATTR_NNN2 | ATTR_VEX_L0 | ATTR_VEX_W1, BX_IA_BLSFILL_BdEd),
form_opcode(ATTR_NNN3 | ATTR_IS64 | ATTR_VEX_L0 | ATTR_VEX_W0, BX_IA_BLCS_BqEq),
form_opcode(ATTR_NNN3 | ATTR_VEX_L0 | ATTR_VEX_W1, BX_IA_BLCS_BdEd),
form_opcode(ATTR_NNN4 | ATTR_IS64 | ATTR_VEX_L0 | ATTR_VEX_W0, BX_IA_TZMSK_BqEq),
form_opcode(ATTR_NNN4 | ATTR_VEX_L0 | ATTR_VEX_W1, BX_IA_TZMSK_BdEd),
form_opcode(ATTR_NNN5 | ATTR_IS64 | ATTR_VEX_L0 | ATTR_VEX_W0, BX_IA_BLCIC_BqEq),
form_opcode(ATTR_NNN5 | ATTR_VEX_L0 | ATTR_VEX_W1, BX_IA_BLCIC_BdEd),
form_opcode(ATTR_NNN6 | ATTR_IS64 | ATTR_VEX_L0 | ATTR_VEX_W0, BX_IA_BLSIC_BqEq),
form_opcode(ATTR_NNN6 | ATTR_VEX_L0 | ATTR_VEX_W1, BX_IA_BLSIC_BdEd),
form_opcode(ATTR_NNN7 | ATTR_IS64 | ATTR_VEX_L0 | ATTR_VEX_W0, BX_IA_T1MSKC_BqEq),
last_opcode(ATTR_NNN7 | ATTR_VEX_L0 | ATTR_VEX_W1, BX_IA_T1MSKC_BdEd)
};
static const Bit64u BxOpcodeGroup_XOP_0x8_02[] = {
form_opcode(ATTR_NNN1 | ATTR_IS64 | ATTR_VEX_L0 | ATTR_VEX_W0, BX_IA_BLCMSK_BqEq),
form_opcode(ATTR_NNN1 | ATTR_VEX_L0 | ATTR_VEX_W1, BX_IA_BLCMSK_BdEd),
form_opcode(ATTR_NNN6 | ATTR_IS64 | ATTR_VEX_L0 | ATTR_VEX_W0, BX_IA_BLCI_BqEq),
last_opcode(ATTR_NNN6 | ATTR_VEX_L0 | ATTR_VEX_W1, BX_IA_BLCI_BdEd)
};
static const Bit64u BxOpcodeGroup_XOP_0x8_85[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMACSSWW_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_86[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMACSSWD_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_87[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMACSSDQL_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_8E[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMACSSDD_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_8F[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMACSSDQH_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_95[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMACSWW_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_96[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMACSWD_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_97[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMACSDQL_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_9E[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMACSDD_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_9F[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMACSDQH_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_A2[] = {
form_opcode(ATTR_VEX_W0, BX_IA_VPCMOV_VdqHdqVIbWdq),
last_opcode(ATTR_VEX_W1, BX_IA_VPCMOV_VdqHdqWdqVIb)
};
static const Bit64u BxOpcodeGroup_XOP_0x8_A3[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPPERM_VdqHdqVIbWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPPERM_VdqHdqWdqVIb)
};
static const Bit64u BxOpcodeGroup_XOP_0x8_A6[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMADCSSWD_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_B6[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPMADCSWD_VdqHdqWdqVIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_C0[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPROTB_VdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_C1[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPROTW_VdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_C2[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPROTD_VdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_C3[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPROTQ_VdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_CC[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPCOMB_VdqHdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_CD[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPCOMW_VdqHdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_CE[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPCOMD_VdqHdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_CF[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPCOMQ_VdqHdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_EC[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPCOMUB_VdqHdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_ED[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPCOMUW_VdqHdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_EE[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPCOMUD_VdqHdqWdqIb) };
static const Bit64u BxOpcodeGroup_XOP_0x8_EF[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPCOMUQ_VdqHdqWdqIb) };
// 256 entries for XOP-encoded map 0x9 opcodes
static const Bit64u BxOpcodeGroup_XOP_0x9_80[] = { last_opcode(ATTR_VEX_W0, BX_IA_VFRCZPS_VpsWps) };
static const Bit64u BxOpcodeGroup_XOP_0x9_81[] = { last_opcode(ATTR_VEX_W0, BX_IA_VFRCZPD_VpdWpd) };
static const Bit64u BxOpcodeGroup_XOP_0x9_82[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VFRCZSS_VssWss) };
static const Bit64u BxOpcodeGroup_XOP_0x9_83[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VFRCZSD_VsdWsd) };
static const Bit64u BxOpcodeGroup_XOP_0x9_88[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPSHAB_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPSHAB_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_89[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPSHAW_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPSHAW_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_8A[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPSHAD_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPSHAD_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_8B[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPSHAQ_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPSHAQ_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_90[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPROTB_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPROTB_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_91[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPROTW_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPROTW_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_92[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPROTD_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPROTD_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_93[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPROTQ_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPROTQ_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_94[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPSHLB_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPSHLB_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_95[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPSHLW_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPSHLW_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_96[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPSHLD_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPSHLD_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_97[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPSHLQ_VdqHdqWdq),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0, BX_IA_VPSHLQ_VdqWdqHdq)
};
static const Bit64u BxOpcodeGroup_XOP_0x9_C1[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDBW_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_C2[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDBD_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_C3[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDBQ_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_C6[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDWD_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_C7[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDWQ_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_CB[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDDQ_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_D1[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDUBW_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_D2[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDUBD_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_D3[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDUBQ_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_D6[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDUWD_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_D7[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDUWQ_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_DB[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHADDUDQ_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_E1[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHSUBBW_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_E2[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHSUBWD_VdqWdq) };
static const Bit64u BxOpcodeGroup_XOP_0x9_E3[] = { last_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_VPHSUBDQ_VdqWdq) };
// 256 entries for XOP-encoded map 0xA opcodes
static const Bit64u BxOpcodeGroup_XOP_0xA_10[] = {
form_opcode(ATTR_VEX_W0 | ATTR_VEX_L0, BX_IA_BEXTR_GdEdId),
last_opcode(ATTR_VEX_W1 | ATTR_VEX_L0 | ATTR_IS64, BX_IA_BEXTR_GqEqId)
};
static const Bit64u *BxOpcodeTableXOP[256*3] = {
// 256 entries for XOP-encoded map 0x8 opcodes
/* 00 */ ( BxOpcodeGroup_ERR ),
/* 01 */ ( BxOpcodeGroup_XOP_0x8_01 ),
/* 02 */ ( BxOpcodeGroup_XOP_0x8_02 ),
/* 03 */ ( BxOpcodeGroup_ERR ),
/* 04 */ ( BxOpcodeGroup_ERR ),
/* 05 */ ( BxOpcodeGroup_ERR ),
/* 06 */ ( BxOpcodeGroup_ERR ),
/* 07 */ ( BxOpcodeGroup_ERR ),
/* 08 */ ( BxOpcodeGroup_ERR ),
/* 09 */ ( BxOpcodeGroup_ERR ),
/* 0A */ ( BxOpcodeGroup_ERR ),
/* 0B */ ( BxOpcodeGroup_ERR ),
/* 0C */ ( BxOpcodeGroup_ERR ),
/* 0D */ ( BxOpcodeGroup_ERR ),
/* 0E */ ( BxOpcodeGroup_ERR ),
/* 0F */ ( BxOpcodeGroup_ERR ),
/* 10 */ ( BxOpcodeGroup_ERR ),
/* 11 */ ( BxOpcodeGroup_ERR ),
/* 12 */ ( BxOpcodeGroup_ERR ),
/* 13 */ ( BxOpcodeGroup_ERR ),
/* 14 */ ( BxOpcodeGroup_ERR ),
/* 15 */ ( BxOpcodeGroup_ERR ),
/* 16 */ ( BxOpcodeGroup_ERR ),
/* 17 */ ( BxOpcodeGroup_ERR ),
/* 18 */ ( BxOpcodeGroup_ERR ),
/* 19 */ ( BxOpcodeGroup_ERR ),
/* 1A */ ( BxOpcodeGroup_ERR ),
/* 1B */ ( BxOpcodeGroup_ERR ),
/* 1C */ ( BxOpcodeGroup_ERR ),
/* 1D */ ( BxOpcodeGroup_ERR ),
/* 1E */ ( BxOpcodeGroup_ERR ),
/* 1F */ ( BxOpcodeGroup_ERR ),
/* 20 */ ( BxOpcodeGroup_ERR ),
/* 21 */ ( BxOpcodeGroup_ERR ),
/* 22 */ ( BxOpcodeGroup_ERR ),
/* 23 */ ( BxOpcodeGroup_ERR ),
/* 24 */ ( BxOpcodeGroup_ERR ),
/* 25 */ ( BxOpcodeGroup_ERR ),
/* 26 */ ( BxOpcodeGroup_ERR ),
/* 27 */ ( BxOpcodeGroup_ERR ),
/* 28 */ ( BxOpcodeGroup_ERR ),
/* 29 */ ( BxOpcodeGroup_ERR ),
/* 2A */ ( BxOpcodeGroup_ERR ),
/* 2B */ ( BxOpcodeGroup_ERR ),
/* 2C */ ( BxOpcodeGroup_ERR ),
/* 2D */ ( BxOpcodeGroup_ERR ),
/* 2E */ ( BxOpcodeGroup_ERR ),
/* 2F */ ( BxOpcodeGroup_ERR ),
/* 30 */ ( BxOpcodeGroup_ERR ),
/* 31 */ ( BxOpcodeGroup_ERR ),
/* 32 */ ( BxOpcodeGroup_ERR ),
/* 33 */ ( BxOpcodeGroup_ERR ),
/* 34 */ ( BxOpcodeGroup_ERR ),
/* 35 */ ( BxOpcodeGroup_ERR ),
/* 36 */ ( BxOpcodeGroup_ERR ),
/* 37 */ ( BxOpcodeGroup_ERR ),
/* 38 */ ( BxOpcodeGroup_ERR ),
/* 39 */ ( BxOpcodeGroup_ERR ),
/* 3A */ ( BxOpcodeGroup_ERR ),
/* 3B */ ( BxOpcodeGroup_ERR ),
/* 3C */ ( BxOpcodeGroup_ERR ),
/* 3D */ ( BxOpcodeGroup_ERR ),
/* 3E */ ( BxOpcodeGroup_ERR ),
/* 3F */ ( BxOpcodeGroup_ERR ),
/* 40 */ ( BxOpcodeGroup_ERR ),
/* 41 */ ( BxOpcodeGroup_ERR ),
/* 42 */ ( BxOpcodeGroup_ERR ),
/* 43 */ ( BxOpcodeGroup_ERR ),
/* 44 */ ( BxOpcodeGroup_ERR ),
/* 45 */ ( BxOpcodeGroup_ERR ),
/* 46 */ ( BxOpcodeGroup_ERR ),
/* 47 */ ( BxOpcodeGroup_ERR ),
/* 48 */ ( BxOpcodeGroup_ERR ),
/* 49 */ ( BxOpcodeGroup_ERR ),
/* 4A */ ( BxOpcodeGroup_ERR ),
/* 4B */ ( BxOpcodeGroup_ERR ),
/* 4C */ ( BxOpcodeGroup_ERR ),
/* 4D */ ( BxOpcodeGroup_ERR ),
/* 4E */ ( BxOpcodeGroup_ERR ),
/* 4F */ ( BxOpcodeGroup_ERR ),
/* 50 */ ( BxOpcodeGroup_ERR ),
/* 51 */ ( BxOpcodeGroup_ERR ),
/* 52 */ ( BxOpcodeGroup_ERR ),
/* 53 */ ( BxOpcodeGroup_ERR ),
/* 54 */ ( BxOpcodeGroup_ERR ),
/* 55 */ ( BxOpcodeGroup_ERR ),
/* 56 */ ( BxOpcodeGroup_ERR ),
/* 57 */ ( BxOpcodeGroup_ERR ),
/* 58 */ ( BxOpcodeGroup_ERR ),
/* 59 */ ( BxOpcodeGroup_ERR ),
/* 5A */ ( BxOpcodeGroup_ERR ),
/* 5B */ ( BxOpcodeGroup_ERR ),
/* 5C */ ( BxOpcodeGroup_ERR ),
/* 5D */ ( BxOpcodeGroup_ERR ),
/* 5E */ ( BxOpcodeGroup_ERR ),
/* 5F */ ( BxOpcodeGroup_ERR ),
/* 60 */ ( BxOpcodeGroup_ERR ),
/* 61 */ ( BxOpcodeGroup_ERR ),
/* 62 */ ( BxOpcodeGroup_ERR ),
/* 63 */ ( BxOpcodeGroup_ERR ),
/* 64 */ ( BxOpcodeGroup_ERR ),
/* 65 */ ( BxOpcodeGroup_ERR ),
/* 66 */ ( BxOpcodeGroup_ERR ),
/* 67 */ ( BxOpcodeGroup_ERR ),
/* 68 */ ( BxOpcodeGroup_ERR ),
/* 69 */ ( BxOpcodeGroup_ERR ),
/* 6A */ ( BxOpcodeGroup_ERR ),
/* 6B */ ( BxOpcodeGroup_ERR ),
/* 6C */ ( BxOpcodeGroup_ERR ),
/* 6D */ ( BxOpcodeGroup_ERR ),
/* 6E */ ( BxOpcodeGroup_ERR ),
/* 6F */ ( BxOpcodeGroup_ERR ),
/* 70 */ ( BxOpcodeGroup_ERR ),
/* 71 */ ( BxOpcodeGroup_ERR ),
/* 72 */ ( BxOpcodeGroup_ERR ),
/* 73 */ ( BxOpcodeGroup_ERR ),
/* 74 */ ( BxOpcodeGroup_ERR ),
/* 75 */ ( BxOpcodeGroup_ERR ),
/* 76 */ ( BxOpcodeGroup_ERR ),
/* 77 */ ( BxOpcodeGroup_ERR ),
/* 78 */ ( BxOpcodeGroup_ERR ),
/* 79 */ ( BxOpcodeGroup_ERR ),
/* 7A */ ( BxOpcodeGroup_ERR ),
/* 7B */ ( BxOpcodeGroup_ERR ),
/* 7C */ ( BxOpcodeGroup_ERR ),
/* 7D */ ( BxOpcodeGroup_ERR ),
/* 7E */ ( BxOpcodeGroup_ERR ),
/* 7F */ ( BxOpcodeGroup_ERR ),
/* 80 */ ( BxOpcodeGroup_ERR ),
/* 81 */ ( BxOpcodeGroup_ERR ),
/* 82 */ ( BxOpcodeGroup_ERR ),
/* 83 */ ( BxOpcodeGroup_ERR ),
/* 84 */ ( BxOpcodeGroup_ERR ),
/* 85 */ ( BxOpcodeGroup_XOP_0x8_85 ),
/* 86 */ ( BxOpcodeGroup_XOP_0x8_86 ),
/* 87 */ ( BxOpcodeGroup_XOP_0x8_87 ),
/* 88 */ ( BxOpcodeGroup_ERR ),
/* 89 */ ( BxOpcodeGroup_ERR ),
/* 8A */ ( BxOpcodeGroup_ERR ),
/* 8B */ ( BxOpcodeGroup_ERR ),
/* 8C */ ( BxOpcodeGroup_ERR ),
/* 8D */ ( BxOpcodeGroup_ERR ),
/* 8E */ ( BxOpcodeGroup_XOP_0x8_8E ),
/* 8F */ ( BxOpcodeGroup_XOP_0x8_8F ),
/* 90 */ ( BxOpcodeGroup_ERR ),
/* 91 */ ( BxOpcodeGroup_ERR ),
/* 92 */ ( BxOpcodeGroup_ERR ),
/* 93 */ ( BxOpcodeGroup_ERR ),
/* 94 */ ( BxOpcodeGroup_ERR ),
/* 95 */ ( BxOpcodeGroup_XOP_0x8_95 ),
/* 96 */ ( BxOpcodeGroup_XOP_0x8_96 ),
/* 97 */ ( BxOpcodeGroup_XOP_0x8_97 ),
/* 98 */ ( BxOpcodeGroup_ERR ),
/* 99 */ ( BxOpcodeGroup_ERR ),
/* 9A */ ( BxOpcodeGroup_ERR ),
/* 9B */ ( BxOpcodeGroup_ERR ),
/* 9C */ ( BxOpcodeGroup_ERR ),
/* 9D */ ( BxOpcodeGroup_ERR ),
/* 9E */ ( BxOpcodeGroup_XOP_0x8_9E ),
/* 9F */ ( BxOpcodeGroup_XOP_0x8_9F ),
/* A0 */ ( BxOpcodeGroup_ERR ),
/* A1 */ ( BxOpcodeGroup_ERR ),
/* A2 */ ( BxOpcodeGroup_XOP_0x8_A2 ),
/* A3 */ ( BxOpcodeGroup_XOP_0x8_A3 ),
/* A4 */ ( BxOpcodeGroup_ERR ),
/* A5 */ ( BxOpcodeGroup_ERR ),
/* A6 */ ( BxOpcodeGroup_XOP_0x8_A6 ),
/* A7 */ ( BxOpcodeGroup_ERR ),
/* A8 */ ( BxOpcodeGroup_ERR ),
/* A9 */ ( BxOpcodeGroup_ERR ),
/* AA */ ( BxOpcodeGroup_ERR ),
/* AB */ ( BxOpcodeGroup_ERR ),
/* AC */ ( BxOpcodeGroup_ERR ),
/* AD */ ( BxOpcodeGroup_ERR ),
/* AE */ ( BxOpcodeGroup_ERR ),
/* AF */ ( BxOpcodeGroup_ERR ),
/* B0 */ ( BxOpcodeGroup_ERR ),
/* B1 */ ( BxOpcodeGroup_ERR ),
/* B2 */ ( BxOpcodeGroup_ERR ),
/* B3 */ ( BxOpcodeGroup_ERR ),
/* B4 */ ( BxOpcodeGroup_ERR ),
/* B5 */ ( BxOpcodeGroup_ERR ),
/* B6 */ ( BxOpcodeGroup_XOP_0x8_B6 ),
/* B7 */ ( BxOpcodeGroup_ERR ),
/* B8 */ ( BxOpcodeGroup_ERR ),
/* B9 */ ( BxOpcodeGroup_ERR ),
/* BA */ ( BxOpcodeGroup_ERR ),
/* BB */ ( BxOpcodeGroup_ERR ),
/* BC */ ( BxOpcodeGroup_ERR ),
/* BD */ ( BxOpcodeGroup_ERR ),
/* BE */ ( BxOpcodeGroup_ERR ),
/* BF */ ( BxOpcodeGroup_ERR ),
/* C0 */ ( BxOpcodeGroup_XOP_0x8_C0 ),
/* C1 */ ( BxOpcodeGroup_XOP_0x8_C1 ),
/* C2 */ ( BxOpcodeGroup_XOP_0x8_C2 ),
/* C3 */ ( BxOpcodeGroup_XOP_0x8_C3 ),
/* C4 */ ( BxOpcodeGroup_ERR ),
/* C5 */ ( BxOpcodeGroup_ERR ),
/* C6 */ ( BxOpcodeGroup_ERR ),
/* C7 */ ( BxOpcodeGroup_ERR ),
/* C8 */ ( BxOpcodeGroup_ERR ),
/* C9 */ ( BxOpcodeGroup_ERR ),
/* CA */ ( BxOpcodeGroup_ERR ),
/* CB */ ( BxOpcodeGroup_ERR ),
/* CC */ ( BxOpcodeGroup_XOP_0x8_CC ),
/* CD */ ( BxOpcodeGroup_XOP_0x8_CD ),
/* CE */ ( BxOpcodeGroup_XOP_0x8_CE ),
/* CF */ ( BxOpcodeGroup_XOP_0x8_CF ),
/* D0 */ ( BxOpcodeGroup_ERR ),
/* D1 */ ( BxOpcodeGroup_ERR ),
/* D2 */ ( BxOpcodeGroup_ERR ),
/* D3 */ ( BxOpcodeGroup_ERR ),
/* D4 */ ( BxOpcodeGroup_ERR ),
/* D5 */ ( BxOpcodeGroup_ERR ),
/* D6 */ ( BxOpcodeGroup_ERR ),
/* D7 */ ( BxOpcodeGroup_ERR ),
/* D8 */ ( BxOpcodeGroup_ERR ),
/* D9 */ ( BxOpcodeGroup_ERR ),
/* DA */ ( BxOpcodeGroup_ERR ),
/* DB */ ( BxOpcodeGroup_ERR ),
/* DC */ ( BxOpcodeGroup_ERR ),
/* DD */ ( BxOpcodeGroup_ERR ),
/* DE */ ( BxOpcodeGroup_ERR ),
/* DF */ ( BxOpcodeGroup_ERR ),
/* E0 */ ( BxOpcodeGroup_ERR ),
/* E1 */ ( BxOpcodeGroup_ERR ),
/* E2 */ ( BxOpcodeGroup_ERR ),
/* E3 */ ( BxOpcodeGroup_ERR ),
/* E4 */ ( BxOpcodeGroup_ERR ),
/* E5 */ ( BxOpcodeGroup_ERR ),
/* E6 */ ( BxOpcodeGroup_ERR ),
/* E7 */ ( BxOpcodeGroup_ERR ),
/* E8 */ ( BxOpcodeGroup_ERR ),
/* E9 */ ( BxOpcodeGroup_ERR ),
/* EA */ ( BxOpcodeGroup_ERR ),
/* EB */ ( BxOpcodeGroup_ERR ),
/* EC */ ( BxOpcodeGroup_XOP_0x8_EC ),
/* ED */ ( BxOpcodeGroup_XOP_0x8_ED ),
/* EE */ ( BxOpcodeGroup_XOP_0x8_EE ),
/* EF */ ( BxOpcodeGroup_XOP_0x8_EF ),
/* F0 */ ( BxOpcodeGroup_ERR ),
/* F1 */ ( BxOpcodeGroup_ERR ),
/* F2 */ ( BxOpcodeGroup_ERR ),
/* F3 */ ( BxOpcodeGroup_ERR ),
/* F4 */ ( BxOpcodeGroup_ERR ),
/* F5 */ ( BxOpcodeGroup_ERR ),
/* F6 */ ( BxOpcodeGroup_ERR ),
/* F7 */ ( BxOpcodeGroup_ERR ),
/* F8 */ ( BxOpcodeGroup_ERR ),
/* F9 */ ( BxOpcodeGroup_ERR ),
/* FA */ ( BxOpcodeGroup_ERR ),
/* FB */ ( BxOpcodeGroup_ERR ),
/* FC */ ( BxOpcodeGroup_ERR ),
/* FD */ ( BxOpcodeGroup_ERR ),
/* FE */ ( BxOpcodeGroup_ERR ),
/* FF */ ( BxOpcodeGroup_ERR ),
// 256 entries for XOP-encoded map 0x9 opcodes
/* 00 */ ( BxOpcodeGroup_ERR ),
/* 01 */ ( BxOpcodeGroup_ERR ),
/* 02 */ ( BxOpcodeGroup_ERR ),
/* 03 */ ( BxOpcodeGroup_ERR ),
/* 04 */ ( BxOpcodeGroup_ERR ),
/* 05 */ ( BxOpcodeGroup_ERR ),
/* 06 */ ( BxOpcodeGroup_ERR ),
/* 07 */ ( BxOpcodeGroup_ERR ),
/* 08 */ ( BxOpcodeGroup_ERR ),
/* 09 */ ( BxOpcodeGroup_ERR ),
/* 0A */ ( BxOpcodeGroup_ERR ),
/* 0B */ ( BxOpcodeGroup_ERR ),
/* 0C */ ( BxOpcodeGroup_ERR ),
/* 0D */ ( BxOpcodeGroup_ERR ),
/* 0E */ ( BxOpcodeGroup_ERR ),
/* 0F */ ( BxOpcodeGroup_ERR ),
/* 10 */ ( BxOpcodeGroup_ERR ),
/* 11 */ ( BxOpcodeGroup_ERR ),
/* 12 */ ( BxOpcodeGroup_ERR ),
/* 13 */ ( BxOpcodeGroup_ERR ),
/* 14 */ ( BxOpcodeGroup_ERR ),
/* 15 */ ( BxOpcodeGroup_ERR ),
/* 16 */ ( BxOpcodeGroup_ERR ),
/* 17 */ ( BxOpcodeGroup_ERR ),
/* 18 */ ( BxOpcodeGroup_ERR ),
/* 19 */ ( BxOpcodeGroup_ERR ),
/* 1A */ ( BxOpcodeGroup_ERR ),
/* 1B */ ( BxOpcodeGroup_ERR ),
/* 1C */ ( BxOpcodeGroup_ERR ),
/* 1D */ ( BxOpcodeGroup_ERR ),
/* 1E */ ( BxOpcodeGroup_ERR ),
/* 1F */ ( BxOpcodeGroup_ERR ),
/* 20 */ ( BxOpcodeGroup_ERR ),
/* 21 */ ( BxOpcodeGroup_ERR ),
/* 22 */ ( BxOpcodeGroup_ERR ),
/* 23 */ ( BxOpcodeGroup_ERR ),
/* 24 */ ( BxOpcodeGroup_ERR ),
/* 25 */ ( BxOpcodeGroup_ERR ),
/* 26 */ ( BxOpcodeGroup_ERR ),
/* 27 */ ( BxOpcodeGroup_ERR ),
/* 28 */ ( BxOpcodeGroup_ERR ),
/* 29 */ ( BxOpcodeGroup_ERR ),
/* 2A */ ( BxOpcodeGroup_ERR ),
/* 2B */ ( BxOpcodeGroup_ERR ),
/* 2C */ ( BxOpcodeGroup_ERR ),
/* 2D */ ( BxOpcodeGroup_ERR ),
/* 2E */ ( BxOpcodeGroup_ERR ),
/* 2F */ ( BxOpcodeGroup_ERR ),
/* 30 */ ( BxOpcodeGroup_ERR ),
/* 31 */ ( BxOpcodeGroup_ERR ),
/* 32 */ ( BxOpcodeGroup_ERR ),
/* 33 */ ( BxOpcodeGroup_ERR ),
/* 34 */ ( BxOpcodeGroup_ERR ),
/* 35 */ ( BxOpcodeGroup_ERR ),
/* 36 */ ( BxOpcodeGroup_ERR ),
/* 37 */ ( BxOpcodeGroup_ERR ),
/* 38 */ ( BxOpcodeGroup_ERR ),
/* 39 */ ( BxOpcodeGroup_ERR ),
/* 3A */ ( BxOpcodeGroup_ERR ),
/* 3B */ ( BxOpcodeGroup_ERR ),
/* 3C */ ( BxOpcodeGroup_ERR ),
/* 3D */ ( BxOpcodeGroup_ERR ),
/* 3E */ ( BxOpcodeGroup_ERR ),
/* 3F */ ( BxOpcodeGroup_ERR ),
/* 40 */ ( BxOpcodeGroup_ERR ),
/* 41 */ ( BxOpcodeGroup_ERR ),
/* 42 */ ( BxOpcodeGroup_ERR ),
/* 43 */ ( BxOpcodeGroup_ERR ),
/* 44 */ ( BxOpcodeGroup_ERR ),
/* 45 */ ( BxOpcodeGroup_ERR ),
/* 46 */ ( BxOpcodeGroup_ERR ),
/* 47 */ ( BxOpcodeGroup_ERR ),
/* 48 */ ( BxOpcodeGroup_ERR ),
/* 49 */ ( BxOpcodeGroup_ERR ),
/* 4A */ ( BxOpcodeGroup_ERR ),
/* 4B */ ( BxOpcodeGroup_ERR ),
/* 4C */ ( BxOpcodeGroup_ERR ),
/* 4D */ ( BxOpcodeGroup_ERR ),
/* 4E */ ( BxOpcodeGroup_ERR ),
/* 4F */ ( BxOpcodeGroup_ERR ),
/* 50 */ ( BxOpcodeGroup_ERR ),
/* 51 */ ( BxOpcodeGroup_ERR ),
/* 52 */ ( BxOpcodeGroup_ERR ),
/* 53 */ ( BxOpcodeGroup_ERR ),
/* 54 */ ( BxOpcodeGroup_ERR ),
/* 55 */ ( BxOpcodeGroup_ERR ),
/* 56 */ ( BxOpcodeGroup_ERR ),
/* 57 */ ( BxOpcodeGroup_ERR ),
/* 58 */ ( BxOpcodeGroup_ERR ),
/* 59 */ ( BxOpcodeGroup_ERR ),
/* 5A */ ( BxOpcodeGroup_ERR ),
/* 5B */ ( BxOpcodeGroup_ERR ),
/* 5C */ ( BxOpcodeGroup_ERR ),
/* 5D */ ( BxOpcodeGroup_ERR ),
/* 5E */ ( BxOpcodeGroup_ERR ),
/* 5F */ ( BxOpcodeGroup_ERR ),
/* 60 */ ( BxOpcodeGroup_ERR ),
/* 61 */ ( BxOpcodeGroup_ERR ),
/* 62 */ ( BxOpcodeGroup_ERR ),
/* 63 */ ( BxOpcodeGroup_ERR ),
/* 64 */ ( BxOpcodeGroup_ERR ),
/* 65 */ ( BxOpcodeGroup_ERR ),
/* 66 */ ( BxOpcodeGroup_ERR ),
/* 67 */ ( BxOpcodeGroup_ERR ),
/* 68 */ ( BxOpcodeGroup_ERR ),
/* 69 */ ( BxOpcodeGroup_ERR ),
/* 6A */ ( BxOpcodeGroup_ERR ),
/* 6B */ ( BxOpcodeGroup_ERR ),
/* 6C */ ( BxOpcodeGroup_ERR ),
/* 6D */ ( BxOpcodeGroup_ERR ),
/* 6E */ ( BxOpcodeGroup_ERR ),
/* 6F */ ( BxOpcodeGroup_ERR ),
/* 70 */ ( BxOpcodeGroup_ERR ),
/* 71 */ ( BxOpcodeGroup_ERR ),
/* 72 */ ( BxOpcodeGroup_ERR ),
/* 73 */ ( BxOpcodeGroup_ERR ),
/* 74 */ ( BxOpcodeGroup_ERR ),
/* 75 */ ( BxOpcodeGroup_ERR ),
/* 76 */ ( BxOpcodeGroup_ERR ),
/* 77 */ ( BxOpcodeGroup_ERR ),
/* 78 */ ( BxOpcodeGroup_ERR ),
/* 79 */ ( BxOpcodeGroup_ERR ),
/* 7A */ ( BxOpcodeGroup_ERR ),
/* 7B */ ( BxOpcodeGroup_ERR ),
/* 7C */ ( BxOpcodeGroup_ERR ),
/* 7D */ ( BxOpcodeGroup_ERR ),
/* 7E */ ( BxOpcodeGroup_ERR ),
/* 7F */ ( BxOpcodeGroup_ERR ),
/* 80 */ ( BxOpcodeGroup_XOP_0x9_80 ),
/* 81 */ ( BxOpcodeGroup_XOP_0x9_81 ),
/* 82 */ ( BxOpcodeGroup_XOP_0x9_82 ),
/* 83 */ ( BxOpcodeGroup_XOP_0x9_83 ),
/* 84 */ ( BxOpcodeGroup_ERR ),
/* 85 */ ( BxOpcodeGroup_ERR ),
/* 86 */ ( BxOpcodeGroup_ERR ),
/* 87 */ ( BxOpcodeGroup_ERR ),
/* 88 */ ( BxOpcodeGroup_XOP_0x9_88 ),
/* 89 */ ( BxOpcodeGroup_XOP_0x9_89 ),
/* 8A */ ( BxOpcodeGroup_XOP_0x9_8A ),
/* 8B */ ( BxOpcodeGroup_XOP_0x9_8B ),
/* 8C */ ( BxOpcodeGroup_ERR ),
/* 8D */ ( BxOpcodeGroup_ERR ),
/* 8E */ ( BxOpcodeGroup_ERR ),
/* 8F */ ( BxOpcodeGroup_ERR ),
/* 90 */ ( BxOpcodeGroup_XOP_0x9_90 ),
/* 91 */ ( BxOpcodeGroup_XOP_0x9_91 ),
/* 92 */ ( BxOpcodeGroup_XOP_0x9_92 ),
/* 93 */ ( BxOpcodeGroup_XOP_0x9_93 ),
/* 94 */ ( BxOpcodeGroup_XOP_0x9_94 ),
/* 95 */ ( BxOpcodeGroup_XOP_0x9_95 ),
/* 96 */ ( BxOpcodeGroup_XOP_0x9_96 ),
/* 97 */ ( BxOpcodeGroup_XOP_0x9_97 ),
/* 98 */ ( BxOpcodeGroup_ERR ),
/* 99 */ ( BxOpcodeGroup_ERR ),
/* 9A */ ( BxOpcodeGroup_ERR ),
/* 9B */ ( BxOpcodeGroup_ERR ),
/* 9C */ ( BxOpcodeGroup_ERR ),
/* 9D */ ( BxOpcodeGroup_ERR ),
/* 9E */ ( BxOpcodeGroup_ERR ),
/* 9F */ ( BxOpcodeGroup_ERR ),
/* A0 */ ( BxOpcodeGroup_ERR ),
/* A1 */ ( BxOpcodeGroup_ERR ),
/* A2 */ ( BxOpcodeGroup_ERR ),
/* A3 */ ( BxOpcodeGroup_ERR ),
/* A4 */ ( BxOpcodeGroup_ERR ),
/* A5 */ ( BxOpcodeGroup_ERR ),
/* A6 */ ( BxOpcodeGroup_ERR ),
/* A7 */ ( BxOpcodeGroup_ERR ),
/* A8 */ ( BxOpcodeGroup_ERR ),
/* A9 */ ( BxOpcodeGroup_ERR ),
/* AA */ ( BxOpcodeGroup_ERR ),
/* AB */ ( BxOpcodeGroup_ERR ),
/* AC */ ( BxOpcodeGroup_ERR ),
/* AD */ ( BxOpcodeGroup_ERR ),
/* AE */ ( BxOpcodeGroup_ERR ),
/* AF */ ( BxOpcodeGroup_ERR ),
/* B0 */ ( BxOpcodeGroup_ERR ),
/* B1 */ ( BxOpcodeGroup_ERR ),
/* B2 */ ( BxOpcodeGroup_ERR ),
/* B3 */ ( BxOpcodeGroup_ERR ),
/* B4 */ ( BxOpcodeGroup_ERR ),
/* B5 */ ( BxOpcodeGroup_ERR ),
/* B6 */ ( BxOpcodeGroup_ERR ),
/* B7 */ ( BxOpcodeGroup_ERR ),
/* B8 */ ( BxOpcodeGroup_ERR ),
/* B9 */ ( BxOpcodeGroup_ERR ),
/* BA */ ( BxOpcodeGroup_ERR ),
/* BB */ ( BxOpcodeGroup_ERR ),
/* BC */ ( BxOpcodeGroup_ERR ),
/* BD */ ( BxOpcodeGroup_ERR ),
/* BE */ ( BxOpcodeGroup_ERR ),
/* BF */ ( BxOpcodeGroup_ERR ),
/* C0 */ ( BxOpcodeGroup_ERR ),
/* C1 */ ( BxOpcodeGroup_XOP_0x9_C1 ),
/* C2 */ ( BxOpcodeGroup_XOP_0x9_C2 ),
/* C3 */ ( BxOpcodeGroup_XOP_0x9_C3 ),
/* C4 */ ( BxOpcodeGroup_ERR ),
/* C5 */ ( BxOpcodeGroup_ERR ),
/* C6 */ ( BxOpcodeGroup_XOP_0x9_C6 ),
/* C7 */ ( BxOpcodeGroup_XOP_0x9_C7 ),
/* C8 */ ( BxOpcodeGroup_ERR ),
/* C9 */ ( BxOpcodeGroup_ERR ),
/* CA */ ( BxOpcodeGroup_ERR ),
/* CB */ ( BxOpcodeGroup_XOP_0x9_CB ),
/* CC */ ( BxOpcodeGroup_ERR ),
/* CD */ ( BxOpcodeGroup_ERR ),
/* CE */ ( BxOpcodeGroup_ERR ),
/* CF */ ( BxOpcodeGroup_ERR ),
/* D0 */ ( BxOpcodeGroup_ERR ),
/* D1 */ ( BxOpcodeGroup_XOP_0x9_D1 ),
/* D2 */ ( BxOpcodeGroup_XOP_0x9_D2 ),
/* D3 */ ( BxOpcodeGroup_XOP_0x9_D3 ),
/* D4 */ ( BxOpcodeGroup_ERR ),
/* D5 */ ( BxOpcodeGroup_ERR ),
/* D6 */ ( BxOpcodeGroup_XOP_0x9_D6 ),
/* D7 */ ( BxOpcodeGroup_XOP_0x9_D7 ),
/* D8 */ ( BxOpcodeGroup_ERR ),
/* D9 */ ( BxOpcodeGroup_ERR ),
/* DA */ ( BxOpcodeGroup_ERR ),
/* DB */ ( BxOpcodeGroup_XOP_0x9_DB ),
/* DC */ ( BxOpcodeGroup_ERR ),
/* DD */ ( BxOpcodeGroup_ERR ),
/* DF */ ( BxOpcodeGroup_ERR ),
/* DE */ ( BxOpcodeGroup_ERR ),
/* E0 */ ( BxOpcodeGroup_ERR ),
/* E1 */ ( BxOpcodeGroup_XOP_0x9_E1 ),
/* E2 */ ( BxOpcodeGroup_XOP_0x9_E2 ),
/* E3 */ ( BxOpcodeGroup_XOP_0x9_E3 ),
/* E4 */ ( BxOpcodeGroup_ERR ),
/* E5 */ ( BxOpcodeGroup_ERR ),
/* E6 */ ( BxOpcodeGroup_ERR ),
/* E7 */ ( BxOpcodeGroup_ERR ),
/* E8 */ ( BxOpcodeGroup_ERR ),
/* E9 */ ( BxOpcodeGroup_ERR ),
/* EA */ ( BxOpcodeGroup_ERR ),
/* EB */ ( BxOpcodeGroup_ERR ),
/* EC */ ( BxOpcodeGroup_ERR ),
/* ED */ ( BxOpcodeGroup_ERR ),
/* EE */ ( BxOpcodeGroup_ERR ),
/* EF */ ( BxOpcodeGroup_ERR ),
/* F0 */ ( BxOpcodeGroup_ERR ),
/* F1 */ ( BxOpcodeGroup_ERR ),
/* F2 */ ( BxOpcodeGroup_ERR ),
/* F3 */ ( BxOpcodeGroup_ERR ),
/* F4 */ ( BxOpcodeGroup_ERR ),
/* F5 */ ( BxOpcodeGroup_ERR ),
/* F6 */ ( BxOpcodeGroup_ERR ),
/* F7 */ ( BxOpcodeGroup_ERR ),
/* F8 */ ( BxOpcodeGroup_ERR ),
/* F9 */ ( BxOpcodeGroup_ERR ),
/* FA */ ( BxOpcodeGroup_ERR ),
/* FB */ ( BxOpcodeGroup_ERR ),
/* FC */ ( BxOpcodeGroup_ERR ),
/* FD */ ( BxOpcodeGroup_ERR ),
/* FE */ ( BxOpcodeGroup_ERR ),
/* FF */ ( BxOpcodeGroup_ERR ),
// 256 entries for XOP-encoded map 0xA opcodes
/* 00 */ ( BxOpcodeGroup_ERR ),
/* 01 */ ( BxOpcodeGroup_ERR ),
/* 02 */ ( BxOpcodeGroup_ERR ),
/* 03 */ ( BxOpcodeGroup_ERR ),
/* 04 */ ( BxOpcodeGroup_ERR ),
/* 05 */ ( BxOpcodeGroup_ERR ),
/* 06 */ ( BxOpcodeGroup_ERR ),
/* 07 */ ( BxOpcodeGroup_ERR ),
/* 08 */ ( BxOpcodeGroup_ERR ),
/* 09 */ ( BxOpcodeGroup_ERR ),
/* 0A */ ( BxOpcodeGroup_ERR ),
/* 0B */ ( BxOpcodeGroup_ERR ),
/* 0C */ ( BxOpcodeGroup_ERR ),
/* 0D */ ( BxOpcodeGroup_ERR ),
/* 0E */ ( BxOpcodeGroup_ERR ),
/* 0F */ ( BxOpcodeGroup_ERR ),
/* 10 */ ( BxOpcodeGroup_XOP_0xA_10 ),
/* 11 */ ( BxOpcodeGroup_ERR ),
/* 12 */ ( BxOpcodeGroup_ERR ),
/* 13 */ ( BxOpcodeGroup_ERR ),
/* 14 */ ( BxOpcodeGroup_ERR ),
/* 15 */ ( BxOpcodeGroup_ERR ),
/* 16 */ ( BxOpcodeGroup_ERR ),
/* 17 */ ( BxOpcodeGroup_ERR ),
/* 18 */ ( BxOpcodeGroup_ERR ),
/* 19 */ ( BxOpcodeGroup_ERR ),
/* 1A */ ( BxOpcodeGroup_ERR ),
/* 1B */ ( BxOpcodeGroup_ERR ),
/* 1C */ ( BxOpcodeGroup_ERR ),
/* 1D */ ( BxOpcodeGroup_ERR ),
/* 1E */ ( BxOpcodeGroup_ERR ),
/* 1F */ ( BxOpcodeGroup_ERR ),
/* 20 */ ( BxOpcodeGroup_ERR ),
/* 21 */ ( BxOpcodeGroup_ERR ),
/* 22 */ ( BxOpcodeGroup_ERR ),
/* 23 */ ( BxOpcodeGroup_ERR ),
/* 24 */ ( BxOpcodeGroup_ERR ),
/* 25 */ ( BxOpcodeGroup_ERR ),
/* 26 */ ( BxOpcodeGroup_ERR ),
/* 27 */ ( BxOpcodeGroup_ERR ),
/* 28 */ ( BxOpcodeGroup_ERR ),
/* 29 */ ( BxOpcodeGroup_ERR ),
/* 2A */ ( BxOpcodeGroup_ERR ),
/* 2B */ ( BxOpcodeGroup_ERR ),
/* 2C */ ( BxOpcodeGroup_ERR ),
/* 2D */ ( BxOpcodeGroup_ERR ),
/* 2E */ ( BxOpcodeGroup_ERR ),
/* 2F */ ( BxOpcodeGroup_ERR ),
/* 30 */ ( BxOpcodeGroup_ERR ),
/* 31 */ ( BxOpcodeGroup_ERR ),
/* 32 */ ( BxOpcodeGroup_ERR ),
/* 33 */ ( BxOpcodeGroup_ERR ),
/* 34 */ ( BxOpcodeGroup_ERR ),
/* 35 */ ( BxOpcodeGroup_ERR ),
/* 36 */ ( BxOpcodeGroup_ERR ),
/* 37 */ ( BxOpcodeGroup_ERR ),
/* 38 */ ( BxOpcodeGroup_ERR ),
/* 39 */ ( BxOpcodeGroup_ERR ),
/* 3A */ ( BxOpcodeGroup_ERR ),
/* 3B */ ( BxOpcodeGroup_ERR ),
/* 3C */ ( BxOpcodeGroup_ERR ),
/* 3D */ ( BxOpcodeGroup_ERR ),
/* 3E */ ( BxOpcodeGroup_ERR ),
/* 3F */ ( BxOpcodeGroup_ERR ),
/* 40 */ ( BxOpcodeGroup_ERR ),
/* 41 */ ( BxOpcodeGroup_ERR ),
/* 42 */ ( BxOpcodeGroup_ERR ),
/* 43 */ ( BxOpcodeGroup_ERR ),
/* 44 */ ( BxOpcodeGroup_ERR ),
/* 45 */ ( BxOpcodeGroup_ERR ),
/* 46 */ ( BxOpcodeGroup_ERR ),
/* 47 */ ( BxOpcodeGroup_ERR ),
/* 48 */ ( BxOpcodeGroup_ERR ),
/* 49 */ ( BxOpcodeGroup_ERR ),
/* 4A */ ( BxOpcodeGroup_ERR ),
/* 4B */ ( BxOpcodeGroup_ERR ),
/* 4C */ ( BxOpcodeGroup_ERR ),
/* 4D */ ( BxOpcodeGroup_ERR ),
/* 4E */ ( BxOpcodeGroup_ERR ),
/* 4F */ ( BxOpcodeGroup_ERR ),
/* 50 */ ( BxOpcodeGroup_ERR ),
/* 51 */ ( BxOpcodeGroup_ERR ),
/* 52 */ ( BxOpcodeGroup_ERR ),
/* 53 */ ( BxOpcodeGroup_ERR ),
/* 54 */ ( BxOpcodeGroup_ERR ),
/* 55 */ ( BxOpcodeGroup_ERR ),
/* 56 */ ( BxOpcodeGroup_ERR ),
/* 57 */ ( BxOpcodeGroup_ERR ),
/* 58 */ ( BxOpcodeGroup_ERR ),
/* 59 */ ( BxOpcodeGroup_ERR ),
/* 5A */ ( BxOpcodeGroup_ERR ),
/* 5B */ ( BxOpcodeGroup_ERR ),
/* 5C */ ( BxOpcodeGroup_ERR ),
/* 5D */ ( BxOpcodeGroup_ERR ),
/* 5E */ ( BxOpcodeGroup_ERR ),
/* 5F */ ( BxOpcodeGroup_ERR ),
/* 60 */ ( BxOpcodeGroup_ERR ),
/* 61 */ ( BxOpcodeGroup_ERR ),
/* 62 */ ( BxOpcodeGroup_ERR ),
/* 63 */ ( BxOpcodeGroup_ERR ),
/* 64 */ ( BxOpcodeGroup_ERR ),
/* 65 */ ( BxOpcodeGroup_ERR ),
/* 66 */ ( BxOpcodeGroup_ERR ),
/* 67 */ ( BxOpcodeGroup_ERR ),
/* 68 */ ( BxOpcodeGroup_ERR ),
/* 69 */ ( BxOpcodeGroup_ERR ),
/* 6A */ ( BxOpcodeGroup_ERR ),
/* 6B */ ( BxOpcodeGroup_ERR ),
/* 6C */ ( BxOpcodeGroup_ERR ),
/* 6D */ ( BxOpcodeGroup_ERR ),
/* 6E */ ( BxOpcodeGroup_ERR ),
/* 6F */ ( BxOpcodeGroup_ERR ),
/* 70 */ ( BxOpcodeGroup_ERR ),
/* 71 */ ( BxOpcodeGroup_ERR ),
/* 72 */ ( BxOpcodeGroup_ERR ),
/* 73 */ ( BxOpcodeGroup_ERR ),
/* 74 */ ( BxOpcodeGroup_ERR ),
/* 75 */ ( BxOpcodeGroup_ERR ),
/* 76 */ ( BxOpcodeGroup_ERR ),
/* 77 */ ( BxOpcodeGroup_ERR ),
/* 78 */ ( BxOpcodeGroup_ERR ),
/* 79 */ ( BxOpcodeGroup_ERR ),
/* 7A */ ( BxOpcodeGroup_ERR ),
/* 7B */ ( BxOpcodeGroup_ERR ),
/* 7C */ ( BxOpcodeGroup_ERR ),
/* 7D */ ( BxOpcodeGroup_ERR ),
/* 7E */ ( BxOpcodeGroup_ERR ),
/* 7F */ ( BxOpcodeGroup_ERR ),
/* 80 */ ( BxOpcodeGroup_ERR ),
/* 81 */ ( BxOpcodeGroup_ERR ),
/* 82 */ ( BxOpcodeGroup_ERR ),
/* 83 */ ( BxOpcodeGroup_ERR ),
/* 84 */ ( BxOpcodeGroup_ERR ),
/* 85 */ ( BxOpcodeGroup_ERR ),
/* 86 */ ( BxOpcodeGroup_ERR ),
/* 87 */ ( BxOpcodeGroup_ERR ),
/* 88 */ ( BxOpcodeGroup_ERR ),
/* 89 */ ( BxOpcodeGroup_ERR ),
/* 8A */ ( BxOpcodeGroup_ERR ),
/* 8B */ ( BxOpcodeGroup_ERR ),
/* 8C */ ( BxOpcodeGroup_ERR ),
/* 8D */ ( BxOpcodeGroup_ERR ),
/* 8E */ ( BxOpcodeGroup_ERR ),
/* 8F */ ( BxOpcodeGroup_ERR ),
/* 90 */ ( BxOpcodeGroup_ERR ),
/* 91 */ ( BxOpcodeGroup_ERR ),
/* 92 */ ( BxOpcodeGroup_ERR ),
/* 93 */ ( BxOpcodeGroup_ERR ),
/* 94 */ ( BxOpcodeGroup_ERR ),
/* 95 */ ( BxOpcodeGroup_ERR ),
/* 96 */ ( BxOpcodeGroup_ERR ),
/* 97 */ ( BxOpcodeGroup_ERR ),
/* 98 */ ( BxOpcodeGroup_ERR ),
/* 99 */ ( BxOpcodeGroup_ERR ),
/* 9A */ ( BxOpcodeGroup_ERR ),
/* 9B */ ( BxOpcodeGroup_ERR ),
/* 9C */ ( BxOpcodeGroup_ERR ),
/* 9D */ ( BxOpcodeGroup_ERR ),
/* 9E */ ( BxOpcodeGroup_ERR ),
/* 9F */ ( BxOpcodeGroup_ERR ),
/* A0 */ ( BxOpcodeGroup_ERR ),
/* A1 */ ( BxOpcodeGroup_ERR ),
/* A2 */ ( BxOpcodeGroup_ERR ),
/* A3 */ ( BxOpcodeGroup_ERR ),
/* A4 */ ( BxOpcodeGroup_ERR ),
/* A5 */ ( BxOpcodeGroup_ERR ),
/* A6 */ ( BxOpcodeGroup_ERR ),
/* A7 */ ( BxOpcodeGroup_ERR ),
/* A8 */ ( BxOpcodeGroup_ERR ),
/* A9 */ ( BxOpcodeGroup_ERR ),
/* AA */ ( BxOpcodeGroup_ERR ),
/* AB */ ( BxOpcodeGroup_ERR ),
/* AC */ ( BxOpcodeGroup_ERR ),
/* AD */ ( BxOpcodeGroup_ERR ),
/* AE */ ( BxOpcodeGroup_ERR ),
/* AF */ ( BxOpcodeGroup_ERR ),
/* B0 */ ( BxOpcodeGroup_ERR ),
/* B1 */ ( BxOpcodeGroup_ERR ),
/* B2 */ ( BxOpcodeGroup_ERR ),
/* B3 */ ( BxOpcodeGroup_ERR ),
/* B4 */ ( BxOpcodeGroup_ERR ),
/* B5 */ ( BxOpcodeGroup_ERR ),
/* B6 */ ( BxOpcodeGroup_ERR ),
/* B7 */ ( BxOpcodeGroup_ERR ),
/* B8 */ ( BxOpcodeGroup_ERR ),
/* B9 */ ( BxOpcodeGroup_ERR ),
/* BA */ ( BxOpcodeGroup_ERR ),
/* BB */ ( BxOpcodeGroup_ERR ),
/* BC */ ( BxOpcodeGroup_ERR ),
/* BD */ ( BxOpcodeGroup_ERR ),
/* BE */ ( BxOpcodeGroup_ERR ),
/* BF */ ( BxOpcodeGroup_ERR ),
/* C0 */ ( BxOpcodeGroup_ERR ),
/* C1 */ ( BxOpcodeGroup_ERR ),
/* C2 */ ( BxOpcodeGroup_ERR ),
/* C3 */ ( BxOpcodeGroup_ERR ),
/* C4 */ ( BxOpcodeGroup_ERR ),
/* C5 */ ( BxOpcodeGroup_ERR ),
/* C6 */ ( BxOpcodeGroup_ERR ),
/* C7 */ ( BxOpcodeGroup_ERR ),
/* C8 */ ( BxOpcodeGroup_ERR ),
/* C9 */ ( BxOpcodeGroup_ERR ),
/* CA */ ( BxOpcodeGroup_ERR ),
/* CB */ ( BxOpcodeGroup_ERR ),
/* CC */ ( BxOpcodeGroup_ERR ),
/* CD */ ( BxOpcodeGroup_ERR ),
/* CE */ ( BxOpcodeGroup_ERR ),
/* CF */ ( BxOpcodeGroup_ERR ),
/* D0 */ ( BxOpcodeGroup_ERR ),
/* D1 */ ( BxOpcodeGroup_ERR ),
/* D2 */ ( BxOpcodeGroup_ERR ),
/* D3 */ ( BxOpcodeGroup_ERR ),
/* D4 */ ( BxOpcodeGroup_ERR ),
/* D5 */ ( BxOpcodeGroup_ERR ),
/* D6 */ ( BxOpcodeGroup_ERR ),
/* D7 */ ( BxOpcodeGroup_ERR ),
/* D8 */ ( BxOpcodeGroup_ERR ),
/* D9 */ ( BxOpcodeGroup_ERR ),
/* DA */ ( BxOpcodeGroup_ERR ),
/* DB */ ( BxOpcodeGroup_ERR ),
/* DC */ ( BxOpcodeGroup_ERR ),
/* DD */ ( BxOpcodeGroup_ERR ),
/* DE */ ( BxOpcodeGroup_ERR ),
/* DF */ ( BxOpcodeGroup_ERR ),
/* E0 */ ( BxOpcodeGroup_ERR ),
/* E1 */ ( BxOpcodeGroup_ERR ),
/* E2 */ ( BxOpcodeGroup_ERR ),
/* E3 */ ( BxOpcodeGroup_ERR ),
/* E4 */ ( BxOpcodeGroup_ERR ),
/* E5 */ ( BxOpcodeGroup_ERR ),
/* E6 */ ( BxOpcodeGroup_ERR ),
/* E7 */ ( BxOpcodeGroup_ERR ),
/* E8 */ ( BxOpcodeGroup_ERR ),
/* E9 */ ( BxOpcodeGroup_ERR ),
/* EA */ ( BxOpcodeGroup_ERR ),
/* EB */ ( BxOpcodeGroup_ERR ),
/* EC */ ( BxOpcodeGroup_ERR ),
/* ED */ ( BxOpcodeGroup_ERR ),
/* EE */ ( BxOpcodeGroup_ERR ),
/* EF */ ( BxOpcodeGroup_ERR ),
/* F0 */ ( BxOpcodeGroup_ERR ),
/* F1 */ ( BxOpcodeGroup_ERR ),
/* F2 */ ( BxOpcodeGroup_ERR ),
/* F3 */ ( BxOpcodeGroup_ERR ),
/* F4 */ ( BxOpcodeGroup_ERR ),
/* F5 */ ( BxOpcodeGroup_ERR ),
/* F6 */ ( BxOpcodeGroup_ERR ),
/* F7 */ ( BxOpcodeGroup_ERR ),
/* F8 */ ( BxOpcodeGroup_ERR ),
/* F9 */ ( BxOpcodeGroup_ERR ),
/* FA */ ( BxOpcodeGroup_ERR ),
/* FB */ ( BxOpcodeGroup_ERR ),
/* FC */ ( BxOpcodeGroup_ERR ),
/* FD */ ( BxOpcodeGroup_ERR ),
/* FE */ ( BxOpcodeGroup_ERR ),
/* FF */ ( BxOpcodeGroup_ERR )
};
#endif // BX_SUPPORT_AVX
#endif // BX_XOP_FETCHDECODE_TABLES_H