x86-64: optimize certain commutative VEX-encoded insns
[deliverable/binutils-gdb.git] / gas / config / obj-elf.h
index 65a8fa221c99e5776ae2e3840f5caf7db600158f..52a361a40d4341468449cc59954a85078471a54b 100644 (file)
@@ -1,12 +1,11 @@
 /* ELF object file format.
 /* ELF object file format.
-   Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1992-2019 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
    GAS is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This file is part of GAS, the GNU Assembler.
 
    GAS is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    GAS is distributed in the hope that it will be useful,
    any later version.
 
    GAS is distributed in the hope that it will be useful,
@@ -16,8 +15,8 @@
 
    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
 
    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.  */
+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 /* HP PA-RISC support was contributed by the Center for Software Science
    at the University of Utah.  */
 
 /* HP PA-RISC support was contributed by the Center for Software Science
    at the University of Utah.  */
@@ -34,8 +33,6 @@
 #define OUTPUT_FLAVOR bfd_target_elf_flavour
 #endif
 
 #define OUTPUT_FLAVOR bfd_target_elf_flavour
 #endif
 
-#include "bfd.h"
-
 #define BYTES_IN_WORD 4                /* for now */
 #include "bfd/elf-bfd.h"
 
 #define BYTES_IN_WORD 4                /* for now */
 #include "bfd/elf-bfd.h"
 
@@ -82,16 +79,6 @@ struct elf_obj_sy
 
 #define OBJ_SYMFIELD_TYPE struct elf_obj_sy
 
 
 #define OBJ_SYMFIELD_TYPE struct elf_obj_sy
 
-/* Symbol fields used by the ELF back end.  */
-#define ELF_TARGET_SYMBOL_FIELDS int local:1;
-
-/* Don't change this; change ELF_TARGET_SYMBOL_FIELDS instead.  */
-#ifndef TARGET_SYMBOL_FIELDS
-#define TARGET_SYMBOL_FIELDS ELF_TARGET_SYMBOL_FIELDS
-#endif
-
-/* #include "targ-cpu.h" */
-
 #ifndef FALSE
 #define FALSE 0
 #define TRUE  !FALSE
 #ifndef FALSE
 #define FALSE 0
 #define TRUE  !FALSE
@@ -102,6 +89,10 @@ struct elf_obj_sy
 #endif
 extern void elf_begin (void);
 
 #endif
 extern void elf_begin (void);
 
+#ifndef LOCAL_LABEL_PREFIX
+#define LOCAL_LABEL_PREFIX '.'
+#endif
+
 /* should be conditional on address size! */
 #define elf_symbol(asymbol) ((elf_symbol_type *) (&(asymbol)->the_bfd))
 
 /* should be conditional on address size! */
 #define elf_symbol(asymbol) ((elf_symbol_type *) (&(asymbol)->the_bfd))
 
@@ -134,13 +125,6 @@ int elf_s_get_other (symbolS *);
 
 extern asection *gdb_section;
 
 
 extern asection *gdb_section;
 
-#ifndef obj_sec_set_private_data
-#define obj_sec_set_private_data(B, S) \
-  if (! BFD_SEND ((B), _new_section_hook, ((B), (S)))) \
-    as_fatal (_("can't allocate ELF private section data: %s"),        \
-             bfd_errmsg (bfd_get_error ()))
-#endif
-
 #ifndef obj_frob_file
 #define obj_frob_file  elf_frob_file
 #endif
 #ifndef obj_frob_file
 #define obj_frob_file  elf_frob_file
 #endif
@@ -156,6 +140,13 @@ extern void elf_frob_file_before_adjust (void);
 #endif
 extern void elf_frob_file_after_relocs (void);
 
 #endif
 extern void elf_frob_file_after_relocs (void);
 
