xref: /openbsd-src/gnu/usr.bin/binutils-2.17/gas/tc.h (revision 3d8817e467ea46cf4772788d6804dd293abfb01a)
1*3d8817e4Smiod /* tc.h - target cpu dependent
2*3d8817e4Smiod 
3*3d8817e4Smiod    Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 2000, 2001, 2003,
4*3d8817e4Smiod    2004, 2005
5*3d8817e4Smiod    Free Software Foundation, Inc.
6*3d8817e4Smiod 
7*3d8817e4Smiod    This file is part of GAS, the GNU Assembler.
8*3d8817e4Smiod 
9*3d8817e4Smiod    GAS is free software; you can redistribute it and/or modify
10*3d8817e4Smiod    it under the terms of the GNU General Public License as published by
11*3d8817e4Smiod    the Free Software Foundation; either version 2, or (at your option)
12*3d8817e4Smiod    any later version.
13*3d8817e4Smiod 
14*3d8817e4Smiod    GAS is distributed in the hope that it will be useful,
15*3d8817e4Smiod    but WITHOUT ANY WARRANTY; without even the implied warranty of
16*3d8817e4Smiod    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17*3d8817e4Smiod    GNU General Public License for more details.
18*3d8817e4Smiod 
19*3d8817e4Smiod    You should have received a copy of the GNU General Public License
20*3d8817e4Smiod    along with GAS; see the file COPYING.  If not, write to
21*3d8817e4Smiod    the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
22*3d8817e4Smiod 
23*3d8817e4Smiod /* In theory (mine, at least!) the machine dependent part of the assembler
24*3d8817e4Smiod    should only have to include one file.  This one.  -- JF */
25*3d8817e4Smiod 
26*3d8817e4Smiod extern const pseudo_typeS md_pseudo_table[];
27*3d8817e4Smiod 
28*3d8817e4Smiod char * md_atof (int, char *, int *);
29*3d8817e4Smiod int    md_parse_option (int, char *);
30*3d8817e4Smiod void   md_show_usage (FILE *);
31*3d8817e4Smiod void   md_assemble (char *);
32*3d8817e4Smiod void   md_begin (void);
33*3d8817e4Smiod void   md_number_to_chars (char *, valueT, int);
34*3d8817e4Smiod void   md_apply_fix (fixS *, valueT *, segT);
35*3d8817e4Smiod 
36*3d8817e4Smiod #ifndef WORKING_DOT_WORD
37*3d8817e4Smiod extern int md_short_jump_size;
38*3d8817e4Smiod extern int md_long_jump_size;
39*3d8817e4Smiod #endif
40*3d8817e4Smiod 
41*3d8817e4Smiod #ifdef USE_UNIQUE
42*3d8817e4Smiod /* The name of an external symbol which is
43*3d8817e4Smiod    used to make weak PE symbol names unique.  */
44*3d8817e4Smiod extern const char * an_external_name;
45*3d8817e4Smiod #endif
46*3d8817e4Smiod 
47*3d8817e4Smiod #ifndef md_create_long_jump
48*3d8817e4Smiod void    md_create_long_jump (char *, addressT, addressT, fragS *, symbolS *);
49*3d8817e4Smiod #endif
50*3d8817e4Smiod #ifndef md_create_short_jump
51*3d8817e4Smiod void    md_create_short_jump (char *, addressT, addressT, fragS *, symbolS *);
52*3d8817e4Smiod #endif
53*3d8817e4Smiod #ifndef md_pcrel_from
54*3d8817e4Smiod long    md_pcrel_from (fixS *);
55*3d8817e4Smiod #endif
56*3d8817e4Smiod #ifndef md_operand
57*3d8817e4Smiod void    md_operand (expressionS *);
58*3d8817e4Smiod #endif
59*3d8817e4Smiod #ifndef md_estimate_size_before_relax
60*3d8817e4Smiod int     md_estimate_size_before_relax (fragS * fragP, segT);
61*3d8817e4Smiod #endif
62*3d8817e4Smiod #ifndef md_section_align
63*3d8817e4Smiod valueT  md_section_align (segT, valueT);
64*3d8817e4Smiod #endif
65*3d8817e4Smiod #ifndef  md_undefined_symbol
66*3d8817e4Smiod symbolS *md_undefined_symbol (char *);
67*3d8817e4Smiod #endif
68*3d8817e4Smiod 
69*3d8817e4Smiod #ifndef md_convert_frag
70*3d8817e4Smiod void    md_convert_frag (bfd *, segT, fragS *);
71*3d8817e4Smiod #endif
72*3d8817e4Smiod #ifndef RELOC_EXPANSION_POSSIBLE
73*3d8817e4Smiod extern arelent *tc_gen_reloc (asection *, fixS *);
74*3d8817e4Smiod #else
75*3d8817e4Smiod extern arelent **tc_gen_reloc (asection *, fixS *);
76*3d8817e4Smiod #endif
77