diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2019-06-04 08:58:21 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2019-06-04 08:58:31 -0700 |
commit | 9186c494a3bb61a55a29ec04aa0d1684a8c46838 (patch) | |
tree | 08497454a5d3643adee42c7c346f169bc42f48b2 /opcodes/i386-dis-evex.h | |
parent | 5d79adc4b22b0abd4f12ea973a00e7fb0c1dad64 (diff) | |
download | gdb-9186c494a3bb61a55a29ec04aa0d1684a8c46838.zip gdb-9186c494a3bb61a55a29ec04aa0d1684a8c46838.tar.gz gdb-9186c494a3bb61a55a29ec04aa0d1684a8c46838.tar.bz2 |
Enable Intel AVX512_VP2INTERSECT insn
This patch enables support for VP2INTERSECT in binutils. Please refer to
https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf
for VP2INTERSECT details.
Make check-gas is ok.
gas/
2019-06-04 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
Lili Cui <lili.cui@intel.com>
* config/tc-i386.c (cpu_arch): Add .avx512_vp2intersect.
(cpu_noarch): Likewise.
* doc/c-i386.texi: Document avx512_vp2intersect.
* testsuite/gas/i386/i386.exp: Run vp2intersect tests.
* testsuite/gas/i386/vp2intersect-intel.d: New test.
* testsuite/gas/i386/vp2intersect.d: Likewise.
* testsuite/gas/i386/vp2intersect.s: Likewise.
* testsuite/gas/i386/vp2intersect-inval-bcast.l: Likewise.
* testsuite/gas/i386/vp2intersect-inval-bcast.s: Likewise.
* testsuite/gas/i386/x86-64-vp2intersect-intel.d: Likewise.
* testsuite/gas/i386/x86-64-vp2intersect.d: Likewise.
* testsuite/gas/i386/x86-64-vp2intersect.s: Likewise.
* testsuite/gas/i386/x86-64-vp2intersect-inval-bcast.l: Likewise.
* testsuite/gas/i386/x86-64-vp2intersect-inval-bcast.s: Likewise.
opcodes/
2019-06-04 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
Lili Cui <lili.cui@intel.com>
* i386-dis.c (enum): Add PREFIX_EVEX_0F3868, EVEX_W_0F3868_P_3.
* i386-dis-evex.h (evex_table): Add AVX512_VP2INTERSECT
instructions.
* i386-gen.c (cpu_flag_init): Add CPU_AVX512_VP2INTERSECT_FLAGS,
CPU_ANY_AVX512_VP2INTERSECT_FLAGS.
(cpu_flags): Add CpuAVX512_VP2INTERSECT.
* i386-opc.h (enum): Add CpuAVX512_VP2INTERSECT.
(i386_cpu_flags): Add cpuavx512_vp2intersect.
* i386-opc.tbl: Add AVX512_VP2INTERSECT insns.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
Diffstat (limited to 'opcodes/i386-dis-evex.h')
-rw-r--r-- | opcodes/i386-dis-evex.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h index 9fea25d..9965d4f 100644 --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -412,7 +412,7 @@ static const struct dis386 evex_table[][256] = { { PREFIX_TABLE (PREFIX_EVEX_0F3866) }, { Bad_Opcode }, /* 68 */ - { Bad_Opcode }, + { PREFIX_TABLE (PREFIX_EVEX_0F3868) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -2097,6 +2097,13 @@ static const struct dis386 evex_table[][256] = { { Bad_Opcode }, { VEX_W_TABLE (EVEX_W_0F3866_P_2) }, }, + /* PREFIX_EVEX_0F3868 */ + { + { Bad_Opcode }, + { Bad_Opcode }, + { Bad_Opcode }, + { VEX_W_TABLE (EVEX_W_0F3868_P_3) }, + }, /* PREFIX_EVEX_0F3870 */ { { Bad_Opcode }, @@ -3755,6 +3762,11 @@ static const struct dis386 evex_table[][256] = { { "vpblendmb", { XM, Vex, EXx }, 0 }, { "vpblendmw", { XM, Vex, EXx }, 0 }, }, + /* EVEX_W_0F3868_P_3 */ + { + { "vp2intersectd", { XMask, Vex, EXx, EXxEVexS }, 0 }, + { "vp2intersectq", { XMask, Vex, EXx, EXxEVexS }, 0 }, + }, /* EVEX_W_0F3870_P_2 */ { { Bad_Opcode }, |