aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/subsegs.c11
2 files changed, 11 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 7f9f0d7..7e5f4fe 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+Tue Jun 9 07:54:54 1992 Steve Chamberlain (sac@thepub.cygnus.com)
+
+ * subsegs.c (subseg_change): allow and handle a change into SEG_BSS.
+
Thu Jun 4 11:59:13 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* expr.c(expr): allow SEG_REGISTER in expressions.
diff --git a/gas/subsegs.c b/gas/subsegs.c
index 2e4c10b..e883e29 100644
--- a/gas/subsegs.c
+++ b/gas/subsegs.c
@@ -138,12 +138,16 @@ register int subseg;
seg_fix_rootP = & data_fix_root;
seg_fix_tailP = & data_fix_tail;
}
- else
+ else if (seg == SEG_TEXT)
{
- know (seg == SEG_TEXT);
seg_fix_rootP = & text_fix_root;
seg_fix_tailP = & text_fix_tail;
}
+ else {
+ know (seg == SEG_BSS);
+ seg_fix_rootP = & bss_fix_root;
+ seg_fix_tailP = & bss_fix_tail;
+ }
#endif
}
@@ -170,7 +174,7 @@ register subsegT subseg;
{
long tmp; /* JF for obstack alignment hacking */
#ifndef MANY_SEGMENTS
- know(seg == SEG_DATA || seg == SEG_TEXT);
+ know(seg == SEG_DATA || seg == SEG_TEXT || seg == SEG_BSS);
#endif
#ifdef OBJ_AOUT
/* If -R specifed, always put stuff into the data section */
@@ -183,7 +187,6 @@ register subsegT subseg;
}
}
#endif
-
if (seg != now_seg || subseg != now_subseg)
{ /* we just changed sub-segments */
register frchainS * frcP; /* crawl frchain chain */