aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis-evex.h
diff options
context:
space:
mode:
authorIgor Tsimbalist <igor.v.tsimbalist@intel.com>2017-01-12 08:42:17 -0800
committerH.J. Lu <hjl.tools@gmail.com>2017-01-12 08:44:24 -0800
commit620214f742f7816e2844e1bb7f78a7a684431927 (patch)
treee39b951fa3ab85dd33960b110cc1cf29f2545d5d /opcodes/i386-dis-evex.h
parent3015c06465584a437261c65a397fbd8f1a71aae7 (diff)
downloadgdb-620214f742f7816e2844e1bb7f78a7a684431927.zip
gdb-620214f742f7816e2844e1bb7f78a7a684431927.tar.gz
gdb-620214f742f7816e2844e1bb7f78a7a684431927.tar.bz2
Enable Intel AVX512_VPOPCNTDQ instructions
gas/ 2017-01-12 Igor Tsimbalist <igor.v.tsimbalist@intel.com> * config/tc-i386.c (cpu_arch): Add .avx512_vpopcntdq. (cpu_noarch): Add noavx512_vpopcntdq. * doc/c-i386.texi: Document avx512_vpopcntdq, noavx512_vpopcntdq. * testsuite/gas/i386/i386.exp: Run AVX512_VPOPCNTDQ tests. * testsuite/gas/i386/avx512_vpopcntdqd-intel.d: New file. * testsuite/gas/i386/avx512_vpopcntdqd.d: Ditto. * testsuite/gas/i386/avx512_vpopcntdqd.s: Ditto. * testsuite/gas/i386/x86-64-avx512_vpopcntdqd-intel.d: Ditto. * testsuite/gas/i386/x86-64-avx512_vpopcntdqd.d: Ditto. * testsuite/gas/i386/x86-64-avx512_vpopcntdqd.s: Ditto. opcodes/ 2017-01-12 Igor Tsimbalist <igor.v.tsimbalist@intel.com> * i386-dis.c (enum): Add PREFIX_EVEX_0F3855, EVEX_W_0F3855_P_2. * i386-dis-evex.h (evex_table): Updated. * i386-gen.c (cpu_flag_init): Add CPU_AVX512_VPOPCNTDQ_FLAGS, CPU_ANY_AVX512_VPOPCNTDQ_FLAGS. Update CPU_ANY_AVX512F_FLAGS. (cpu_flags): Add CpuAVX512_VPOPCNTDQ. * i386-opc.h (enum): (AVX512_VPOPCNTDQ): New. (i386_cpu_flags): Add cpuavx512_vpopcntdq. * i386-opc.tbl: Add Intel AVX512_VPOPCNTDQ instructions. * i386-init.h: Regenerate. * i386-tbl.h: Ditto.
Diffstat (limited to 'opcodes/i386-dis-evex.h')
-rw-r--r--opcodes/i386-dis-evex.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index 267bad7..c119f55 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -390,7 +390,7 @@ static const struct dis386 evex_table[][256] = {
{ PREFIX_TABLE (PREFIX_EVEX_0F3852) },
{ PREFIX_TABLE (PREFIX_EVEX_0F3853) },
{ Bad_Opcode },
- { Bad_Opcode },
+ { PREFIX_TABLE (PREFIX_EVEX_0F3855) },
{ Bad_Opcode },
{ Bad_Opcode },
/* 58 */
@@ -2019,6 +2019,12 @@ static const struct dis386 evex_table[][256] = {
{ Bad_Opcode },
{ "vp4dpwssds", { XM, Vex, EXxmm }, 0 },
},
+ /* PREFIX_EVEX_0F3855 */
+ {
+ { Bad_Opcode },
+ { Bad_Opcode },
+ { VEX_W_TABLE (EVEX_W_0F3855_P_2) },
+ },
/* PREFIX_EVEX_0F3858 */
{
{ Bad_Opcode },
@@ -3577,6 +3583,11 @@ static const struct dis386 evex_table[][256] = {
{ "vpmulld", { XM, Vex, EXx }, 0 },
{ "vpmullq", { XM, Vex, EXx }, 0 },
},
+ /* EVEX_W_0F3855_P_2 */
+ {
+ { "vpopcntd", { XM, EXx }, 0 },
+ { "vpopcntq", { XM, EXx }, 0 },
+ },
/* EVEX_W_0F3858_P_2 */
{
{ "vpbroadcastd", { XM, EXxmm_md }, 0 },