2001-02-12 Philip Blundell <pb@futuretv.com>
authorPhil Blundell <philb@gnu.org>
Mon, 12 Feb 2001 13:32:25 +0000 (13:32 +0000)
committerPhil Blundell <philb@gnu.org>
Mon, 12 Feb 2001 13:32:25 +0000 (13:32 +0000)
* config/tc-arm.c (do_ldst): Improve warnings for unpredictable
ldrt/strt instructions.

gas/ChangeLog
gas/config/tc-arm.c

index d83016a..33d440a 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.
+
 2001-02-11  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
 
        * config/tc-mips.c (macro): For M_LA_AB emit a
index e2e452e..514dba7 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