* Makefile.in (autoconf-install): New target.
[deliverable/binutils-gdb.git] / gas / as.h
index 3cd5c58e10e91ce0121e45448595dc189a21cc66..f24b0729adcf97ca260b1d460abc929ce0c09464 100644 (file)
--- a/gas/as.h
+++ b/gas/as.h
@@ -1,5 +1,6 @@
 /* as.h - global header file
-   Copyright (C) 1987, 1990, 1991, 1992 Free Software Foundation, Inc.
+   Copyright (C) 1987, 90, 91, 92, 93, 94, 95, 96, 1997
+   Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -14,8 +15,9 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with GAS; see the file COPYING.  If not, write to
-   the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   along with GAS; see the file COPYING.  If not, write to the Free
+   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.  */
 
 #ifndef GAS
 #define GAS 1
@@ -78,8 +80,10 @@ void *alloca ();
 #ifdef HAVE_STRING_H
 #include <string.h>
 #else
+#ifdef HAVE_STRINGS_H
 #include <strings.h>
 #endif
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
@@ -91,13 +95,6 @@ void *alloca ();
 #include <sys/types.h>
 #endif
 
-/* Some systems do declare this, but this seems to be the universal
-   declaration, though the parameter type varies.  (It ought to use
-   `const' but many systems prototype it without.)  Include it here
-   for systems that don't declare it.  If conflicts arise, just add
-   another autoconf test...  */
-extern char *strdup (/* const char * */);
-
 #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.  */
@@ -139,16 +136,22 @@ extern char *strdup (/* const char * */);
 #ifdef BFD_ASSEMBLER
 #include <bfd.h>
 #endif
+#include <libiberty.h>
 
 /* Define the standard progress macros.  */
 #include <progress.h>
 
 /* This doesn't get taken care of anywhere.  */
+#ifndef __MWERKS__  /* Metrowerks C chokes on the "defined (inline)" */
 #if !defined (__GNUC__) && !defined (inline)
 #define inline
 #endif
+#endif /* !__MWERKS__ */
 
 /* Other stuff from config.h.  */
+#ifdef NEED_DECLARATION_STRSTR
+extern char *strstr ();
+#endif
 #ifdef NEED_DECLARATION_MALLOC
 extern PTR malloc ();
 extern PTR realloc ();
@@ -160,8 +163,8 @@ extern void free ();
 extern int errno;
 #endif
 
-/* This is needed for VMS.  */
-#if ! defined (HAVE_UNLINK) && defined (HAVE_REMOVE)
+/* This is needed for VMS with DEC C.  */
+#if ! defined (__GNUC__) && ! defined (HAVE_UNLINK) && defined (HAVE_REMOVE)
 #define unlink remove
 #endif
 
@@ -170,13 +173,6 @@ extern int errno;
 #define bcopy(src,dest,size)   memcpy(dest,src,size)
 #endif
 
-#ifdef BFD_ASSEMBLER
-/* This one doesn't get declared, but we're using it anyways.  This
-   should be fixed -- either it's part of the external interface or
-   it's not.  */
-extern PTR bfd_alloc_by_size_t PARAMS ((bfd *abfd, size_t sz));
-#endif
-
 /* Make Saber happier on obstack.h.  */
 #ifdef SABER
 #undef  __PTR_TO_INT
@@ -193,19 +189,6 @@ extern PTR bfd_alloc_by_size_t PARAMS ((bfd *abfd, size_t sz));
 #define __FILE__ "unknown"
 #endif /* __FILE__ */
 
-#ifndef __STDC__
-#ifndef const
-#define const
-#endif
-#ifndef volatile
-#define volatile
-#endif
-#endif /* ! __STDC__ */
-
-#if !defined (__GNUC__) && !defined (inline)
-#define inline
-#endif
-
 #ifndef FOPEN_WB
 #ifdef GO32
 #include "fopen-bin.h"
@@ -229,11 +212,6 @@ extern PTR bfd_alloc_by_size_t PARAMS ((bfd *abfd, size_t sz));
       as_fatal("Case value %ld unexpected at line %d of file \"%s\"\n", \
               (long) val, __LINE__, __FILE__); \
           }
-
-/* Version 2.1 of Solaris had problems with this declaration, but I
-   think that bug has since been fixed.  If it causes problems on your
-   system, just delete it.  */
-extern char *strstr ();
 \f
 #include "flonum.h"
 
@@ -282,12 +260,16 @@ typedef addressT valueT;
 
 #ifdef MANY_SEGMENTS
 #include "bfd.h"
-#define N_SEGMENTS 10
-#define SEG_NORMAL(x) ((x) >= SEG_E0 && (x) <= SEG_E9)
-#define SEG_LIST SEG_E0,SEG_E1,SEG_E2,SEG_E3,SEG_E4,SEG_E5,SEG_E6,SEG_E7,SEG_E8,SEG_E9
+#define N_SEGMENTS 40
+#define SEG_NORMAL(x) ((x) >= SEG_E0 && (x) <= SEG_E39)
+#define SEG_LIST SEG_E0,SEG_E1,SEG_E2,SEG_E3,SEG_E4,SEG_E5,SEG_E6,SEG_E7,SEG_E8,SEG_E9,\
+                SEG_E10,SEG_E11,SEG_E12,SEG_E13,SEG_E14,SEG_E15,SEG_E16,SEG_E17,SEG_E18,SEG_E19,\
+                SEG_E20,SEG_E21,SEG_E22,SEG_E23,SEG_E24,SEG_E25,SEG_E26,SEG_E27,SEG_E28,SEG_E29,\
+                SEG_E30,SEG_E31,SEG_E32,SEG_E33,SEG_E34,SEG_E35,SEG_E36,SEG_E37,SEG_E38,SEG_E39
 #define SEG_TEXT SEG_E0
 #define SEG_DATA SEG_E1
 #define SEG_BSS SEG_E2
