diff options
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index bd88388..a83dcd9 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2011-01-04 H.J. Lu <hongjiu.lu@intel.com> + + * i386-dis.c (VexGdq): New. + (OP_VEX): Handle dq_mode. + 2011-01-01 H.J. Lu <hongjiu.lu@intel.com> * i386-gen.c (process_copyright): Update copyright to 2011. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 0c807ba..d1482de 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -370,6 +370,7 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define VexScalar { OP_VEX, vex_scalar_mode } #define Vex128 { OP_VEX, vex128_mode } #define Vex256 { OP_VEX, vex256_mode } +#define VexGdq { OP_VEX, dq_mode } #define VexI4 { VEXI4_Fixup, 0} #define EXdVex { OP_EX_Vex, d_mode } #define EXdVexS { OP_EX_Vex, d_swap_mode } @@ -14527,13 +14528,18 @@ OP_VEX (int bytemode, int sizeflag ATTRIBUTE_UNUSED) { case vex_mode: case vex128_mode: + names = names_xmm; + break; + case dq_mode: + if (vex.w) + names = names64; + else + names = names32; break; default: abort (); return; } - - names = names_xmm; break; case 256: switch (bytemode) |