Home | History | Annotate | Download | only in gas
      1 /* tc.h - target cpu dependent
      2 
      3    Copyright (C) 1987-2016 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 
     25 extern const pseudo_typeS md_pseudo_table[];
     26 
     27 const char * md_atof (int, char *, int *);
     28 int    md_parse_option (int, const char *);
     29 void   md_show_usage (FILE *);
     30 void   md_assemble (char *);
     31 void   md_begin (void);
     32 #ifndef md_number_to_chars
     33 void   md_number_to_chars (char *, valueT, int);
     34 #endif
     35 void   md_apply_fix (fixS *, valueT *, segT);
     36 
     37 #ifndef WORKING_DOT_WORD
     38 extern int md_short_jump_size;
     39 extern 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.  */
     45 extern const char * an_external_name;
     46 #endif
     47 
     48 #ifndef md_create_long_jump
     49 void    md_create_long_jump (char *, addressT, addressT, fragS *, symbolS *);
     50 #endif
     51 #ifndef md_create_short_jump
     52 void    md_create_short_jump (char *, addressT, addressT, fragS *, symbolS *);
     53 #endif
     54 #ifndef md_pcrel_from
     55 long    md_pcrel_from (fixS *);
     56 #endif
     57 #ifndef md_operand
     58 void    md_operand (expressionS *);
     59 #endif
     60 #ifndef md_estimate_size_before_relax
     61 int     md_estimate_size_before_relax (fragS * fragP, segT);
     62 #endif
     63 #ifndef md_section_align
     64 valueT  md_section_align (segT, valueT);
     65 #endif
     66 #ifndef  md_undefined_symbol
     67 symbolS *md_undefined_symbol (char *);
     68 #endif
     69 
     70 #ifndef md_convert_frag
     71 void    md_convert_frag (bfd *, segT, fragS *);
     72 #endif
     73 #ifndef RELOC_EXPANSION_POSSIBLE
     74 extern arelent *tc_gen_reloc (asection *, fixS *);
     75 #else
     76 extern arelent **tc_gen_reloc (asection *, fixS *);
     77 #endif
     78 
     79 extern const char FLT_CHARS[];
     80 extern const char EXP_CHARS[];
     81