diff options
author | Igor Tsimbalist <igor.v.tsimbalist@intel.com> | 2018-01-23 19:39:05 +0300 |
---|---|---|
committer | Igor Tsimbalist <igor.v.tsimbalist@intel.com> | 2018-01-23 20:05:33 +0300 |
commit | 3233d7d074e59b83f68a22071cff597f00d5ae81 (patch) | |
tree | 624dbdd63e269a8c272c8b39061c0fc8592da026 /opcodes/i386-dis.c | |
parent | b4f6242e95340a31b0519187c5fc329056ddecfd (diff) | |
download | gdb-3233d7d074e59b83f68a22071cff597f00d5ae81.zip gdb-3233d7d074e59b83f68a22071cff597f00d5ae81.tar.gz gdb-3233d7d074e59b83f68a22071cff597f00d5ae81.tar.bz2 |
Enable Intel WBNOINVD instruction.
Intel has disclosed a set of new instructions for Icelake processor.
The spec is
https://software.intel.com/sites/default/files/managed/c5/15/architecture-instruction-set-extensions-programming-reference.pdf
This patch enables Intel WBNOINVD instruction.
gas/
* config/tc-i386.c (cpu_arch): Add .wbnoinvd.
* doc/c-i386.texi: Document .wbnoinvd.
* testsuite/gas/i386/i386.exp: Add WBNOINVD tests.
* testsuite/gas/i386/wbnoinvd-intel.d: New test.
* testsuite/gas/i386/wbnoinvd.d: Likewise.
* testsuite/gas/i386/wbnoinvd.s: Likewise.
* testsuite/gas/i386/x86-64-wbnoinvd-intel.d: Likewise.
* testsuite/gas/i386/x86-64-wbnoinvd.d: Likewise.
* testsuite/gas/i386/x86-64-wbnoinvd.s: Likewise.
opcodes/
* i386-dis.c (enum): Add PREFIX_0F09.
* i386-gen.c (cpu_flag_init): Add CPU_WBNOINVD_FLAGS.
(cpu_flags): Add CpuWBNOINVD.
* i386-opc.h (enum): Add CpuWBNOINVD.
(i386_cpu_flags): Add cpuwbnoinvd.
* i386-opc.tbl: Add WBNOINVD instruction.
* i386-init.h: Regenerate.
* i386-tbl.h: Likewise.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 86a2cdd..6154924 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -956,6 +956,7 @@ enum PREFIX_MOD_0_0F01_REG_5, PREFIX_MOD_3_0F01_REG_5_RM_0, PREFIX_MOD_3_0F01_REG_5_RM_2, + PREFIX_0F09, PREFIX_0F10, PREFIX_0F11, PREFIX_0F12, @@ -2869,7 +2870,7 @@ static const struct dis386 dis386_twobyte[] = { { "sysret%LP", { XX }, 0 }, /* 08 */ { "invd", { XX }, 0 }, - { "wbinvd", { XX }, 0 }, + { PREFIX_TABLE (PREFIX_0F09) }, { Bad_Opcode }, { "ud2", { XX }, 0 }, { Bad_Opcode }, @@ -3840,6 +3841,12 @@ static const struct dis386 prefix_table[][4] = { { "saveprevssp", { Skip_MODRM }, PREFIX_OPCODE }, }, + /* PREFIX_0F09 */ + { + { "wbinvd", { XX }, 0 }, + { "wbnoinvd", { XX }, 0 }, + }, + /* PREFIX_0F10 */ { { "movups", { XM, EXx }, PREFIX_OPCODE }, |