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