* config/tc-mips.c (append_insn): If listing_prev_line is called,
authorIan Lance Taylor <ian@airs.com>
Thu, 23 Feb 1995 02:20:57 +0000 (02:20 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 23 Feb 1995 02:20:57 +0000 (02:20 +0000)
call frag_grow to make sure there is still room for a variant.

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

index 3362c5a7c62e858919df1779110b7bf0e9b96f37..d9b1164f0f54715eb55b5e4771da04ed299198d7 100644 (file)
@@ -1,3 +1,8 @@
+Wed Feb 22 21:12:28 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+       * config/tc-mips.c (append_insn): If listing_prev_line is called,
+       call frag_grow to make sure there is still room for a variant.
+
 Fri Feb 17 14:50:08 1995  Ian Lance Taylor  <ian@cygnus.com>
 
        * config/tc-mips.c (md_pseudo_table): Add 2byte, 4byte and 8byte
index 9c32ee48a33e3a419b3cef3a5e9882b7f847f151..9e7924a98ed697907068d26f4360b69423499dcc 100644 (file)
@@ -966,7 +966,18 @@ append_insn (place, ip, address_expr, reloc_type)
          for (i = 0; i < nops; i++)
            emit_nop ();
          if (listing)
-           listing_prev_line ();
+           {
+             listing_prev_line ();
+             /* We may be at the start of a variant frag.  In case we
+                 are, make sure there is enough space for the frag
+                 after the frags created by listing_prev_line.  The
+                 argument to frag_grow here must be at least as large
+                 as the argument to all other calls to frag_grow in
+                 this file.  We don't have to worry about being in the
+                 middle of a variant frag, because the variants insert
+                 all needed nop instructions themselves.  */
+             frag_grow (40);
+           }
          if (insn_label != NULL)
            {
              assert (S_GET_SEGMENT (insn_label) == now_seg);