aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-arm.c
diff options
context:
space:
mode:
authorPhil Blundell <philb@gnu.org>2001-02-12 13:32:25 +0000
committerPhil Blundell <philb@gnu.org>2001-02-12 13:32:25 +0000
commitb1e2e654ad11d228622a53657b21b9f153c223b9 (patch)
treedf8fe541ddcf4be73dc7f6ae1a08604087470e38 /gas/config/tc-arm.c
parentf0e1d18ad39ba877a6677895e02b5a3ff9c9bf04 (diff)
downloadgdb-b1e2e654ad11d228622a53657b21b9f153c223b9.zip
gdb-b1e2e654ad11d228622a53657b21b9f153c223b9.tar.gz
gdb-b1e2e654ad11d228622a53657b21b9f153c223b9.tar.bz2
2001-02-12 Philip Blundell <pb@futuretv.com>
* config/tc-arm.c (do_ldst): Improve warnings for unpredictable ldrt/strt instructions.
Diffstat (limited to 'gas/config/tc-arm.c')
-rw-r--r--gas/config/tc-arm.c24
1 files changed, 19 insertions, 5 deletions
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