* m32r.opc: Formatting.
[deliverable/binutils-gdb.git] / include / elf / mmix.h
index fa367e5a314a3584f113a6d76760ef3ef3fad163..9661e87b5521b0927d7ba7575f7cdc971c688b95 100644 (file)
@@ -1,5 +1,5 @@
 /* MMIX support for BFD.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -15,7 +15,7 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 /* This file holds definitions specific to the MMIX ELF ABI. */
 #ifndef ELF_MMIX_H
@@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "elf/reloc-macros.h"
 
-/* Relocations.  */
+/* Relocations.  See the reloc table in bfd/elf64-mmix.c for details.  */
 START_RELOC_NUMBERS (elf_mmix_reloc_type)
   RELOC_NUMBER (R_MMIX_NONE, 0)
 
@@ -82,11 +82,17 @@ START_RELOC_NUMBERS (elf_mmix_reloc_type)
   /* A general register. */
   RELOC_NUMBER (R_MMIX_REG, 33)
 
-  /* A global register and an offset, equivalent of the expression.  */
+  /* A global register and an offset, the global register (allocated at
+     link time) contents plus the offset made equivalent to the relocation
+     expression at link time.  The relocation must point at the Y field of
+     an instruction.  */
   RELOC_NUMBER (R_MMIX_BASE_PLUS_OFFSET, 34)
 
   /* A LOCAL assertion.  */
   RELOC_NUMBER (R_MMIX_LOCAL, 35)
+
+  /* A PUSHJ instruction, generating a stub if it does not reach.  */
+  RELOC_NUMBER (R_MMIX_PUSHJ_STUBBABLE, 36)
 END_RELOC_NUMBERS (R_MMIX_max)
 
 
@@ -107,6 +113,11 @@ END_RELOC_NUMBERS (R_MMIX_max)
    unspecified) ABI.  */
 #define MMIX_REG_CONTENTS_SECTION_NAME ".MMIX.reg_contents"
 
+/* At link time, a section by this name is created, expected to be
+   included in MMIX_REG_CONTENTS_SECTION_NAME in the output.  */
+#define MMIX_LD_ALLOCATED_REG_CONTENTS_SECTION_NAME \
+ ".MMIX.reg_contents.linker_allocated"
+
 /* This is a faked section holding symbols with SHN_REGISTER.  Don't
    confuse it with MMIX_REG_CONTENTS_SECTION_NAME; this one has no
    contents, just values.  It is an error for a value in this section to
@@ -148,4 +159,13 @@ END_RELOC_NUMBERS (R_MMIX_max)
 #define MMO_SEC_IS_COMMON 0x8000
 #define MMO_SEC_DEBUGGING 0x10000
 
+#ifdef BFD_ARCH_SIZE
+extern bfd_boolean _bfd_mmix_before_linker_allocation
+  (bfd *, struct bfd_link_info *);
+extern bfd_boolean _bfd_mmix_after_linker_allocation
+  (bfd *, struct bfd_link_info *);
+extern bfd_boolean _bfd_mmix_check_all_relocs
+  (bfd *, struct bfd_link_info *);
+#endif
+
 #endif /* ELF_MMIX_H */
This page took 0.024612 seconds and 4 git commands to generate.