Support R_PPC64_ADDR64_LOCAL
[deliverable/binutils-gdb.git] / gas / read.h
CommitLineData
252b5132 1/* read.h - of read.c
f7e42eb4 2 Copyright 1986, 1990, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
fa94de6b 3 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2012
252b5132
RH
4 Free Software Foundation, Inc.
5
6 This file is part of GAS, the GNU Assembler.
7
8 GAS is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
ec2655a6 10 the Free Software Foundation; either version 3, or (at your option)
252b5132
RH
11 any later version.
12
13 GAS is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
ee515fb7 19 along with GAS; see the file COPYING. If not, write to the Free
4b4da160
NC
20 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
21 02110-1301, USA. */
252b5132 22
ee515fb7 23extern char *input_line_pointer; /* -> char we are parsing now. */
252b5132 24
ee515fb7
KH
25/* Define to make whitespace be allowed in many syntactically
26 unnecessary places. Normally undefined. For compatibility with
27 ancient GNU cc. */
252b5132 28/* #undef PERMIT_WHITESPACE */
ee515fb7 29#define PERMIT_WHITESPACE
252b5132
RH
30
31#ifdef PERMIT_WHITESPACE
ee515fb7 32#define SKIP_WHITESPACE() \
e4475e39 33 ((*input_line_pointer == ' ') ? ++input_line_pointer : 0)
252b5132
RH
34#else
35#define SKIP_WHITESPACE() know(*input_line_pointer != ' ' )
36#endif
37
252b5132
RH
38#define LEX_NAME (1) /* may continue a name */
39#define LEX_BEGIN_NAME (2) /* may begin a name */
58b5739a 40#define LEX_END_NAME (4) /* ends a name */
252b5132
RH
41
42#define is_name_beginner(c) \
43 ( lex_type[(unsigned char) (c)] & LEX_BEGIN_NAME )
44#define is_part_of_name(c) \
45 ( lex_type[(unsigned char) (c)] & LEX_NAME )
58b5739a
RH
46#define is_name_ender(c) \
47 ( lex_type[(unsigned char) (c)] & LEX_END_NAME )
252b5132
RH
48
49#ifndef is_a_char
50#define CHAR_MASK (0xff)
51#define NOT_A_CHAR (CHAR_MASK+1)
ee515fb7 52#define is_a_char(c) (((unsigned) (c)) <= CHAR_MASK)
252b5132
RH
53#endif /* is_a_char() */
54
55extern char lex_type[];
56extern char is_end_of_line[];
57
39e6acbd 58extern int is_it_end_of_statement (void);
40a4d956 59extern char *find_end_of_line (char *, int);
252b5132
RH
60
61extern int target_big_endian;
62
63/* These are initialized by the CPU specific target files (tc-*.c). */
64extern const char comment_chars[];
65extern const char line_comment_chars[];
66extern const char line_separator_chars[];
67
68/* Table of -I directories. */
69extern char **include_dirs;
70extern int include_dir_count;
71extern int include_dir_maxlen;
72
73/* The offset in the absolute section. */
74extern addressT abs_section_offset;
75
76/* The label on a line, used by some of the pseudo-ops. */
77extern symbolS *line_label;
78
79/* This is used to support MRI common sections. */
80extern symbolS *mri_common_symbol;
81
bccba5f0 82/* True if a stabs line debug statement is currently being emitted. */
92eb7b32 83extern int outputting_stabs_line_debug;
bccba5f0 84
252b5132 85/* Possible arguments to .linkonce. */
ee515fb7 86enum linkonce_type {
252b5132
RH
87 LINKONCE_UNSET = 0,
88 LINKONCE_DISCARD,
89 LINKONCE_ONE_ONLY,
90 LINKONCE_SAME_SIZE,
91 LINKONCE_SAME_CONTENTS
92};
93
a8a3b3b2 94#ifndef TC_CASE_SENSITIVE
37d8bb27
NC
95extern char original_case_string[];
96#endif
97
39e6acbd 98extern void pop_insert (const pseudo_typeS *);
252b5132 99extern unsigned int get_stab_string_offset
39e6acbd
KH
100 (const char *string, const char *stabstr_secname);
101extern void aout_process_stab (int, const char *, int, int, int);
102extern char *demand_copy_string (int *lenP);
103extern char *demand_copy_C_string (int *len_pointer);
104extern char get_absolute_expression_and_terminator (long *val_pointer);
39e6acbd
KH
105extern offsetT get_absolute_expression (void);
106extern unsigned int next_char_of_string (void);
107extern void s_mri_sect (char *);
108extern char *mri_comment_field (char *);
109extern void mri_comment_end (char *, int);
110extern void add_include_dir (char *path);
111extern void cons (int nbytes);
112extern void demand_empty_rest_of_line (void);
113extern void emit_expr (expressionS *exp, unsigned int nbytes);
7ddd14de 114extern void emit_expr_fix (expressionS *, unsigned int, fragS *, char *);
39e6acbd
KH
115extern void equals (char *sym_name, int reassign);
116extern void float_cons (int float_type);
117extern void ignore_rest_of_line (void);
40a4d956 118#define discard_rest_of_line ignore_rest_of_line
39e6acbd
KH
119extern int output_leb128 (char *, valueT, int sign);
120extern void pseudo_set (symbolS * symbolP);
121extern void read_a_source_file (char *name);
122extern void read_begin (void);
123extern void read_print_statistics (FILE *);
124extern int sizeof_leb128 (valueT, int sign);
125extern void stabs_generate_asm_file (void);
126extern void stabs_generate_asm_lineno (void);
127extern void stabs_generate_asm_func (const char *, const char *);
128extern void stabs_generate_asm_endfunc (const char *, const char *);
129extern void do_repeat (int,const char *,const char *);
c7927a3c 130extern void do_repeat_with_expander (int, const char *, const char *, const char *);
39e6acbd
KH
131extern void end_repeat (int);
132extern void do_parse_cons_expression (expressionS *, int);
133
134extern void generate_lineno_debug (void);
135
136extern void s_abort (int) ATTRIBUTE_NORETURN;
137extern void s_align_bytes (int arg);
138extern void s_align_ptwo (int);
e13bab5a
AM
139extern void bss_alloc (symbolS *, addressT, int);
140extern offsetT parse_align (int);
141extern symbolS *s_comm_internal (int, symbolS *(*) (int, symbolS *, addressT));
13c56984 142extern symbolS *s_lcomm_internal (int, symbolS *, addressT);
c04f5787 143extern void s_app_file_string (char *, int);
39e6acbd
KH
144extern void s_app_file (int);
145extern void s_app_line (int);
fa94de6b
RM
146extern void s_bundle_align_mode (int);
147extern void s_bundle_lock (int);
148extern void s_bundle_unlock (int);
39e6acbd
KH
149extern void s_comm (int);
150extern void s_data (int);
151extern void s_desc (int);
152extern void s_else (int arg);
153extern void s_elseif (int arg);
154extern void s_end (int arg);
155extern void s_endif (int arg);
156extern void s_err (int);
d190d046 157extern void s_errwarn (int);
39e6acbd
KH
158extern void s_fail (int);
159extern void s_fill (int);
160extern void s_float_space (int mult);
161extern void s_func (int);
39e6acbd
KH
162extern void s_globl (int arg);
163extern void s_if (int arg);
26aca5f6 164extern void s_ifb (int arg);
39e6acbd
KH
165extern void s_ifc (int arg);
166extern void s_ifdef (int arg);
167extern void s_ifeqs (int arg);
168extern void s_ignore (int arg);
169extern void s_include (int arg);
170extern void s_irp (int arg);
171extern void s_lcomm (int needs_align);
172extern void s_lcomm_bytes (int needs_align);
173extern void s_leb128 (int sign);
174extern void s_linkonce (int);
175extern void s_lsym (int);
176extern void s_macro (int);
177extern void s_mexit (int);
178extern void s_mri (int);
179extern void s_mri_common (int);
180extern void s_org (int);
181extern void s_print (int);
182extern void s_purgem (int);
183extern void s_rept (int);
184extern void s_set (int);
185extern void s_space (int mult);
186extern void s_stab (int what);
187extern void s_struct (int);
188extern void s_text (int);
189extern void stringer (int append_zero);
190extern void s_xstab (int what);
191extern void s_rva (int);
192extern void s_incbin (int);
06e77878 193extern void s_weakref (int);
This page took 0.627457 seconds and 4 git commands to generate.