diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 7 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 837020e..d57e76a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,12 @@ 2009-12-15 H.J. Lu <hongjiu.lu@intel.com> + * config/tc-i386.c (process_operands): Check vexsources + instead of vex3sources. + (build_modrm_byte): Check vexsources instead of vex2sources + and vex3sources. + +2009-12-15 H.J. Lu <hongjiu.lu@intel.com> + * config/tc-i386.c (build_vex_prefix): Replace vexw0/vexw1 with vexw. (build_modrm_byte): Likewise. diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index ac99ffd..eb99acc 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -4722,7 +4722,7 @@ process_operands (void) if (i.op[0].regs->reg_num != 0) return bad_implicit_operand (1); - if (i.tm.opcode_modifier.vex3sources) + if (i.tm.opcode_modifier.vexsources == VEX3SOURCES) { /* Keep xmm0 for instructions with VEX prefix and 3 sources. */ @@ -4744,7 +4744,8 @@ process_operands (void) else if (i.tm.opcode_modifier.implicit1stxmm0) { gas_assert ((MAX_OPERANDS - 1) > dupl - && i.tm.opcode_modifier.vex3sources); + && (i.tm.opcode_modifier.vexsources + == VEX3SOURCES)); /* Add the implicit xmm0 for instructions with VEX prefix and 3 sources. */ @@ -4922,12 +4923,11 @@ build_modrm_byte (void) { const seg_entry *default_seg = 0; unsigned int source, dest; - int vex_3_sources, vex_2_sources; + int vex_3_sources; /* The first operand of instructions with VEX prefix and 3 sources must be VEX_Imm4. */ - vex_3_sources = i.tm.opcode_modifier.vex3sources; - vex_2_sources = i.tm.opcode_modifier.vex2sources; + vex_3_sources = i.tm.opcode_modifier.vexsources == VEX3SOURCES; if (vex_3_sources) { unsigned int nds, reg_slot; @@ -5311,7 +5311,7 @@ build_modrm_byte (void) else mem = ~0; - if (vex_2_sources) + if (i.tm.opcode_modifier.vexsources == VEX2SOURCES) { if (operand_type_check (i.types[0], imm)) i.vex.register_specifier = NULL; |