PR gas/12854
Add additional checks for extraneous shifts and extra tests in the testsuite.
This commit is contained in:
parent
dc7eb48e0a
commit
af199b0601
3 changed files with 22 additions and 6 deletions
|
@ -11570,6 +11570,10 @@ do_t_shift (void)
|
|||
|
||||
inst.instruction |= inst.operands[0].reg;
|
||||
inst.instruction |= inst.operands[2].reg << 3;
|
||||
|
||||
/* PR 12854: Error on extraneous shifts. */
|
||||
constraint (inst.operands[2].shifted,
|
||||
_("extraneous shift as part of operand to shift insn"));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -11609,6 +11613,10 @@ do_t_shift (void)
|
|||
|
||||
inst.instruction |= inst.operands[0].reg;
|
||||
inst.instruction |= inst.operands[2].reg << 3;
|
||||
|
||||
/* PR 12854: Error on extraneous shifts. */
|
||||
constraint (inst.operands[2].shifted,
|
||||
_("extraneous shift as part of operand to shift insn"));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
.*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'
|
||||
.*shift-bad.s:2: Error: extraneous shift as part of operand to shift insn -- `asr r0,r1,r2,ror#5'
|
||||
.*shift-bad.s:3: Error: extraneous shift as part of operand to shift insn -- `ror r0,r1,r2,lsl r3'
|
||||
.*shift-bad.s:7: Error: extraneous shift as part of operand to shift insn -- `ror r0,r0,r2,lsl#1'
|
||||
.*shift-bad.s:8: Error: extraneous shift as part of operand to shift insn -- `lsl r0,r0,r2,lsl#1'
|
||||
.*shift-bad.s:9: Error: extraneous shift as part of operand to shift insn -- `lsl r0,r0,r2,asr r0'
|
||||
.*shift-bad.s:13: Error: extraneous shift as part of operand to shift insn -- `ror r0,r1,r2,lsl#1'
|
||||
.*shift-bad.s:14: Error: extraneous shift as part of operand to shift insn -- `lsl r0,r1,r2,lsl#1'
|
||||
.*shift-bad.s:15: Error: extraneous shift as part of operand to shift insn -- `lsl r0,r1,r2,asr r0'
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
.syntax unified
|
||||
|
||||
asr r0, r1, r2, ror #5
|
||||
ror r0, r1, r2, lsl r3
|
||||
|
||||
.thumb_func
|
||||
foo:
|
||||
ror r0, r0, r2, lsl #1
|
||||
lsl r0, r0, r2, lsl #1
|
||||
lsl r0, r0, r2, asr r0
|
||||
|
||||
.syntax unified
|
||||
|
||||
ror r0, r1, r2, lsl #1
|
||||
lsl r0, r1, r2, lsl #1
|
||||
lsl r0, r1, r2, asr r0
|
||||
|
|
Loading…
Reference in a new issue