Add support for Intel ENQCMD[S] instructions
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 4 Jun 2019 15:50:10 +0000 (08:50 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 4 Jun 2019 15:50:46 +0000 (08:50 -0700)
commit5d79adc4b22b0abd4f12ea973a00e7fb0c1dad64
tree15e73fda98da13ef00ca172d5731035af2a40b16
parente1f2e1a2dadbaeffe0a8a6da7aab7effc6b046d2
Add support for Intel ENQCMD[S] instructions

This patch enables support for ENQCMD[S] in binutils.  Please refer to

https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf

for ENQCMD[S] details.

Make check-gas is ok.

gas/ChangeLog:

2019-06-04  Xuepeng Guo  <xuepeng.guo@intel.com>
    Lili Cui  <lili.cui@intel.com>

* doc/c-i386.texi: Document enqcmd.
* testsuite/gas/i386/enqcmd-intel.d: New file.
* testsuite/gas/i386/enqcmd-inval.l: Likewise.
* testsuite/gas/i386/enqcmd-inval.s: Likewise.
* testsuite/gas/i386/enqcmd.d: Likewise.
* testsuite/gas/i386/enqcmd.s: Likewise.
* testsuite/gas/i386/x86-64-enqcmd-intel.d: Likewise.
* testsuite/gas/i386/x86-64-enqcmd-inval.l: Likewise.
* testsuite/gas/i386/x86-64-enqcmd-inval.s: Likewise.
* testsuite/gas/i386/x86-64-enqcmd.d: Likewise.
* testsuite/gas/i386/x86-64-enqcmd.s: Likewise.
* testsuite/gas/i386/i386.exp: Run enqcmd-intel, enqcmd-inval,
enqcmd, x86-64-enqcmd-intel, x86-64-enqcmd-inval,
and x86-64-enqcmd.

opcodes/ChangeLog:

2019-06-04  Xuepeng Guo  <xuepeng.guo@intel.com>
    Lili Cui  <lili.cui@intel.com>

* i386-dis.c (enum): Add MOD_0F38F8_PREFIX_1 and
MOD_0F38F8_PREFIX_3.
(prefix_table): New instructions (see prefix above).
(mod_table): New instructions (see prefix above).
* i386-gen.c (cpu_flag_init): Add entries for enqcmd.
(cpu_flags): Add a bitfield for enqmcd.
* i386-init.h: Regenerated.
* i386-opc.h (enum): Add CpuENQCMD.
(i386_cpu_flags): Add a bitfield for cpuenqcmd.
* i386-opc.tbl: Add enqcmd and enqcmds instructions.
* i386-init.h: Regenerated.
* i386-tbl.h: Regenerated.
20 files changed:
gas/ChangeLog
gas/doc/c-i386.texi
gas/testsuite/gas/i386/enqcmd-intel.d [new file with mode: 0644]
gas/testsuite/gas/i386/enqcmd-inval.l [new file with mode: 0644]
gas/testsuite/gas/i386/enqcmd-inval.s [new file with mode: 0644]
gas/testsuite/gas/i386/enqcmd.d [new file with mode: 0644]
gas/testsuite/gas/i386/enqcmd.s [new file with mode: 0644]
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/x86-64-enqcmd-intel.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-enqcmd-inval.l [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-enqcmd-inval.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-enqcmd.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-enqcmd.s [new file with mode: 0644]
opcodes/ChangeLog
opcodes/i386-dis.c
opcodes/i386-gen.c
opcodes/i386-init.h
opcodes/i386-opc.h
opcodes/i386-opc.tbl
opcodes/i386-tbl.h