X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gas%2Fas.h;h=ff434cbed0cc1cec3ce56710871a0f588937ecbd;hb=2b3c4602718d2951e30572be3c1c6dcf5defa4fb;hp=b5f054b12f3b31b79586ee0dd8d086c2a56ec609;hpb=a01b9fa4ba5e6f9ce35d7ff0a1dfd18f94da20b5;p=binutils-gdb.git diff --git a/gas/as.h b/gas/as.h index b5f054b12f3..ff434cbed0c 100644 --- a/gas/as.h +++ b/gas/as.h @@ -1,5 +1,6 @@ /* as.h - global header file - Copyright (C) 1987, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 + Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, + 1999, 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -21,8 +22,7 @@ #ifndef GAS #define GAS 1 -/* - * I think this stuff is largely out of date. xoxorich. +/* I think this stuff is largely out of date. xoxorich. * * CAPITALISED names are #defined. * "lowercaseH" is #defined if "lowercase.h" has been #include-d. @@ -43,28 +43,19 @@ /* This is the code recommended in the autoconf documentation, almost verbatim. If it doesn't work for you, let me know, and notify djm@gnu.ai.mit.edu as well. */ -/* Added #undef for DJ Delorie. The right fix is to ensure that as.h - is included first, before even any system header files, in all files - that use it. KR 1994.11.03 */ /* Added void* version for STDC case. This is to be compatible with the declaration in bison.simple, used for m68k operand parsing. --KR 1995.08.08 */ /* Force void* decl for hpux. This is what Bison uses. --KR 1995.08.16 */ -/* AIX requires this to be the first thing in the file. */ -#ifdef __GNUC__ -# ifndef alloca -# ifdef __STDC__ -extern void *alloca (); -# else -extern char *alloca (); -# endif -# endif -#else +#ifndef __GNUC__ # if HAVE_ALLOCA_H # include # else # ifdef _AIX +/* Indented so that pre-ansi C compilers will ignore it, rather than + choke on it. Some versions of AIX require this to be the first + thing in the file. */ #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ @@ -76,13 +67,12 @@ extern void *alloca (); # endif /* alloca */ # endif /* _AIX */ # endif /* HAVE_ALLOCA_H */ -#endif +#endif /* __GNUC__ */ /* Now, tend to the rest of the configuration. */ /* System include files first... */ #include -#include #ifdef HAVE_STRING_H #include #else @@ -101,13 +91,13 @@ extern void *alloca (); #include #endif -#include +#include "getopt.h" /* The first getopt value for machine-independent long options. 150 isn't special; it's just an arbitrary non-ASCII char value. */ #define OPTION_STD_BASE 150 /* The first getopt value for machine-dependent long options. - 170 gives the standard options room to grow. */ -#define OPTION_MD_BASE 170 + 190 gives the standard options room to grow. */ +#define OPTION_MD_BASE 190 #ifdef DEBUG #undef NDEBUG @@ -178,15 +168,15 @@ extern char **environ; /* Hack to make "gcc -Wall" not complain about obstack macros. */ #if !defined (memcpy) && !defined (bcopy) -#define bcopy(src,dest,size) memcpy(dest,src,size) +#define bcopy(src,dest,size) memcpy (dest, src, size) #endif /* Make Saber happier on obstack.h. */ #ifdef SABER #undef __PTR_TO_INT -#define __PTR_TO_INT(P) ((int)(P)) +#define __PTR_TO_INT(P) ((int) (P)) #undef __INT_TO_PTR -#define __INT_TO_PTR(P) ((char *)(P)) +#define __INT_TO_PTR(P) ((char *) (P)) #endif #ifndef __LINE__ @@ -221,11 +211,11 @@ extern char **environ; #include "asintl.h" -#define BAD_CASE(val) \ -{ \ - as_fatal(_("Case value %ld unexpected at line %d of file \"%s\"\n"), \ - (long) val, __LINE__, __FILE__); \ - } +#define BAD_CASE(val) \ + { \ + as_fatal (_("Case value %ld unexpected at line %d of file \"%s\"\n"), \ + (long) val, __LINE__, __FILE__); \ + } #include "flonum.h" @@ -262,12 +252,9 @@ typedef addressT valueT; /* input_scrub.c */ -/* - * Supplies sanitised buffers to read.c. - * Also understands printing line-number part of error messages. - */ +/* Supplies sanitised buffers to read.c. + Also understands printing line-number part of error messages. */ - /* subsegs.c Sub-segments. Also, segment(=expression type)s.*/ #ifndef BFD_ASSEMBLER @@ -290,20 +277,19 @@ typedef addressT valueT; #define SEG_LIST SEG_TEXT,SEG_DATA,SEG_BSS #endif -typedef enum _segT - { - SEG_ABSOLUTE = 0, - SEG_LIST, - SEG_UNKNOWN, - SEG_GOOF, /* Only happens if AS has a logic error. */ - /* Invented so we don't crash printing */ - /* error message involving weird segment. */ - SEG_EXPR, /* Intermediate expression values. */ - SEG_DEBUG, /* Debug segment */ - SEG_NTV, /* Transfert vector preload segment */ - SEG_PTV, /* Transfert vector postload segment */ - SEG_REGISTER /* Mythical: a register-valued expression */ - } segT; +typedef enum _segT { + SEG_ABSOLUTE = 0, + SEG_LIST, + SEG_UNKNOWN, + SEG_GOOF, /* Only happens if AS has a logic error. */ + /* Invented so we don't crash printing */ + /* error message involving weird segment. */ + SEG_EXPR, /* Intermediate expression values. */ + SEG_DEBUG, /* Debug segment */ + SEG_NTV, /* Transfert vector preload segment */ + SEG_PTV, /* Transfert vector postload segment */ + SEG_REGISTER /* Mythical: a register-valued expression */ +} segT; #define SEG_MAXIMUM_ORDINAL (SEG_REGISTER) #else @@ -350,51 +336,57 @@ extern segT text_section, data_section, bss_section; /* relax() */ -enum _relax_state - { - /* Variable chars to be repeated fr_offset times. - Fr_symbol unused. Used with fr_offset == 0 for a - constant length frag. */ - rs_fill = 1, - - /* Align. The fr_offset field holds the power of 2 to which to - align. The fr_var field holds the number of characters in the - fill pattern. The fr_subtype field holds the maximum number of - bytes to skip when aligning, or 0 if there is no maximum. */ - rs_align, - - /* Align code. The fr_offset field holds the power of 2 to which - to align. This type is only generated by machine specific - code, which is normally responsible for handling the fill - pattern. The fr_subtype field holds the maximum number of - bytes to skip when aligning, or 0 if there is no maximum. */ - rs_align_code, - - /* Org: Fr_offset, fr_symbol: address. 1 variable char: fill - character. */ - rs_org, +enum _relax_state { + /* Variable chars to be repeated fr_offset times. + Fr_symbol unused. Used with fr_offset == 0 for a + constant length frag. */ + rs_fill = 1, + + /* Align. The fr_offset field holds the power of 2 to which to + align. The fr_var field holds the number of characters in the + fill pattern. The fr_subtype field holds the maximum number of + bytes to skip when aligning, or 0 if there is no maximum. */ + rs_align, + + /* Align code. The fr_offset field holds the power of 2 to which + to align. This type is only generated by machine specific + code, which is normally responsible for handling the fill + pattern. The fr_subtype field holds the maximum number of + bytes to skip when aligning, or 0 if there is no maximum. */ + rs_align_code, + + /* Test for alignment. Like rs_align, but used by several targets + to warn if data is not properly aligned. */ + rs_align_test, + + /* Org: Fr_offset, fr_symbol: address. 1 variable char: fill + character. */ + rs_org, #ifndef WORKING_DOT_WORD - /* JF: gunpoint */ - rs_broken_word, + /* JF: gunpoint */ + rs_broken_word, #endif - /* machine-specific relaxable (or similarly alterable) instruction */ - rs_machine_dependent, + /* machine-specific relaxable (or similarly alterable) instruction */ + rs_machine_dependent, + + /* .space directive with expression operand that needs to be computed + later. Similar to rs_org, but different. + fr_symbol: operand + 1 variable char: fill character */ + rs_space, - /* .space directive with expression operand that needs to be computed - later. Similar to rs_org, but different. - fr_symbol: operand - 1 variable char: fill character */ - rs_space, + /* A DWARF leb128 value; only ELF uses this. The subtype is 0 for + unsigned, 1 for signed. */ + rs_leb128, - /* A DWARF leb128 value; only ELF uses this. The subtype is 0 for - unsigned, 1 for signed. */ - rs_leb128, + /* Exception frame information which we may be able to optimize. */ + rs_cfa, - /* Exception frame information which we may be able to optimize. */ - rs_cfa - }; + /* Cross-fragment dwarf2 line number optimization. */ + rs_dwarf2dbg +}; typedef enum _relax_state relax_stateT; @@ -460,18 +452,22 @@ COMMON int linkrelax; /* TRUE if we should produce a listing. */ extern int listing; -/* Type of debugging information we should generate. We currently - support stabs, ECOFF, and DWARF2. */ +/* Type of debugging information we should generate. We currently support + stabs, ECOFF, and DWARF2. + + NOTE! This means debug information about the assembly source code itself + and _not_ about possible debug information from a high-level language. + This is especially relevant to DWARF2, since the compiler may emit line + number directives that the assembler resolves. */ -enum debug_info_type - { - DEBUG_UNSPECIFIED, - DEBUG_NONE, - DEBUG_STABS, - DEBUG_ECOFF, - DEBUG_DWARF, - DEBUG_DWARF2 - }; +enum debug_info_type { + DEBUG_UNSPECIFIED, + DEBUG_NONE, + DEBUG_STABS, + DEBUG_ECOFF, + DEBUG_DWARF, + DEBUG_DWARF2 +}; extern enum debug_info_type debug_type; @@ -482,15 +478,14 @@ extern int max_macro_nest; increase malloc calls for monitoring memory allocation. */ extern int chunksize; -struct _pseudo_type - { - /* assembler mnemonic, lower case, no '.' */ - const char *poc_name; - /* Do the work */ - void (*poc_handler) PARAMS ((int)); - /* Value to pass to handler */ - int poc_val; - }; +struct _pseudo_type { + /* assembler mnemonic, lower case, no '.' */ + const char *poc_name; + /* Do the work */ + void (*poc_handler) PARAMS ((int)); + /* Value to pass to handler */ + int poc_val; +}; typedef struct _pseudo_type pseudo_typeS; @@ -618,6 +613,10 @@ void eh_frame_convert_frag PARAMS ((fragS *)); /* this one starts the chain of target dependant headers */ #include "targ-env.h" +#ifdef TC_ARC +#include "struc-symbol.h" +#endif + #include "write.h" #include "frags.h" #include "hash.h"