diff options
author | Igor Tsimbalist <igor.v.tsimbalist@intel.com> | 2017-01-12 08:42:17 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-01-12 08:44:24 -0800 |
commit | 620214f742f7816e2844e1bb7f78a7a684431927 (patch) | |
tree | e39b951fa3ab85dd33960b110cc1cf29f2545d5d /opcodes/i386-dis-evex.h | |
parent | 3015c06465584a437261c65a397fbd8f1a71aae7 (diff) | |
download | gdb-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.h | 13 |
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 }, |