diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 5bebff281a..38bb872d2c 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2009-12-11 H.J. Lu + + * i386-dis.c (get_valid_dis386): Set vex.w to 0 for VEX C5 + prefix. + (print_insn): Don't set vex.w here. + 2009-12-11 H.J. Lu * i386-dis.c (print_insn): Set vex.w to 0. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index cfb724fcf6..e646f2509a 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -10444,6 +10444,8 @@ get_valid_dis386 (const struct dis386 *dp, disassemble_info *info) && vex.register_specifier > 0x7) BadOp (); + vex.w = 0; + vex.length = (*codep & 0x4) ? 256 : 128; switch ((*codep & 0x3)) { @@ -10763,7 +10765,6 @@ print_insn (bfd_vma pc, disassemble_info *info) need_vex = 0; need_vex_reg = 0; - vex.w = 0; vex_w_done = 0; if (dp->name == NULL && dp->op[0].bytemode == FLOATCODE)