diff options
author | Mark Shinwell <shinwell@codesourcery.com> | 2007-03-18 16:21:27 +0000 |
---|---|---|
committer | Mark Shinwell <shinwell@codesourcery.com> | 2007-03-18 16:21:27 +0000 |
commit | 8fb9d7b9aa21d34743316ad6f5928d06e9a57e02 (patch) | |
tree | b010e336b2a6302add1f8154a8cbf0eb2c63faf3 /gas/config/tc-arm.c | |
parent | d74fb15679686e530b89521a4e96701b53a2f7f0 (diff) | |
download | gdb-8fb9d7b9aa21d34743316ad6f5928d06e9a57e02.zip gdb-8fb9d7b9aa21d34743316ad6f5928d06e9a57e02.tar.gz gdb-8fb9d7b9aa21d34743316ad6f5928d06e9a57e02.tar.bz2 |
gas/
* config/tc-arm.c (do_mul): Don't warn about overlapping
Rd and Rm operands when assembling for v6 or above.
Correctly capitalize register names in the messages.
(do_mlas): Likewise. Delete spurious blank line.
gas/testsuite/
* gas/arm/mul-overlap.s: New.
* gas/arm/mul-overlap.d: New.
* gas/arm/mul-overlap.l: New.
* gas/arm/mul-overlap-v6.s: New.
* gas/arm/mul-overlap-v6.d: New.
Diffstat (limited to 'gas/config/tc-arm.c')
-rw-r--r-- | gas/config/tc-arm.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index b463d96..aa2ac05 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -7051,17 +7051,16 @@ do_lstc (void) static void do_mlas (void) { - /* This restriction does not apply to mls (nor to mla in v6, but - that's hard to detect at present). */ + /* This restriction does not apply to mls (nor to mla in v6 or later). */ if (inst.operands[0].reg == inst.operands[1].reg + && !ARM_CPU_HAS_FEATURE (selected_cpu, arm_ext_v6) && !(inst.instruction & 0x00400000)) - as_tsktsk (_("rd and rm should be different in mla")); + as_tsktsk (_("Rd and Rm should be different in mla")); inst.instruction |= inst.operands[0].reg << 16; inst.instruction |= inst.operands[1].reg; inst.instruction |= inst.operands[2].reg << 8; inst.instruction |= inst.operands[3].reg << 12; - } static void @@ -7169,8 +7168,9 @@ do_mul (void) inst.instruction |= inst.operands[1].reg; inst.instruction |= inst.operands[2].reg << 8; - if (inst.operands[0].reg == inst.operands[1].reg) - as_tsktsk (_("rd and rm should be different in mul")); + if (inst.operands[0].reg == inst.operands[1].reg + && !ARM_CPU_HAS_FEATURE (selected_cpu, arm_ext_v6)) + as_tsktsk (_("Rd and Rm should be different in mul")); } /* Long Multiply Parser |