diff options
Diffstat (limited to 'gas/struc-symbol.h')
-rw-r--r-- | gas/struc-symbol.h | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/gas/struc-symbol.h b/gas/struc-symbol.h deleted file mode 100644 index aeb04050670..00000000000 --- a/gas/struc-symbol.h +++ /dev/null @@ -1,166 +0,0 @@ -/* struct_symbol.h - Internal symbol structure - Copyright (C) 1987, 92, 93, 94, 95, 1998 Free Software Foundation, Inc. - - This file is part of GAS, the GNU Assembler. - - GAS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GAS is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - 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. */ - -#ifndef __struc_symbol_h__ -#define __struc_symbol_h__ - -#ifdef BFD_ASSEMBLER -/* The BFD code wants to walk the list in both directions. */ -#undef SYMBOLS_NEED_BACKPOINTERS -#define SYMBOLS_NEED_BACKPOINTERS -#endif - -/* our version of an nlist node */ -struct symbol -{ -#ifndef BFD_ASSEMBLER - /* The (4-origin) position of sy_name in the symbol table of the object - file. This will be 0 for (nameless) .stabd symbols. - - Not used until write_object_file() time. */ - unsigned long sy_name_offset; - - /* What we write in .o file (if permitted). */ - obj_symbol_type sy_symbol; - - /* The 24 bit symbol number. Symbol numbers start at 0 and are unsigned. */ - long sy_number; -#else - /* BFD symbol */ - asymbol *bsym; -#endif - - /* The value of the symbol. */ - expressionS sy_value; - - /* Forwards and (optionally) backwards chain pointers. */ - struct symbol *sy_next; -#ifdef SYMBOLS_NEED_BACKPOINTERS - struct symbol *sy_previous; -#endif /* SYMBOLS_NEED_BACKPOINTERS */ - - /* Pointer to the frag this symbol is attached to, if any. - Otherwise, NULL. */ - struct frag *sy_frag; - - unsigned int written : 1; - /* Whether symbol value has been completely resolved (used during - final pass over symbol table). */ - unsigned int sy_resolved : 1; - /* Whether the symbol value is currently being resolved (used to - detect loops in symbol dependencies). */ - unsigned int sy_resolving : 1; - /* Whether the symbol value is used in a reloc. This is used to - ensure that symbols used in relocs are written out, even if they - are local and would otherwise not be. */ - unsigned int sy_used_in_reloc : 1; - - /* Whether the symbol is used as an operand or in an expression. - NOTE: Not all the backends keep this information accurate; - backends which use this bit are responsible for setting it when - a symbol is used in backend routines. */ - unsigned int sy_used : 1; - - /* This is set if the symbol is defined in an MRI common section. - We handle such sections as single common symbols, so symbols - defined within them must be treated specially by the relocation - routines. */ - unsigned int sy_mri_common : 1; - -#ifdef OBJ_SYMFIELD_TYPE - OBJ_SYMFIELD_TYPE sy_obj; -#endif - -#ifdef TC_SYMFIELD_TYPE - TC_SYMFIELD_TYPE sy_tc; -#endif - -#ifdef TARGET_SYMBOL_FIELDS - TARGET_SYMBOL_FIELDS -#endif -}; - -typedef struct symbol symbolS; - -#ifndef WORKING_DOT_WORD -struct broken_word - { - /* Linked list -- one of these structures per ".word x-y+C" - expression. */ - struct broken_word *next_broken_word; - /* Segment and subsegment for broken word. */ - segT seg; - subsegT subseg; - /* Which frag is this broken word in? */ - fragS *frag; - /* Where in the frag is it? */ - char *word_goes_here; - /* Where to add the break. */ - fragS *dispfrag; /* where to add the break */ - /* Operands of expression. */ - symbolS *add; - symbolS *sub; - offsetT addnum; - - int added; /* nasty thing happend yet? */ - /* 1: added and has a long-jump */ - /* 2: added but uses someone elses long-jump */ - - /* Pointer to broken_word with a similar long-jump. */ - struct broken_word *use_jump; - }; -extern struct broken_word *broken_words; -#endif /* ndef WORKING_DOT_WORD */ - -/* - * Current means for getting from symbols to segments and vice verse. - * This will change for infinite-segments support (e.g. COFF). - */ -extern const segT N_TYPE_seg[]; /* subseg.c */ - -#define SEGMENT_TO_SYMBOL_TYPE(seg) ( seg_N_TYPE [(int) (seg)] ) -extern const short seg_N_TYPE[];/* subseg.c */ - -#define N_REGISTER 30 /* Fake N_TYPE value for SEG_REGISTER */ - -void symbol_clear_list_pointers PARAMS ((symbolS * symbolP)); - -#ifdef SYMBOLS_NEED_BACKPOINTERS - -void symbol_insert PARAMS ((symbolS * addme, symbolS * target, - symbolS ** rootP, symbolS ** lastP)); -void symbol_remove PARAMS ((symbolS * symbolP, symbolS ** rootP, - symbolS ** lastP)); - -#define symbol_previous(s) ((s)->sy_previous) - -#endif /* SYMBOLS_NEED_BACKPOINTERS */ - -void verify_symbol_chain PARAMS ((symbolS * rootP, symbolS * lastP)); -void verify_symbol_chain_2 PARAMS ((symbolS * symP)); - -void symbol_append PARAMS ((symbolS * addme, symbolS * target, - symbolS ** rootP, symbolS ** lastP)); - -#define symbol_next(s) ((s)->sy_next) - -#endif /* __struc_symbol_h__ */ - -/* end of struc-symbol.h */ |