* config/tc-mips.c (mips_pseudo_table): Add "sbss".
authorMaciej W. Rozycki <macro@linux-mips.org>
Mon, 18 Oct 2010 00:11:08 +0000 (00:11 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Mon, 18 Oct 2010 00:11:08 +0000 (00:11 +0000)
(s_change_sec): Handle it.

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

index 8271f91..3402159 100644 (file)
@@ -1,3 +1,8 @@
+2010-10-18  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * config/tc-mips.c (mips_pseudo_table): Add "sbss".
+       (s_change_sec): Handle it.
+
 2010-10-15  Mike Frysinger  <vapier@gentoo.org>
 
        * config/bfin-parse.y (BYTEOP2M): Call BYTEOP2M().
index d35c24c..8af33ab 100644 (file)
@@ -1191,6 +1191,9 @@ static const pseudo_typeS mips_pseudo_table[] =
   {"origin", s_org, 0},
   {"repeat", s_rept, 0},
 
+  /* For MIPS this is non-standard, but we define it for consistency.  */
+  {"sbss", s_change_sec, 'B'},
+
   /* These pseudo-ops are defined in read.c, but must be overridden
      here for one reason or another.  */
   {"align", s_align, 0},
@@ -12678,6 +12681,17 @@ s_change_sec (int sec)
        }
       demand_empty_rest_of_line ();
       break;
+
+    case 'B':
+      seg = subseg_new (".sbss", (subsegT) get_absolute_expression ());
+      if (IS_ELF)
+       {
+         bfd_set_section_flags (stdoutput, seg, SEC_ALLOC);
+         if (strncmp (TARGET_OS, "elf", 3) != 0)
+           record_alignment (seg, 4);
+       }
+      demand_empty_rest_of_line ();
+      break;
     }
 
   auto_align = 1;