diff options
Diffstat (limited to 'gas/config/tc-i386.c')
-rw-r--r-- | gas/config/tc-i386.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 24fa4c7..3a21a35 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6414,20 +6414,21 @@ duplicate: } else if (i.tm.opcode_modifier.implicitquadgroup) { + unsigned int regnum, first_reg_in_group, last_reg_in_group; + /* The second operand must be {x,y,z}mmN, where N is a multiple of 4. */ gas_assert (i.operands >= 2 && i.types[1].bitfield.regsimd); - unsigned int regnum = register_number (i.op[1].regs); - unsigned int first_reg_in_group = regnum & ~3; - unsigned int last_reg_in_group = first_reg_in_group + 3; - if (regnum != first_reg_in_group) { - as_warn (_("the second source register `%s%s' implicitly denotes" - " `%s%.3s%d' to `%s%.3s%d' source group in `%s'"), - register_prefix, i.op[1].regs->reg_name, - register_prefix, i.op[1].regs->reg_name, first_reg_in_group, - register_prefix, i.op[1].regs->reg_name, last_reg_in_group, - i.tm.name); - } - } + regnum = register_number (i.op[1].regs); + first_reg_in_group = regnum & ~3; + last_reg_in_group = first_reg_in_group + 3; + if (regnum != first_reg_in_group) + as_warn (_("source register `%s%s' implicitly denotes" + " `%s%.3s%u' to `%s%.3s%u' source group in `%s'"), + register_prefix, i.op[1].regs->reg_name, + register_prefix, i.op[1].regs->reg_name, first_reg_in_group, + register_prefix, i.op[1].regs->reg_name, last_reg_in_group, + i.tm.name); + } else if (i.tm.opcode_modifier.regkludge) { /* The imul $imm, %reg instruction is converted into |