* config/obj-coffbfd.c (fill_section): Don't allow fills backwards.
[deliverable/binutils-gdb.git] / gas / write.h
CommitLineData
3340f7e5 1/* write.h
fecd2382 2
3340f7e5 3 Copyright (C) 1987, 1992 Free Software Foundation, Inc.
6efd877d 4
a39116f1 5 This file is part of GAS, the GNU Assembler.
6efd877d 6
a39116f1
RP
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 2, or (at your option)
10 any later version.
6efd877d 11
a39116f1
RP
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.
6efd877d 16
a39116f1
RP
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, 675 Mass Ave, Cambridge, MA 02139, USA. */
fecd2382
RP
20
21#ifndef TC_I960
22#ifdef hpux
23#define EXEC_MACHINE_TYPE HP9000S200_ID
24#endif
25#endif /* TC_I960 */
26
27#ifndef LOCAL_LABEL
28#ifdef DOT_LABEL_PREFIX
29#define LOCAL_LABEL(name) (name[0] =='.' \
a39116f1 30 && ( name [1] == 'L' || name [1] == '.' ))
6efd877d 31#else /* not defined DOT_LABEL_PREFIX */
fecd2382
RP
32#define LOCAL_LABEL(name) (name [0] == 'L' )
33#endif /* not defined DOT_LABEL_PREFIX */
34#endif /* LOCAL_LABEL */
35
36#define S_LOCAL_NAME(s) (LOCAL_LABEL(S_GET_NAME(s)))
37
c593cf41
SC
38#include "bit_fix.h"
39
fecd2382
RP
40/*
41 * FixSs may be built up in any order.
42 */
43
6efd877d
KR
44struct fix
45 {
46 fragS *fx_frag; /* Which frag? */
47 long fx_where; /* Where is the 1st byte to fix up? */
48 symbolS *fx_addsy; /* NULL or Symbol whose value we add in. */
49 symbolS *fx_subsy; /* NULL or Symbol whose value we subtract. */
50 long fx_offset; /* Absolute number we add in. */
51 struct fix *fx_next; /* NULL or -> next fixS. */
52 short int fx_size; /* How many bytes are involved? */
53 char fx_pcrel; /* TRUE: pc-relative. */
54 char fx_pcrel_adjust; /* pc-relative offset adjust */
55 char fx_im_disp; /* TRUE: value is a displacement */
56 bit_fixS *fx_bit_fixP; /* IF NULL no bitfix's to do */
57 char fx_bsr; /* sequent-hack */
961815e4 58#if defined(TC_SPARC) || defined(TC_A29K) || defined(NEED_FX_R_TYPE)
6efd877d 59 /* Hacks for machines where the type of reloc can't be
c593cf41
SC
60 worked out by looking at how big it is */
61
6efd877d 62 int fx_r_type;
c593cf41 63#endif
6efd877d
KR
64 char fx_callj; /* TRUE if target is a 'callj' (used by i960) */
65 long fx_addnumber;
66 };
fecd2382 67
a39116f1 68typedef struct fix fixS;
fecd2382
RP
69
70COMMON char *next_object_file_charP;
71
a39116f1 72#ifndef MANY_SEGMENTS
fecd2382
RP
73COMMON fixS *text_fix_root, *text_fix_tail; /* Chains fixSs. */
74COMMON fixS *data_fix_root, *data_fix_tail; /* Chains fixSs. */
6efd877d 75COMMON fixS *bss_fix_root, *bss_fix_tail; /* Chains fixSs. */
a39116f1 76#endif
fecd2382
RP
77COMMON fixS **seg_fix_rootP, **seg_fix_tailP; /* -> one of above. */
78extern long string_byte_count;
79extern int section_alignment[];
80
3340f7e5 81#if __STDC__ == 1
fecd2382 82
6efd877d
KR
83bit_fixS *bit_fix_new (int size, int offset, long base_type, long base_adj, long min, long max, long add);
84void append (char **charPP, char *fromP, unsigned long length);
85void record_alignment (segT seg, int align);
86void write_object_file (void);
87
88fixS *fix_new (fragS * frag,
89 int where,
90 int size,
91 symbolS * add_symbol,
92 symbolS * sub_symbol,
93 long offset,
94 int pcrel,
95 int r_type);
fecd2382 96
3340f7e5 97#else /* not __STDC__ */
fecd2382 98
6efd877d
KR
99bit_fixS *bit_fix_new ();
100fixS *fix_new ();
101void append ();
102void record_alignment ();
103void write_object_file ();
fecd2382 104
3340f7e5 105#endif /* not __STDC__ */
fecd2382
RP
106
107/*
108 * Local Variables:
109 * comment-column: 0
110 * fill-column: 131
111 * End:
112 */
113
114/* end of write.h */
This page took 0.075855 seconds and 4 git commands to generate.