* 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 8271f9116c5beabfa8c8e3b8f43d1a49bac6d323..34021597ee01ad5031228b51c7f8ec346f32fd13 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 d35c24c1f2b6db908c84f9c0b2f869374d72a792..8af33ab0b79f1d40ae58c943320ae0db3d3b49b5 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;