diff --git a/contrib/binutils/gas/config/tc-arm.c b/contrib/binutils/gas/config/tc-arm.c index b41ce60d065f..e1a6c6dd7065 100644 --- a/contrib/binutils/gas/config/tc-arm.c +++ b/contrib/binutils/gas/config/tc-arm.c @@ -7218,10 +7218,11 @@ do_mull (void) inst.instruction |= inst.operands[2].reg; inst.instruction |= inst.operands[3].reg << 8; - /* rdhi, rdlo and rm must all be different. */ + /* rdhi, rdlo and rm must all be different prior to ARMv6. */ if (inst.operands[0].reg == inst.operands[1].reg - || inst.operands[0].reg == inst.operands[2].reg + || ((inst.operands[0].reg == inst.operands[2].reg || inst.operands[1].reg == inst.operands[2].reg) + && !ARM_CPU_HAS_FEATURE (selected_cpu, arm_ext_v6))) as_tsktsk (_("rdhi, rdlo and rm must all be different")); }