aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis-evex.h
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2019-06-04 08:58:21 -0700
committerH.J. Lu <hjl.tools@gmail.com>2019-06-04 08:58:31 -0700
commit9186c494a3bb61a55a29ec04aa0d1684a8c46838 (patch)
tree08497454a5d3643adee42c7c346f169bc42f48b2 /opcodes/i386-dis-evex.h
parent5d79adc4b22b0abd4f12ea973a00e7fb0c1dad64 (diff)
downloadgdb-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.h14
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 },