aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-mips.c14
2 files changed, 19 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 8271f91..3402159 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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().
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index d35c24c..8af33ab 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -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;