2002-06-14 H.J. Lu <hjl@gnu.org>
[deliverable/binutils-gdb.git] / gas / struc-symbol.h
index 75735661bf2c01b22ebcf064b9ad4e59cf3d439d..90945c433bc36844c4993de03636a1bcd0e1821d 100644 (file)
@@ -1,5 +1,6 @@
 /* struct_symbol.h - Internal symbol structure
-   Copyright (C) 1987, 92, 93, 94, 95, 98, 1999 Free Software Foundation, Inc.
+   Copyright 1987, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
 #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
+
 /* The information we keep for a symbol.  Note that the symbol table
    holds pointers both to this and to local_symbol structures.  See
    below.  */
@@ -34,13 +41,13 @@ struct symbol
   /* 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. */
+     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. */
+  /* The 24 bit symbol number.  Symbol numbers start at 0 and are unsigned.  */
   long sy_number;
 #endif
 
@@ -69,7 +76,7 @@ struct symbol
      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.  
+  /* 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.  */
@@ -88,6 +95,10 @@ struct symbol
 #ifdef TC_SYMFIELD_TYPE
   TC_SYMFIELD_TYPE sy_tc;
 #endif
+
+#ifdef TARGET_SYMBOL_FIELDS
+  TARGET_SYMBOL_FIELDS
+#endif
 };
 
 #ifdef BFD_ASSEMBLER
@@ -111,14 +122,14 @@ struct local_symbol
 
   /* The symbol section.  This also serves as a flag.  If this is
      reg_section, then this symbol has been converted into a regular
-     symbol, and sy_sym points to it.  */
+     symbol, and lsy_sym points to it.  */
   segT lsy_section;
 
   /* The symbol name.  */
   const char *lsy_name;
 
   /* The symbol frag or the real symbol, depending upon the value in
-     sy_section.  If the symbol has been fully resolved, lsy_frag is
+     lsy_section.  If the symbol has been fully resolved, lsy_frag is
      set to NULL.  */
   union
   {
@@ -126,8 +137,12 @@ struct local_symbol
     symbolS *lsy_sym;
   } u;
 
-  /* The offset within the frag.  */
-  valueT lsy_offset;
+  /* The value of the symbol.  */
+  valueT lsy_value;
+
+#ifdef TC_LOCAL_SYMFIELD_TYPE
+  TC_LOCAL_SYMFIELD_TYPE lsy_tc;
+#endif
 };
 
 #define local_symbol_converted_p(l) ((l)->lsy_section == reg_section)
@@ -142,5 +157,3 @@ struct local_symbol
 #endif /* BFD_ASSEMBLER */
 
 #endif /* __struc_symbol_h__ */
-
-/* end of struc-symbol.h */
This page took 0.034374 seconds and 4 git commands to generate.