]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
merge patch from HEAD to warn about bad ldrt/strt
authorPhil Blundell <philb@gnu.org>
Mon, 12 Feb 2001 21:16:23 +0000 (21:16 +0000)
committerPhil Blundell <philb@gnu.org>
Mon, 12 Feb 2001 21:16:23 +0000 (21:16 +0000)
gas/ChangeLog
gas/config/tc-arm.c

index c397b5fcdc95d6d86f63e9c593177dc9a01e7d50..d276be336e1f52df3dbf020dc69e576be818281f 100644 (file)
@@ -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.
+
 Mon Feb 12 17:44:08 CET 2001  Jan Hubicka  <jh@suse.cz>
 
        * tc-i386.c (i386_displacement): Fix handling of
index e2e452efa66cf550f87d94f24c1111a047788dc5..514dba7598cfd8bccd203399c4e3c600547c1243 100644 (file)
@@ -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