X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Felf%2Fmmix.h;h=9661e87b5521b0927d7ba7575f7cdc971c688b95;hb=a5da764d0c38f3fa8617f25bb10dd014f6b4c451;hp=fa367e5a314a3584f113a6d76760ef3ef3fad163;hpb=3c3bdf30e42268e6193693acd1dc66d2d1792536;p=deliverable%2Fbinutils-gdb.git diff --git a/include/elf/mmix.h b/include/elf/mmix.h index fa367e5a31..9661e87b55 100644 --- a/include/elf/mmix.h +++ b/include/elf/mmix.h @@ -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 */