2008-08-12 Michael Snyder <msnyder@vmware.com>
[deliverable/binutils-gdb.git] / gas / as.h
CommitLineData
252b5132 1/* as.h - global header file
f7e42eb4 2 Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
92f01d61 3 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
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
ec2655a6
NC
13 GAS is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 License for more details.
252b5132
RH
17
18 You should have received a copy of the GNU General Public License
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
RH
22
23#ifndef GAS
24#define GAS 1
30a2b4ef 25/* I think this stuff is largely out of date. xoxorich.
329e276d
NC
26
27 CAPITALISED names are #defined.
28 "lowercaseH" is #defined if "lowercase.h" has been #include-d.
29 "lowercaseT" is a typedef of "lowercase" objects.
30 "lowercaseP" is type "pointer to object of type 'lowercase'".
31 "lowercaseS" is typedef struct ... lowercaseS.
32
33 #define DEBUG to enable all the "know" assertion tests.
34 #define SUSPECT when debugging hash code.
35 #define COMMON as "extern" for all modules except one, where you #define
36 COMMON as "".
37 If TEST is #defined, then we are testing a module: #define COMMON as "". */
252b5132
RH
38
39#include "config.h"
40
41/* This is the code recommended in the autoconf documentation, almost
42 verbatim. If it doesn't work for you, let me know, and notify
43 djm@gnu.ai.mit.edu as well. */
252b5132
RH
44/* Added void* version for STDC case. This is to be compatible with
45 the declaration in bison.simple, used for m68k operand parsing.
46 --KR 1995.08.08 */
47/* Force void* decl for hpux. This is what Bison uses. --KR 1995.08.16 */
48
fa6e9318 49#ifndef __GNUC__
252b5132
RH
50# if HAVE_ALLOCA_H
51# include <alloca.h>
52# else
53# ifdef _AIX
fa6e9318
AM
54/* Indented so that pre-ansi C compilers will ignore it, rather than
55 choke on it. Some versions of AIX require this to be the first
56 thing in the file. */
252b5132
RH
57 #pragma alloca
58# else
59# ifndef alloca /* predefined by HP cc +Olibcalls */
60# if !defined (__STDC__) && !defined (__hpux)
61extern char *alloca ();
62# else
63extern void *alloca ();
64# endif /* __STDC__, __hpux */
65# endif /* alloca */
66# endif /* _AIX */
67# endif /* HAVE_ALLOCA_H */
fa6e9318 68#endif /* __GNUC__ */
252b5132 69
6d74f28b
EB
70/* Prefer varargs for non-ANSI compiler, since some will barf if the
71 ellipsis definition is used with a no-arguments declaration. */
72#if defined (HAVE_VARARGS_H) && !defined (__STDC__)
73#undef HAVE_STDARG_H
74#endif
75
76#if defined (HAVE_STDARG_H)
77#define USE_STDARG
78#endif
79#if !defined (USE_STDARG) && defined (HAVE_VARARGS_H)
80#define USE_VARARGS
81#endif
82
252b5132
RH
83/* Now, tend to the rest of the configuration. */
84
a01b9fa4 85/* System include files first... */
252b5132 86#include <stdio.h>
252b5132
RH
87#ifdef HAVE_STRING_H
88#include <string.h>
89#else
90#ifdef HAVE_STRINGS_H
91#include <strings.h>
92#endif
93#endif
94#ifdef HAVE_STDLIB_H
95#include <stdlib.h>
96#endif
97#ifdef HAVE_UNISTD_H
98#include <unistd.h>
99#endif
100#ifdef HAVE_SYS_TYPES_H
101/* for size_t, pid_t */
102#include <sys/types.h>
103#endif
104
6d74f28b
EB
105#ifdef HAVE_ERRNO_H
106#include <errno.h>
107#endif
108
109#ifdef USE_STDARG
110#include <stdarg.h>
111#endif
112
113#ifdef USE_VARARGS
114#include <varargs.h>
115#endif
116
117#if !defined (USE_STDARG) && !defined (USE_VARARGS)
118/* Roll our own. */
119#define va_alist REST
120#define va_dcl
121typedef int * va_list;
122#define va_start(ARGS) ARGS = &REST
123#define va_end(ARGS)
124#endif
125
29589b0c 126#include "getopt.h"
252b5132
RH
127/* The first getopt value for machine-independent long options.
128 150 isn't special; it's just an arbitrary non-ASCII char value. */
129#define OPTION_STD_BASE 150
130/* The first getopt value for machine-dependent long options.
d8374dcd
HPN
131 190 gives the standard options room to grow. */
132#define OPTION_MD_BASE 190
252b5132
RH
133
134#ifdef DEBUG
135#undef NDEBUG
136#endif
a1934524 137#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6)
252b5132
RH
138#define __PRETTY_FUNCTION__ ((char*)0)
139#endif
c9dea48b
AM
140#define assert(P) \
141 ((void) ((P) ? 0 : (as_assert (__FILE__, __LINE__, __PRETTY_FUNCTION__), 0)))
252b5132
RH
142#undef abort
143#define abort() as_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
144
a01b9fa4 145/* Now GNU header files... */
8fce3f5e 146#include "ansidecl.h"
8fce3f5e 147#include "bfd.h"
8fce3f5e 148#include "libiberty.h"
252b5132
RH
149
150/* Define the standard progress macros. */
8fce3f5e 151#include "progress.h"
252b5132
RH
152
153/* This doesn't get taken care of anywhere. */
329e276d 154#ifndef __MWERKS__ /* Metrowerks C chokes on the "defined (inline)" */
252b5132
RH
155#if !defined (__GNUC__) && !defined (inline)
156#define inline
157#endif
158#endif /* !__MWERKS__ */
159
160/* Other stuff from config.h. */
e8a38df5
AL
161#ifdef NEED_DECLARATION_ENVIRON
162extern char **environ;
252b5132 163#endif
e8a38df5
AL
164#ifdef NEED_DECLARATION_ERRNO
165extern int errno;
166#endif
167#ifdef NEED_DECLARATION_FFS
168extern int ffs (int);
252b5132
RH
169#endif
170#ifdef NEED_DECLARATION_FREE
171extern void free ();
172#endif
e8a38df5
AL
173#ifdef NEED_DECLARATION_MALLOC
174extern PTR malloc ();
175extern PTR realloc ();
252b5132 176#endif
e8a38df5
AL
177#ifdef NEED_DECLARATION_STRSTR
178extern char *strstr ();
252b5132
RH
179#endif
180
6d74f28b
EB
181#if !HAVE_DECL_VSNPRINTF
182extern int vsnprintf(char *, size_t, const char *, va_list);
183#endif
184
252b5132
RH
185/* This is needed for VMS. */
186#if ! defined (HAVE_UNLINK) && defined (HAVE_REMOVE)
187#define unlink remove
188#endif
189
190/* Hack to make "gcc -Wall" not complain about obstack macros. */
191#if !defined (memcpy) && !defined (bcopy)
d1a6c242 192#define bcopy(src,dest,size) memcpy (dest, src, size)
252b5132
RH
193#endif
194
195/* Make Saber happier on obstack.h. */
196#ifdef SABER
197#undef __PTR_TO_INT
ee515fb7 198#define __PTR_TO_INT(P) ((int) (P))
252b5132 199#undef __INT_TO_PTR
ee515fb7 200#define __INT_TO_PTR(P) ((char *) (P))
252b5132
RH
201#endif
202
203#ifndef __LINE__
204#define __LINE__ "unknown"
205#endif /* __LINE__ */
206
207#ifndef __FILE__
208#define __FILE__ "unknown"
209#endif /* __FILE__ */
210
211#ifndef FOPEN_WB
c973bc5c 212#ifdef USE_BINARY_FOPEN
252b5132
RH
213#include "fopen-bin.h"
214#else
215#include "fopen-same.h"
216#endif
217#endif
218
219#ifndef EXIT_SUCCESS
220#define EXIT_SUCCESS 0
221#define EXIT_FAILURE 1
222#endif
223
12ff5d56
AM
224#ifndef SEEK_SET
225#define SEEK_SET 0
226#endif
227
252b5132
RH
228#define obstack_chunk_alloc xmalloc
229#define obstack_chunk_free xfree
230
231#define xfree free
232
233#include "asintl.h"
234
30a2b4ef
KH
235#define BAD_CASE(val) \
236 { \
237 as_fatal (_("Case value %ld unexpected at line %d of file \"%s\"\n"), \
238 (long) val, __LINE__, __FILE__); \
239 }
252b5132
RH
240\f
241#include "flonum.h"
242
243/* These are assembler-wide concepts */
244
252b5132
RH
245extern bfd *stdoutput;
246typedef bfd_vma addressT;
247typedef bfd_signed_vma offsetT;
252b5132
RH
248
249/* Type of symbol value, etc. For use in prototypes. */
250typedef addressT valueT;
251
252#ifndef COMMON
253#ifdef TEST
329e276d 254#define COMMON /* Declare our COMMONs storage here. */
252b5132 255#else
329e276d 256#define COMMON extern /* Our commons live elsewhere. */
252b5132
RH
257#endif
258#endif
259/* COMMON now defined */
260
c43a438d
AM
261#ifndef ENABLE_CHECKING
262#define ENABLE_CHECKING 0
263#endif
264
265#if ENABLE_CHECKING || defined (DEBUG)
252b5132 266#ifndef know
329e276d 267#define know(p) assert(p) /* Verify our assumptions! */
252b5132
RH
268#endif /* not yet defined */
269#else
329e276d 270#define know(p) /* know() checks are no-op.ed */
252b5132
RH
271#endif
272\f
273/* input_scrub.c */
274
30a2b4ef
KH
275/* Supplies sanitised buffers to read.c.
276 Also understands printing line-number part of error messages. */
252b5132 277\f
252b5132
RH
278/* subsegs.c Sub-segments. Also, segment(=expression type)s.*/
279
252b5132 280typedef asection *segT;
329e276d 281#define SEG_NORMAL(SEG) ( (SEG) != absolute_section \
252b5132
RH
282 && (SEG) != undefined_section \
283 && (SEG) != reg_section \
284 && (SEG) != expr_section)
252b5132
RH
285typedef int subsegT;
286
329e276d 287/* What subseg we are accessing now? */
252b5132
RH
288COMMON subsegT now_subseg;
289
a01b9fa4 290/* Segment our instructions emit to. */
252b5132
RH
291COMMON segT now_seg;
292
252b5132 293#define segment_name(SEG) bfd_get_section_name (stdoutput, SEG)
252b5132 294
252b5132
RH
295extern segT reg_section, expr_section;
296/* Shouldn't these be eliminated someday? */
297extern segT text_section, data_section, bss_section;
298#define absolute_section bfd_abs_section_ptr
299#define undefined_section bfd_und_section_ptr
252b5132 300
329e276d
NC
301enum _relax_state
302{
be95a9c1
AM
303 /* Dummy frag used by listing code. */
304 rs_dummy = 0,
305
30a2b4ef
KH
306 /* Variable chars to be repeated fr_offset times.
307 Fr_symbol unused. Used with fr_offset == 0 for a
308 constant length frag. */
be95a9c1 309 rs_fill,
30a2b4ef
KH
310
311 /* Align. The fr_offset field holds the power of 2 to which to
312 align. The fr_var field holds the number of characters in the
313 fill pattern. The fr_subtype field holds the maximum number of
314 bytes to skip when aligning, or 0 if there is no maximum. */
315 rs_align,
316
317 /* Align code. The fr_offset field holds the power of 2 to which
318 to align. This type is only generated by machine specific
319 code, which is normally responsible for handling the fill
320 pattern. The fr_subtype field holds the maximum number of
321 bytes to skip when aligning, or 0 if there is no maximum. */
322 rs_align_code,
323
0a9ef439
RH
324 /* Test for alignment. Like rs_align, but used by several targets
325 to warn if data is not properly aligned. */
326 rs_align_test,
327
30a2b4ef
KH
328 /* Org: Fr_offset, fr_symbol: address. 1 variable char: fill
329 character. */
330 rs_org,
252b5132
RH
331
332#ifndef WORKING_DOT_WORD
30a2b4ef
KH
333 /* JF: gunpoint */
334 rs_broken_word,
252b5132
RH
335#endif
336
329e276d 337 /* Machine specific relaxable (or similarly alterable) instruction. */
30a2b4ef 338 rs_machine_dependent,
252b5132 339
30a2b4ef
KH
340 /* .space directive with expression operand that needs to be computed
341 later. Similar to rs_org, but different.
342 fr_symbol: operand
343 1 variable char: fill character */
344 rs_space,
252b5132 345
30a2b4ef
KH
346 /* A DWARF leb128 value; only ELF uses this. The subtype is 0 for
347 unsigned, 1 for signed. */
348 rs_leb128,
252b5132 349
30a2b4ef 350 /* Exception frame information which we may be able to optimize. */
220e750f
RH
351 rs_cfa,
352
353 /* Cross-fragment dwarf2 line number optimization. */
354 rs_dwarf2dbg
30a2b4ef 355};
252b5132
RH
356
357typedef enum _relax_state relax_stateT;
358
359/* This type is used in prototypes, so it can't be a type that will be
360 widened for argument passing. */
361typedef unsigned int relax_substateT;
362
363/* Enough bits for address, but still an integer type.
364 Could be a problem, cross-assembling for 64-bit machines. */
365typedef addressT relax_addressT;
f17c130b
AM
366
367struct relax_type
368{
369 /* Forward reach. Signed number. > 0. */
370 offsetT rlx_forward;
371 /* Backward reach. Signed number. < 0. */
372 offsetT rlx_backward;
373
374 /* Bytes length of this address. */
375 unsigned char rlx_length;
376
377 /* Next longer relax-state. 0 means there is no 'next' relax-state. */
378 relax_substateT rlx_more;
379};
380
381typedef struct relax_type relax_typeS;
252b5132 382\f
329e276d 383/* main program "as.c" (command arguments etc). */
252b5132
RH
384
385COMMON unsigned char flag_no_comments; /* -f */
386COMMON unsigned char flag_debug; /* -D */
387COMMON unsigned char flag_signed_overflow_ok; /* -J */
388#ifndef WORKING_DOT_WORD
389COMMON unsigned char flag_warn_displacement; /* -K */
390#endif
391
392/* True if local symbols should be retained. */
393COMMON int flag_keep_locals; /* -L */
394
395/* True if we are assembling in MRI mode. */
396COMMON int flag_mri;
397
252b5132
RH
398/* Should the data section be made read-only and appended to the text
399 section? */
400COMMON unsigned char flag_readonly_data_in_text; /* -R */
401
402/* True if warnings should be inhibited. */
403COMMON int flag_no_warnings; /* -W */
404
2bdd6cf5
GK
405/* True if warnings count as errors. */
406COMMON int flag_fatal_warnings; /* --fatal-warnings */
407
252b5132
RH
408/* True if we should attempt to generate output even if non-fatal errors
409 are detected. */
410COMMON unsigned char flag_always_generate_output; /* -Z */
411
a01b9fa4 412/* This is true if the assembler should output time and space usage. */
252b5132
RH
413COMMON unsigned char flag_print_statistics;
414
415/* True if local absolute symbols are to be stripped. */
416COMMON int flag_strip_local_absolute;
417
418/* True if we should generate a traditional format object file. */
419COMMON int flag_traditional_format;
420
68d55fe3
JJ
421/* TRUE if .note.GNU-stack section with SEC_CODE should be created */
422COMMON int flag_execstack;
423
424/* TRUE if .note.GNU-stack section with SEC_CODE should be created */
425COMMON int flag_noexecstack;
426
252b5132
RH
427/* name of emitted object file */
428COMMON char *out_file_name;
429
430/* name of file defining extensions to the basic instruction set */
431COMMON char *insttbl_file_name;
432
a01b9fa4 433/* TRUE if we need a second pass. */
252b5132
RH
434COMMON int need_pass_2;
435
436/* TRUE if we should do no relaxing, and
437 leave lots of padding. */
438COMMON int linkrelax;
439
440/* TRUE if we should produce a listing. */
441extern int listing;
442
4dc7ead9
RH
443/* Type of debugging information we should generate. We currently support
444 stabs, ECOFF, and DWARF2.
445
446 NOTE! This means debug information about the assembly source code itself
447 and _not_ about possible debug information from a high-level language.
448 This is especially relevant to DWARF2, since the compiler may emit line
449 number directives that the assembler resolves. */
252b5132 450
329e276d
NC
451enum debug_info_type
452{
30a2b4ef
KH
453 DEBUG_UNSPECIFIED,
454 DEBUG_NONE,
455 DEBUG_STABS,
456 DEBUG_ECOFF,
457 DEBUG_DWARF,
458 DEBUG_DWARF2
459};
252b5132
RH
460
461extern enum debug_info_type debug_type;
05da4302 462extern int use_gnu_debug_info_extensions;
252b5132
RH
463\f
464/* Maximum level of macro nesting. */
465extern int max_macro_nest;
466
54cfded0
AM
467/* Verbosity level. */
468extern int verbose;
469
252b5132
RH
470/* Obstack chunk size. Keep large for efficient space use, make small to
471 increase malloc calls for monitoring memory allocation. */
472extern int chunksize;
473
329e276d
NC
474struct _pseudo_type
475{
30a2b4ef
KH
476 /* assembler mnemonic, lower case, no '.' */
477 const char *poc_name;
478 /* Do the work */
73ee5e4c 479 void (*poc_handler) (int);
30a2b4ef
KH
480 /* Value to pass to handler */
481 int poc_val;
482};
252b5132
RH
483
484typedef struct _pseudo_type pseudo_typeS;
485
252b5132
RH
486#ifdef USE_STDARG
487#if (__GNUC__ >= 2) && !defined(VMS)
488/* for use with -Wformat */
489
a1934524 490#if __GNUC__ == 2 && __GNUC_MINOR__ < 6
252b5132
RH
491/* Support for double underscores in attribute names was added in gcc
492 2.6, so avoid them if we are using an earlier version. */
493#define __printf__ printf
494#define __format__ format
495#endif
496
497#define PRINTF_LIKE(FCN) \
498 void FCN (const char *format, ...) \
499 __attribute__ ((__format__ (__printf__, 1, 2)))
500#define PRINTF_WHERE_LIKE(FCN) \
501 void FCN (char *file, unsigned int line, const char *format, ...) \
502 __attribute__ ((__format__ (__printf__, 3, 4)))
503
504#else /* __GNUC__ < 2 || defined(VMS) */
505
73ee5e4c
KH
506#define PRINTF_LIKE(FCN) void FCN (const char *format, ...)
507#define PRINTF_WHERE_LIKE(FCN) void FCN (char *file, \
508 unsigned int line, \
509 const char *format, ...)
252b5132
RH
510
511#endif /* __GNUC__ < 2 || defined(VMS) */
512
513#else /* ! USE_STDARG */
514
515#define PRINTF_LIKE(FCN) void FCN ()
516#define PRINTF_WHERE_LIKE(FCN) void FCN ()
517
518#endif /* ! USE_STDARG */
519
520PRINTF_LIKE (as_bad);
8fce3f5e 521PRINTF_LIKE (as_fatal) ATTRIBUTE_NORETURN;
252b5132
RH
522PRINTF_LIKE (as_tsktsk);
523PRINTF_LIKE (as_warn);
524PRINTF_WHERE_LIKE (as_bad_where);
525PRINTF_WHERE_LIKE (as_warn_where);
526
329e276d
NC
527void as_assert (const char *, int, const char *);
528void as_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
329e276d
NC
529void sprint_value (char *, addressT);
530int had_errors (void);
531int had_warnings (void);
532void as_warn_value_out_of_range (char *, offsetT, offsetT, offsetT, char *, unsigned);
533void as_bad_value_out_of_range (char *, offsetT, offsetT, offsetT, char *, unsigned);
534void print_version_id (void);
535char * app_push (void);
536char * atof_ieee (char *, int, LITTLENUM_TYPE *);
499ac353
NC
537char * ieee_md_atof (int, char *, int *, bfd_boolean);
538char * vax_md_atof (int, char *, int *);
329e276d
NC
539char * input_scrub_include_file (char *, char *);
540void input_scrub_insert_line (const char *);
541void input_scrub_insert_file (char *);
542char * input_scrub_new_file (char *);
543char * input_scrub_next_buffer (char **bufp);
544int do_scrub_chars (int (*get) (char *, int), char *, int);
545int gen_to_words (LITTLENUM_TYPE *, int, long);
546int had_err (void);
547int ignore_input (void);
548void cond_finish_check (int);
549void cond_exit_macro (int);
550int seen_at_least_1_file (void);
551void app_pop (char *);
329e276d
NC
552void as_where (char **, unsigned int *);
553void bump_line_counters (void);
554void do_scrub_begin (int);
555void input_scrub_begin (void);
556void input_scrub_close (void);
557void input_scrub_end (void);
558int new_logical_line (char *, int);
93e914b2 559int new_logical_line_flags (char *, int, int);
329e276d
NC
560void subsegs_begin (void);
561void subseg_change (segT, int);
562segT subseg_new (const char *, subsegT);
563segT subseg_force_new (const char *, subsegT);
564void subseg_set (segT, subsegT);
565int subseg_text_p (segT);
4ee4d249 566int seg_not_empty_p (segT);
329e276d
NC
567void start_dependencies (char *);
568void register_dependency (char *);
569void print_dependencies (void);
329e276d 570segT subseg_get (const char *, int);
252b5132 571
3d6b762c
JM
572const char *remap_debug_filename (const char *);
573void add_debug_prefix_map (const char *);
574
252b5132
RH
575struct expressionS;
576struct fix;
2b47531b 577typedef struct symbol symbolS;
252b5132
RH
578typedef struct frag fragS;
579
252b5132 580/* literal.c */
73ee5e4c 581valueT add_to_literal_pool (symbolS *, valueT, segT, int);
252b5132 582
73ee5e4c
KH
583int check_eh_frame (struct expressionS *, unsigned int *);
584int eh_frame_estimate_size_before_relax (fragS *);
585int eh_frame_relax_frag (fragS *);
586void eh_frame_convert_frag (fragS *);
73ee5e4c 587int generic_force_reloc (struct fix *);
ae6063d4 588
252b5132
RH
589#include "expr.h" /* Before targ-*.h */
590
329e276d 591/* This one starts the chain of target dependant headers. */
252b5132
RH
592#include "targ-env.h"
593
a161fe53
AM
594#ifdef OBJ_MAYBE_ELF
595#define IS_ELF (OUTPUT_FLAVOR == bfd_target_elf_flavour)
596#else
597#ifdef OBJ_ELF
598#define IS_ELF 1
599#else
600#define IS_ELF 0
601#endif
0d2bcfaf
NC
602#endif
603
252b5132
RH
604#include "write.h"
605#include "frags.h"
606#include "hash.h"
607#include "read.h"
608#include "symbols.h"
609
610#include "tc.h"
611#include "obj.h"
612
613#ifdef USE_EMULATIONS
614#include "emul.h"
615#endif
616#include "listing.h"
617
c54b5932
DD
618#ifdef H_TICK_HEX
619extern int enable_h_tick_hex;
620#endif
621
abd63a32
AM
622#ifdef TC_M68K
623/* True if we are assembling in m68k MRI mode. */
624COMMON int flag_m68k_mri;
4fa6945e 625#define DOLLAR_AMBIGU flag_m68k_mri
abd63a32
AM
626#else
627#define flag_m68k_mri 0
628#endif
629
4c400d5e 630#ifdef WARN_COMMENTS
329e276d
NC
631COMMON int warn_comment;
632COMMON unsigned int found_comment;
633COMMON char * found_comment_file;
4c400d5e
AM
634#endif
635
4fa6945e
NC
636#ifndef DOLLAR_AMBIGU
637#define DOLLAR_AMBIGU 0
638#endif
639
f805106c
TW
640#ifndef NUMBERS_WITH_SUFFIX
641#define NUMBERS_WITH_SUFFIX 0
642#endif
643
252b5132
RH
644#ifndef LOCAL_LABELS_DOLLAR
645#define LOCAL_LABELS_DOLLAR 0
646#endif
647
648#ifndef LOCAL_LABELS_FB
649#define LOCAL_LABELS_FB 0
650#endif
651
abd63a32
AM
652#ifndef LABELS_WITHOUT_COLONS
653#define LABELS_WITHOUT_COLONS 0
654#endif
655
656#ifndef NO_PSEUDO_DOT
657#define NO_PSEUDO_DOT 0
658#endif
659
252b5132
RH
660#ifndef TEXT_SECTION_NAME
661#define TEXT_SECTION_NAME ".text"
662#define DATA_SECTION_NAME ".data"
663#define BSS_SECTION_NAME ".bss"
664#endif
665
bea9907b
TW
666#ifndef OCTETS_PER_BYTE_POWER
667#define OCTETS_PER_BYTE_POWER 0
668#endif
669#ifndef OCTETS_PER_BYTE
670#define OCTETS_PER_BYTE (1<<OCTETS_PER_BYTE_POWER)
671#endif
672#if OCTETS_PER_BYTE != (1<<OCTETS_PER_BYTE_POWER)
673 #error "Octets per byte conflicts with its power-of-two definition!"
674#endif
675
252b5132 676#endif /* GAS */
This page took 0.447517 seconds and 4 git commands to generate.