From b1e2e654ad11d228622a53657b21b9f153c223b9 Mon Sep 17 00:00:00 2001 From: Phil Blundell Date: Mon, 12 Feb 2001 13:32:25 +0000 Subject: [PATCH] 2001-02-12 Philip Blundell * config/tc-arm.c (do_ldst): Improve warnings for unpredictable ldrt/strt instructions. --- gas/ChangeLog | 5 +++++ gas/config/tc-arm.c | 24 +++++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index d83016a4eb..33d440a5ab 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2001-02-12 Philip Blundell + + * config/tc-arm.c (do_ldst): Improve warnings for unpredictable + ldrt/strt instructions. + 2001-02-11 Maciej W. Rozycki * 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 e2e452efa6..514dba7598 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