2002-04-22 Eric Christopher <echristo@redhat.com>
authorEric Christopher <echristo@gmail.com>
Mon, 22 Apr 2002 21:21:06 +0000 (21:21 +0000)
committerEric Christopher <echristo@gmail.com>
Mon, 22 Apr 2002 21:21:06 +0000 (21:21 +0000)
* config/tc-mips.c: Add warning if macro instructions are expanded
into a branch delay slot.

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

index 278ea24..3d98f1c 100644 (file)
@@ -1,3 +1,8 @@
+2002-04-22  Eric Christopher  <echristo@redhat.com>
+
+       * config/tc-mips.c: Add warning if macro instructions are expanded
+       into a branch delay slot.
+
 2002-04-17  Geoffrey Keating  <geoffk@redhat.com>
 
        * dwarf2dbg.c (dwarf2_gen_line_info): Do emit duplicate line
@@ -14,7 +19,7 @@
 
 2002-04-15  Tom Rix  <trix@redhat.com>
 
-       * config/tc-d10v.c (d10v_fix_adjustable): Prevent adjustments to 
+       * config/tc-d10v.c (d10v_fix_adjustable): Prevent adjustments to
        symbols in merge sections.
 
 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
@@ -65,7 +70,7 @@ Tue Apr  9 16:45:48 2002  J"orn Rennecke <joern.rennecke@superh.com>
            Tom Rix  <trix@redhat.com>
 
        From Jeff Knaggs <jknaggs@redhat.com>
-       * config/tc-d10v.c (check_resource_conflict): New function to 
+       * config/tc-d10v.c (check_resource_conflict): New function to
        check for resource conflicts.
 
        From Jason Eckhardt  <jle@redhat.com>
index 9296218..e2e6fbc 100644 (file)
@@ -2881,6 +2881,18 @@ macro_build (place, counter, ep, name, fmt, va_alist)
   if (mips_opts.warn_about_macros && place == NULL && *counter == 1)
     as_warn (_("Macro instruction expanded into multiple instructions"));
 
+  /*
+   * If the macro is about to expand into a second instruction,
+   * and it is in a delay slot, print a warning.
+   */
+  if (place == NULL
+      && *counter == 1
+      && mips_opts.noreorder
+      && (prev_prev_insn.insn_mo->pinfo
+         & (INSN_UNCOND_BRANCH_DELAY | INSN_COND_BRANCH_DELAY
+            | INSN_COND_BRANCH_LIKELY) != 0)
+    as_warn (_("Macro instruction expanded into multiple instructions in a branch delay slot"));
+
   if (place == NULL)
     *counter += 1;             /* bump instruction counter */
 
@@ -10264,7 +10276,7 @@ MIPS options:\n\
   show (stream, "n32", &column, &first);
   show (stream, "64", &column, &first);
   show (stream, "eabi", &column, &first);
-                            
+
   fputc ('\n', stream);
 
   fprintf (stream, _("\