Bochs/bochs/disasm/dis_tables_xop.inc
2013-10-07 19:23:19 +00:00

891 lines
28 KiB
PHP
Executable File

/////////////////////////////////////////////////////////////////////////
// $Id$
/////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2011-2013 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 02110-1301 USA
//
/////////////////////////////////////////////////////////////////////////
static BxDisasmOpcodeTable_t BxDisasmGroupXOP_G1[8] = {
/* 0 */ { 0, &Ia_Invalid },
/* 1 */ { 0, &Ia_blcfill_By_Ey },
/* 2 */ { 0, &Ia_blsfill_By_Ey },
/* 3 */ { 0, &Ia_blcs_By_Ey },
/* 4 */ { 0, &Ia_tzmsk_By_Ey },
/* 5 */ { 0, &Ia_blcic_By_Ey },
/* 6 */ { 0, &Ia_blsic_By_Ey },
/* 7 */ { 0, &Ia_t1mskc_By_Ey }
};
static BxDisasmOpcodeTable_t BxDisasmGroupXOP_G2[8] = {
/* 0 */ { 0, &Ia_Invalid },
/* 1 */ { 0, &Ia_blcmsk_By_Ey },
/* 2 */ { 0, &Ia_Invalid },
/* 3 */ { 0, &Ia_Invalid },
/* 4 */ { 0, &Ia_Invalid },
/* 5 */ { 0, &Ia_Invalid },
/* 6 */ { 0, &Ia_blci_By_Ey },
/* 7 */ { 0, &Ia_Invalid }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop8_a2[2] = {
/* 0 */ { 0, &Ia_vpcmov_Vdq_Hdq_Wdq_VIb },
/* 1 */ { 0, &Ia_vpcmov_Vdq_Hdq_VIb_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop8_a3[2] = {
/* 0 */ { 0, &Ia_vpperm_Vdq_Hdq_Wdq_VIb },
/* 1 */ { 0, &Ia_vpperm_Vdq_Hdq_VIb_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_88[2] = {
/* 0 */ { 0, &Ia_vpshab_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vpshab_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_89[2] = {
/* 0 */ { 0, &Ia_vpshaw_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vpshaw_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_8a[2] = {
/* 0 */ { 0, &Ia_vpshad_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vpshad_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_8b[2] = {
/* 0 */ { 0, &Ia_vpshaq_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vpshaq_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_90[2] = {
/* 0 */ { 0, &Ia_vprotb_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vprotb_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_91[2] = {
/* 0 */ { 0, &Ia_vprotw_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vprotw_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_92[2] = {
/* 0 */ { 0, &Ia_vprotd_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vprotd_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_93[2] = {
/* 0 */ { 0, &Ia_vprotq_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vprotq_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_94[2] = {
/* 0 */ { 0, &Ia_vpshlb_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vpshlb_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_95[2] = {
/* 0 */ { 0, &Ia_vpshlw_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vpshlw_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_96[2] = {
/* 0 */ { 0, &Ia_vpshld_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vpshld_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmGrpVexW_xop9_97[2] = {
/* 0 */ { 0, &Ia_vpshlq_Vdq_Wdq_Hdq },
/* 1 */ { 0, &Ia_vpshlq_Vdq_Hdq_Wdq }
};
static BxDisasmOpcodeTable_t BxDisasmOpcodesXOP[256*3] = {
// 256 entries for XOP map 0x8 opcodes
/* 00 */ { 0, &Ia_Invalid },
/* 01 */ { GRPN(XOP_G1) },
/* 02 */ { GRPN(XOP_G2) },
/* 03 */ { 0, &Ia_Invalid },
/* 04 */ { 0, &Ia_Invalid },
/* 05 */ { 0, &Ia_Invalid },
/* 06 */ { 0, &Ia_Invalid },
/* 07 */ { 0, &Ia_Invalid },
/* 08 */ { 0, &Ia_Invalid },
/* 09 */ { 0, &Ia_Invalid },
/* 0A */ { 0, &Ia_Invalid },
/* 0B */ { 0, &Ia_Invalid },
/* 0C */ { 0, &Ia_Invalid },
/* 0D */ { 0, &Ia_Invalid },
/* 0E */ { 0, &Ia_Invalid },
/* 0F */ { 0, &Ia_Invalid },
/* 10 */ { 0, &Ia_Invalid },
/* 11 */ { 0, &Ia_Invalid },
/* 12 */ { 0, &Ia_Invalid },
/* 13 */ { 0, &Ia_Invalid },
/* 14 */ { 0, &Ia_Invalid },
/* 15 */ { 0, &Ia_Invalid },
/* 16 */ { 0, &Ia_Invalid },
/* 17 */ { 0, &Ia_Invalid },
/* 18 */ { 0, &Ia_Invalid },
/* 19 */ { 0, &Ia_Invalid },
/* 1A */ { 0, &Ia_Invalid },
/* 1B */ { 0, &Ia_Invalid },
/* 1C */ { 0, &Ia_Invalid },
/* 1D */ { 0, &Ia_Invalid },
/* 1E */ { 0, &Ia_Invalid },
/* 1F */ { 0, &Ia_Invalid },
/* 20 */ { 0, &Ia_Invalid },
/* 21 */ { 0, &Ia_Invalid },
/* 22 */ { 0, &Ia_Invalid },
/* 23 */ { 0, &Ia_Invalid },
/* 24 */ { 0, &Ia_Invalid },
/* 25 */ { 0, &Ia_Invalid },
/* 26 */ { 0, &Ia_Invalid },
/* 27 */ { 0, &Ia_Invalid },
/* 28 */ { 0, &Ia_Invalid },
/* 29 */ { 0, &Ia_Invalid },
/* 2A */ { 0, &Ia_Invalid },
/* 2B */ { 0, &Ia_Invalid },
/* 2C */ { 0, &Ia_Invalid },
/* 2D */ { 0, &Ia_Invalid },
/* 2E */ { 0, &Ia_Invalid },
/* 2F */ { 0, &Ia_Invalid },
/* 30 */ { 0, &Ia_Invalid },
/* 31 */ { 0, &Ia_Invalid },
/* 32 */ { 0, &Ia_Invalid },
/* 33 */ { 0, &Ia_Invalid },
/* 34 */ { 0, &Ia_Invalid },
/* 35 */ { 0, &Ia_Invalid },
/* 36 */ { 0, &Ia_Invalid },
/* 37 */ { 0, &Ia_Invalid },
/* 38 */ { 0, &Ia_Invalid },
/* 39 */ { 0, &Ia_Invalid },
/* 3A */ { 0, &Ia_Invalid },
/* 3B */ { 0, &Ia_Invalid },
/* 3C */ { 0, &Ia_Invalid },
/* 3D */ { 0, &Ia_Invalid },
/* 3E */ { 0, &Ia_Invalid },
/* 3F */ { 0, &Ia_Invalid },
/* 40 */ { 0, &Ia_Invalid },
/* 41 */ { 0, &Ia_Invalid },
/* 42 */ { 0, &Ia_Invalid },
/* 43 */ { 0, &Ia_Invalid },
/* 44 */ { 0, &Ia_Invalid },
/* 45 */ { 0, &Ia_Invalid },
/* 46 */ { 0, &Ia_Invalid },
/* 47 */ { 0, &Ia_Invalid },
/* 48 */ { 0, &Ia_Invalid },
/* 49 */ { 0, &Ia_Invalid },
/* 4A */ { 0, &Ia_Invalid },
/* 4B */ { 0, &Ia_Invalid },
/* 4C */ { 0, &Ia_Invalid },
/* 4D */ { 0, &Ia_Invalid },
/* 4E */ { 0, &Ia_Invalid },
/* 4F */ { 0, &Ia_Invalid },
/* 50 */ { 0, &Ia_Invalid },
/* 51 */ { 0, &Ia_Invalid },
/* 52 */ { 0, &Ia_Invalid },
/* 53 */ { 0, &Ia_Invalid },
/* 54 */ { 0, &Ia_Invalid },
/* 55 */ { 0, &Ia_Invalid },
/* 56 */ { 0, &Ia_Invalid },
/* 57 */ { 0, &Ia_Invalid },
/* 58 */ { 0, &Ia_Invalid },
/* 59 */ { 0, &Ia_Invalid },
/* 5A */ { 0, &Ia_Invalid },
/* 5B */ { 0, &Ia_Invalid },
/* 5C */ { 0, &Ia_Invalid },
/* 5D */ { 0, &Ia_Invalid },
/* 5E */ { 0, &Ia_Invalid },
/* 5F */ { 0, &Ia_Invalid },
/* 60 */ { 0, &Ia_Invalid },
/* 61 */ { 0, &Ia_Invalid },
/* 62 */ { 0, &Ia_Invalid },
/* 63 */ { 0, &Ia_Invalid },
/* 64 */ { 0, &Ia_Invalid },
/* 65 */ { 0, &Ia_Invalid },
/* 66 */ { 0, &Ia_Invalid },
/* 67 */ { 0, &Ia_Invalid },
/* 68 */ { 0, &Ia_Invalid },
/* 69 */ { 0, &Ia_Invalid },
/* 6A */ { 0, &Ia_Invalid },
/* 6B */ { 0, &Ia_Invalid },
/* 6C */ { 0, &Ia_Invalid },
/* 6D */ { 0, &Ia_Invalid },
/* 6E */ { 0, &Ia_Invalid },
/* 6F */ { 0, &Ia_Invalid },
/* 70 */ { 0, &Ia_Invalid },
/* 71 */ { 0, &Ia_Invalid },
/* 72 */ { 0, &Ia_Invalid },
/* 73 */ { 0, &Ia_Invalid },
/* 74 */ { 0, &Ia_Invalid },
/* 75 */ { 0, &Ia_Invalid },
/* 76 */ { 0, &Ia_Invalid },
/* 77 */ { 0, &Ia_Invalid },
/* 78 */ { 0, &Ia_Invalid },
/* 79 */ { 0, &Ia_Invalid },
/* 7A */ { 0, &Ia_Invalid },
/* 7B */ { 0, &Ia_Invalid },
/* 7C */ { 0, &Ia_Invalid },
/* 7D */ { 0, &Ia_Invalid },
/* 7E */ { 0, &Ia_Invalid },
/* 7F */ { 0, &Ia_Invalid },
/* 80 */ { 0, &Ia_Invalid },
/* 81 */ { 0, &Ia_Invalid },
/* 82 */ { 0, &Ia_Invalid },
/* 83 */ { 0, &Ia_Invalid },
/* 84 */ { 0, &Ia_Invalid },
/* 85 */ { 0, &Ia_vpmacssww_Vdq_Hdq_Wdq_VIb },
/* 86 */ { 0, &Ia_vpmacsswd_Vdq_Hdq_Wdq_VIb },
/* 87 */ { 0, &Ia_vpmacssdql_Vdq_Hdq_Wdq_VIb },
/* 88 */ { 0, &Ia_Invalid },
/* 89 */ { 0, &Ia_Invalid },
/* 8A */ { 0, &Ia_Invalid },
/* 8B */ { 0, &Ia_Invalid },
/* 8C */ { 0, &Ia_Invalid },
/* 8D */ { 0, &Ia_Invalid },
/* 8E */ { 0, &Ia_vpmacssdd_Vdq_Hdq_Wdq_VIb },
/* 8F */ { 0, &Ia_vpmacssdqh_Vdq_Hdq_Wdq_VIb },
/* 90 */ { 0, &Ia_Invalid },
/* 91 */ { 0, &Ia_Invalid },
/* 92 */ { 0, &Ia_Invalid },
/* 93 */ { 0, &Ia_Invalid },
/* 94 */ { 0, &Ia_Invalid },
/* 95 */ { 0, &Ia_vpmacsww_Vdq_Hdq_Wdq_VIb },
/* 96 */ { 0, &Ia_vpmacswd_Vdq_Hdq_Wdq_VIb },
/* 97 */ { 0, &Ia_vpmacsdql_Vdq_Hdq_Wdq_VIb },
/* 98 */ { 0, &Ia_Invalid },
/* 99 */ { 0, &Ia_Invalid },
/* 9A */ { 0, &Ia_Invalid },
/* 9B */ { 0, &Ia_Invalid },
/* 9C */ { 0, &Ia_Invalid },
/* 9D */ { 0, &Ia_Invalid },
/* 9E */ { 0, &Ia_vpmacsdd_Vdq_Hdq_Wdq_VIb },
/* 9F */ { 0, &Ia_vpmacsdqh_Vdq_Hdq_Wdq_VIb },
/* A0 */ { 0, &Ia_Invalid },
/* A1 */ { 0, &Ia_Invalid },
/* A2 */ { GRPVEXW(xop8_a2) },
/* A3 */ { GRPVEXW(xop8_a3) },
/* A4 */ { 0, &Ia_Invalid },
/* A5 */ { 0, &Ia_Invalid },
/* A6 */ { 0, &Ia_vpmadcsswd_Vdq_Hdq_Wdq_VIb },
/* A7 */ { 0, &Ia_Invalid },
/* A8 */ { 0, &Ia_Invalid },
/* A9 */ { 0, &Ia_Invalid },
/* AA */ { 0, &Ia_Invalid },
/* AB */ { 0, &Ia_Invalid },
/* AC */ { 0, &Ia_Invalid },
/* AD */ { 0, &Ia_Invalid },
/* AE */ { 0, &Ia_Invalid },
/* AF */ { 0, &Ia_Invalid },
/* B0 */ { 0, &Ia_Invalid },
/* B1 */ { 0, &Ia_Invalid },
/* B2 */ { 0, &Ia_Invalid },
/* B3 */ { 0, &Ia_Invalid },
/* B4 */ { 0, &Ia_Invalid },
/* B5 */ { 0, &Ia_Invalid },
/* B6 */ { 0, &Ia_vpmadcswd_Vdq_Hdq_Wdq_VIb },
/* B7 */ { 0, &Ia_Invalid },
/* B8 */ { 0, &Ia_Invalid },
/* B9 */ { 0, &Ia_Invalid },
/* BA */ { 0, &Ia_Invalid },
/* BB */ { 0, &Ia_Invalid },
/* BC */ { 0, &Ia_Invalid },
/* BD */ { 0, &Ia_Invalid },
/* BE */ { 0, &Ia_Invalid },
/* BF */ { 0, &Ia_Invalid },
/* C0 */ { 0, &Ia_vprotb_Vdq_Wdq_Ib },
/* C1 */ { 0, &Ia_vprotw_Vdq_Wdq_Ib },
/* C2 */ { 0, &Ia_vprotd_Vdq_Wdq_Ib },
/* C3 */ { 0, &Ia_vprotq_Vdq_Wdq_Ib },
/* C4 */ { 0, &Ia_Invalid },
/* C5 */ { 0, &Ia_Invalid },
/* C6 */ { 0, &Ia_Invalid },
/* C7 */ { 0, &Ia_Invalid },
/* C8 */ { 0, &Ia_Invalid },
/* C9 */ { 0, &Ia_Invalid },
/* CA */ { 0, &Ia_Invalid },
/* CB */ { 0, &Ia_Invalid },
/* CC */ { 0, &Ia_vpcomb_Vdq_Hdq_Wdq_Ib },
/* CD */ { 0, &Ia_vpcomw_Vdq_Hdq_Wdq_Ib },
/* CE */ { 0, &Ia_vpcomd_Vdq_Hdq_Wdq_Ib },
/* CF */ { 0, &Ia_vpcomq_Vdq_Hdq_Wdq_Ib },
/* D0 */ { 0, &Ia_Invalid },
/* D1 */ { 0, &Ia_Invalid },
/* D2 */ { 0, &Ia_Invalid },
/* D3 */ { 0, &Ia_Invalid },
/* D4 */ { 0, &Ia_Invalid },
/* D5 */ { 0, &Ia_Invalid },
/* D6 */ { 0, &Ia_Invalid },
/* D7 */ { 0, &Ia_Invalid },
/* D8 */ { 0, &Ia_Invalid },
/* D9 */ { 0, &Ia_Invalid },
/* DA */ { 0, &Ia_Invalid },
/* DB */ { 0, &Ia_Invalid },
/* DC */ { 0, &Ia_Invalid },
/* DD */ { 0, &Ia_Invalid },
/* DE */ { 0, &Ia_Invalid },
/* DF */ { 0, &Ia_Invalid },
/* E0 */ { 0, &Ia_Invalid },
/* E1 */ { 0, &Ia_Invalid },
/* E2 */ { 0, &Ia_Invalid },
/* E3 */ { 0, &Ia_Invalid },
/* E4 */ { 0, &Ia_Invalid },
/* E5 */ { 0, &Ia_Invalid },
/* E6 */ { 0, &Ia_Invalid },
/* E7 */ { 0, &Ia_Invalid },
/* E8 */ { 0, &Ia_Invalid },
/* E9 */ { 0, &Ia_Invalid },
/* EA */ { 0, &Ia_Invalid },
/* EB */ { 0, &Ia_Invalid },
/* EC */ { 0, &Ia_vpcomub_Vdq_Hdq_Wdq_Ib },
/* ED */ { 0, &Ia_vpcomuw_Vdq_Hdq_Wdq_Ib },
/* EE */ { 0, &Ia_vpcomud_Vdq_Hdq_Wdq_Ib },
/* EF */ { 0, &Ia_vpcomuq_Vdq_Hdq_Wdq_Ib },
/* F0 */ { 0, &Ia_Invalid },
/* F1 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid },
/* F3 */ { 0, &Ia_Invalid },
/* F4 */ { 0, &Ia_Invalid },
/* F5 */ { 0, &Ia_Invalid },
/* F6 */ { 0, &Ia_Invalid },
/* F7 */ { 0, &Ia_Invalid },
/* F8 */ { 0, &Ia_Invalid },
/* F9 */ { 0, &Ia_Invalid },
/* FA */ { 0, &Ia_Invalid },
/* FB */ { 0, &Ia_Invalid },
/* FC */ { 0, &Ia_Invalid },
/* FD */ { 0, &Ia_Invalid },
/* FE */ { 0, &Ia_Invalid },
/* FF */ { 0, &Ia_Invalid },
// 256 entries for XOP map 0x9 opcodes
/* 00 */ { 0, &Ia_Invalid },
/* 01 */ { 0, &Ia_Invalid },
/* 02 */ { 0, &Ia_Invalid },
/* 03 */ { 0, &Ia_Invalid },
/* 04 */ { 0, &Ia_Invalid },
/* 05 */ { 0, &Ia_Invalid },
/* 06 */ { 0, &Ia_Invalid },
/* 07 */ { 0, &Ia_Invalid },
/* 08 */ { 0, &Ia_Invalid },
/* 09 */ { 0, &Ia_Invalid },
/* 0A */ { 0, &Ia_Invalid },
/* 0B */ { 0, &Ia_Invalid },
/* 0C */ { 0, &Ia_Invalid },
/* 0D */ { 0, &Ia_Invalid },
/* 0E */ { 0, &Ia_Invalid },
/* 0F */ { 0, &Ia_Invalid },
/* 10 */ { 0, &Ia_Invalid },
/* 11 */ { 0, &Ia_Invalid },
/* 12 */ { 0, &Ia_Invalid },
/* 13 */ { 0, &Ia_Invalid },
/* 14 */ { 0, &Ia_Invalid },
/* 15 */ { 0, &Ia_Invalid },
/* 16 */ { 0, &Ia_Invalid },
/* 17 */ { 0, &Ia_Invalid },
/* 18 */ { 0, &Ia_Invalid },
/* 19 */ { 0, &Ia_Invalid },
/* 1A */ { 0, &Ia_Invalid },
/* 1B */ { 0, &Ia_Invalid },
/* 1C */ { 0, &Ia_Invalid },
/* 1D */ { 0, &Ia_Invalid },
/* 1E */ { 0, &Ia_Invalid },
/* 1F */ { 0, &Ia_Invalid },
/* 20 */ { 0, &Ia_Invalid },
/* 21 */ { 0, &Ia_Invalid },
/* 22 */ { 0, &Ia_Invalid },
/* 23 */ { 0, &Ia_Invalid },
/* 24 */ { 0, &Ia_Invalid },
/* 25 */ { 0, &Ia_Invalid },
/* 26 */ { 0, &Ia_Invalid },
/* 27 */ { 0, &Ia_Invalid },
/* 28 */ { 0, &Ia_Invalid },
/* 29 */ { 0, &Ia_Invalid },
/* 2A */ { 0, &Ia_Invalid },
/* 2B */ { 0, &Ia_Invalid },
/* 2C */ { 0, &Ia_Invalid },
/* 2D */ { 0, &Ia_Invalid },
/* 2E */ { 0, &Ia_Invalid },
/* 2F */ { 0, &Ia_Invalid },
/* 30 */ { 0, &Ia_Invalid },
/* 31 */ { 0, &Ia_Invalid },
/* 32 */ { 0, &Ia_Invalid },
/* 33 */ { 0, &Ia_Invalid },
/* 34 */ { 0, &Ia_Invalid },
/* 35 */ { 0, &Ia_Invalid },
/* 36 */ { 0, &Ia_Invalid },
/* 37 */ { 0, &Ia_Invalid },
/* 38 */ { 0, &Ia_Invalid },
/* 39 */ { 0, &Ia_Invalid },
/* 3A */ { 0, &Ia_Invalid },
/* 3B */ { 0, &Ia_Invalid },
/* 3C */ { 0, &Ia_Invalid },
/* 3D */ { 0, &Ia_Invalid },
/* 3E */ { 0, &Ia_Invalid },
/* 3F */ { 0, &Ia_Invalid },
/* 40 */ { 0, &Ia_Invalid },
/* 41 */ { 0, &Ia_Invalid },
/* 42 */ { 0, &Ia_Invalid },
/* 43 */ { 0, &Ia_Invalid },
/* 44 */ { 0, &Ia_Invalid },
/* 45 */ { 0, &Ia_Invalid },
/* 46 */ { 0, &Ia_Invalid },
/* 47 */ { 0, &Ia_Invalid },
/* 48 */ { 0, &Ia_Invalid },
/* 49 */ { 0, &Ia_Invalid },
/* 4A */ { 0, &Ia_Invalid },
/* 4B */ { 0, &Ia_Invalid },
/* 4C */ { 0, &Ia_Invalid },
/* 4D */ { 0, &Ia_Invalid },
/* 4E */ { 0, &Ia_Invalid },
/* 4F */ { 0, &Ia_Invalid },
/* 50 */ { 0, &Ia_Invalid },
/* 51 */ { 0, &Ia_Invalid },
/* 52 */ { 0, &Ia_Invalid },
/* 53 */ { 0, &Ia_Invalid },
/* 54 */ { 0, &Ia_Invalid },
/* 55 */ { 0, &Ia_Invalid },
/* 56 */ { 0, &Ia_Invalid },
/* 57 */ { 0, &Ia_Invalid },
/* 58 */ { 0, &Ia_Invalid },
/* 59 */ { 0, &Ia_Invalid },
/* 5A */ { 0, &Ia_Invalid },
/* 5B */ { 0, &Ia_Invalid },
/* 5C */ { 0, &Ia_Invalid },
/* 5D */ { 0, &Ia_Invalid },
/* 5E */ { 0, &Ia_Invalid },
/* 5F */ { 0, &Ia_Invalid },
/* 60 */ { 0, &Ia_Invalid },
/* 61 */ { 0, &Ia_Invalid },
/* 62 */ { 0, &Ia_Invalid },
/* 63 */ { 0, &Ia_Invalid },
/* 64 */ { 0, &Ia_Invalid },
/* 65 */ { 0, &Ia_Invalid },
/* 66 */ { 0, &Ia_Invalid },
/* 67 */ { 0, &Ia_Invalid },
/* 68 */ { 0, &Ia_Invalid },
/* 69 */ { 0, &Ia_Invalid },
/* 6A */ { 0, &Ia_Invalid },
/* 6B */ { 0, &Ia_Invalid },
/* 6C */ { 0, &Ia_Invalid },
/* 6D */ { 0, &Ia_Invalid },
/* 6E */ { 0, &Ia_Invalid },
/* 6F */ { 0, &Ia_Invalid },
/* 70 */ { 0, &Ia_Invalid },
/* 71 */ { 0, &Ia_Invalid },
/* 72 */ { 0, &Ia_Invalid },
/* 73 */ { 0, &Ia_Invalid },
/* 74 */ { 0, &Ia_Invalid },
/* 75 */ { 0, &Ia_Invalid },
/* 76 */ { 0, &Ia_Invalid },
/* 77 */ { 0, &Ia_Invalid },
/* 78 */ { 0, &Ia_Invalid },
/* 79 */ { 0, &Ia_Invalid },
/* 7A */ { 0, &Ia_Invalid },
/* 7B */ { 0, &Ia_Invalid },
/* 7C */ { 0, &Ia_Invalid },
/* 7D */ { 0, &Ia_Invalid },
/* 7E */ { 0, &Ia_Invalid },
/* 7F */ { 0, &Ia_Invalid },
/* 80 */ { 0, &Ia_frczps_Vps_Wps },
/* 81 */ { 0, &Ia_frczpd_Vpd_Wpd },
/* 82 */ { 0, &Ia_frczss_Vss_Wss },
/* 83 */ { 0, &Ia_frczsd_Vsd_Wsd },
/* 84 */ { 0, &Ia_Invalid },
/* 85 */ { 0, &Ia_Invalid },
/* 86 */ { 0, &Ia_Invalid },
/* 87 */ { 0, &Ia_Invalid },
/* 88 */ { GRPVEXW(xop9_88) },
/* 89 */ { GRPVEXW(xop9_89) },
/* 8A */ { GRPVEXW(xop9_8a) },
/* 8B */ { GRPVEXW(xop9_8b) },
/* 8C */ { 0, &Ia_Invalid },
/* 8D */ { 0, &Ia_Invalid },
/* 8E */ { 0, &Ia_Invalid },
/* 8F */ { 0, &Ia_Invalid },
/* 90 */ { GRPVEXW(xop9_90) },
/* 91 */ { GRPVEXW(xop9_91) },
/* 92 */ { GRPVEXW(xop9_92) },
/* 93 */ { GRPVEXW(xop9_93) },
/* 94 */ { GRPVEXW(xop9_94) },
/* 95 */ { GRPVEXW(xop9_95) },
/* 96 */ { GRPVEXW(xop9_96) },
/* 97 */ { GRPVEXW(xop9_97) },
/* 98 */ { 0, &Ia_Invalid },
/* 99 */ { 0, &Ia_Invalid },
/* 9A */ { 0, &Ia_Invalid },
/* 9B */ { 0, &Ia_Invalid },
/* 9C */ { 0, &Ia_Invalid },
/* 9D */ { 0, &Ia_Invalid },
/* 9E */ { 0, &Ia_Invalid },
/* 9F */ { 0, &Ia_Invalid },
/* A0 */ { 0, &Ia_Invalid },
/* A1 */ { 0, &Ia_Invalid },
/* A2 */ { 0, &Ia_Invalid },
/* A3 */ { 0, &Ia_Invalid },
/* A4 */ { 0, &Ia_Invalid },
/* A5 */ { 0, &Ia_Invalid },
/* A6 */ { 0, &Ia_Invalid },
/* A7 */ { 0, &Ia_Invalid },
/* A8 */ { 0, &Ia_Invalid },
/* A9 */ { 0, &Ia_Invalid },
/* AA */ { 0, &Ia_Invalid },
/* AB */ { 0, &Ia_Invalid },
/* AC */ { 0, &Ia_Invalid },
/* AD */ { 0, &Ia_Invalid },
/* AE */ { 0, &Ia_Invalid },
/* AF */ { 0, &Ia_Invalid },
/* B0 */ { 0, &Ia_Invalid },
/* B1 */ { 0, &Ia_Invalid },
/* B2 */ { 0, &Ia_Invalid },
/* B3 */ { 0, &Ia_Invalid },
/* B4 */ { 0, &Ia_Invalid },
/* B5 */ { 0, &Ia_Invalid },
/* B6 */ { 0, &Ia_Invalid },
/* B7 */ { 0, &Ia_Invalid },
/* B8 */ { 0, &Ia_Invalid },
/* B9 */ { 0, &Ia_Invalid },
/* BA */ { 0, &Ia_Invalid },
/* BB */ { 0, &Ia_Invalid },
/* BC */ { 0, &Ia_Invalid },
/* BD */ { 0, &Ia_Invalid },
/* BE */ { 0, &Ia_Invalid },
/* BF */ { 0, &Ia_Invalid },
/* C0 */ { 0, &Ia_Invalid },
/* C1 */ { 0, &Ia_vphaddbw_Vdq_Wdq },
/* C2 */ { 0, &Ia_vphaddbd_Vdq_Wdq },
/* C3 */ { 0, &Ia_vphaddbq_Vdq_Wdq },
/* C4 */ { 0, &Ia_Invalid },
/* C5 */ { 0, &Ia_Invalid },
/* C6 */ { 0, &Ia_vphaddwd_Vdq_Wdq },
/* C7 */ { 0, &Ia_vphaddwq_Vdq_Wdq },
/* C8 */ { 0, &Ia_Invalid },
/* C9 */ { 0, &Ia_Invalid },
/* CA */ { 0, &Ia_Invalid },
/* CB */ { 0, &Ia_vphadddq_Vdq_Wdq },
/* CC */ { 0, &Ia_Invalid },
/* CD */ { 0, &Ia_Invalid },
/* CE */ { 0, &Ia_Invalid },
/* CF */ { 0, &Ia_Invalid },
/* D0 */ { 0, &Ia_Invalid },
/* D1 */ { 0, &Ia_vphaddubw_Vdq_Wdq },
/* D2 */ { 0, &Ia_vphaddubd_Vdq_Wdq },
/* D3 */ { 0, &Ia_vphaddubq_Vdq_Wdq },
/* D4 */ { 0, &Ia_Invalid },
/* D5 */ { 0, &Ia_Invalid },
/* D6 */ { 0, &Ia_vphadduwd_Vdq_Wdq },
/* D7 */ { 0, &Ia_vphadduwq_Vdq_Wdq },
/* D8 */ { 0, &Ia_Invalid },
/* D9 */ { 0, &Ia_Invalid },
/* DA */ { 0, &Ia_Invalid },
/* DB */ { 0, &Ia_vphaddudq_Vdq_Wdq },
/* DC */ { 0, &Ia_Invalid },
/* DD */ { 0, &Ia_Invalid },
/* DE */ { 0, &Ia_Invalid },
/* DF */ { 0, &Ia_Invalid },
/* E0 */ { 0, &Ia_Invalid },
/* E1 */ { 0, &Ia_vphsubbw_Vdq_Wdq },
/* E2 */ { 0, &Ia_vphsubwd_Vdq_Wdq },
/* E3 */ { 0, &Ia_vphsubdq_Vdq_Wdq },
/* E4 */ { 0, &Ia_Invalid },
/* E5 */ { 0, &Ia_Invalid },
/* E6 */ { 0, &Ia_Invalid },
/* E7 */ { 0, &Ia_Invalid },
/* E8 */ { 0, &Ia_Invalid },
/* E9 */ { 0, &Ia_Invalid },
/* EA */ { 0, &Ia_Invalid },
/* EB */ { 0, &Ia_Invalid },
/* EC */ { 0, &Ia_Invalid },
/* ED */ { 0, &Ia_Invalid },
/* EE */ { 0, &Ia_Invalid },
/* EF */ { 0, &Ia_Invalid },
/* F0 */ { 0, &Ia_Invalid },
/* F1 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid },
/* F3 */ { 0, &Ia_Invalid },
/* F4 */ { 0, &Ia_Invalid },
/* F5 */ { 0, &Ia_Invalid },
/* F6 */ { 0, &Ia_Invalid },
/* F7 */ { 0, &Ia_Invalid },
/* F8 */ { 0, &Ia_Invalid },
/* F9 */ { 0, &Ia_Invalid },
/* FA */ { 0, &Ia_Invalid },
/* FB */ { 0, &Ia_Invalid },
/* FC */ { 0, &Ia_Invalid },
/* FD */ { 0, &Ia_Invalid },
/* FE */ { 0, &Ia_Invalid },
/* FF */ { 0, &Ia_Invalid },
// 256 entries for XOP map 0xA opcodes
/* 00 */ { 0, &Ia_Invalid },
/* 01 */ { 0, &Ia_Invalid },
/* 02 */ { 0, &Ia_Invalid },
/* 03 */ { 0, &Ia_Invalid },
/* 04 */ { 0, &Ia_Invalid },
/* 05 */ { 0, &Ia_Invalid },
/* 06 */ { 0, &Ia_Invalid },
/* 07 */ { 0, &Ia_Invalid },
/* 08 */ { 0, &Ia_Invalid },
/* 09 */ { 0, &Ia_Invalid },
/* 0A */ { 0, &Ia_Invalid },
/* 0B */ { 0, &Ia_Invalid },
/* 0C */ { 0, &Ia_Invalid },
/* 0D */ { 0, &Ia_Invalid },
/* 0E */ { 0, &Ia_Invalid },
/* 0F */ { 0, &Ia_Invalid },
/* 10 */ { 0, &Ia_bextr_Gy_Ey_Id },
/* 11 */ { 0, &Ia_Invalid },
/* 12 */ { 0, &Ia_Invalid },
/* 13 */ { 0, &Ia_Invalid },
/* 14 */ { 0, &Ia_Invalid },
/* 15 */ { 0, &Ia_Invalid },
/* 16 */ { 0, &Ia_Invalid },
/* 17 */ { 0, &Ia_Invalid },
/* 18 */ { 0, &Ia_Invalid },
/* 19 */ { 0, &Ia_Invalid },
/* 1A */ { 0, &Ia_Invalid },
/* 1B */ { 0, &Ia_Invalid },
/* 1C */ { 0, &Ia_Invalid },
/* 1D */ { 0, &Ia_Invalid },
/* 1E */ { 0, &Ia_Invalid },
/* 1F */ { 0, &Ia_Invalid },
/* 20 */ { 0, &Ia_Invalid },
/* 21 */ { 0, &Ia_Invalid },
/* 22 */ { 0, &Ia_Invalid },
/* 23 */ { 0, &Ia_Invalid },
/* 24 */ { 0, &Ia_Invalid },
/* 25 */ { 0, &Ia_Invalid },
/* 26 */ { 0, &Ia_Invalid },
/* 27 */ { 0, &Ia_Invalid },
/* 28 */ { 0, &Ia_Invalid },
/* 29 */ { 0, &Ia_Invalid },
/* 2A */ { 0, &Ia_Invalid },
/* 2B */ { 0, &Ia_Invalid },
/* 2C */ { 0, &Ia_Invalid },
/* 2D */ { 0, &Ia_Invalid },
/* 2E */ { 0, &Ia_Invalid },
/* 2F */ { 0, &Ia_Invalid },
/* 30 */ { 0, &Ia_Invalid },
/* 31 */ { 0, &Ia_Invalid },
/* 32 */ { 0, &Ia_Invalid },
/* 33 */ { 0, &Ia_Invalid },
/* 34 */ { 0, &Ia_Invalid },
/* 35 */ { 0, &Ia_Invalid },
/* 36 */ { 0, &Ia_Invalid },
/* 37 */ { 0, &Ia_Invalid },
/* 38 */ { 0, &Ia_Invalid },
/* 39 */ { 0, &Ia_Invalid },
/* 3A */ { 0, &Ia_Invalid },
/* 3B */ { 0, &Ia_Invalid },
/* 3C */ { 0, &Ia_Invalid },
/* 3D */ { 0, &Ia_Invalid },
/* 3E */ { 0, &Ia_Invalid },
/* 3F */ { 0, &Ia_Invalid },
/* 40 */ { 0, &Ia_Invalid },
/* 41 */ { 0, &Ia_Invalid },
/* 42 */ { 0, &Ia_Invalid },
/* 43 */ { 0, &Ia_Invalid },
/* 44 */ { 0, &Ia_Invalid },
/* 45 */ { 0, &Ia_Invalid },
/* 46 */ { 0, &Ia_Invalid },
/* 47 */ { 0, &Ia_Invalid },
/* 48 */ { 0, &Ia_Invalid },
/* 49 */ { 0, &Ia_Invalid },
/* 4A */ { 0, &Ia_Invalid },
/* 4B */ { 0, &Ia_Invalid },
/* 4C */ { 0, &Ia_Invalid },
/* 4D */ { 0, &Ia_Invalid },
/* 4E */ { 0, &Ia_Invalid },
/* 4F */ { 0, &Ia_Invalid },
/* 50 */ { 0, &Ia_Invalid },
/* 51 */ { 0, &Ia_Invalid },
/* 52 */ { 0, &Ia_Invalid },
/* 53 */ { 0, &Ia_Invalid },
/* 54 */ { 0, &Ia_Invalid },
/* 55 */ { 0, &Ia_Invalid },
/* 56 */ { 0, &Ia_Invalid },
/* 57 */ { 0, &Ia_Invalid },
/* 58 */ { 0, &Ia_Invalid },
/* 59 */ { 0, &Ia_Invalid },
/* 5A */ { 0, &Ia_Invalid },
/* 5B */ { 0, &Ia_Invalid },
/* 5C */ { 0, &Ia_Invalid },
/* 5D */ { 0, &Ia_Invalid },
/* 5E */ { 0, &Ia_Invalid },
/* 5F */ { 0, &Ia_Invalid },
/* 60 */ { 0, &Ia_Invalid },
/* 61 */ { 0, &Ia_Invalid },
/* 62 */ { 0, &Ia_Invalid },
/* 63 */ { 0, &Ia_Invalid },
/* 64 */ { 0, &Ia_Invalid },
/* 65 */ { 0, &Ia_Invalid },
/* 66 */ { 0, &Ia_Invalid },
/* 67 */ { 0, &Ia_Invalid },
/* 68 */ { 0, &Ia_Invalid },
/* 69 */ { 0, &Ia_Invalid },
/* 6A */ { 0, &Ia_Invalid },
/* 6B */ { 0, &Ia_Invalid },
/* 6C */ { 0, &Ia_Invalid },
/* 6D */ { 0, &Ia_Invalid },
/* 6E */ { 0, &Ia_Invalid },
/* 6F */ { 0, &Ia_Invalid },
/* 70 */ { 0, &Ia_Invalid },
/* 71 */ { 0, &Ia_Invalid },
/* 72 */ { 0, &Ia_Invalid },
/* 73 */ { 0, &Ia_Invalid },
/* 74 */ { 0, &Ia_Invalid },
/* 75 */ { 0, &Ia_Invalid },
/* 76 */ { 0, &Ia_Invalid },
/* 77 */ { 0, &Ia_Invalid },
/* 78 */ { 0, &Ia_Invalid },
/* 79 */ { 0, &Ia_Invalid },
/* 7A */ { 0, &Ia_Invalid },
/* 7B */ { 0, &Ia_Invalid },
/* 7C */ { 0, &Ia_Invalid },
/* 7D */ { 0, &Ia_Invalid },
/* 7E */ { 0, &Ia_Invalid },
/* 7F */ { 0, &Ia_Invalid },
/* 80 */ { 0, &Ia_Invalid },
/* 81 */ { 0, &Ia_Invalid },
/* 82 */ { 0, &Ia_Invalid },
/* 83 */ { 0, &Ia_Invalid },
/* 84 */ { 0, &Ia_Invalid },
/* 85 */ { 0, &Ia_Invalid },
/* 86 */ { 0, &Ia_Invalid },
/* 87 */ { 0, &Ia_Invalid },
/* 88 */ { 0, &Ia_Invalid },
/* 89 */ { 0, &Ia_Invalid },
/* 8A */ { 0, &Ia_Invalid },
/* 8B */ { 0, &Ia_Invalid },
/* 8C */ { 0, &Ia_Invalid },
/* 8D */ { 0, &Ia_Invalid },
/* 8E */ { 0, &Ia_Invalid },
/* 8F */ { 0, &Ia_Invalid },
/* 90 */ { 0, &Ia_Invalid },
/* 91 */ { 0, &Ia_Invalid },
/* 92 */ { 0, &Ia_Invalid },
/* 93 */ { 0, &Ia_Invalid },
/* 94 */ { 0, &Ia_Invalid },
/* 95 */ { 0, &Ia_Invalid },
/* 96 */ { 0, &Ia_Invalid },
/* 97 */ { 0, &Ia_Invalid },
/* 98 */ { 0, &Ia_Invalid },
/* 99 */ { 0, &Ia_Invalid },
/* 9A */ { 0, &Ia_Invalid },
/* 9B */ { 0, &Ia_Invalid },
/* 9C */ { 0, &Ia_Invalid },
/* 9D */ { 0, &Ia_Invalid },
/* 9E */ { 0, &Ia_Invalid },
/* 9F */ { 0, &Ia_Invalid },
/* A0 */ { 0, &Ia_Invalid },
/* A1 */ { 0, &Ia_Invalid },
/* A2 */ { 0, &Ia_Invalid },
/* A3 */ { 0, &Ia_Invalid },
/* A4 */ { 0, &Ia_Invalid },
/* A5 */ { 0, &Ia_Invalid },
/* A6 */ { 0, &Ia_Invalid },
/* A7 */ { 0, &Ia_Invalid },
/* A8 */ { 0, &Ia_Invalid },
/* A9 */ { 0, &Ia_Invalid },
/* AA */ { 0, &Ia_Invalid },
/* AB */ { 0, &Ia_Invalid },
/* AC */ { 0, &Ia_Invalid },
/* AD */ { 0, &Ia_Invalid },
/* AE */ { 0, &Ia_Invalid },
/* AF */ { 0, &Ia_Invalid },
/* B0 */ { 0, &Ia_Invalid },
/* B1 */ { 0, &Ia_Invalid },
/* B2 */ { 0, &Ia_Invalid },
/* B3 */ { 0, &Ia_Invalid },
/* B4 */ { 0, &Ia_Invalid },
/* B5 */ { 0, &Ia_Invalid },
/* B6 */ { 0, &Ia_Invalid },
/* B7 */ { 0, &Ia_Invalid },
/* B8 */ { 0, &Ia_Invalid },
/* B9 */ { 0, &Ia_Invalid },
/* BA */ { 0, &Ia_Invalid },
/* BB */ { 0, &Ia_Invalid },
/* BC */ { 0, &Ia_Invalid },
/* BD */ { 0, &Ia_Invalid },
/* BE */ { 0, &Ia_Invalid },
/* BF */ { 0, &Ia_Invalid },
/* C0 */ { 0, &Ia_Invalid },
/* C1 */ { 0, &Ia_Invalid },
/* C2 */ { 0, &Ia_Invalid },
/* C3 */ { 0, &Ia_Invalid },
/* C4 */ { 0, &Ia_Invalid },
/* C5 */ { 0, &Ia_Invalid },
/* C6 */ { 0, &Ia_Invalid },
/* C7 */ { 0, &Ia_Invalid },
/* C8 */ { 0, &Ia_Invalid },
/* C9 */ { 0, &Ia_Invalid },
/* CA */ { 0, &Ia_Invalid },
/* CB */ { 0, &Ia_Invalid },
/* CC */ { 0, &Ia_Invalid },
/* CD */ { 0, &Ia_Invalid },
/* CE */ { 0, &Ia_Invalid },
/* CF */ { 0, &Ia_Invalid },
/* D0 */ { 0, &Ia_Invalid },
/* D1 */ { 0, &Ia_Invalid },
/* D2 */ { 0, &Ia_Invalid },
/* D3 */ { 0, &Ia_Invalid },
/* D4 */ { 0, &Ia_Invalid },
/* D5 */ { 0, &Ia_Invalid },
/* D6 */ { 0, &Ia_Invalid },
/* D7 */ { 0, &Ia_Invalid },
/* D8 */ { 0, &Ia_Invalid },
/* D9 */ { 0, &Ia_Invalid },
/* DA */ { 0, &Ia_Invalid },
/* DB */ { 0, &Ia_Invalid },
/* DC */ { 0, &Ia_Invalid },
/* DD */ { 0, &Ia_Invalid },
/* DE */ { 0, &Ia_Invalid },
/* DF */ { 0, &Ia_Invalid },
/* E0 */ { 0, &Ia_Invalid },
/* E1 */ { 0, &Ia_Invalid },
/* E2 */ { 0, &Ia_Invalid },
/* E3 */ { 0, &Ia_Invalid },
/* E4 */ { 0, &Ia_Invalid },
/* E5 */ { 0, &Ia_Invalid },
/* E6 */ { 0, &Ia_Invalid },
/* E7 */ { 0, &Ia_Invalid },
/* E8 */ { 0, &Ia_Invalid },
/* E9 */ { 0, &Ia_Invalid },
/* EA */ { 0, &Ia_Invalid },
/* EB */ { 0, &Ia_Invalid },
/* EC */ { 0, &Ia_Invalid },
/* ED */ { 0, &Ia_Invalid },
/* EE */ { 0, &Ia_Invalid },
/* EF */ { 0, &Ia_Invalid },
/* F0 */ { 0, &Ia_Invalid },
/* F1 */ { 0, &Ia_Invalid },
/* F2 */ { 0, &Ia_Invalid },
/* F3 */ { 0, &Ia_Invalid },
/* F4 */ { 0, &Ia_Invalid },
/* F5 */ { 0, &Ia_Invalid },
/* F6 */ { 0, &Ia_Invalid },
/* F7 */ { 0, &Ia_Invalid },
/* F8 */ { 0, &Ia_Invalid },
/* F9 */ { 0, &Ia_Invalid },
/* FA */ { 0, &Ia_Invalid },
/* FB */ { 0, &Ia_Invalid },
/* FC */ { 0, &Ia_Invalid },
/* FD */ { 0, &Ia_Invalid },
/* FE */ { 0, &Ia_Invalid },
/* FF */ { 0, &Ia_Invalid }
};