* gas/arm/shift-bad.s: New test.
* gas/arm/shift-bad.l: Expcted error output.
* gas/arm/shift-bad.s: New control file.
* config/tc-arm.c (do_shift): Do not allow shift operations at the
end of a register based shift insn.
(do_t_shift): Likewise.
+2011-06-13 Nick Clifton <nickc@redhat.com>
+
+ PR gas/12854
+ * config/tc-arm.c (do_shift): Do not allow shift operations at the
+ end of a register based shift insn.
+ (do_t_shift): Likewise.
+
2011-06-13 Nick Clifton <nickc@redhat.com>
* config/tc-score.c (s3_my_get_expression): Delete unused local
{
inst.instruction |= inst.operands[2].reg << 8;
inst.instruction |= SHIFT_BY_REG;
+ /* PR 12854: Error on extraneous shifts. */
+ constraint (inst.operands[2].shifted,
+ _("extraneous shift as part of operand to shift insn"));
}
else
inst.reloc.type = BFD_RELOC_ARM_SHIFT_IMM;
inst.instruction |= inst.operands[0].reg << 8;
inst.instruction |= inst.operands[1].reg << 16;
inst.instruction |= inst.operands[2].reg;
+
+ /* PR 12854: Error on extraneous shifts. */
+ constraint (inst.operands[2].shifted,
+ _("extraneous shift as part of operand to shift insn"));
}
else
{
+2011-06-13 Nick Clifton <nickc@redhat.com>
+
+ PR gas/12854
+ * gas/arm/shift-bad.s: New test.
+ * gas/arm/shift-bad.l: Expcted error output.
+ * gas/arm/shift-bad.s: New control file.
+
2011-06-12 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/arch-10-lzcnt.d: Updated.
--- /dev/null
+# name: PR 12854: Extraneous shifts
+# as:
+# error-output: shift-bad.l
--- /dev/null
+.*shift-bad.s: Assembler messages:
+.*shift-bad.s:3: Error: extraneous shift as part of operand to shift insn -- `asr r0,r1,r2,ror#5'
+.*shift-bad.s:4: Error: extraneous shift as part of operand to shift insn -- `ror r0,r1,r2,lsl r3'
+.*shift-bad.s:8: Error: extraneous shift as part of operand to shift insn -- `ror r0,r1,r2,lsl#1'
+.*shift-bad.s:9: Error: extraneous shift as part of operand to shift insn -- `lsl r0,r1,r2,lsl#1'
+.*shift-bad.s:10: Error: extraneous shift as part of operand to shift insn -- `lsl r0,r1,r2,asr r0'
--- /dev/null
+ .syntax unified
+
+ asr r0, r1, r2, ror #5
+ ror r0, r1, r2, lsl r3
+
+ .thumb_func
+foo:
+ ror r0, r1, r2, lsl #1
+ lsl r0, r1, r2, lsl #1
+ lsl r0, r1, r2, asr r0