From 620214f742f7816e2844e1bb7f78a7a684431927 Mon Sep 17 00:00:00 2001 From: Igor Tsimbalist Date: Thu, 12 Jan 2017 08:42:17 -0800 Subject: Enable Intel AVX512_VPOPCNTDQ instructions gas/ 2017-01-12 Igor Tsimbalist * 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 * 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. --- opcodes/i386-dis-evex.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'opcodes/i386-dis-evex.h') 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 }, -- cgit v1.1