fsf address update
[external/binutils.git] / gas / config / tc-sparc.h
1 /* tc-sparc.h - Macros and type defines for the sparc.
2    Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
3
4    This file is part of GAS, the GNU Assembler.
5
6    GAS is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as
8    published by the Free Software Foundation; either version 2,
9    or (at your option) any later version.
10
11    GAS is distributed in the hope that it will be useful, but
12    WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
14    the GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public
17    License along with GAS; see the file COPYING.  If not, write
18    to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
19
20 #define TC_SPARC 1
21
22 #define LOCAL_LABELS_FB 1
23
24 #define TARGET_ARCH bfd_arch_sparc
25 #ifdef OBJ_AOUT
26 #ifdef TE_NetBSD
27 #define TARGET_FORMAT "a.out-sparc-netbsd"
28 #else
29 #define TARGET_FORMAT "a.out-sunos-big"
30 #endif
31 #endif
32 #ifdef OBJ_BOUT
33 #define TARGET_FORMAT "b.out.big"
34 #endif
35 #ifdef OBJ_ELF
36 #ifndef sparcv9
37 #define TARGET_FORMAT "elf32-sparc"
38 #else   /* sparcv9 */
39 #define TARGET_FORMAT "elf64-sparc" /* v9 */
40 #define ENV64                   /* v9 */
41 #endif  /* sparcv9 */
42 #define LOCAL_LABEL(name)       (((name)[0] == '.' && (name)[1] == 'L') || !strncmp ((name), "_.L_", 4))
43 #endif
44 #define WORKING_DOT_WORD
45
46 #define md_convert_frag(b,s,f)          {as_fatal ("sparc convert_frag\n");}
47 #define md_create_long_jump(p,f,t,fr,s) as_fatal("sparc_create_long_jump")
48 #define md_create_short_jump(p,f,t,fr,s) as_fatal("sparc_create_short_jump")
49 #define md_estimate_size_before_relax(f,s) \
50                         (as_fatal("estimate_size_before_relax called"),1)
51 void tc_aout_pre_write_hook ();
52
53 #define LISTING_HEADER "SPARC GAS "
54
55 /* I know that "call 0" fails in sparc-coff if this doesn't return 1.  I
56    don't know about other relocation types, or other formats, yet.  */
57 #ifdef OBJ_COFF
58 #define TC_FORCE_RELOCATION(FIXP)       \
59         ((FIXP)->fx_r_type == BFD_RELOC_32_PCREL_S2 \
60          && ((FIXP)->fx_addsy == 0 \
61              || S_GET_SEGMENT ((FIXP)->fx_addsy) == absolute_section))
62 #define RELOC_REQUIRES_SYMBOL
63 #endif
64
65 #define TC_HANDLES_FX_DONE
66
67 #ifdef OBJ_ELF
68 /* Keep relocations against global symbols.  Don't turn them into
69    relocations against sections.  This is required for the dynamic
70    linker to operate properly.  */
71 #define tc_fix_adjustable(FIX) (! S_IS_EXTERN ((FIX)->fx_addsy))
72 #endif
73
74 #define md_operand(x)
75
76 /* end of tc-sparc.h */