From 682b27ad2a2238e7575e7eab1978cbb850135965 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Tue, 6 Nov 2007 22:17:00 +0000 Subject: 2007-11-06 Paul Brook gas/ * config/tc-arm.c (do_mull): Allow overlapping Rm for armv6. gas/testsuite/ * gas/arm/mul-overlap.s: Add umull and smlal. * gas/arm/mul-overlap.l: Update expected results. --- gas/config/tc-arm.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'gas/config') diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index f2f7dcc..a35204c 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -7202,10 +7202,14 @@ do_mull (void) inst.instruction |= inst.operands[2].reg; inst.instruction |= inst.operands[3].reg << 8; - /* rdhi, rdlo and rm must all be different. */ - if (inst.operands[0].reg == inst.operands[1].reg - || inst.operands[0].reg == inst.operands[2].reg + /* rdhi and rdlo must be different. */ + if (inst.operands[0].reg == inst.operands[1].reg) + as_tsktsk (_("rdhi and rdlo must be different")); + + /* rdhi, rdlo and rm must all be different before armv6. */ + if ((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")); } -- cgit v1.1