From 4ee521786f9f912f60c9e58409e3dc8713d60bbf Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 15 Jan 2008 17:20:50 +0000 Subject: [PATCH] 2008-01-15 H.J. Lu * 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. --- opcodes/ChangeLog | 10 ++++++++++ opcodes/i386-dis.c | 28 +++++++++++++++++++--------- 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 + + * 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 * 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 } }, }, { -- 2.34.1