(md_apply_fix3): Fix offset calculation for global label.
[external/binutils.git] / gas / tc.h
index 8a7bf51..6a06626 100644 (file)
--- a/gas/tc.h
+++ b/gas/tc.h
@@ -1,6 +1,7 @@
 /* tc.h - target cpu dependent
 
-   Copyright (C) 1987, 1990, 1991, 1992 Free Software Foundation, Inc.
+   Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 2000, 2001, 2003, 2004
+   Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -16,7 +17,7 @@
 
    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, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+   the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* In theory (mine, at least!) the machine dependent part of the assembler
    should only have to include one file.  This one.  -- JF */
 extern const pseudo_typeS md_pseudo_table[];
 
 /* JF moved this here from as.h under the theory that nobody except MACHINE.c
-   and write.c care about it anyway. */
+   and write.c care about it anyway.  */
 
 struct relax_type
 {
-  /* Forward reach. Signed number. > 0. */
+  /* Forward reach. Signed number. > 0.  */
   long rlx_forward;
-  /* Backward reach. Signed number. < 0. */
+  /* Backward reach. Signed number. < 0.  */
   long rlx_backward;
 
-  /* Bytes length of this address. */
+  /* Bytes length of this address.  */
   unsigned char rlx_length;
 
-  /* Next longer relax-state.  0 means there is no 'next' relax-state. */
+  /* Next longer relax-state.  0 means there is no 'next' relax-state.  */
   relax_substateT rlx_more;
 };
 
 typedef struct relax_type relax_typeS;
 
-extern const relax_typeS md_relax_table[];     /* Define it in MACHINE.c */
+extern const int md_reloc_size;        /* Size of a relocation record.  */
 
-extern int md_reloc_size;      /* Size of a relocation record */
+char * md_atof (int, char *, int *);
+int    md_parse_option (int, char *);
+void   md_show_usage (FILE *);
+short  tc_coff_fix2rtype (fixS *);
+void   md_assemble (char *);
+void   md_begin (void);
+void   md_number_to_chars (char *, valueT, int);
+void   md_apply_fix3 (fixS *, valueT *, segT);
 
-extern void (*md_emit_relocations) ();
+#ifndef WORKING_DOT_WORD
+extern int md_short_jump_size;
+extern int md_long_jump_size;
+#endif
 
-char *md_atof PARAMS ((int what_statement_type, char *literalP, int *sizeP));
-int md_estimate_size_before_relax PARAMS ((fragS * fragP, segT segment));
-int md_parse_option PARAMS ((char **argP, int *cntP, char ***vecP));
-long md_pcrel_from PARAMS ((fixS * fixP));
-short tc_coff_fix2rtype PARAMS ((fixS * fixP));
-void md_assemble PARAMS ((char *str));
-void md_begin PARAMS ((void));
-void md_create_long_jump PARAMS ((char *ptr, long from_addr, long to_addr,
-                                 fragS * frag, symbolS * to_symbol));
-void md_create_short_jump PARAMS ((char *ptr, long from_addr, long to_addr,
-                                  fragS * frag, symbolS * to_symbol));
-void md_end PARAMS ((void));
-void md_number_to_chars PARAMS ((char *buf, long val, int n));
+#ifdef USE_UNIQUE
+/* The name of an external symbol which is
+   used to make weak PE symbol names unique.  */
+extern const char * an_external_name;
+#endif
 
+#ifndef md_create_long_jump
+void    md_create_long_jump (char *, addressT, addressT, fragS *, symbolS *);
+#endif
+#ifndef md_create_short_jump
+void    md_create_short_jump (char *, addressT, addressT, fragS *, symbolS *);
+#endif
+#ifndef md_pcrel_from
+long    md_pcrel_from (fixS *);
+#endif
 #ifndef md_operand
-void md_operand PARAMS ((expressionS * expressionP));
+void    md_operand (expressionS *);
+#endif
+#ifndef md_estimate_size_before_relax
+int     md_estimate_size_before_relax (fragS * fragP, segT);
+#endif
+#ifndef md_section_align
+valueT  md_section_align (segT, valueT);
+#endif
+#ifndef  md_undefined_symbol
+symbolS *md_undefined_symbol (char *);
 #endif
 
 #ifdef BFD_ASSEMBLER
-int md_apply_fix PARAMS ((fixS * fixP, long *val));
+
 #ifndef md_convert_frag
-void md_convert_frag PARAMS ((bfd * headers, segT sec, fragS * fragP));
+void    md_convert_frag (bfd *, segT, fragS *);
 #endif
 #ifndef tc_headers_hook
-void tc_headers_hook PARAMS ((segT *, fixS *));
+void    tc_headers_hook (segT *, fixS *);
 #endif
+#ifndef RELOC_EXPANSION_POSSIBLE
+extern arelent *tc_gen_reloc (asection *, fixS *);
 #else
-void md_apply_fix PARAMS ((fixS * fixP, long val));
-#ifndef md_convert_frag
-void md_convert_frag PARAMS ((object_headers * headers, fragS * fragP));
+extern arelent **tc_gen_reloc (asection *, fixS *);
 #endif
 
-#ifndef tc_crawl_symbol_chain
-void tc_crawl_symbol_chain PARAMS ((object_headers * headers));
-#endif /* tc_crawl_symbol_chain */
-
-#ifndef tc_headers_hook
-void tc_headers_hook PARAMS ((object_headers * headers));
-#endif /* tc_headers_hook */
-#endif /* BFD_ASSEMBLER */
+#else /* not BFD_ASSEMBLER */
 
-#ifndef md_section_align
-long md_section_align PARAMS ((segT seg, long align));
+#ifndef md_convert_frag
+void    md_convert_frag (object_headers *, segT, fragS *);
 #endif
-
-#ifndef md_undefined_symbol
-symbolS *md_undefined_symbol PARAMS ((char *name));
+#ifndef tc_crawl_symbol_chain
+void    tc_crawl_symbol_chain (object_headers *);
+#endif
+#ifndef tc_headers_hook
+void    tc_headers_hook (object_headers *);
 #endif
 
-#define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep(frag)
-/* end of tc.h */
-
-
+#endif /* BFD_ASSEMBLER */