aboutsummaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-07-30 04:17:02 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-07-30 04:17:02 -0700
commita8484f9612fc5b7d2b762b6fec950faa0fcd1483 (patch)
treef3bfc825ea4f213becd665d7f5a15558104037b0 /opcodes
parentc6e8a9a802bcd3a96ef14b6ea1b6cd60d5d8d065 (diff)
downloadgdb-a8484f9612fc5b7d2b762b6fec950faa0fcd1483.zip
gdb-a8484f9612fc5b7d2b762b6fec950faa0fcd1483.tar.gz
gdb-a8484f9612fc5b7d2b762b6fec950faa0fcd1483.tar.bz2
Properly disassemble movnti in Intel mode
gas/testsuite/ PR binutils/13571 * gas/i386/i386.exp: Run i386-intel and x86_64-intel. * gas/i386/i386-intel.d: New file. * gas/i386/x86_64-intel.d: Likewise. opcodes/ PR binutils/13571 * i386-dis.c (MOD_0FC3): New. (PREFIX_0FC3): Renamed to ... (PREFIX_MOD_0_0FC3): This. (dis386_twobyte): Replace PREFIX_0FC3 with MOD_0FC3. (prefix_table): Replace Ma with Ev on movntiS. (mod_table): Add MOD_0FC3.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog10
-rw-r--r--opcodes/i386-dis.c15
2 files changed, 20 insertions, 5 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 9c90c72..a447f0a 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,13 @@
+2015-07-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/13571
+ * i386-dis.c (MOD_0FC3): New.
+ (PREFIX_0FC3): Renamed to ...
+ (PREFIX_MOD_0_0FC3): This.
+ (dis386_twobyte): Replace PREFIX_0FC3 with MOD_0FC3.
+ (prefix_table): Replace Ma with Ev on movntiS.
+ (mod_table): Add MOD_0FC3.
+
2015-07-27 H.J. Lu <hongjiu.lu@intel.com>
* configure: Regenerated.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index a279b56..e590e24 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -802,6 +802,7 @@ enum
MOD_0FB2,
MOD_0FB4,
MOD_0FB5,
+ MOD_0FC3,
MOD_0FC7_REG_3,
MOD_0FC7_REG_4,
MOD_0FC7_REG_5,
@@ -927,7 +928,7 @@ enum
PREFIX_0FBC,
PREFIX_0FBD,
PREFIX_0FC2,
- PREFIX_0FC3,
+ PREFIX_MOD_0_0FC3,
PREFIX_MOD_0_0FC7_REG_6,
PREFIX_MOD_3_0FC7_REG_6,
PREFIX_MOD_3_0FC7_REG_7,
@@ -2956,7 +2957,7 @@ static const struct dis386 dis386_twobyte[] = {
{ "xaddB", { Ebh1, Gb }, 0 },
{ "xaddS", { Evh1, Gv }, 0 },
{ PREFIX_TABLE (PREFIX_0FC2) },
- { PREFIX_TABLE (PREFIX_0FC3) },
+ { MOD_TABLE (MOD_0FC3) },
{ "pinsrw", { MX, Edqw, Ib }, PREFIX_OPCODE },
{ "pextrw", { Gdq, MS, Ib }, PREFIX_OPCODE },
{ "shufpX", { XM, EXx, Ib }, PREFIX_OPCODE },
@@ -4048,9 +4049,9 @@ static const struct dis386 prefix_table[][4] = {
{ "cmpsd", { XM, EXq, CMP }, PREFIX_OPCODE },
},
- /* PREFIX_0FC3 */
+ /* PREFIX_MOD_0_0FC3 */
{
- { "movntiS", { Ma, Gv }, PREFIX_OPCODE },
+ { "movntiS", { Ev, Gv }, PREFIX_OPCODE },
},
/* PREFIX_MOD_0_0FC7_REG_6 */
@@ -11827,8 +11828,12 @@ static const struct dis386 mod_table[][2] = {
{ "lgsS", { Gv, Mp }, 0 },
},
{
+ /* MOD_0FC3 */
+ { PREFIX_TABLE (PREFIX_MOD_0_0FC3) },
+ },
+ {
/* MOD_0FC7_REG_3 */
- { "xrstors", { FXSAVE }, 0 },
+ { "xrstors", { FXSAVE }, 0 },
},
{
/* MOD_0FC7_REG_4 */