+#define SEG_LAST SEG_E39
 #else
 #define N_SEGMENTS 3
 #define SEG_NORMAL(x) ((x) == SEG_TEXT || (x) == SEG_DATA || (x) == SEG_BSS)
@@ -361,11 +343,17 @@ enum _relax_state
        constant length frag. */
     rs_fill = 1,
 
-    /* Align: Fr_offset: power of 2.  Variable chars: fill pattern. */
+    /* 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: fr_offset: power of 2.  Fill pattern is machine
-       specific, defaulting to all zeros.  */
+    /* 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
@@ -441,11 +429,6 @@ struct frag
   relax_stateT fr_type;
   relax_substateT fr_subtype;
 
-  /* Track the alignment and offset of the current frag.  With this,
-     sometimes we can avoid creating new frags for .align directives.  */
-  unsigned short align_mask;
-  unsigned short align_offset;
-
   /* These are needed only on the NS32K machines.  But since we don't
      include targ-cpu.h until after this structure has been defined,
      we can't really conditionalize it.  This code should be
@@ -455,6 +438,10 @@ struct frag
      create a union here.  */
   char fr_pcrel_adjust, fr_bsr;
 
+  /* Where the frag was created, or where it became a variant frag.  */
+  char *fr_file;
+  unsigned int fr_line;
+
   /* Data begins here.  */
   char fr_literal[1];
 };
@@ -488,9 +475,12 @@ COMMON unsigned char flag_warn_displacement; /* -K */
 /* True if local symbols should be retained.  */
 COMMON int flag_keep_locals; /* -L */
 
-/* True if we are assembling using MRI syntax.  */
+/* True if we are assembling in MRI mode.  */
 COMMON int flag_mri;
 
+/* True if we are assembling in m68k MRI mode.  */
+COMMON int flag_m68k_mri;
+
 /* Should the data section be made read-only and appended to the text
    section?  */
 COMMON unsigned char flag_readonly_data_in_text; /* -R */
@@ -509,6 +499,9 @@ COMMON unsigned char flag_print_statistics;
 /* name of emitted object file */
 COMMON char *out_file_name;
 
+/* name of file defining extensions to the basic instruction set */
+COMMON char *insttbl_file_name;
+
 /* TRUE if we need a second pass. */
 COMMON int need_pass_2;
 
@@ -519,6 +512,13 @@ COMMON int linkrelax;
 /* TRUE if we should produce a listing.  */
 extern int listing;
 
+/* Maximum level of macro nesting.  */
+extern int max_macro_nest;
+
+/* Obstack chunk size.  Keep large for efficient space use, make small to
+   increase malloc calls for monitoring memory allocation.  */
+extern int chunksize;
+
 struct _pseudo_type
   {
     /* assembler mnemonic, lower case, no '.' */
@@ -545,7 +545,7 @@ typedef struct _pseudo_type pseudo_typeS;
 #endif
 
 #ifdef USE_STDARG
-#if __GNUC__ >= 2
+#if (__GNUC__ >= 2) && !defined(VMS)
 /* for use with -Wformat */
 #define PRINTF_LIKE(FCN)       void FCN (const char *format, ...) \
                                        __attribute__ ((format (printf, 1, 2)))
@@ -584,28 +584,22 @@ char *atof_ieee PARAMS ((char *str, int what_kind, LITTLENUM_TYPE * words));
 char *input_scrub_include_file PARAMS ((char *filename, char *position));
 char *input_scrub_new_file PARAMS ((char *filename));
 char *input_scrub_next_buffer PARAMS ((char **bufp));
-PTR xmalloc PARAMS ((unsigned long size));
-PTR xrealloc PARAMS ((PTR ptr, unsigned long n));
-int do_scrub_next_char PARAMS ((int (*get) (void), void (*unget) (int)));
+int do_scrub_chars PARAMS ((int (*get) (char **), char *to, int tolen));
 int gen_to_words PARAMS ((LITTLENUM_TYPE * words, int precision,
                          long exponent_bits));
 int had_err PARAMS ((void));
 int ignore_input PARAMS ((void));
-int scrub_from_file PARAMS ((void));
-int scrub_from_string PARAMS ((void));
 int seen_at_least_1_file PARAMS ((void));
 void app_pop PARAMS ((char *arg));
 void as_howmuch PARAMS ((FILE * stream));
 void as_perror PARAMS ((const char *gripe, const char *filename));
 void as_where PARAMS ((char **namep, unsigned int *linep));
 void bump_line_counters PARAMS ((void));
-void do_scrub_begin PARAMS ((void));
+void do_scrub_begin PARAMS ((int));
 void input_scrub_begin PARAMS ((void));
 void input_scrub_close PARAMS ((void));
 void input_scrub_end PARAMS ((void));
 void new_logical_line PARAMS ((char *fname, int line_number));
-void scrub_to_file PARAMS ((int ch));
-void scrub_to_string PARAMS ((int ch));
 void subsegs_begin PARAMS ((void));
 void subseg_change PARAMS ((segT seg, int subseg));
 segT subseg_new PARAMS ((const char *name, subsegT subseg));
This page took 0.027209 seconds and 4 git commands to generate.