+/* If the target doesn't have special processing for labels, take care of
+   dwarf2 output at the object file level.  */
+#ifndef tc_frob_label
+#include "dwarf2dbg.h"
+#define obj_frob_label  dwarf2_emit_label
+#endif
+
 #ifndef obj_app_file
 #define obj_app_file elf_file_symbol
 #endif
 #ifndef obj_app_file
 #define obj_app_file elf_file_symbol
 #endif
@@ -164,15 +155,22 @@ extern void elf_file_symbol (const char *, int);
 extern void obj_elf_section_change_hook (void);
 
 extern void obj_elf_section (int);
 extern void obj_elf_section_change_hook (void);
 
 extern void obj_elf_section (int);
+extern const char * obj_elf_section_name (void);
 extern void obj_elf_previous (int);
 extern void obj_elf_version (int);
 extern void obj_elf_common (int);
 extern void obj_elf_data (int);
 extern void obj_elf_text (int);
 extern void obj_elf_change_section
 extern void obj_elf_previous (int);
 extern void obj_elf_version (int);
 extern void obj_elf_common (int);
 extern void obj_elf_data (int);
 extern void obj_elf_text (int);
 extern void obj_elf_change_section
-  (const char *, int, int, int, const char *, int, int);
-extern struct fix *obj_elf_vtable_inherit (int);
-extern struct fix *obj_elf_vtable_entry (int);
+  (const char *, unsigned int, unsigned int, bfd_vma, int, const char *,
+   int, int);
+extern void obj_elf_vtable_inherit (int);
+extern void obj_elf_vtable_entry (int);
+extern struct fix * obj_elf_get_vtable_inherit (void);
+extern struct fix * obj_elf_get_vtable_entry (void);
+extern bfd_boolean obj_elf_seen_attribute
+  (int, unsigned int);
+extern int obj_elf_vendor_attribute (int);
 
 /* BFD wants to write the udata field, which is a no-no for the
    predefined section symbols in bfd/section.c.  They are read-only.  */
 
 /* BFD wants to write the udata field, which is a no-no for the
    predefined section symbols in bfd/section.c.  They are read-only.  */
@@ -196,6 +194,11 @@ void elf_copy_symbol_attributes (symbolS *, symbolS *);
   (elf_copy_symbol_attributes (DEST, SRC))
 #endif
 
   (elf_copy_symbol_attributes (DEST, SRC))
 #endif
 
+void elf_adjust_symtab (void);
+#ifndef obj_adjust_symtab
+#define obj_adjust_symtab      elf_adjust_symtab
+#endif
+
 #ifndef SEPARATE_STAB_SECTIONS
 /* Avoid ifndef each separate macro setting by wrapping the whole of the
    stab group on the assumption that whoever sets SEPARATE_STAB_SECTIONS
 #ifndef SEPARATE_STAB_SECTIONS
 /* Avoid ifndef each separate macro setting by wrapping the whole of the
    stab group on the assumption that whoever sets SEPARATE_STAB_SECTIONS
@@ -240,11 +243,13 @@ extern void elf_pop_insert (void);
 #endif
 
 #ifndef OBJ_MAYBE_ELF
 #endif
 
 #ifndef OBJ_MAYBE_ELF
+/* If OBJ_MAYBE_ELF then obj-multi.h will define obj_ecoff_set_ext.  */
 #define obj_ecoff_set_ext elf_ecoff_set_ext
 #define obj_ecoff_set_ext elf_ecoff_set_ext
-#ifdef ANSI_PROTOTYPES
 struct ecoff_extr;
 struct ecoff_extr;
-#endif
 extern void elf_ecoff_set_ext (symbolS *, struct ecoff_extr *);
 #endif
 extern void elf_ecoff_set_ext (symbolS *, struct ecoff_extr *);
 #endif
+extern asection *elf_com_section_ptr;
+extern symbolS * elf_common_parse (int ignore ATTRIBUTE_UNUSED, symbolS *symbolP,
+                                  addressT size);
 
 #endif /* _OBJ_ELF_H */
 
 #endif /* _OBJ_ELF_H */
This page took 0.024749 seconds and 4 git commands to generate.