diff options
Diffstat (limited to 'gas/config/tc-arm.c')
-rw-r--r-- | gas/config/tc-arm.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 8137868..67b36d5 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -10273,9 +10273,24 @@ do_t_mov_cmp (void) reject_bad_reg (Rn); reject_bad_reg (Rm); } - else if ((Rn == REG_SP || Rn == REG_PC) - && (Rm == REG_SP || Rm == REG_PC)) - reject_bad_reg (Rm); + else if (narrow) + { + /* 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 reject_bad_reg (Rn); |