/* subsegs.h -> subsegs.c
-
- Copyright (C) 1987, 1992, 1993, 1994 Free Software Foundation, Inc.
+ Copyright 1987, 1992, 1993, 1994, 1995, 1996, 1998, 2000, 2003, 2005
+ Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with GAS; see the file COPYING. If not, write to
- the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ along with GAS; see the file COPYING. If not, write to the Free
+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA. */
/*
* For every sub-segment the user mentions in the ASsembler program,
struct frag *frch_root; /* 1st struct frag in chain, or NULL */
struct frag *frch_last; /* last struct frag in chain, or NULL */
struct frchain *frch_next; /* next in chain of struct frchain-s */
- segT frch_seg; /* SEG_TEXT or SEG_DATA. */
+ segT frch_seg; /* SEG_TEXT or SEG_DATA. */
subsegT frch_subseg; /* subsegment number of this chain */
#ifdef BFD_ASSEMBLER
fixS *fix_root; /* Root of fixups for this subsegment. */
extern frchainS *frchain_root;
/* Frchain we are assembling into now. That is, the current segment's
- frag chain, even if it contains no (complete) frags. */
+ frag chain, even if it contains no (complete) frags. */
extern frchainS *frchain_now;
-
-typedef struct
-{
+typedef struct segment_info_struct {
frchainS *frchainP;
unsigned int hadone : 1;
symbolS *sym;
#endif
- union
- {
- /* Current size of section holding stabs strings. */
- unsigned long stab_string_size;
- /* Initial frag for ELF. */
- char *p;
- }
+ union {
+ /* Current size of section holding stabs strings. */
+ unsigned long stab_string_size;
+ /* Initial frag for ELF. */
+ char *p;
+ }
stabu;
#ifdef NEED_LITERAL_POOL
unsigned long literal_pool_size;
#endif
+
+#ifdef TC_SEGMENT_INFO_TYPE
+ TC_SEGMENT_INFO_TYPE tc_segment_info_data;
+#endif
} segment_info_type;
#ifdef BFD_ASSEMBLER
-extern segment_info_type *seg_info PARAMS ((segT));
-extern symbolS *section_symbol PARAMS ((segT));
+extern segment_info_type *seg_info (segT);
+extern symbolS *section_symbol (segT);
#else /* ! BFD_ASSEMBLER */
extern frchainS *data0_frchainP;
extern frchainS *bss0_frchainP;
-/* Dummy so stuff can compile. Should never be used. */
-struct seg_info_trash {
- struct {
- unsigned stab_string_size : 1;
- } stabu;
- unsigned hadone : 1;
-};
-#define seg_info(S) (abort (), (struct seg_info_trash *) 0)
+#define seg_info(S) (abort (), (segment_info_type *) 0)
#endif
#endif /* ! BFD_ASSEMBLER */
-/* end of subsegs.h */
+extern void subsegs_print_statistics (FILE *);