diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 14 |
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; |