aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis.c
diff options
context:
space:
mode:
authorIgor Tsimbalist <igor.v.tsimbalist@intel.com>2018-04-16 23:09:01 +0200
committerIgor Tsimbalist <igor.v.tsimbalist@intel.com>2018-04-17 11:56:34 +0200
commitc48935d75f720ecb006c81b37f4058e751f1dc31 (patch)
treed43c586c582243ca9af171c54c1bb1f66d31cc3d /opcodes/i386-dis.c
parentf954747f10467071b0acde07ee5f5e268ab606a6 (diff)
downloadgdb-c48935d75f720ecb006c81b37f4058e751f1dc31.zip
gdb-c48935d75f720ecb006c81b37f4058e751f1dc31.tar.gz
gdb-c48935d75f720ecb006c81b37f4058e751f1dc31.tar.bz2
Enable Intel CLDEMOTE instruction.
gas/ * config/tc-i386.c (cpu_arch): Add .cldemote. * doc/c-i386.texi: Document cldemote/.cldemote. * testsuite/gas/i386/cldemote-intel.d: New. * testsuite/gas/i386/cldemote.d: Likewise. * testsuite/gas/i386/cldemote.s: Likewise. * testsuite/gas/i386/i386.exp: Run new tests. * testsuite/gas/i386/x86-64-cldemote-intel.d: New. * testsuite/gas/i386/x86-64-cldemote.d: Likewise. * testsuite/gas/i386/x86-64-cldemote.s: Likewise. * testsuite/gas/i386/ilp32/x86-64-nops.d: Remove 0x0f1c NOP encoding that maps to cldemote. * testsuite/gas/i386/nops.d: Likewise. * testsuite/gas/i386/nops.s: Likewise. * testsuite/gas/i386/x86-64-nops.d: Likewise. * testsuite/gas/i386/x86-64-nops.s: Likewise. opcode/ * i386-dis.c: Add REG_0F1C_MOD_0, MOD_0F1C_PREFIX_0, PREFIX_0F1C. * i386-gen.c (cpu_flag_init): Add CPU_CLDEMOTE_FLAGS, (cpu_flags): Add CpuCLDEMOTE. * i386-init.h: Regenerate. * i386-opc.h (enum): Add CpuCLDEMOTE, (i386_cpu_flags): Add cpucldemote. * i386-opc.tbl: Add cldemote. * i386-tbl.h: Regenerate.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r--opcodes/i386-dis.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 7416569..98950e2 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -738,6 +738,7 @@ enum
REG_0F01,
REG_0F0D,
REG_0F18,
+ REG_0F1C_MOD_0,
REG_0F1E_MOD_3,
REG_0F71,
REG_0F72,
@@ -792,6 +793,7 @@ enum
MOD_0F1A_PREFIX_0,
MOD_0F1B_PREFIX_0,
MOD_0F1B_PREFIX_1,
+ MOD_0F1C_PREFIX_0,
MOD_0F1E_PREFIX_1,
MOD_0F24,
MOD_0F26,
@@ -970,6 +972,7 @@ enum
PREFIX_0F16,
PREFIX_0F1A,
PREFIX_0F1B,
+ PREFIX_0F1C,
PREFIX_0F1E,
PREFIX_0F2A,
PREFIX_0F2B,
@@ -2898,7 +2901,7 @@ static const struct dis386 dis386_twobyte[] = {
{ "nopQ", { Ev }, 0 },
{ PREFIX_TABLE (PREFIX_0F1A) },
{ PREFIX_TABLE (PREFIX_0F1B) },
- { "nopQ", { Ev }, 0 },
+ { PREFIX_TABLE (PREFIX_0F1C) },
{ "nopQ", { Ev }, 0 },
{ PREFIX_TABLE (PREFIX_0F1E) },
{ "nopQ", { Ev }, 0 },
@@ -3650,6 +3653,17 @@ static const struct dis386 reg_table[][8] = {
{ MOD_TABLE (MOD_0F18_REG_6) },
{ MOD_TABLE (MOD_0F18_REG_7) },
},
+ /* REG_0F1C_MOD_0 */
+ {
+ { "cldemote", { Mb }, 0 },
+ { "nopQ", { Ev }, 0 },
+ { "nopQ", { Ev }, 0 },
+ { "nopQ", { Ev }, 0 },
+ { "nopQ", { Ev }, 0 },
+ { "nopQ", { Ev }, 0 },
+ { "nopQ", { Ev }, 0 },
+ { "nopQ", { Ev }, 0 },
+ },
/* REG_0F1E_MOD_3 */
{
{ "nopQ", { Ev }, 0 },
@@ -3901,6 +3915,14 @@ static const struct dis386 prefix_table[][4] = {
{ "bndcn", { Gbnd, Ev_bnd }, 0 },
},
+ /* PREFIX_0F1C */
+ {
+ { MOD_TABLE (MOD_0F1C_PREFIX_0) },
+ { "nopQ", { Ev }, PREFIX_OPCODE },
+ { "nopQ", { Ev }, PREFIX_OPCODE },
+ { "nopQ", { Ev }, PREFIX_OPCODE },
+ },
+
/* PREFIX_0F1E */
{
{ "nopQ", { Ev }, PREFIX_OPCODE },
@@ -11621,6 +11643,11 @@ static const struct dis386 mod_table[][2] = {
{ "nopQ", { Ev }, 0 },
},
{
+ /* MOD_0F1C_PREFIX_0 */
+ { REG_TABLE (REG_0F1C_MOD_0) },
+ { "nopQ", { Ev }, 0 },
+ },
+ {
/* MOD_0F1E_PREFIX_1 */
{ "nopQ", { Ev }, 0 },
{ REG_TABLE (REG_0F1E_MOD_3) },