diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2008-01-15 17:20:50 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2008-01-15 17:20:50 +0000 |
commit | 4ee521786f9f912f60c9e58409e3dc8713d60bbf (patch) | |
tree | ec3158483df765384df868ca1f77002611f8b7b6 | |
parent | 74f0fb5065323b33bef71dfcbbd9b595c88c6c0c (diff) | |
download | gdb-4ee521786f9f912f60c9e58409e3dc8713d60bbf.zip gdb-4ee521786f9f912f60c9e58409e3dc8713d60bbf.tar.gz gdb-4ee521786f9f912f60c9e58409e3dc8713d60bbf.tar.bz2 |
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.
-rw-r--r-- | opcodes/ChangeLog | 10 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 28 |
2 files changed, 29 insertions, 9 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 8ca40ef..1eea458 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 7845639..d237b62 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 } }, }, { |