From 998b3c3643a874e4f94dbeda5c1ba315f26c1ec5 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Mon, 18 Oct 2010 00:11:08 +0000 Subject: [PATCH] * config/tc-mips.c (mips_pseudo_table): Add "sbss". (s_change_sec): Handle it. --- gas/ChangeLog | 5 +++++ gas/config/tc-mips.c | 14 ++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index 8271f9116c5..34021597ee0 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2010-10-18 Maciej W. Rozycki + + * config/tc-mips.c (mips_pseudo_table): Add "sbss". + (s_change_sec): Handle it. + 2010-10-15 Mike Frysinger * config/bfin-parse.y (BYTEOP2M): Call BYTEOP2M(). diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index d35c24c1f2b..8af33ab0b79 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; -- 2.30.2