Enable Intel WAITPKG instructions.
authorIgor Tsimbalist <igor.v.tsimbalist@intel.com>
Mon, 9 Apr 2018 10:58:50 +0000 (12:58 +0200)
committerIgor Tsimbalist <igor.v.tsimbalist@intel.com>
Wed, 11 Apr 2018 19:37:12 +0000 (21:37 +0200)
commitde89d0a34d52a2d2d28a4ce569e926dd9c7a7d13
tree5212398a0073a3382baa45e65cf6b091762e3111
parent6295b6da16f73d5113d24424d1897edbce42bc6a
Enable Intel WAITPKG instructions.

Intel has disclosed a set of new instructions for Tremont processor.
The spec is
https://software.intel.com/en-us/intel-architecture-instruction-set-extensions-programming-reference
This patch enables Intel WAITPKG instructions.

gas/
* config/tc-i386.c (cpu_arch): Add WAITPKG.
(cpu_noarch): Likewise.
* doc/c-i386.texi: Document WAITPKG.
* i386/i386.exp: Run WAITPKG tests.
* testsuite/gas/i386/waitpkg-intel.d: New test.
* testsuite/gas/i386/waitpkg.d: Likewise.
* testsuite/gas/i386/waitpkg.s: Likewise.
* testsuite/gas/i386/x86-64-waitpkg-intel.d: Likewise.
* testsuite/gas/i386/x86-64-waitpkg.d: Likewise.
* testsuite/gas/i386/x86-64-waitpkg.s: Likewise.

opcodes/
* i386-dis.c (enum): Add PREFIX_MOD_0_0FAE_REG_6,
PREFIX_MOD_1_0FAE_REG_6.
(va_mode): New.
(OP_E_register): Use va_mode.
* i386-dis-evex.h (prefix_table):
New instructions (see prefixes above).
* i386-gen.c (cpu_flag_init): Add WAITPKG.
(cpu_flags): Likewise.
* i386-opc.h (enum): Likewise.
(i386_cpu_flags): Likewise.
* i386-opc.tbl: Add umonitor, umwait, tpause.
* i386-init.h: Regenerate.
* i386-tbl.h: Likewise.
17 files changed:
gas/ChangeLog
gas/config/tc-i386.c
gas/doc/c-i386.texi
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/waitpkg-intel.d [new file with mode: 0644]
gas/testsuite/gas/i386/waitpkg.d [new file with mode: 0644]
gas/testsuite/gas/i386/waitpkg.s [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-waitpkg-intel.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-waitpkg.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-waitpkg.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