tc.h 2.5 KB

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