diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-07-30 04:17:02 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2015-07-30 04:17:02 -0700 |
commit | a8484f9612fc5b7d2b762b6fec950faa0fcd1483 (patch) | |
tree | f3bfc825ea4f213becd665d7f5a15558104037b0 /opcodes | |
parent | c6e8a9a802bcd3a96ef14b6ea1b6cd60d5d8d065 (diff) | |
download | fsf-binutils-gdb-a8484f9612fc5b7d2b762b6fec950faa0fcd1483.zip fsf-binutils-gdb-a8484f9612fc5b7d2b762b6fec950faa0fcd1483.tar.gz fsf-binutils-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/ChangeLog | 10 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 15 |
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 */ |