diff options
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 18 |
2 files changed, 14 insertions, 9 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 8c81cf8..bee3b55 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2001-07-18 Alan Modra <amodra@bigpond.net.au> + + * i386-dis.c (grps): Print l or w suffix, and require mem modrm + for lgdt, lidt, sgdt, sidt. + 2001-07-13 Philip Blundell <philb@gnu.org> * arm-dis.c (print_insn_arm): Use decimal for offsets in LDR/STR. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index d5eacd2..4416606 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -197,7 +197,7 @@ fetch_data (info, addr) #define indirEv OP_indirE, v_mode #define Ew OP_E, w_mode #define Ma OP_E, v_mode -#define M OP_E, 0 /* lea */ +#define M OP_E, 0 /* lea, lgdt, etc. */ #define Mp OP_E, 0 /* 32 or 48 bit memory operand for LDS, LES etc */ #define Gb OP_G, b_mode #define Gv OP_G, v_mode @@ -1315,14 +1315,14 @@ static const struct dis386 grps[][8] = { }, /* GRP7 */ { - { "sgdt", Ew, XX, XX }, - { "sidt", Ew, XX, XX }, - { "lgdt", Ew, XX, XX }, - { "lidt", Ew, XX, XX }, - { "smsw", Ew, XX, XX }, - { "(bad)", XX, XX, XX }, - { "lmsw", Ew, XX, XX }, - { "invlpg", Ew, XX, XX }, + { "sgdtQ", M, XX, XX }, + { "sidtQ", M, XX, XX }, + { "lgdtQ", M, XX, XX }, + { "lidtQ", M, XX, XX }, + { "smsw", Ew, XX, XX }, + { "(bad)", XX, XX, XX }, + { "lmsw", Ew, XX, XX }, + { "invlpg", Ew, XX, XX }, }, /* GRP8 */ { |