diff options
author | andrew <andrew@FreeBSD.org> | 2013-08-17 14:36:32 +0000 |
---|---|---|
committer | andrew <andrew@FreeBSD.org> | 2013-08-17 14:36:32 +0000 |
commit | 42756943488e84826b46c8d6a277d40b495c3b74 (patch) | |
tree | b283f4629c32b6a756ef45bbeb59dc5dd669ccf6 /contrib/binutils/gas | |
parent | 8919b4e85256477932bd822f980beb5843d4626b (diff) | |
download | FreeBSD-src-42756943488e84826b46c8d6a277d40b495c3b74.zip FreeBSD-src-42756943488e84826b46c8d6a277d40b495c3b74.tar.gz |
Silence a warning that is incorrect on ARMv6 and later. In the smull, umull,
smlal, and umlal the output registers are allowed to be the same as either
input registers, where in ARMv4 and ARMv5 they could only be the same as the
last input register.
Diffstat (limited to 'contrib/binutils/gas')
-rw-r--r-- | contrib/binutils/gas/config/tc-arm.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/contrib/binutils/gas/config/tc-arm.c b/contrib/binutils/gas/config/tc-arm.c index b41ce60..e1a6c6d 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")); } |