diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2006-12-11 18:11:13 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2006-12-11 18:11:13 +0000 |
commit | 75413a22c61d2e90d84c0afc0c7e29fade441376 (patch) | |
tree | ef309f694bee079531d9183b3b3492f1db50c7f2 /opcodes/i386-dis.c | |
parent | d5fbea21a5f6c495ab468480942cde46767c9423 (diff) | |
download | gdb-75413a22c61d2e90d84c0afc0c7e29fade441376.zip gdb-75413a22c61d2e90d84c0afc0c7e29fade441376.tar.gz gdb-75413a22c61d2e90d84c0afc0c7e29fade441376.tar.bz2 |
2006-12-11 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (Eq): Replaced by ...
(Mq): New. This.
(Ma): Defined with OP_M instead of OP_E.
(grps): Updated cmpxchg8b and vmptrst for Eq -> Mq.
(OP_M): Added bound, cmpxchg8b and vmptrst to bad modrm list.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 1ea683f..8b6f532 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -209,7 +209,6 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define Eb OP_E, b_mode #define Ev OP_E, v_mode #define Ed OP_E, d_mode -#define Eq OP_E, q_mode #define Edq OP_E, dq_mode #define Edqw OP_E, dqw_mode #define indirEv OP_indirE, stack_v_mode @@ -217,9 +216,10 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define stackEv OP_E, stack_v_mode #define Em OP_E, m_mode #define Ew OP_E, w_mode -#define Ma OP_E, v_mode #define M OP_M, 0 /* lea, lgdt, etc. */ +#define Ma OP_M, v_mode #define Mp OP_M, f_mode /* 32 or 48 bit memory operand for LDS, LES etc */ +#define Mq OP_M, q_mode #define Gb OP_G, b_mode #define Gv OP_G, v_mode #define Gd OP_G, d_mode @@ -1638,13 +1638,13 @@ static const struct dis386 grps[][8] = { /* GRP9 */ { { "(bad)", XX, XX, XX, XX }, - { "cmpxchg8b", Eq, XX, XX, XX }, + { "cmpxchg8b", Mq, XX, XX, XX }, { "(bad)", XX, XX, XX, XX }, { "(bad)", XX, XX, XX, XX }, { "(bad)", XX, XX, XX, XX }, { "(bad)", XX, XX, XX, XX }, { "", VM, XX, XX, XX }, /* See OP_VMX. */ - { "vmptrst", Eq, XX, XX, XX }, + { "vmptrst", Mq, XX, XX, XX }, }, /* GRP11_C6 */ { @@ -5262,7 +5262,8 @@ static void OP_M (int bytemode, int sizeflag) { if (mod == 3) - BadOp (); /* bad lea,lds,les,lfs,lgs,lss modrm */ + /* bad bound,lea,lds,les,lfs,lgs,lss,cmpxchg8b,vmptrst modrm */ + BadOp (); else OP_E (bytemode, sizeflag); } |