* gas/config/tc-arm.c (do_t_mov_cmp): Fix reporting of unpredictable and
deprecated mov register instructions. * gas/testsuite/gas/arm/thumb2_bad_reg.s: Update mov register tests. * gas/testsuite/gas/arm/thumb2_bad_reg.l: Likewise.
This commit is contained in:
parent
726d3ab069
commit
76fa04a48e
|
@ -1,3 +1,8 @@
|
||||||
|
2010-07-01 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||||||
|
|
||||||
|
* config/tc-arm.c (do_t_mov_cmp): Fix reporting of unpredictable and
|
||||||
|
deprecated mov register instructions.
|
||||||
|
|
||||||
2010-07-01 Alan Modra <amodra@gmail.com>
|
2010-07-01 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* config/tc-ppc.c (toc_reloc_types): New variable.
|
* config/tc-ppc.c (toc_reloc_types): New variable.
|
||||||
|
|
|
@ -10273,9 +10273,24 @@ do_t_mov_cmp (void)
|
||||||
reject_bad_reg (Rn);
|
reject_bad_reg (Rn);
|
||||||
reject_bad_reg (Rm);
|
reject_bad_reg (Rm);
|
||||||
}
|
}
|
||||||
else if ((Rn == REG_SP || Rn == REG_PC)
|
else if (narrow)
|
||||||
&& (Rm == REG_SP || Rm == REG_PC))
|
{
|
||||||
reject_bad_reg (Rm);
|
/* This is mov.n. */
|
||||||
|
if ((Rn == REG_SP || Rn == REG_PC)
|
||||||
|
&& (Rm == REG_SP || Rm == REG_PC))
|
||||||
|
{
|
||||||
|
as_warn (_("Use of r%u as a source register is "
|
||||||
|
"deprecated when r%u is the destination "
|
||||||
|
"register."), Rm, Rn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* This is mov.w. */
|
||||||
|
constraint (Rn == REG_PC, BAD_PC);
|
||||||
|
constraint (Rm == REG_PC, BAD_PC);
|
||||||
|
constraint (Rn == REG_SP && Rm == REG_SP, BAD_SP);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
reject_bad_reg (Rn);
|
reject_bad_reg (Rn);
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2010-07-01 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||||||
|
|
||||||
|
* gas/arm/thumb2_bad_reg.s: Update mov register tests.
|
||||||
|
* gas/arm/thumb2_bad_reg.l: Likewise.
|
||||||
|
|
||||||
2010-06-29 Alan Modra <amodra@gmail.com>
|
2010-06-29 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* gas/maxq10/maxq10.exp: Delete file.
|
* gas/maxq10/maxq10.exp: Delete file.
|
||||||
|
|
|
@ -137,14 +137,24 @@
|
||||||
[^:]*:[0-9]+: Error: r15 not allowed here -- `mls r0,r0,r0,r15'
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `mls r0,r0,r0,r15'
|
||||||
[^:]*:[0-9]+: Error: r13 not allowed here -- `mov.w r13,#1'
|
[^:]*:[0-9]+: Error: r13 not allowed here -- `mov.w r13,#1'
|
||||||
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r15,#1'
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r15,#1'
|
||||||
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r0,r15'
|
||||||
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r15,r0'
|
||||||
[^:]*:[0-9]+: Error: r13 not allowed here -- `movs.w r0,r13'
|
[^:]*:[0-9]+: Error: r13 not allowed here -- `movs.w r0,r13'
|
||||||
[^:]*:[0-9]+: Error: r15 not allowed here -- `movs.w r0,r15'
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `movs.w r0,r15'
|
||||||
[^:]*:[0-9]+: Error: r13 not allowed here -- `movs.w r13,r0'
|
[^:]*:[0-9]+: Error: r13 not allowed here -- `movs.w r13,r0'
|
||||||
[^:]*:[0-9]+: Error: r15 not allowed here -- `movs.w r15,r0'
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `movs.w r15,r0'
|
||||||
[^:]*:[0-9]+: Error: r13 not allowed here -- `mov.w r13,r13'
|
[^:]*:[0-9]+: Error: r13 not allowed here -- `mov.w r13,r13'
|
||||||
[^:]*:[0-9]+: Error: r13 not allowed here -- `mov.w r15,r13'
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r15,r13'
|
||||||
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r13,r15'
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r13,r15'
|
||||||
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r15,r15'
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `mov.w r15,r15'
|
||||||
|
[^:]*:[0-9]+: Warning: Use of r13 as a source register is deprecated when r13 is the destination register.
|
||||||
|
[^:]*:[0-9]+: Warning: Use of r13 as a source register is deprecated when r15 is the destination register.
|
||||||
|
[^:]*:[0-9]+: Warning: Use of r15 as a source register is deprecated when r13 is the destination register.
|
||||||
|
[^:]*:[0-9]+: Warning: Use of r15 as a source register is deprecated when r15 is the destination register.
|
||||||
|
[^:]*:[0-9]+: Error: r13 not allowed here -- `movs r13,r13'
|
||||||
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `movs r15,r13'
|
||||||
|
[^:]*:[0-9]+: Error: r13 not allowed here -- `movs r13,r15'
|
||||||
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `movs r15,r15'
|
||||||
[^:]*:[0-9]+: Error: r13 not allowed here -- `movt r13,#1'
|
[^:]*:[0-9]+: Error: r13 not allowed here -- `movt r13,#1'
|
||||||
[^:]*:[0-9]+: Error: r15 not allowed here -- `movt r15,#1'
|
[^:]*:[0-9]+: Error: r15 not allowed here -- `movt r15,#1'
|
||||||
[^:]*:[0-9]+: Error: r13 not allowed here -- `mrc p0,#1,r13,cr0,cr0'
|
[^:]*:[0-9]+: Error: r13 not allowed here -- `mrc p0,#1,r13,cr0,cr0'
|
||||||
|
|
|
@ -191,8 +191,8 @@ test:
|
||||||
mov r13, r0 @ OK
|
mov r13, r0 @ OK
|
||||||
mov r15, r0 @ OK
|
mov r15, r0 @ OK
|
||||||
mov.w r0, r13 @ OK
|
mov.w r0, r13 @ OK
|
||||||
mov.w r0, r15 @ OK
|
mov.w r0, r15
|
||||||
mov.w r15, r0 @ OK
|
mov.w r15, r0
|
||||||
mov.w r13, r0 @ OK
|
mov.w r13, r0 @ OK
|
||||||
movs.w r0, r13
|
movs.w r0, r13
|
||||||
movs.w r0, r15
|
movs.w r0, r15
|
||||||
|
@ -202,6 +202,14 @@ test:
|
||||||
mov.w r15, r13
|
mov.w r15, r13
|
||||||
mov.w r13, r15
|
mov.w r13, r15
|
||||||
mov.w r15, r15
|
mov.w r15, r15
|
||||||
|
mov r13, r13 @ Deprecated
|
||||||
|
mov r15, r13 @ Deprecated
|
||||||
|
mov r13, r15 @ Deprecated
|
||||||
|
mov r15, r15 @ Deprecated
|
||||||
|
movs r13, r13
|
||||||
|
movs r15, r13
|
||||||
|
movs r13, r15
|
||||||
|
movs r15, r15
|
||||||
@ MOVT
|
@ MOVT
|
||||||
movt r13, #1
|
movt r13, #1
|
||||||
movt r15, #1
|
movt r15, #1
|
||||||
|
|
Loading…
Reference in New Issue