summaryrefslogtreecommitdiff
path: root/opcodes
diff options
context:
space:
mode:
authorH.J. Lu <hjl@lucon.org>2008-01-15 17:20:50 +0000
committerH.J. Lu <hjl@lucon.org>2008-01-15 17:20:50 +0000
commit85c0828ca0dfd66878e1434c3bfcc566eda684e7 (patch)
tree123db3676bbbe28c3efa67ac14a7527de4e853a9 /opcodes
parentf3146db190eb518912636350f1ab532efe0ae710 (diff)
downloadbinutils-redhat-85c0828ca0dfd66878e1434c3bfcc566eda684e7.tar.gz
2008-01-15 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (Mx): New. (PREFIX_0FC3): Likewise. (PREFIX_0FC7_REG_6): Updated. (dis386_twobyte): Use PREFIX_0FC3. (prefix_table): Add PREFIX_0FC3. Use Mq on movntq and movntsd. Use Mx on movntps, movntpd, movntdq and movntdqa. Use Md on movntss.
Diffstat (limited to 'opcodes')
-rw-r--r--opcodes/ChangeLog10
-rw-r--r--opcodes/i386-dis.c28
2 files changed, 29 insertions, 9 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 8ca40ef9da..1eea4585eb 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,13 @@
+2008-01-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * i386-dis.c (Mx): New.
+ (PREFIX_0FC3): Likewise.
+ (PREFIX_0FC7_REG_6): Updated.
+ (dis386_twobyte): Use PREFIX_0FC3.
+ (prefix_table): Add PREFIX_0FC3. Use Mq on movntq and movntsd.
+ Use Mx on movntps, movntpd, movntdq and movntdqa. Use Md on
+ movntss.
+
2008-01-14 H.J. Lu <hongjiu.lu@intel.com>
* i386-gen.c (opcode_modifiers): Add IntelSyntax.
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 784563905c..d237b626a7 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -236,6 +236,7 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
#define Md { OP_M, d_mode }
#define Mp { OP_M, f_mode } /* 32 or 48 bit memory operand for LDS, LES etc */
#define Mq { OP_M, q_mode }
+#define Mx { OP_M, x_mode }
#define Gb { OP_G, b_mode }
#define Gv { OP_G, v_mode }
#define Gd { OP_G, d_mode }
@@ -605,7 +606,8 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
#define PREFIX_0FB8 (PREFIX_0F7F + 1)
#define PREFIX_0FBD (PREFIX_0FB8 + 1)
#define PREFIX_0FC2 (PREFIX_0FBD + 1)
-#define PREFIX_0FC7_REG_6 (PREFIX_0FC2 + 1)
+#define PREFIX_0FC3 (PREFIX_0FC2 + 1)
+#define PREFIX_0FC7_REG_6 (PREFIX_0FC3 + 1)
#define PREFIX_0FD0 (PREFIX_0FC7_REG_6 + 1)
#define PREFIX_0FD6 (PREFIX_0FD0 + 1)
#define PREFIX_0FE6 (PREFIX_0FD6 + 1)
@@ -1272,7 +1274,7 @@ static const struct dis386 dis386_twobyte[] = {
{ "xaddB", { Eb, Gb } },
{ "xaddS", { Ev, Gv } },
{ PREFIX_TABLE (PREFIX_0FC2) },
- { "movntiS", { Ev, Gv } },
+ { PREFIX_TABLE (PREFIX_0FC3) },
{ "pinsrw", { MX, Edqw, Ib } },
{ "pextrw", { Gdq, MS, Ib } },
{ "shufpX", { XM, EXx, Ib } },
@@ -2112,6 +2114,14 @@ static const struct dis386 prefix_table[][4] = {
{ "cmpsd", { XM, EXq, CMP } },
},
+ /* PREFIX_0FC3 */
+ {
+ { "movntiS", { Ma, Gv } },
+ { "(bad)", { XX } },
+ { "(bad)", { XX } },
+ { "(bad)", { XX } },
+ },
+
/* PREFIX_0FC7_REG_6 */
{
{ "vmptrld",{ Mq } },
@@ -2146,7 +2156,7 @@ static const struct dis386 prefix_table[][4] = {
/* PREFIX_0FE7 */
{
- { "movntq", { EM, MX } },
+ { "movntq", { Mq, MX } },
{ "(bad)", { XX } },
{ MOD_TABLE (MOD_0FE7_PREFIX_2) },
{ "(bad)", { XX } },
@@ -4623,22 +4633,22 @@ static const struct dis386 mod_table[][2] = {
},
{
/* MOD_0F2B_PREFIX_0 */
- {"movntps", { Ev, XM } },
+ {"movntps", { Mx, XM } },
{ "(bad)", { XX } },
},
{
/* MOD_0F2B_PREFIX_1 */
- {"movntss", { Ed, XM } },
+ {"movntss", { Md, XM } },
{ "(bad)", { XX } },
},
{
/* MOD_0F2B_PREFIX_2 */
- {"movntpd", { Ev, XM } },
+ {"movntpd", { Mx, XM } },
{ "(bad)", { XX } },
},
{
/* MOD_0F2B_PREFIX_3 */
- {"movntsd", { Eq, XM } },
+ {"movntsd", { Mq, XM } },
{ "(bad)", { XX } },
},
{
@@ -4763,7 +4773,7 @@ static const struct dis386 mod_table[][2] = {
},
{
/* MOD_0FE7_PREFIX_2 */
- { "movntdq", { EM, XM } },
+ { "movntdq", { Mx, XM } },
{ "(bad)", { XX } },
},
{
@@ -4773,7 +4783,7 @@ static const struct dis386 mod_table[][2] = {
},
{
/* MOD_0F382A_PREFIX_2 */
- { "movntdqa", { XM, EM } },
+ { "movntdqa", { XM, Mx } },
{ "(bad)", { XX } },
},
{