aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis-evex.h
diff options
context:
space:
mode:
authorIlya Tocar <ilya.tocar@intel.com>2014-11-17 15:41:32 +0300
committerH.J. Lu <hjl.tools@gmail.com>2014-11-17 06:03:41 -0800
commit14f195c9a0960335c0ff548e86e051072036cb5f (patch)
tree77d1342ffb3a16f4ae907bff723f7cbdb9a090fa /opcodes/i386-dis-evex.h
parent2cc1b5aad8defa9b5e6d9b4920c4d2ab6cf1f02e (diff)
downloadgdb-14f195c9a0960335c0ff548e86e051072036cb5f.zip
gdb-14f195c9a0960335c0ff548e86e051072036cb5f.tar.gz
gdb-14f195c9a0960335c0ff548e86e051072036cb5f.tar.bz2
Add AVX512VBMI instructions
gas/ * config/tc-i386.c (cpu_arch): Add .avx512vbmi. * doc/c-i386.texi: Document it. opcodes/ * i386-dis-evex.c (evex_table): Add vpermi2b, vpermt2b, vpermb, vpmultishiftqb. * i386-dis.c (PREFIX enum): Add PREFIX_EVEX_0F3883, EVEX_W_0F3883_P_2. * i386-gen.c (cpu_flag_init): Add CPU_AVX512VBMI_FLAGS. (cpu_flags): Add CpuAVX512VBMI. * i386-opc.h (enum): Add CpuAVX512VBMI. (i386_cpu_flags): Add cpuavx512vbmi. * i386-opc.tbl: Add vpmadd52luq, vpmultishiftqb, vpermb, vpermi2b, vpermt2b. * i386-init.h: Regenerated. * i386-tbl.h: Likewise. /gas/testsuite/ * gas/i386/i386.exp: Run new tests. * gas/i386/avx512vbmi-intel.d: New file. * gas/i386/avx512vbmi.d: Likewise. * gas/i386/avx512vbmi.s: Likewise. * gas/i386/avx512vbmi_vl-intel.d: Likewise. * gas/i386/avx512vbmi_vl.d: Likewise. * gas/i386/avx512vbmi_vl.s: Likewise. * gas/i386/x86-64-avx512vbmi-intel.d: Likewise. * gas/i386/x86-64-avx512vbmi.d: Likewise. * gas/i386/x86-64-avx512vbmi.s: Likewise. * gas/i386/x86-64-avx512vbmi_vl-intel.d: Likewise. * gas/i386/x86-64-avx512vbmi_vl.d: Likewise. * gas/i386/x86-64-avx512vbmi_vl.s: Likewise.
Diffstat (limited to 'opcodes/i386-dis-evex.h')
-rw-r--r--opcodes/i386-dis-evex.h19
1 files changed, 15 insertions, 4 deletions
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index 1f88987..383c213 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -442,7 +442,7 @@ static const struct dis386 evex_table[][256] = {
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3883) },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
@@ -2113,6 +2113,12 @@ static const struct dis386 evex_table[][256] = {
{ Bad_Opcode },
{ "vpermt2p%XW", { XM, Vex, EXx } },
},
+ /* PREFIX_EVEX_0F3883 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3883_P_2) },
+ },
/* PREFIX_EVEX_0F3888 */
{
{ Bad_Opcode },
@@ -3579,7 +3585,7 @@ static const struct dis386 evex_table[][256] = {
},
/* EVEX_W_0F3875_P_2 */
{
- { Bad_Opcode },
+ { "vpermi2b", { XM, Vex, EXx } },
{ "vpermi2w", { XM, Vex, EXx } },
},
/* EVEX_W_0F3878_P_2 */
@@ -3600,12 +3606,17 @@ static const struct dis386 evex_table[][256] = {
},
/* EVEX_W_0F387D_P_2 */
{
- { Bad_Opcode },
+ { "vpermt2b", { XM, Vex, EXx } },
{ "vpermt2w", { XM, Vex, EXx } },
},
- /* EVEX_W_0F388D_P_2 */
+ /* EVEX_W_0F3883_P_2 */
{
{ Bad_Opcode },
+ { "vpmultishiftqb", { XM, Vex, EXx } },
+ },
+ /* EVEX_W_0F388D_P_2 */
+ {
+ { "vpermb", { XM, Vex, EXx } },
{ "vpermw", { XM, Vex, EXx } },
},
/* EVEX_W_0F3891_P_2 */