diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 24 |
2 files changed, 24 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index d83016a..33d440a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2001-02-12 Philip Blundell <pb@futuretv.com> + + * config/tc-arm.c (do_ldst): Improve warnings for unpredictable + ldrt/strt instructions. + 2001-02-11 Maciej W. Rozycki <macro@ds2.pg.gda.pl> * config/tc-mips.c (macro): For M_LA_AB emit a diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index e2e452e..514dba7 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -4323,9 +4323,16 @@ do_ldst (str, flags) if (ldst_extend (&str, halfword) == FAIL) return; if (conflict_reg) - as_warn (_("%s register same as write-back base"), - ((inst.instruction & LOAD_BIT) - ? _("destination") : _("source"))); + { + if (flags & TRANS_BIT) + as_warn (_("Rn and Rd must be different in %s"), + ((inst.instruction & LOAD_BIT) + ? "LDRT" : "STRT")); + else + as_warn (_("%s register same as write-back base"), + ((inst.instruction & LOAD_BIT) + ? _("destination") : _("source"))); + } } else { @@ -4346,8 +4353,15 @@ do_ldst (str, flags) } flags |= INDEX_UP; - if (! (flags & TRANS_BIT)) - pre_inc = 1; + if (flags & TRANS_BIT) + { + if (conflict_reg) + as_warn (_("Rn and Rd must be different in %s"), + ((inst.instruction & LOAD_BIT) + ? "LDRT" : "STRT")); + } + else + pre_inc = 1; } } else |