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