tc.h revision 130561
133965Sjdp/* tc.h - target cpu dependent 233965Sjdp 3130561Sobrien Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 2000, 2001, 2003 478828Sobrien Free Software Foundation, Inc. 533965Sjdp 633965Sjdp This file is part of GAS, the GNU Assembler. 733965Sjdp 833965Sjdp GAS is free software; you can redistribute it and/or modify 933965Sjdp it under the terms of the GNU General Public License as published by 1033965Sjdp the Free Software Foundation; either version 2, or (at your option) 1133965Sjdp any later version. 1233965Sjdp 1333965Sjdp GAS is distributed in the hope that it will be useful, 1433965Sjdp but WITHOUT ANY WARRANTY; without even the implied warranty of 1533965Sjdp MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1633965Sjdp GNU General Public License for more details. 1733965Sjdp 1833965Sjdp You should have received a copy of the GNU General Public License 1933965Sjdp along with GAS; see the file COPYING. If not, write to 2033965Sjdp the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 2133965Sjdp 2233965Sjdp/* In theory (mine, at least!) the machine dependent part of the assembler 2333965Sjdp should only have to include one file. This one. -- JF */ 2433965Sjdp 2533965Sjdpextern const pseudo_typeS md_pseudo_table[]; 2633965Sjdp 2733965Sjdp/* JF moved this here from as.h under the theory that nobody except MACHINE.c 2877298Sobrien and write.c care about it anyway. */ 2933965Sjdp 3033965Sjdpstruct relax_type 3133965Sjdp{ 3277298Sobrien /* Forward reach. Signed number. > 0. */ 3333965Sjdp long rlx_forward; 3477298Sobrien /* Backward reach. Signed number. < 0. */ 3533965Sjdp long rlx_backward; 3633965Sjdp 3777298Sobrien /* Bytes length of this address. */ 3833965Sjdp unsigned char rlx_length; 3933965Sjdp 4077298Sobrien /* Next longer relax-state. 0 means there is no 'next' relax-state. */ 4133965Sjdp relax_substateT rlx_more; 4233965Sjdp}; 4333965Sjdp 4433965Sjdptypedef struct relax_type relax_typeS; 4533965Sjdp 4633965Sjdpextern const int md_reloc_size; /* Size of a relocation record */ 4733965Sjdp 48130561Sobrienchar *md_atof (int what_statement_type, char *literalP, int *sizeP); 4933965Sjdp#ifndef md_estimate_size_before_relax 50130561Sobrienint md_estimate_size_before_relax (fragS * fragP, segT segment); 5133965Sjdp#endif 52130561Sobrienint md_parse_option (int c, char *arg); 53130561Sobrienvoid md_show_usage (FILE *); 54130561Sobrien#ifndef md_pcrel_from 55130561Sobrienlong md_pcrel_from (fixS * fixP); 56130561Sobrien#endif 57130561Sobrienshort tc_coff_fix2rtype (fixS * fixP); 58130561Sobrienvoid md_assemble (char *str); 59130561Sobrienvoid md_begin (void); 6033965Sjdp#ifndef md_create_long_jump 61130561Sobrienvoid md_create_long_jump (char *ptr, addressT from_addr, 62130561Sobrien addressT to_addr, fragS * frag, 63130561Sobrien symbolS * to_symbol); 6433965Sjdp#endif 6533965Sjdp#ifndef md_create_short_jump 66130561Sobrienvoid md_create_short_jump (char *ptr, addressT from_addr, 67130561Sobrien addressT to_addr, fragS * frag, 68130561Sobrien symbolS * to_symbol); 6933965Sjdp#endif 70130561Sobrienvoid md_number_to_chars (char *buf, valueT val, int n); 7133965Sjdp 7233965Sjdp#ifndef md_operand 73130561Sobrienvoid md_operand (expressionS * expressionP); 7433965Sjdp#endif 7533965Sjdp 76130561Sobrienvoid md_apply_fix3 (fixS *, valueT *, segT); 7789857Sobrien 7833965Sjdp#ifdef BFD_ASSEMBLER 7933965Sjdp#ifndef md_convert_frag 80130561Sobrienvoid md_convert_frag (bfd * headers, segT sec, fragS * fragP); 8133965Sjdp#endif 8233965Sjdp#ifndef tc_headers_hook 83130561Sobrienvoid tc_headers_hook (segT *, fixS *); 8433965Sjdp#endif 8533965Sjdp#ifndef RELOC_EXPANSION_POSSIBLE 86130561Sobrienextern arelent *tc_gen_reloc (asection *, fixS *); 8733965Sjdp#else 88130561Sobrienextern arelent **tc_gen_reloc (asection *, fixS *); 8933965Sjdp#endif 9033965Sjdp#else /* not BFD_ASSEMBLER */ 9133965Sjdp#ifndef md_convert_frag 92130561Sobrienvoid md_convert_frag (object_headers * headers, segT, fragS * fragP); 9333965Sjdp#endif 9433965Sjdp 9533965Sjdp#ifndef tc_crawl_symbol_chain 96130561Sobrienvoid tc_crawl_symbol_chain (object_headers * headers); 9733965Sjdp#endif /* tc_crawl_symbol_chain */ 9833965Sjdp 9933965Sjdp#ifndef tc_headers_hook 100130561Sobrienvoid tc_headers_hook (object_headers * headers); 10133965Sjdp#endif /* tc_headers_hook */ 10233965Sjdp#endif /* BFD_ASSEMBLER */ 10333965Sjdp 10433965Sjdp#ifndef md_section_align 105130561SobrienvalueT md_section_align (segT seg, valueT size); 10633965Sjdp#endif 10733965Sjdp 10833965Sjdp#ifndef md_undefined_symbol 109130561SobriensymbolS *md_undefined_symbol (char *name); 11033965Sjdp#endif 11133965Sjdp 11233965Sjdp/* end of tc.h */ 113