X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2Freloc.c;h=886c63eb13f72980cffd1ce1cbe10af71c5a62b2;hb=79697b649f28a6fc1062bb91737d9e64ee114ee6;hp=f81a3bffe52a15b15a2c4c8fcf57b32b6b1cfa96;hpb=d93525185ce69a5f63029f41e439e4cc8869e210;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/reloc.c b/bfd/reloc.c index f81a3bffe5..886c63eb13 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -1,14 +1,12 @@ /* BFD support for handling relocation entries. - Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1990-2015 Free Software Foundation, Inc. Written by Cygnus Support. This file is part of BFD, the Binary File Descriptor library. This program 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 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -18,7 +16,8 @@ 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ /* SECTION @@ -47,8 +46,8 @@ SECTION /* DO compile in the reloc_code name table from libbfd.h. */ #define _BFD_MAKE_TABLE_bfd_reloc_code_real -#include "bfd.h" #include "sysdep.h" +#include "bfd.h" #include "bfdlink.h" #include "libbfd.h" /* @@ -304,10 +303,7 @@ CODE_FRAGMENT . when doing overflow checking. *} . unsigned int bitsize; . -. {* Notes that the relocation is relative to the location in the -. data section of the addend. The relocation function will -. subtract from the relocation value the address of the location -. being relocated. *} +. {* The relocation is relative to the field being relocated. *} . bfd_boolean pc_relative; . . {* The bit position of the reloc value in the destination. @@ -441,6 +437,7 @@ bfd_get_reloc_size (reloc_howto_type *howto) case 3: return 0; case 4: return 8; case 8: return 16; + case -1: return 2; case -2: return 4; default: abort (); } @@ -503,8 +500,8 @@ bfd_check_overflow (enum complain_overflow how, overflow check. */ fieldmask = N_ONES (bitsize); signmask = ~fieldmask; - addrmask = N_ONES (addrsize) | fieldmask; - a = (relocation & addrmask) >> rightshift;; + addrmask = N_ONES (addrsize) | (fieldmask << rightshift); + a = (relocation & addrmask) >> rightshift; switch (how) { @@ -582,7 +579,7 @@ bfd_perform_relocation (bfd *abfd, { bfd_vma relocation; bfd_reloc_status_type flag = bfd_reloc_ok; - bfd_size_type octets = reloc_entry->address * bfd_octets_per_byte (abfd); + bfd_size_type octets; bfd_vma output_base = 0; reloc_howto_type *howto = reloc_entry->howto; asection *reloc_target_output_section; @@ -596,6 +593,10 @@ bfd_perform_relocation (bfd *abfd, return bfd_reloc_ok; } + /* PR 17512: file: 0f67f69d. */ + if (howto == NULL) + return bfd_reloc_undefined; + /* If we are not producing relocatable output, return an error if the symbol is not defined. An undefined weak symbol is considered to have a value of zero (SVR4 ABI, p. 4-27). */ @@ -617,8 +618,12 @@ bfd_perform_relocation (bfd *abfd, return cont; } - /* Is the address of the relocation really within the section? */ - if (reloc_entry->address > bfd_get_section_limit (abfd, input_section)) + /* Is the address of the relocation really within the section? + Include the size of the reloc in the test for out of range addresses. + PR 17512: file: c146ab8b, 46dff27f, 38e53ebf. */ + octets = reloc_entry->address * bfd_octets_per_byte (abfd); + if (octets + bfd_get_reloc_size (howto) + > bfd_get_section_limit_octets (abfd, input_section)) return bfd_reloc_outofrange; /* Work out which section the relocation is targeted at and the @@ -788,10 +793,6 @@ space consuming. For each target: } } } - else - { - reloc_entry->addend = 0; - } /* FIXME: This overflow checking is incomplete, because the value might have overflowed before we get here. For a correct check we @@ -972,7 +973,7 @@ bfd_install_relocation (bfd *abfd, { bfd_vma relocation; bfd_reloc_status_type flag = bfd_reloc_ok; - bfd_size_type octets = reloc_entry->address * bfd_octets_per_byte (abfd); + bfd_size_type octets; bfd_vma output_base = 0; reloc_howto_type *howto = reloc_entry->howto; asection *reloc_target_output_section; @@ -1005,7 +1006,9 @@ bfd_install_relocation (bfd *abfd, } /* Is the address of the relocation really within the section? */ - if (reloc_entry->address > bfd_get_section_limit (abfd, input_section)) + octets = reloc_entry->address * bfd_octets_per_byte (abfd); + if (octets + bfd_get_reloc_size (howto) + > bfd_get_section_limit_octets (abfd, input_section)) return bfd_reloc_outofrange; /* Work out which section the relocation is targeted at and the @@ -1340,9 +1343,11 @@ _bfd_final_link_relocate (reloc_howto_type *howto, bfd_vma addend) { bfd_vma relocation; + bfd_size_type octets = address * bfd_octets_per_byte (input_bfd); /* Sanity check the address. */ - if (address > bfd_get_section_limit (input_bfd, input_section)) + if (octets + bfd_get_reloc_size (howto) + > bfd_get_section_limit_octets (input_bfd, input_section)) return bfd_reloc_outofrange; /* This function assumes that we are dealing with a basic relocation @@ -1397,8 +1402,9 @@ _bfd_relocate_contents (reloc_howto_type *howto, switch (size) { default: - case 0: abort (); + case 0: + return bfd_reloc_ok; case 1: x = bfd_get_8 (input_bfd, location); break; @@ -1433,9 +1439,11 @@ _bfd_relocate_contents (reloc_howto_type *howto, See also bfd_check_overflow. */ fieldmask = N_ONES (howto->bitsize); signmask = ~fieldmask; - addrmask = N_ONES (bfd_arch_bits_per_address (input_bfd)) | fieldmask; + addrmask = (N_ONES (bfd_arch_bits_per_address (input_bfd)) + | (fieldmask << rightshift)); a = (relocation & addrmask) >> rightshift; b = (x & howto->src_mask & addrmask) >> bitpos; + addrmask >>= rightshift; switch (howto->complain_on_overflow) { @@ -1453,7 +1461,7 @@ _bfd_relocate_contents (reloc_howto_type *howto, field. Note that when bfd_vma is 32 bits, a 32-bit reloc can't overflow, which is exactly what we want. */ ss = a & signmask; - if (ss != 0 && ss != ((addrmask >> rightshift) & signmask)) + if (ss != 0 && ss != (addrmask & signmask)) flag = bfd_reloc_overflow; /* We only need this next bit of code if the sign bit of B @@ -1544,14 +1552,15 @@ _bfd_relocate_contents (reloc_howto_type *howto, return flag; } -/* Clear a given location using a given howto, by applying a relocation value - of zero and discarding any in-place addend. This is used for fixed-up +/* Clear a given location using a given howto, by applying a fixed relocation + value and discarding any in-place addend. This is used for fixed-up relocations against discarded symbols, to make ignorable debug or unwind information more obvious. */ void _bfd_clear_contents (reloc_howto_type *howto, bfd *input_bfd, + asection *input_section, bfd_byte *location) { int size; @@ -1562,8 +1571,9 @@ _bfd_clear_contents (reloc_howto_type *howto, switch (size) { default: - case 0: abort (); + case 0: + return; case 1: x = bfd_get_8 (input_bfd, location); break; @@ -1585,6 +1595,13 @@ _bfd_clear_contents (reloc_howto_type *howto, /* Zero out the unwanted bits of X. */ x &= ~howto->dst_mask; + /* For a range list, use 1 instead of 0 as placeholder. 0 + would terminate the list, hiding any later entries. */ + if (strcmp (bfd_get_section_name (input_bfd, input_section), + ".debug_ranges") == 0 + && (howto->dst_mask & 1) != 0) + x |= 1; + /* Put the relocated value back in the object file. */ switch (size) { @@ -1727,12 +1744,49 @@ ENUMX ENUMDOC For ELF. +ENUM + BFD_RELOC_SIZE32 +ENUMX + BFD_RELOC_SIZE64 +ENUMDOC + Size relocations. + ENUM BFD_RELOC_68K_GLOB_DAT ENUMX BFD_RELOC_68K_JMP_SLOT ENUMX BFD_RELOC_68K_RELATIVE +ENUMX + BFD_RELOC_68K_TLS_GD32 +ENUMX + BFD_RELOC_68K_TLS_GD16 +ENUMX + BFD_RELOC_68K_TLS_GD8 +ENUMX + BFD_RELOC_68K_TLS_LDM32 +ENUMX + BFD_RELOC_68K_TLS_LDM16 +ENUMX + BFD_RELOC_68K_TLS_LDM8 +ENUMX + BFD_RELOC_68K_TLS_LDO32 +ENUMX + BFD_RELOC_68K_TLS_LDO16 +ENUMX + BFD_RELOC_68K_TLS_LDO8 +ENUMX + BFD_RELOC_68K_TLS_IE32 +ENUMX + BFD_RELOC_68K_TLS_IE16 +ENUMX + BFD_RELOC_68K_TLS_IE8 +ENUMX + BFD_RELOC_68K_TLS_LE32 +ENUMX + BFD_RELOC_68K_TLS_LE16 +ENUMX + BFD_RELOC_68K_TLS_LE8 ENUMDOC Relocations used by 68K ELF. @@ -1829,6 +1883,20 @@ ENUMX BFD_RELOC_SPARC_UA32 ENUMX BFD_RELOC_SPARC_UA64 +ENUMX + BFD_RELOC_SPARC_GOTDATA_HIX22 +ENUMX + BFD_RELOC_SPARC_GOTDATA_LOX10 +ENUMX + BFD_RELOC_SPARC_GOTDATA_OP_HIX22 +ENUMX + BFD_RELOC_SPARC_GOTDATA_OP_LOX10 +ENUMX + BFD_RELOC_SPARC_GOTDATA_OP +ENUMX + BFD_RELOC_SPARC_JMP_IREL +ENUMX + BFD_RELOC_SPARC_IRELATIVE ENUMDOC SPARC ELF relocations. There is probably some overlap with other relocation types already defined. @@ -1890,6 +1958,14 @@ ENUMX BFD_RELOC_SPARC_L44 ENUMX BFD_RELOC_SPARC_REGISTER +ENUMX + BFD_RELOC_SPARC_H34 +ENUMX + BFD_RELOC_SPARC_SIZE32 +ENUMX + BFD_RELOC_SPARC_SIZE64 +ENUMX + BFD_RELOC_SPARC_WDISP10 ENUMDOC SPARC64 relocations @@ -1972,6 +2048,12 @@ ENUMX BFD_RELOC_SPU_LO16 ENUMX BFD_RELOC_SPU_HI16 +ENUMX + BFD_RELOC_SPU_PPU32 +ENUMX + BFD_RELOC_SPU_PPU64 +ENUMX + BFD_RELOC_SPU_ADD_PIC ENUMDOC SPU Relocations. @@ -2064,6 +2146,30 @@ ENUMDOC share a common GP, and the target address is adjusted for STO_ALPHA_STD_GPLOAD. +ENUM + BFD_RELOC_ALPHA_NOP +ENUMDOC + The NOP relocation outputs a NOP if the longword displacement + between two procedure entry points is < 2^21. + +ENUM + BFD_RELOC_ALPHA_BSR +ENUMDOC + The BSR relocation outputs a BSR if the longword displacement + between two procedure entry points is < 2^21. + +ENUM + BFD_RELOC_ALPHA_LDA +ENUMDOC + The LDA relocation outputs a LDA if the longword displacement + between two procedure entry points is < 2^16. + +ENUM + BFD_RELOC_ALPHA_BOH +ENUMDOC + The BOH relocation outputs a BSR if the longword displacement + between two procedure entry points is < 2^21, or else a hint. + ENUM BFD_RELOC_ALPHA_TLSGD ENUMX @@ -2095,9 +2201,10 @@ ENUMDOC ENUM BFD_RELOC_MIPS_JMP +ENUMX + BFD_RELOC_MICROMIPS_JMP ENUMDOC - Bits 27..2 of the relocation address shifted right 2 bits; - simple reloc otherwise. + The MIPS jump instruction. ENUM BFD_RELOC_MIPS16_JMP @@ -2113,6 +2220,7 @@ ENUM BFD_RELOC_HI16 ENUMDOC High 16 bits of 32-bit value; simple reloc. + ENUM BFD_RELOC_HI16_S ENUMDOC @@ -2120,6 +2228,7 @@ ENUMDOC extended and added to form the final result. If the low 16 bits form a negative number, we need to add one to the high value to compensate for the borrow when the low bits are added. + ENUM BFD_RELOC_LO16 ENUMDOC @@ -2138,6 +2247,13 @@ ENUM ENUMDOC Low 16 bits of pc-relative value +ENUM + BFD_RELOC_MIPS16_GOT16 +ENUMX + BFD_RELOC_MIPS16_CALL16 +ENUMDOC + Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of + 16-bit immediate fields ENUM BFD_RELOC_MIPS16_HI16 ENUMDOC @@ -2154,31 +2270,101 @@ ENUM ENUMDOC MIPS16 low 16 bits. +ENUM + BFD_RELOC_MIPS16_TLS_GD +ENUMX + BFD_RELOC_MIPS16_TLS_LDM +ENUMX + BFD_RELOC_MIPS16_TLS_DTPREL_HI16 +ENUMX + BFD_RELOC_MIPS16_TLS_DTPREL_LO16 +ENUMX + BFD_RELOC_MIPS16_TLS_GOTTPREL +ENUMX + BFD_RELOC_MIPS16_TLS_TPREL_HI16 +ENUMX + BFD_RELOC_MIPS16_TLS_TPREL_LO16 +ENUMDOC + MIPS16 TLS relocations + ENUM BFD_RELOC_MIPS_LITERAL +ENUMX + BFD_RELOC_MICROMIPS_LITERAL ENUMDOC Relocation against a MIPS literal section. +ENUM + BFD_RELOC_MICROMIPS_7_PCREL_S1 +ENUMX + BFD_RELOC_MICROMIPS_10_PCREL_S1 +ENUMX + BFD_RELOC_MICROMIPS_16_PCREL_S1 +ENUMDOC + microMIPS PC-relative relocations. + +ENUM + BFD_RELOC_MIPS_21_PCREL_S2 +ENUMX + BFD_RELOC_MIPS_26_PCREL_S2 +ENUMX + BFD_RELOC_MIPS_18_PCREL_S3 +ENUMX + BFD_RELOC_MIPS_19_PCREL_S2 +ENUMDOC + MIPS PC-relative relocations. + +ENUM + BFD_RELOC_MICROMIPS_GPREL16 +ENUMX + BFD_RELOC_MICROMIPS_HI16 +ENUMX + BFD_RELOC_MICROMIPS_HI16_S +ENUMX + BFD_RELOC_MICROMIPS_LO16 +ENUMDOC + microMIPS versions of generic BFD relocs. + ENUM BFD_RELOC_MIPS_GOT16 +ENUMX + BFD_RELOC_MICROMIPS_GOT16 ENUMX BFD_RELOC_MIPS_CALL16 +ENUMX + BFD_RELOC_MICROMIPS_CALL16 ENUMX BFD_RELOC_MIPS_GOT_HI16 +ENUMX + BFD_RELOC_MICROMIPS_GOT_HI16 ENUMX BFD_RELOC_MIPS_GOT_LO16 +ENUMX + BFD_RELOC_MICROMIPS_GOT_LO16 ENUMX BFD_RELOC_MIPS_CALL_HI16 +ENUMX + BFD_RELOC_MICROMIPS_CALL_HI16 ENUMX BFD_RELOC_MIPS_CALL_LO16 +ENUMX + BFD_RELOC_MICROMIPS_CALL_LO16 ENUMX BFD_RELOC_MIPS_SUB +ENUMX + BFD_RELOC_MICROMIPS_SUB ENUMX BFD_RELOC_MIPS_GOT_PAGE +ENUMX + BFD_RELOC_MICROMIPS_GOT_PAGE ENUMX BFD_RELOC_MIPS_GOT_OFST +ENUMX + BFD_RELOC_MICROMIPS_GOT_OFST ENUMX BFD_RELOC_MIPS_GOT_DISP +ENUMX + BFD_RELOC_MICROMIPS_GOT_DISP ENUMX BFD_RELOC_MIPS_SHIFT5 ENUMX @@ -2191,16 +2377,24 @@ ENUMX BFD_RELOC_MIPS_DELETE ENUMX BFD_RELOC_MIPS_HIGHEST +ENUMX + BFD_RELOC_MICROMIPS_HIGHEST ENUMX BFD_RELOC_MIPS_HIGHER +ENUMX + BFD_RELOC_MICROMIPS_HIGHER ENUMX BFD_RELOC_MIPS_SCN_DISP +ENUMX + BFD_RELOC_MICROMIPS_SCN_DISP ENUMX BFD_RELOC_MIPS_REL16 ENUMX BFD_RELOC_MIPS_RELGOT ENUMX BFD_RELOC_MIPS_JALR +ENUMX + BFD_RELOC_MICROMIPS_JALR ENUMX BFD_RELOC_MIPS_TLS_DTPMOD32 ENUMX @@ -2211,22 +2405,38 @@ ENUMX BFD_RELOC_MIPS_TLS_DTPREL64 ENUMX BFD_RELOC_MIPS_TLS_GD +ENUMX + BFD_RELOC_MICROMIPS_TLS_GD ENUMX BFD_RELOC_MIPS_TLS_LDM +ENUMX + BFD_RELOC_MICROMIPS_TLS_LDM ENUMX BFD_RELOC_MIPS_TLS_DTPREL_HI16 +ENUMX + BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16 ENUMX BFD_RELOC_MIPS_TLS_DTPREL_LO16 +ENUMX + BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16 ENUMX BFD_RELOC_MIPS_TLS_GOTTPREL +ENUMX + BFD_RELOC_MICROMIPS_TLS_GOTTPREL ENUMX BFD_RELOC_MIPS_TLS_TPREL32 ENUMX BFD_RELOC_MIPS_TLS_TPREL64 ENUMX BFD_RELOC_MIPS_TLS_TPREL_HI16 +ENUMX + BFD_RELOC_MICROMIPS_TLS_TPREL_HI16 ENUMX BFD_RELOC_MIPS_TLS_TPREL_LO16 +ENUMX + BFD_RELOC_MICROMIPS_TLS_TPREL_LO16 +ENUMX + BFD_RELOC_MIPS_EH ENUMDOC MIPS ELF relocations. COMMENT @@ -2236,7 +2446,25 @@ ENUM ENUMX BFD_RELOC_MIPS_JUMP_SLOT ENUMDOC - MIPS ELF relocations (VxWorks extensions). + MIPS ELF relocations (VxWorks and PLT extensions). +COMMENT + +ENUM + BFD_RELOC_MOXIE_10_PCREL +ENUMDOC + Moxie ELF relocations. +COMMENT + +ENUM + BFD_RELOC_FT32_10 +ENUMX + BFD_RELOC_FT32_20 +ENUMX + BFD_RELOC_FT32_17 +ENUMX + BFD_RELOC_FT32_18 +ENUMDOC + FT32 ELF relocations. COMMENT ENUM @@ -2356,6 +2584,48 @@ ENUM BFD_RELOC_MN10300_RELATIVE ENUMDOC Adjust by program base. +ENUM + BFD_RELOC_MN10300_SYM_DIFF +ENUMDOC + Together with another reloc targeted at the same location, + allows for a value that is the difference of two symbols + in the same section. +ENUM + BFD_RELOC_MN10300_ALIGN +ENUMDOC + The addend of this reloc is an alignment power that must + be honoured at the offset's location, regardless of linker + relaxation. +ENUM + BFD_RELOC_MN10300_TLS_GD +ENUMX + BFD_RELOC_MN10300_TLS_LD +ENUMX + BFD_RELOC_MN10300_TLS_LDO +ENUMX + BFD_RELOC_MN10300_TLS_GOTIE +ENUMX + BFD_RELOC_MN10300_TLS_IE +ENUMX + BFD_RELOC_MN10300_TLS_LE +ENUMX + BFD_RELOC_MN10300_TLS_DTPMOD +ENUMX + BFD_RELOC_MN10300_TLS_DTPOFF +ENUMX + BFD_RELOC_MN10300_TLS_TPOFF +ENUMDOC + Various TLS-related relocations. +ENUM + BFD_RELOC_MN10300_32_PCREL +ENUMDOC + This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the + instruction. +ENUM + BFD_RELOC_MN10300_16_PCREL +ENUMDOC + This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the + instruction. COMMENT ENUM @@ -2404,6 +2674,8 @@ ENUMX BFD_RELOC_386_TLS_DESC_CALL ENUMX BFD_RELOC_386_TLS_DESC +ENUMX + BFD_RELOC_386_IRELATIVE ENUMDOC i386/elf relocations @@ -2459,6 +2731,12 @@ ENUMX BFD_RELOC_X86_64_TLSDESC_CALL ENUMX BFD_RELOC_X86_64_TLSDESC +ENUMX + BFD_RELOC_X86_64_IRELATIVE +ENUMX + BFD_RELOC_X86_64_PC32_BND +ENUMX + BFD_RELOC_X86_64_PLT32_BND ENUMDOC x86-64/elf relocations @@ -2571,6 +2849,40 @@ ENUMX BFD_RELOC_PPC_EMB_BIT_FLD ENUMX BFD_RELOC_PPC_EMB_RELSDA +ENUMX + BFD_RELOC_PPC_VLE_REL8 +ENUMX + BFD_RELOC_PPC_VLE_REL15 +ENUMX + BFD_RELOC_PPC_VLE_REL24 +ENUMX + BFD_RELOC_PPC_VLE_LO16A +ENUMX + BFD_RELOC_PPC_VLE_LO16D +ENUMX + BFD_RELOC_PPC_VLE_HI16A +ENUMX + BFD_RELOC_PPC_VLE_HI16D +ENUMX + BFD_RELOC_PPC_VLE_HA16A +ENUMX + BFD_RELOC_PPC_VLE_HA16D +ENUMX + BFD_RELOC_PPC_VLE_SDA21 +ENUMX + BFD_RELOC_PPC_VLE_SDA21_LO +ENUMX + BFD_RELOC_PPC_VLE_SDAREL_LO16A +ENUMX + BFD_RELOC_PPC_VLE_SDAREL_LO16D +ENUMX + BFD_RELOC_PPC_VLE_SDAREL_HI16A +ENUMX + BFD_RELOC_PPC_VLE_SDAREL_HI16D +ENUMX + BFD_RELOC_PPC_VLE_SDAREL_HA16A +ENUMX + BFD_RELOC_PPC_VLE_SDAREL_HA16D ENUMX BFD_RELOC_PPC64_HIGHER ENUMX @@ -2617,11 +2929,21 @@ ENUMX BFD_RELOC_PPC64_PLTGOT16_DS ENUMX BFD_RELOC_PPC64_PLTGOT16_LO_DS +ENUMX + BFD_RELOC_PPC64_ADDR16_HIGH +ENUMX + BFD_RELOC_PPC64_ADDR16_HIGHA +ENUMX + BFD_RELOC_PPC64_ADDR64_LOCAL ENUMDOC Power(rs6000) and PowerPC relocations. ENUM BFD_RELOC_PPC_TLS +ENUMX + BFD_RELOC_PPC_TLSGD +ENUMX + BFD_RELOC_PPC_TLSLD ENUMX BFD_RELOC_PPC_DTPMOD ENUMX @@ -2700,6 +3022,14 @@ ENUMX BFD_RELOC_PPC64_DTPREL16_HIGHEST ENUMX BFD_RELOC_PPC64_DTPREL16_HIGHESTA +ENUMX + BFD_RELOC_PPC64_TPREL16_HIGH +ENUMX + BFD_RELOC_PPC64_TPREL16_HIGHA +ENUMX + BFD_RELOC_PPC64_DTPREL16_HIGH +ENUMX + BFD_RELOC_PPC64_DTPREL16_HIGHA ENUMDOC PowerPC and PowerPC64 thread-local storage relocations. @@ -2826,6 +3156,8 @@ ENUMX BFD_RELOC_ARM_GOTOFF ENUMX BFD_RELOC_ARM_GOTPC +ENUMX + BFD_RELOC_ARM_GOT_PREL ENUMDOC Relocations for setting up GOTs and PLTs for shared libraries. @@ -2845,6 +3177,18 @@ ENUMX BFD_RELOC_ARM_TLS_IE32 ENUMX BFD_RELOC_ARM_TLS_LE32 +ENUMX + BFD_RELOC_ARM_TLS_GOTDESC +ENUMX + BFD_RELOC_ARM_TLS_CALL +ENUMX + BFD_RELOC_ARM_THM_TLS_CALL +ENUMX + BFD_RELOC_ARM_TLS_DESCSEQ +ENUMX + BFD_RELOC_ARM_THM_TLS_DESCSEQ +ENUMX + BFD_RELOC_ARM_TLS_DESC ENUMDOC ARM thread-local storage relocations. @@ -2907,6 +3251,16 @@ ENUMX ENUMDOC ARM group relocations. +ENUM + BFD_RELOC_ARM_V4BX +ENUMDOC + Annotation of BX instructions. + +ENUM + BFD_RELOC_ARM_IRELATIVE +ENUMDOC + ARM support for STT_GNU_IFUNC. + ENUM BFD_RELOC_ARM_IMMEDIATE ENUMX @@ -2923,6 +3277,8 @@ ENUMX BFD_RELOC_ARM_SHIFT_IMM ENUMX BFD_RELOC_ARM_SMC +ENUMX + BFD_RELOC_ARM_HVC ENUMX BFD_RELOC_ARM_SWI ENUMX @@ -3141,83 +3497,216 @@ ENUMX BFD_RELOC_SH_TLS_DTPOFF32 ENUMX BFD_RELOC_SH_TLS_TPOFF32 +ENUMX + BFD_RELOC_SH_GOT20 +ENUMX + BFD_RELOC_SH_GOTOFF20 +ENUMX + BFD_RELOC_SH_GOTFUNCDESC +ENUMX + BFD_RELOC_SH_GOTFUNCDESC20 +ENUMX + BFD_RELOC_SH_GOTOFFFUNCDESC +ENUMX + BFD_RELOC_SH_GOTOFFFUNCDESC20 +ENUMX + BFD_RELOC_SH_FUNCDESC ENUMDOC Renesas / SuperH SH relocs. Not all of these appear in object files. ENUM - BFD_RELOC_ARC_B22_PCREL -ENUMDOC - ARC Cores relocs. - ARC 22 bit pc-relative branch. The lowest two bits must be zero and are - not stored in the instruction. The high 20 bits are installed in bits 26 - through 7 of the instruction. -ENUM - BFD_RELOC_ARC_B26 -ENUMDOC - ARC 26 bit absolute branch. The lowest two bits must be zero and are not - stored in the instruction. The high 24 bits are installed in bits 23 - through 0. - -ENUM - BFD_RELOC_BFIN_16_IMM -ENUMDOC - ADI Blackfin 16 bit immediate absolute reloc. -ENUM - BFD_RELOC_BFIN_16_HIGH -ENUMDOC - ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. -ENUM - BFD_RELOC_BFIN_4_PCREL -ENUMDOC - ADI Blackfin 'a' part of LSETUP. -ENUM - BFD_RELOC_BFIN_5_PCREL -ENUMDOC - ADI Blackfin. -ENUM - BFD_RELOC_BFIN_16_LOW -ENUMDOC - ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. -ENUM - BFD_RELOC_BFIN_10_PCREL -ENUMDOC - ADI Blackfin. -ENUM - BFD_RELOC_BFIN_11_PCREL -ENUMDOC - ADI Blackfin 'b' part of LSETUP. -ENUM - BFD_RELOC_BFIN_12_PCREL_JUMP -ENUMDOC - ADI Blackfin. -ENUM - BFD_RELOC_BFIN_12_PCREL_JUMP_S -ENUMDOC - ADI Blackfin Short jump, pcrel. -ENUM - BFD_RELOC_BFIN_24_PCREL_CALL_X -ENUMDOC - ADI Blackfin Call.x not implemented. -ENUM - BFD_RELOC_BFIN_24_PCREL_JUMP_L -ENUMDOC - ADI Blackfin Long Jump pcrel. -ENUM - BFD_RELOC_BFIN_GOT17M4 + BFD_RELOC_ARC_NONE ENUMX - BFD_RELOC_BFIN_GOTHI + BFD_RELOC_ARC_8 ENUMX - BFD_RELOC_BFIN_GOTLO + BFD_RELOC_ARC_16 ENUMX - BFD_RELOC_BFIN_FUNCDESC + BFD_RELOC_ARC_24 ENUMX - BFD_RELOC_BFIN_FUNCDESC_GOT17M4 + BFD_RELOC_ARC_32 ENUMX - BFD_RELOC_BFIN_FUNCDESC_GOTHI + BFD_RELOC_ARC_N8 ENUMX - BFD_RELOC_BFIN_FUNCDESC_GOTLO + BFD_RELOC_ARC_N16 ENUMX - BFD_RELOC_BFIN_FUNCDESC_VALUE + BFD_RELOC_ARC_N24 +ENUMX + BFD_RELOC_ARC_N32 +ENUMX + BFD_RELOC_ARC_SDA +ENUMX + BFD_RELOC_ARC_SECTOFF +ENUMX + BFD_RELOC_ARC_S21H_PCREL +ENUMX + BFD_RELOC_ARC_S21W_PCREL +ENUMX + BFD_RELOC_ARC_S25H_PCREL +ENUMX + BFD_RELOC_ARC_S25W_PCREL +ENUMX + BFD_RELOC_ARC_SDA32 +ENUMX + BFD_RELOC_ARC_SDA_LDST +ENUMX + BFD_RELOC_ARC_SDA_LDST1 +ENUMX + BFD_RELOC_ARC_SDA_LDST2 +ENUMX + BFD_RELOC_ARC_SDA16_LD +ENUMX + BFD_RELOC_ARC_SDA16_LD1 +ENUMX + BFD_RELOC_ARC_SDA16_LD2 +ENUMX + BFD_RELOC_ARC_S13_PCREL +ENUMX + BFD_RELOC_ARC_W +ENUMX + BFD_RELOC_ARC_32_ME +ENUMX + BFD_RELOC_ARC_32_ME_S +ENUMX + BFD_RELOC_ARC_N32_ME +ENUMX + BFD_RELOC_ARC_SECTOFF_ME +ENUMX + BFD_RELOC_ARC_SDA32_ME +ENUMX + BFD_RELOC_ARC_W_ME +ENUMX + BFD_RELOC_AC_SECTOFF_U8 +ENUMX + BFD_RELOC_AC_SECTOFF_U8_1 +ENUMX + BFD_RELOC_AC_SECTOFF_U8_2 +ENUMX + BFD_RELOC_AC_SECTFOFF_S9 +ENUMX + BFD_RELOC_AC_SECTFOFF_S9_1 +ENUMX + BFD_RELOC_AC_SECTFOFF_S9_2 +ENUMX + BFD_RELOC_ARC_SECTOFF_ME_1 +ENUMX + BFD_RELOC_ARC_SECTOFF_ME_2 +ENUMX + BFD_RELOC_ARC_SECTOFF_1 +ENUMX + BFD_RELOC_ARC_SECTOFF_2 +ENUMX + BFD_RELOC_ARC_SDA16_ST2 +ENUMX + BFD_RELOC_ARC_PC32 +ENUMX + BFD_RELOC_ARC_GOT32 +ENUMX + BFD_RELOC_ARC_GOTPC32 +ENUMX + BFD_RELOC_ARC_PLT32 +ENUMX + BFD_RELOC_ARC_COPY +ENUMX + BFD_RELOC_ARC_GLOB_DAT +ENUMX + BFD_RELOC_ARC_JMP_SLOT +ENUMX + BFD_RELOC_ARC_RELATIVE +ENUMX + BFD_RELOC_ARC_GOTOFF +ENUMX + BFD_RELOC_ARC_GOTPC +ENUMX + BFD_RELOC_ARC_S21W_PCREL_PLT +ENUMX + BFD_RELOC_ARC_S25H_PCREL_PLT +ENUMX + BFD_RELOC_ARC_TLS_DTPMOD +ENUMX + BFD_RELOC_ARC_TLS_TPOFF +ENUMX + BFD_RELOC_ARC_TLS_GD_GOT +ENUMX + BFD_RELOC_ARC_TLS_GD_LD +ENUMX + BFD_RELOC_ARC_TLS_GD_CALL +ENUMX + BFD_RELOC_ARC_TLS_IE_GOT +ENUMX + BFD_RELOC_ARC_TLS_DTPOFF +ENUMX + BFD_RELOC_ARC_TLS_DTPOFF_S9 +ENUMX + BFD_RELOC_ARC_TLS_LE_S9 +ENUMX + BFD_RELOC_ARC_TLS_LE_32 +ENUMX + BFD_RELOC_ARC_S25W_PCREL_PLT +ENUMX + BFD_RELOC_ARC_S21H_PCREL_PLT +ENUMDOC + ARC relocs. + +ENUM + BFD_RELOC_BFIN_16_IMM +ENUMDOC + ADI Blackfin 16 bit immediate absolute reloc. +ENUM + BFD_RELOC_BFIN_16_HIGH +ENUMDOC + ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. +ENUM + BFD_RELOC_BFIN_4_PCREL +ENUMDOC + ADI Blackfin 'a' part of LSETUP. +ENUM + BFD_RELOC_BFIN_5_PCREL +ENUMDOC + ADI Blackfin. +ENUM + BFD_RELOC_BFIN_16_LOW +ENUMDOC + ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. +ENUM + BFD_RELOC_BFIN_10_PCREL +ENUMDOC + ADI Blackfin. +ENUM + BFD_RELOC_BFIN_11_PCREL +ENUMDOC + ADI Blackfin 'b' part of LSETUP. +ENUM + BFD_RELOC_BFIN_12_PCREL_JUMP +ENUMDOC + ADI Blackfin. +ENUM + BFD_RELOC_BFIN_12_PCREL_JUMP_S +ENUMDOC + ADI Blackfin Short jump, pcrel. +ENUM + BFD_RELOC_BFIN_24_PCREL_CALL_X +ENUMDOC + ADI Blackfin Call.x not implemented. +ENUM + BFD_RELOC_BFIN_24_PCREL_JUMP_L +ENUMDOC + ADI Blackfin Long Jump pcrel. +ENUM + BFD_RELOC_BFIN_GOT17M4 +ENUMX + BFD_RELOC_BFIN_GOTHI +ENUMX + BFD_RELOC_BFIN_GOTLO +ENUMX + BFD_RELOC_BFIN_FUNCDESC +ENUMX + BFD_RELOC_BFIN_FUNCDESC_GOT17M4 +ENUMX + BFD_RELOC_BFIN_FUNCDESC_GOTHI +ENUMX + BFD_RELOC_BFIN_FUNCDESC_GOTLO +ENUMX + BFD_RELOC_BFIN_FUNCDESC_VALUE ENUMX BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4 ENUMX @@ -3505,1432 +3994,3656 @@ ENUMDOC ENUM - BFD_RELOC_V850_9_PCREL + BFD_RELOC_NDS32_20 ENUMDOC - This is a 9-bit reloc + NDS32 relocs. + This is a 20 bit absolute address. ENUM - BFD_RELOC_V850_22_PCREL + BFD_RELOC_NDS32_9_PCREL ENUMDOC - This is a 22-bit reloc - + This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0. ENUM - BFD_RELOC_V850_SDA_16_16_OFFSET + BFD_RELOC_NDS32_WORD_9_PCREL ENUMDOC - This is a 16 bit offset from the short data area pointer. + This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0. ENUM - BFD_RELOC_V850_SDA_15_16_OFFSET + BFD_RELOC_NDS32_15_PCREL ENUMDOC - This is a 16 bit offset (of which only 15 bits are used) from the - short data area pointer. + This is an 15-bit reloc with the right 1 bit assumed to be 0. ENUM - BFD_RELOC_V850_ZDA_16_16_OFFSET + BFD_RELOC_NDS32_17_PCREL ENUMDOC - This is a 16 bit offset from the zero data area pointer. + This is an 17-bit reloc with the right 1 bit assumed to be 0. ENUM - BFD_RELOC_V850_ZDA_15_16_OFFSET + BFD_RELOC_NDS32_25_PCREL ENUMDOC - This is a 16 bit offset (of which only 15 bits are used) from the - zero data area pointer. + This is a 25-bit reloc with the right 1 bit assumed to be 0. ENUM - BFD_RELOC_V850_TDA_6_8_OFFSET + BFD_RELOC_NDS32_HI20 ENUMDOC - This is an 8 bit offset (of which only 6 bits are used) from the - tiny data area pointer. + This is a 20-bit reloc containing the high 20 bits of an address + used with the lower 12 bits ENUM - BFD_RELOC_V850_TDA_7_8_OFFSET + BFD_RELOC_NDS32_LO12S3 ENUMDOC - This is an 8bit offset (of which only 7 bits are used) from the tiny - data area pointer. + This is a 12-bit reloc containing the lower 12 bits of an address + then shift right by 3. This is used with ldi,sdi... ENUM - BFD_RELOC_V850_TDA_7_7_OFFSET + BFD_RELOC_NDS32_LO12S2 ENUMDOC - This is a 7 bit offset from the tiny data area pointer. + This is a 12-bit reloc containing the lower 12 bits of an address + then shift left by 2. This is used with lwi,swi... ENUM - BFD_RELOC_V850_TDA_16_16_OFFSET + BFD_RELOC_NDS32_LO12S1 ENUMDOC - This is a 16 bit offset from the tiny data area pointer. -COMMENT + This is a 12-bit reloc containing the lower 12 bits of an address + then shift left by 1. This is used with lhi,shi... ENUM - BFD_RELOC_V850_TDA_4_5_OFFSET + BFD_RELOC_NDS32_LO12S0 ENUMDOC - This is a 5 bit offset (of which only 4 bits are used) from the tiny - data area pointer. + This is a 12-bit reloc containing the lower 12 bits of an address + then shift left by 0. This is used with lbisbi... ENUM - BFD_RELOC_V850_TDA_4_4_OFFSET + BFD_RELOC_NDS32_LO12S0_ORI ENUMDOC - This is a 4 bit offset from the tiny data area pointer. + This is a 12-bit reloc containing the lower 12 bits of an address + then shift left by 0. This is only used with branch relaxations ENUM - BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET + BFD_RELOC_NDS32_SDA15S3 ENUMDOC - This is a 16 bit offset from the short data area pointer, with the - bits placed non-contiguously in the instruction. + This is a 15-bit reloc containing the small data area 18-bit signed offset + and shift left by 3 for use in ldi, sdi... ENUM - BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET + BFD_RELOC_NDS32_SDA15S2 ENUMDOC - This is a 16 bit offset from the zero data area pointer, with the - bits placed non-contiguously in the instruction. + This is a 15-bit reloc containing the small data area 17-bit signed offset + and shift left by 2 for use in lwi, swi... ENUM - BFD_RELOC_V850_CALLT_6_7_OFFSET + BFD_RELOC_NDS32_SDA15S1 ENUMDOC - This is a 6 bit offset from the call table base pointer. + This is a 15-bit reloc containing the small data area 16-bit signed offset + and shift left by 1 for use in lhi, shi... ENUM - BFD_RELOC_V850_CALLT_16_16_OFFSET + BFD_RELOC_NDS32_SDA15S0 ENUMDOC - This is a 16 bit offset from the call table base pointer. + This is a 15-bit reloc containing the small data area 15-bit signed offset + and shift left by 0 for use in lbi, sbi... ENUM - BFD_RELOC_V850_LONGCALL + BFD_RELOC_NDS32_SDA16S3 ENUMDOC - Used for relaxing indirect function calls. + This is a 16-bit reloc containing the small data area 16-bit signed offset + and shift left by 3 ENUM - BFD_RELOC_V850_LONGJUMP + BFD_RELOC_NDS32_SDA17S2 ENUMDOC - Used for relaxing indirect jumps. + This is a 17-bit reloc containing the small data area 17-bit signed offset + and shift left by 2 for use in lwi.gp, swi.gp... ENUM - BFD_RELOC_V850_ALIGN + BFD_RELOC_NDS32_SDA18S1 ENUMDOC - Used to maintain alignment whilst relaxing. + This is a 18-bit reloc containing the small data area 18-bit signed offset + and shift left by 1 for use in lhi.gp, shi.gp... ENUM - BFD_RELOC_V850_LO16_SPLIT_OFFSET + BFD_RELOC_NDS32_SDA19S0 ENUMDOC - This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu - instructions. + This is a 19-bit reloc containing the small data area 19-bit signed offset + and shift left by 0 for use in lbi.gp, sbi.gp... ENUM - BFD_RELOC_MN10300_32_PCREL + BFD_RELOC_NDS32_GOT20 +ENUMX + BFD_RELOC_NDS32_9_PLTREL +ENUMX + BFD_RELOC_NDS32_25_PLTREL +ENUMX + BFD_RELOC_NDS32_COPY +ENUMX + BFD_RELOC_NDS32_GLOB_DAT +ENUMX + BFD_RELOC_NDS32_JMP_SLOT +ENUMX + BFD_RELOC_NDS32_RELATIVE +ENUMX + BFD_RELOC_NDS32_GOTOFF +ENUMX + BFD_RELOC_NDS32_GOTOFF_HI20 +ENUMX + BFD_RELOC_NDS32_GOTOFF_LO12 +ENUMX + BFD_RELOC_NDS32_GOTPC20 +ENUMX + BFD_RELOC_NDS32_GOT_HI20 +ENUMX + BFD_RELOC_NDS32_GOT_LO12 +ENUMX + BFD_RELOC_NDS32_GOTPC_HI20 +ENUMX + BFD_RELOC_NDS32_GOTPC_LO12 ENUMDOC - This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the - instruction. + for PIC ENUM - BFD_RELOC_MN10300_16_PCREL + BFD_RELOC_NDS32_INSN16 +ENUMX + BFD_RELOC_NDS32_LABEL +ENUMX + BFD_RELOC_NDS32_LONGCALL1 +ENUMX + BFD_RELOC_NDS32_LONGCALL2 +ENUMX + BFD_RELOC_NDS32_LONGCALL3 +ENUMX + BFD_RELOC_NDS32_LONGJUMP1 +ENUMX + BFD_RELOC_NDS32_LONGJUMP2 +ENUMX + BFD_RELOC_NDS32_LONGJUMP3 +ENUMX + BFD_RELOC_NDS32_LOADSTORE +ENUMX + BFD_RELOC_NDS32_9_FIXED +ENUMX + BFD_RELOC_NDS32_15_FIXED +ENUMX + BFD_RELOC_NDS32_17_FIXED +ENUMX + BFD_RELOC_NDS32_25_FIXED +ENUMX + BFD_RELOC_NDS32_LONGCALL4 +ENUMX + BFD_RELOC_NDS32_LONGCALL5 +ENUMX + BFD_RELOC_NDS32_LONGCALL6 +ENUMX + BFD_RELOC_NDS32_LONGJUMP4 +ENUMX + BFD_RELOC_NDS32_LONGJUMP5 +ENUMX + BFD_RELOC_NDS32_LONGJUMP6 +ENUMX + BFD_RELOC_NDS32_LONGJUMP7 ENUMDOC - This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the - instruction. - + for relax ENUM - BFD_RELOC_TIC30_LDP + BFD_RELOC_NDS32_PLTREL_HI20 +ENUMX + BFD_RELOC_NDS32_PLTREL_LO12 +ENUMX + BFD_RELOC_NDS32_PLT_GOTREL_HI20 +ENUMX + BFD_RELOC_NDS32_PLT_GOTREL_LO12 ENUMDOC - This is a 8bit DP reloc for the tms320c30, where the most - significant 8 bits of a 24 bit word are placed into the least - significant 8 bits of the opcode. - + for PIC ENUM - BFD_RELOC_TIC54X_PARTLS7 + BFD_RELOC_NDS32_SDA12S2_DP +ENUMX + BFD_RELOC_NDS32_SDA12S2_SP +ENUMX + BFD_RELOC_NDS32_LO12S2_DP +ENUMX + BFD_RELOC_NDS32_LO12S2_SP ENUMDOC - This is a 7bit reloc for the tms320c54x, where the least - significant 7 bits of a 16 bit word are placed into the least - significant 7 bits of the opcode. - + for floating point ENUM - BFD_RELOC_TIC54X_PARTMS9 + BFD_RELOC_NDS32_DWARF2_OP1 +ENUMX + BFD_RELOC_NDS32_DWARF2_OP2 +ENUMX + BFD_RELOC_NDS32_DWARF2_LEB ENUMDOC - This is a 9bit DP reloc for the tms320c54x, where the most - significant 9 bits of a 16 bit word are placed into the least - significant 9 bits of the opcode. - + for dwarf2 debug_line. ENUM - BFD_RELOC_TIC54X_23 + BFD_RELOC_NDS32_UPDATE_TA ENUMDOC - This is an extended address 23-bit reloc for the tms320c54x. - + for eliminate 16-bit instructions ENUM - BFD_RELOC_TIC54X_16_OF_23 + BFD_RELOC_NDS32_PLT_GOTREL_LO20 +ENUMX + BFD_RELOC_NDS32_PLT_GOTREL_LO15 +ENUMX + BFD_RELOC_NDS32_PLT_GOTREL_LO19 +ENUMX + BFD_RELOC_NDS32_GOT_LO15 +ENUMX + BFD_RELOC_NDS32_GOT_LO19 +ENUMX + BFD_RELOC_NDS32_GOTOFF_LO15 +ENUMX + BFD_RELOC_NDS32_GOTOFF_LO19 +ENUMX + BFD_RELOC_NDS32_GOT15S2 +ENUMX + BFD_RELOC_NDS32_GOT17S2 ENUMDOC - This is a 16-bit reloc for the tms320c54x, where the least - significant 16 bits of a 23-bit extended address are placed into - the opcode. - + for PIC object relaxation ENUM - BFD_RELOC_TIC54X_MS7_OF_23 + BFD_RELOC_NDS32_5 ENUMDOC - This is a reloc for the tms320c54x, where the most - significant 7 bits of a 23-bit extended address are placed into - the opcode. - + NDS32 relocs. + This is a 5 bit absolute address. ENUM - BFD_RELOC_FR30_48 + BFD_RELOC_NDS32_10_UPCREL ENUMDOC - This is a 48 bit reloc for the FR30 that stores 32 bits. + This is a 10-bit unsigned pc-relative reloc with the right 1 bit assumed to be 0. ENUM - BFD_RELOC_FR30_20 + BFD_RELOC_NDS32_SDA_FP7U2_RELA ENUMDOC - This is a 32 bit reloc for the FR30 that stores 20 bits split up into - two sections. -ENUM - BFD_RELOC_FR30_6_IN_4 -ENUMDOC - This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in - 4 bits. -ENUM - BFD_RELOC_FR30_8_IN_8 -ENUMDOC - This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset - into 8 bits. -ENUM - BFD_RELOC_FR30_9_IN_8 -ENUMDOC - This is a 16 bit reloc for the FR30 that stores a 9 bit short offset - into 8 bits. -ENUM - BFD_RELOC_FR30_10_IN_8 -ENUMDOC - This is a 16 bit reloc for the FR30 that stores a 10 bit word offset - into 8 bits. -ENUM - BFD_RELOC_FR30_9_PCREL -ENUMDOC - This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative - short offset into 8 bits. -ENUM - BFD_RELOC_FR30_12_PCREL -ENUMDOC - This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative - short offset into 11 bits. - -ENUM - BFD_RELOC_MCORE_PCREL_IMM8BY4 -ENUMX - BFD_RELOC_MCORE_PCREL_IMM11BY2 -ENUMX - BFD_RELOC_MCORE_PCREL_IMM4BY2 -ENUMX - BFD_RELOC_MCORE_PCREL_32 -ENUMX - BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 -ENUMX - BFD_RELOC_MCORE_RVA -ENUMDOC - Motorola Mcore relocations. - + If fp were omitted, fp can used as another gp. ENUM - BFD_RELOC_MEP_8 -ENUMX - BFD_RELOC_MEP_16 -ENUMX - BFD_RELOC_MEP_32 + BFD_RELOC_NDS32_RELAX_ENTRY ENUMX - BFD_RELOC_MEP_PCREL8A2 + BFD_RELOC_NDS32_GOT_SUFF ENUMX - BFD_RELOC_MEP_PCREL12A2 + BFD_RELOC_NDS32_GOTOFF_SUFF ENUMX - BFD_RELOC_MEP_PCREL17A2 + BFD_RELOC_NDS32_PLT_GOT_SUFF ENUMX - BFD_RELOC_MEP_PCREL24A2 + BFD_RELOC_NDS32_MULCALL_SUFF ENUMX - BFD_RELOC_MEP_PCABS24A2 + BFD_RELOC_NDS32_PTR ENUMX - BFD_RELOC_MEP_LOW16 + BFD_RELOC_NDS32_PTR_COUNT ENUMX - BFD_RELOC_MEP_HI16U + BFD_RELOC_NDS32_PTR_RESOLVED ENUMX - BFD_RELOC_MEP_HI16S + BFD_RELOC_NDS32_PLTBLOCK ENUMX - BFD_RELOC_MEP_GPREL + BFD_RELOC_NDS32_RELAX_REGION_BEGIN ENUMX - BFD_RELOC_MEP_TPREL + BFD_RELOC_NDS32_RELAX_REGION_END ENUMX - BFD_RELOC_MEP_TPREL7 + BFD_RELOC_NDS32_MINUEND ENUMX - BFD_RELOC_MEP_TPREL7A2 + BFD_RELOC_NDS32_SUBTRAHEND ENUMX - BFD_RELOC_MEP_TPREL7A4 + BFD_RELOC_NDS32_DIFF8 ENUMX - BFD_RELOC_MEP_UIMM24 + BFD_RELOC_NDS32_DIFF16 ENUMX - BFD_RELOC_MEP_ADDR24A4 + BFD_RELOC_NDS32_DIFF32 ENUMX - BFD_RELOC_MEP_GNU_VTINHERIT + BFD_RELOC_NDS32_DIFF_ULEB128 ENUMX - BFD_RELOC_MEP_GNU_VTENTRY + BFD_RELOC_NDS32_EMPTY ENUMDOC - Toshiba Media Processor Relocations. -COMMENT - + relaxation relative relocation types ENUM - BFD_RELOC_MMIX_GETA + BFD_RELOC_NDS32_25_ABS +ENUMDOC + This is a 25 bit absolute address. +ENUM + BFD_RELOC_NDS32_DATA ENUMX - BFD_RELOC_MMIX_GETA_1 + BFD_RELOC_NDS32_TRAN ENUMX - BFD_RELOC_MMIX_GETA_2 + BFD_RELOC_NDS32_17IFC_PCREL ENUMX - BFD_RELOC_MMIX_GETA_3 + BFD_RELOC_NDS32_10IFCU_PCREL ENUMDOC - These are relocations for the GETA instruction. + For ex9 and ifc using. ENUM - BFD_RELOC_MMIX_CBRANCH + BFD_RELOC_NDS32_TPOFF ENUMX - BFD_RELOC_MMIX_CBRANCH_J + BFD_RELOC_NDS32_TLS_LE_HI20 ENUMX - BFD_RELOC_MMIX_CBRANCH_1 + BFD_RELOC_NDS32_TLS_LE_LO12 ENUMX - BFD_RELOC_MMIX_CBRANCH_2 + BFD_RELOC_NDS32_TLS_LE_ADD ENUMX - BFD_RELOC_MMIX_CBRANCH_3 -ENUMDOC - These are relocations for a conditional branch instruction. -ENUM - BFD_RELOC_MMIX_PUSHJ + BFD_RELOC_NDS32_TLS_LE_LS ENUMX - BFD_RELOC_MMIX_PUSHJ_1 + BFD_RELOC_NDS32_GOTTPOFF ENUMX - BFD_RELOC_MMIX_PUSHJ_2 + BFD_RELOC_NDS32_TLS_IE_HI20 ENUMX - BFD_RELOC_MMIX_PUSHJ_3 + BFD_RELOC_NDS32_TLS_IE_LO12S2 ENUMX - BFD_RELOC_MMIX_PUSHJ_STUBBABLE -ENUMDOC - These are relocations for the PUSHJ instruction. -ENUM - BFD_RELOC_MMIX_JMP + BFD_RELOC_NDS32_TLS_TPOFF ENUMX - BFD_RELOC_MMIX_JMP_1 + BFD_RELOC_NDS32_TLS_LE_20 ENUMX - BFD_RELOC_MMIX_JMP_2 + BFD_RELOC_NDS32_TLS_LE_15S0 ENUMX - BFD_RELOC_MMIX_JMP_3 + BFD_RELOC_NDS32_TLS_LE_15S1 +ENUMX + BFD_RELOC_NDS32_TLS_LE_15S2 ENUMDOC - These are relocations for the JMP instruction. + For TLS. + + ENUM - BFD_RELOC_MMIX_ADDR19 + BFD_RELOC_V850_9_PCREL ENUMDOC - This is a relocation for a relative address as in a GETA instruction or - a branch. + This is a 9-bit reloc ENUM - BFD_RELOC_MMIX_ADDR27 + BFD_RELOC_V850_22_PCREL ENUMDOC - This is a relocation for a relative address as in a JMP instruction. + This is a 22-bit reloc + ENUM - BFD_RELOC_MMIX_REG_OR_BYTE + BFD_RELOC_V850_SDA_16_16_OFFSET ENUMDOC - This is a relocation for an instruction field that may be a general - register or a value 0..255. + This is a 16 bit offset from the short data area pointer. ENUM - BFD_RELOC_MMIX_REG + BFD_RELOC_V850_SDA_15_16_OFFSET ENUMDOC - This is a relocation for an instruction field that may be a general - register. + This is a 16 bit offset (of which only 15 bits are used) from the + short data area pointer. ENUM - BFD_RELOC_MMIX_BASE_PLUS_OFFSET + BFD_RELOC_V850_ZDA_16_16_OFFSET ENUMDOC - This is a relocation for two instruction fields holding a register and - an offset, the equivalent of the relocation. + This is a 16 bit offset from the zero data area pointer. ENUM - BFD_RELOC_MMIX_LOCAL + BFD_RELOC_V850_ZDA_15_16_OFFSET ENUMDOC - This relocation is an assertion that the expression is not allocated as - a global register. It does not modify contents. - + This is a 16 bit offset (of which only 15 bits are used) from the + zero data area pointer. ENUM - BFD_RELOC_AVR_7_PCREL + BFD_RELOC_V850_TDA_6_8_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores 8 bit pc relative - short offset into 7 bits. + This is an 8 bit offset (of which only 6 bits are used) from the + tiny data area pointer. ENUM - BFD_RELOC_AVR_13_PCREL + BFD_RELOC_V850_TDA_7_8_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores 13 bit pc relative - short offset into 12 bits. + This is an 8bit offset (of which only 7 bits are used) from the tiny + data area pointer. ENUM - BFD_RELOC_AVR_16_PM + BFD_RELOC_V850_TDA_7_7_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores 17 bit value (usually - program memory address) into 16 bits. + This is a 7 bit offset from the tiny data area pointer. ENUM - BFD_RELOC_AVR_LO8_LDI + BFD_RELOC_V850_TDA_16_16_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores 8 bit value (usually - data memory address) into 8 bit immediate value of LDI insn. + This is a 16 bit offset from the tiny data area pointer. +COMMENT ENUM - BFD_RELOC_AVR_HI8_LDI + BFD_RELOC_V850_TDA_4_5_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit - of data memory address) into 8 bit immediate value of LDI insn. + This is a 5 bit offset (of which only 4 bits are used) from the tiny + data area pointer. ENUM - BFD_RELOC_AVR_HH8_LDI + BFD_RELOC_V850_TDA_4_4_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit - of program memory address) into 8 bit immediate value of LDI insn. + This is a 4 bit offset from the tiny data area pointer. ENUM - BFD_RELOC_AVR_MS8_LDI + BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit - of 32 bit value) into 8 bit immediate value of LDI insn. + This is a 16 bit offset from the short data area pointer, with the + bits placed non-contiguously in the instruction. ENUM - BFD_RELOC_AVR_LO8_LDI_NEG + BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (usually data memory address) into 8 bit immediate value of SUBI insn. + This is a 16 bit offset from the zero data area pointer, with the + bits placed non-contiguously in the instruction. ENUM - BFD_RELOC_AVR_HI8_LDI_NEG + BFD_RELOC_V850_CALLT_6_7_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (high 8 bit of data memory address) into 8 bit immediate value of - SUBI insn. + This is a 6 bit offset from the call table base pointer. ENUM - BFD_RELOC_AVR_HH8_LDI_NEG + BFD_RELOC_V850_CALLT_16_16_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (most high 8 bit of program memory address) into 8 bit immediate value - of LDI or SUBI insn. + This is a 16 bit offset from the call table base pointer. ENUM - BFD_RELOC_AVR_MS8_LDI_NEG + BFD_RELOC_V850_LONGCALL ENUMDOC - This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb - of 32 bit value) into 8 bit immediate value of LDI insn. + Used for relaxing indirect function calls. ENUM - BFD_RELOC_AVR_LO8_LDI_PM + BFD_RELOC_V850_LONGJUMP ENUMDOC - This is a 16 bit reloc for the AVR that stores 8 bit value (usually - command address) into 8 bit immediate value of LDI insn. + Used for relaxing indirect jumps. ENUM - BFD_RELOC_AVR_LO8_LDI_GS + BFD_RELOC_V850_ALIGN ENUMDOC - This is a 16 bit reloc for the AVR that stores 8 bit value - (command address) into 8 bit immediate value of LDI insn. If the address - is beyond the 128k boundary, the linker inserts a jump stub for this reloc - in the lower 128k. + Used to maintain alignment whilst relaxing. ENUM - BFD_RELOC_AVR_HI8_LDI_PM + BFD_RELOC_V850_LO16_SPLIT_OFFSET ENUMDOC - This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit - of command address) into 8 bit immediate value of LDI insn. + This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu + instructions. ENUM - BFD_RELOC_AVR_HI8_LDI_GS + BFD_RELOC_V850_16_PCREL ENUMDOC - This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit - of command address) into 8 bit immediate value of LDI insn. If the address - is beyond the 128k boundary, the linker inserts a jump stub for this reloc - below 128k. + This is a 16-bit reloc. ENUM - BFD_RELOC_AVR_HH8_LDI_PM + BFD_RELOC_V850_17_PCREL ENUMDOC - This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit - of command address) into 8 bit immediate value of LDI insn. + This is a 17-bit reloc. ENUM - BFD_RELOC_AVR_LO8_LDI_PM_NEG + BFD_RELOC_V850_23 ENUMDOC - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (usually command address) into 8 bit immediate value of SUBI insn. + This is a 23-bit reloc. ENUM - BFD_RELOC_AVR_HI8_LDI_PM_NEG + BFD_RELOC_V850_32_PCREL ENUMDOC - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (high 8 bit of 16 bit command address) into 8 bit immediate value - of SUBI insn. + This is a 32-bit reloc. ENUM - BFD_RELOC_AVR_HH8_LDI_PM_NEG + BFD_RELOC_V850_32_ABS ENUMDOC - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (high 6 bit of 22 bit command address) into 8 bit immediate - value of SUBI insn. + This is a 32-bit reloc. ENUM - BFD_RELOC_AVR_CALL + BFD_RELOC_V850_16_SPLIT_OFFSET ENUMDOC - This is a 32 bit reloc for the AVR that stores 23 bit value - into 22 bits. + This is a 16-bit reloc. ENUM - BFD_RELOC_AVR_LDI + BFD_RELOC_V850_16_S1 ENUMDOC - This is a 16 bit reloc for the AVR that stores all needed bits - for absolute addressing with ldi with overflow check to linktime + This is a 16-bit reloc. ENUM - BFD_RELOC_AVR_6 + BFD_RELOC_V850_LO16_S1 ENUMDOC - This is a 6 bit reloc for the AVR that stores offset for ldd/std - instructions + Low 16 bits. 16 bit shifted by 1. ENUM - BFD_RELOC_AVR_6_ADIW + BFD_RELOC_V850_CALLT_15_16_OFFSET ENUMDOC - This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw - instructions - + This is a 16 bit offset from the call table base pointer. ENUM - BFD_RELOC_390_12 + BFD_RELOC_V850_32_GOTPCREL ENUMDOC - Direct 12 bit. + DSO relocations. ENUM - BFD_RELOC_390_GOT12 + BFD_RELOC_V850_16_GOT ENUMDOC - 12 bit GOT offset. + DSO relocations. ENUM - BFD_RELOC_390_PLT32 + BFD_RELOC_V850_32_GOT ENUMDOC - 32 bit PC relative PLT address. + DSO relocations. ENUM - BFD_RELOC_390_COPY -ENUMDOC - Copy symbol at runtime. -ENUM - BFD_RELOC_390_GLOB_DAT -ENUMDOC - Create GOT entry. -ENUM - BFD_RELOC_390_JMP_SLOT -ENUMDOC - Create PLT entry. -ENUM - BFD_RELOC_390_RELATIVE -ENUMDOC - Adjust by program base. -ENUM - BFD_RELOC_390_GOTPC -ENUMDOC - 32 bit PC relative offset to GOT. -ENUM - BFD_RELOC_390_GOT16 -ENUMDOC - 16 bit GOT offset. -ENUM - BFD_RELOC_390_PC16DBL -ENUMDOC - PC relative 16 bit shifted by 1. -ENUM - BFD_RELOC_390_PLT16DBL + BFD_RELOC_V850_22_PLT_PCREL ENUMDOC - 16 bit PC rel. PLT shifted by 1. + DSO relocations. ENUM - BFD_RELOC_390_PC32DBL + BFD_RELOC_V850_32_PLT_PCREL ENUMDOC - PC relative 32 bit shifted by 1. + DSO relocations. ENUM - BFD_RELOC_390_PLT32DBL + BFD_RELOC_V850_COPY ENUMDOC - 32 bit PC rel. PLT shifted by 1. + DSO relocations. ENUM - BFD_RELOC_390_GOTPCDBL + BFD_RELOC_V850_GLOB_DAT ENUMDOC - 32 bit PC rel. GOT shifted by 1. + DSO relocations. ENUM - BFD_RELOC_390_GOT64 + BFD_RELOC_V850_JMP_SLOT ENUMDOC - 64 bit GOT offset. + DSO relocations. ENUM - BFD_RELOC_390_PLT64 + BFD_RELOC_V850_RELATIVE ENUMDOC - 64 bit PC relative PLT address. + DSO relocations. ENUM - BFD_RELOC_390_GOTENT + BFD_RELOC_V850_16_GOTOFF ENUMDOC - 32 bit rel. offset to GOT entry. + DSO relocations. ENUM - BFD_RELOC_390_GOTOFF64 + BFD_RELOC_V850_32_GOTOFF ENUMDOC - 64 bit offset to GOT. + DSO relocations. ENUM - BFD_RELOC_390_GOTPLT12 + BFD_RELOC_V850_CODE ENUMDOC - 12-bit offset to symbol-entry within GOT, with PLT handling. + start code. ENUM - BFD_RELOC_390_GOTPLT16 + BFD_RELOC_V850_DATA ENUMDOC - 16-bit offset to symbol-entry within GOT, with PLT handling. + start data in text. + ENUM - BFD_RELOC_390_GOTPLT32 + BFD_RELOC_TIC30_LDP ENUMDOC - 32-bit offset to symbol-entry within GOT, with PLT handling. + This is a 8bit DP reloc for the tms320c30, where the most + significant 8 bits of a 24 bit word are placed into the least + significant 8 bits of the opcode. + ENUM - BFD_RELOC_390_GOTPLT64 + BFD_RELOC_TIC54X_PARTLS7 ENUMDOC - 64-bit offset to symbol-entry within GOT, with PLT handling. + This is a 7bit reloc for the tms320c54x, where the least + significant 7 bits of a 16 bit word are placed into the least + significant 7 bits of the opcode. + ENUM - BFD_RELOC_390_GOTPLTENT + BFD_RELOC_TIC54X_PARTMS9 ENUMDOC - 32-bit rel. offset to symbol-entry within GOT, with PLT handling. + This is a 9bit DP reloc for the tms320c54x, where the most + significant 9 bits of a 16 bit word are placed into the least + significant 9 bits of the opcode. + ENUM - BFD_RELOC_390_PLTOFF16 + BFD_RELOC_TIC54X_23 ENUMDOC - 16-bit rel. offset from the GOT to a PLT entry. + This is an extended address 23-bit reloc for the tms320c54x. + ENUM - BFD_RELOC_390_PLTOFF32 + BFD_RELOC_TIC54X_16_OF_23 ENUMDOC - 32-bit rel. offset from the GOT to a PLT entry. + This is a 16-bit reloc for the tms320c54x, where the least + significant 16 bits of a 23-bit extended address are placed into + the opcode. + ENUM - BFD_RELOC_390_PLTOFF64 + BFD_RELOC_TIC54X_MS7_OF_23 ENUMDOC - 64-bit rel. offset from the GOT to a PLT entry. + This is a reloc for the tms320c54x, where the most + significant 7 bits of a 23-bit extended address are placed into + the opcode. ENUM - BFD_RELOC_390_TLS_LOAD + BFD_RELOC_C6000_PCR_S21 ENUMX - BFD_RELOC_390_TLS_GDCALL + BFD_RELOC_C6000_PCR_S12 ENUMX - BFD_RELOC_390_TLS_LDCALL + BFD_RELOC_C6000_PCR_S10 ENUMX - BFD_RELOC_390_TLS_GD32 + BFD_RELOC_C6000_PCR_S7 ENUMX - BFD_RELOC_390_TLS_GD64 + BFD_RELOC_C6000_ABS_S16 ENUMX - BFD_RELOC_390_TLS_GOTIE12 + BFD_RELOC_C6000_ABS_L16 ENUMX - BFD_RELOC_390_TLS_GOTIE32 + BFD_RELOC_C6000_ABS_H16 ENUMX - BFD_RELOC_390_TLS_GOTIE64 + BFD_RELOC_C6000_SBR_U15_B ENUMX - BFD_RELOC_390_TLS_LDM32 + BFD_RELOC_C6000_SBR_U15_H ENUMX - BFD_RELOC_390_TLS_LDM64 + BFD_RELOC_C6000_SBR_U15_W ENUMX - BFD_RELOC_390_TLS_IE32 + BFD_RELOC_C6000_SBR_S16 ENUMX - BFD_RELOC_390_TLS_IE64 + BFD_RELOC_C6000_SBR_L16_B ENUMX - BFD_RELOC_390_TLS_IEENT + BFD_RELOC_C6000_SBR_L16_H ENUMX - BFD_RELOC_390_TLS_LE32 + BFD_RELOC_C6000_SBR_L16_W ENUMX - BFD_RELOC_390_TLS_LE64 + BFD_RELOC_C6000_SBR_H16_B ENUMX - BFD_RELOC_390_TLS_LDO32 + BFD_RELOC_C6000_SBR_H16_H ENUMX - BFD_RELOC_390_TLS_LDO64 + BFD_RELOC_C6000_SBR_H16_W ENUMX - BFD_RELOC_390_TLS_DTPMOD + BFD_RELOC_C6000_SBR_GOT_U15_W ENUMX - BFD_RELOC_390_TLS_DTPOFF + BFD_RELOC_C6000_SBR_GOT_L16_W ENUMX - BFD_RELOC_390_TLS_TPOFF -ENUMDOC - s390 tls relocations. - -ENUM - BFD_RELOC_390_20 + BFD_RELOC_C6000_SBR_GOT_H16_W ENUMX - BFD_RELOC_390_GOT20 + BFD_RELOC_C6000_DSBT_INDEX ENUMX - BFD_RELOC_390_GOTPLT20 + BFD_RELOC_C6000_PREL31 ENUMX - BFD_RELOC_390_TLS_GOTIE20 -ENUMDOC - Long displacement extension. - -ENUM - BFD_RELOC_SCORE_DUMMY1 -ENUMDOC - Score relocations -ENUM - BFD_RELOC_SCORE_GPREL15 -ENUMDOC - Low 16 bit for load/store -ENUM - BFD_RELOC_SCORE_DUMMY2 + BFD_RELOC_C6000_COPY ENUMX - BFD_RELOC_SCORE_JMP -ENUMDOC - This is a 24-bit reloc with the right 1 bit assumed to be 0 -ENUM - BFD_RELOC_SCORE_BRANCH -ENUMDOC - This is a 19-bit reloc with the right 1 bit assumed to be 0 -ENUM - BFD_RELOC_SCORE16_JMP -ENUMDOC - This is a 11-bit reloc with the right 1 bit assumed to be 0 -ENUM - BFD_RELOC_SCORE16_BRANCH -ENUMDOC - This is a 8-bit reloc with the right 1 bit assumed to be 0 -ENUM - BFD_RELOC_SCORE_GOT15 + BFD_RELOC_C6000_JUMP_SLOT ENUMX - BFD_RELOC_SCORE_GOT_LO16 + BFD_RELOC_C6000_EHTYPE ENUMX - BFD_RELOC_SCORE_CALL15 + BFD_RELOC_C6000_PCR_H16 ENUMX - BFD_RELOC_SCORE_DUMMY_HI16 -ENUMDOC - Undocumented Score relocs - -ENUM - BFD_RELOC_IP2K_FR9 -ENUMDOC - Scenix IP2K - 9-bit register number / data address -ENUM - BFD_RELOC_IP2K_BANK + BFD_RELOC_C6000_PCR_L16 +ENUMX + BFD_RELOC_C6000_ALIGN +ENUMX + BFD_RELOC_C6000_FPHEAD +ENUMX + BFD_RELOC_C6000_NOCMP ENUMDOC - Scenix IP2K - 4-bit register/data bank number + TMS320C6000 relocations. + ENUM - BFD_RELOC_IP2K_ADDR16CJP + BFD_RELOC_FR30_48 ENUMDOC - Scenix IP2K - low 13 bits of instruction word address + This is a 48 bit reloc for the FR30 that stores 32 bits. ENUM - BFD_RELOC_IP2K_PAGE3 + BFD_RELOC_FR30_20 ENUMDOC - Scenix IP2K - high 3 bits of instruction word address + This is a 32 bit reloc for the FR30 that stores 20 bits split up into + two sections. ENUM - BFD_RELOC_IP2K_LO8DATA -ENUMX - BFD_RELOC_IP2K_HI8DATA -ENUMX - BFD_RELOC_IP2K_EX8DATA + BFD_RELOC_FR30_6_IN_4 ENUMDOC - Scenix IP2K - ext/low/high 8 bits of data address + This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in + 4 bits. ENUM - BFD_RELOC_IP2K_LO8INSN -ENUMX - BFD_RELOC_IP2K_HI8INSN + BFD_RELOC_FR30_8_IN_8 ENUMDOC - Scenix IP2K - low/high 8 bits of instruction word address + This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset + into 8 bits. ENUM - BFD_RELOC_IP2K_PC_SKIP + BFD_RELOC_FR30_9_IN_8 ENUMDOC - Scenix IP2K - even/odd PC modifier to modify snb pcl.0 + This is a 16 bit reloc for the FR30 that stores a 9 bit short offset + into 8 bits. ENUM - BFD_RELOC_IP2K_TEXT + BFD_RELOC_FR30_10_IN_8 ENUMDOC - Scenix IP2K - 16 bit word address in text section. + This is a 16 bit reloc for the FR30 that stores a 10 bit word offset + into 8 bits. ENUM - BFD_RELOC_IP2K_FR_OFFSET + BFD_RELOC_FR30_9_PCREL ENUMDOC - Scenix IP2K - 7-bit sp or dp offset + This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative + short offset into 8 bits. ENUM - BFD_RELOC_VPE4KMATH_DATA -ENUMX - BFD_RELOC_VPE4KMATH_INSN + BFD_RELOC_FR30_12_PCREL ENUMDOC - Scenix VPE4K coprocessor - data/insn-space addressing + This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative + short offset into 11 bits. ENUM - BFD_RELOC_VTABLE_INHERIT + BFD_RELOC_MCORE_PCREL_IMM8BY4 ENUMX - BFD_RELOC_VTABLE_ENTRY + BFD_RELOC_MCORE_PCREL_IMM11BY2 +ENUMX + BFD_RELOC_MCORE_PCREL_IMM4BY2 +ENUMX + BFD_RELOC_MCORE_PCREL_32 +ENUMX + BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 +ENUMX + BFD_RELOC_MCORE_RVA ENUMDOC - These two relocations are used by the linker to determine which of - the entries in a C++ virtual function table are actually used. When - the --gc-sections option is given, the linker will zero out the entries - that are not used, so that the code for those functions need not be - included in the output. - - VTABLE_INHERIT is a zero-space relocation used to describe to the - linker the inheritance tree of a C++ virtual function table. The - relocation's symbol should be the parent class' vtable, and the - relocation should be located at the child vtable. - - VTABLE_ENTRY is a zero-space relocation that describes the use of a - virtual function table entry. The reloc's symbol should refer to the - table of the class mentioned in the code. Off of that base, an offset - describes the entry that is being used. For Rela hosts, this offset - is stored in the reloc's addend. For Rel hosts, we are forced to put - this offset in the reloc's section offset. + Motorola Mcore relocations. ENUM - BFD_RELOC_IA64_IMM14 + BFD_RELOC_MEP_8 ENUMX - BFD_RELOC_IA64_IMM22 + BFD_RELOC_MEP_16 ENUMX - BFD_RELOC_IA64_IMM64 + BFD_RELOC_MEP_32 ENUMX - BFD_RELOC_IA64_DIR32MSB + BFD_RELOC_MEP_PCREL8A2 ENUMX - BFD_RELOC_IA64_DIR32LSB + BFD_RELOC_MEP_PCREL12A2 ENUMX - BFD_RELOC_IA64_DIR64MSB + BFD_RELOC_MEP_PCREL17A2 ENUMX - BFD_RELOC_IA64_DIR64LSB + BFD_RELOC_MEP_PCREL24A2 ENUMX - BFD_RELOC_IA64_GPREL22 + BFD_RELOC_MEP_PCABS24A2 ENUMX - BFD_RELOC_IA64_GPREL64I + BFD_RELOC_MEP_LOW16 ENUMX - BFD_RELOC_IA64_GPREL32MSB + BFD_RELOC_MEP_HI16U ENUMX - BFD_RELOC_IA64_GPREL32LSB + BFD_RELOC_MEP_HI16S ENUMX - BFD_RELOC_IA64_GPREL64MSB + BFD_RELOC_MEP_GPREL ENUMX - BFD_RELOC_IA64_GPREL64LSB + BFD_RELOC_MEP_TPREL ENUMX - BFD_RELOC_IA64_LTOFF22 + BFD_RELOC_MEP_TPREL7 ENUMX - BFD_RELOC_IA64_LTOFF64I + BFD_RELOC_MEP_TPREL7A2 ENUMX - BFD_RELOC_IA64_PLTOFF22 + BFD_RELOC_MEP_TPREL7A4 ENUMX - BFD_RELOC_IA64_PLTOFF64I + BFD_RELOC_MEP_UIMM24 ENUMX - BFD_RELOC_IA64_PLTOFF64MSB + BFD_RELOC_MEP_ADDR24A4 ENUMX - BFD_RELOC_IA64_PLTOFF64LSB + BFD_RELOC_MEP_GNU_VTINHERIT ENUMX - BFD_RELOC_IA64_FPTR64I + BFD_RELOC_MEP_GNU_VTENTRY +ENUMDOC + Toshiba Media Processor Relocations. +COMMENT + +ENUM + BFD_RELOC_METAG_HIADDR16 ENUMX - BFD_RELOC_IA64_FPTR32MSB + BFD_RELOC_METAG_LOADDR16 ENUMX - BFD_RELOC_IA64_FPTR32LSB + BFD_RELOC_METAG_RELBRANCH ENUMX - BFD_RELOC_IA64_FPTR64MSB + BFD_RELOC_METAG_GETSETOFF ENUMX - BFD_RELOC_IA64_FPTR64LSB + BFD_RELOC_METAG_HIOG ENUMX - BFD_RELOC_IA64_PCREL21B + BFD_RELOC_METAG_LOOG ENUMX - BFD_RELOC_IA64_PCREL21BI + BFD_RELOC_METAG_REL8 ENUMX - BFD_RELOC_IA64_PCREL21M + BFD_RELOC_METAG_REL16 ENUMX - BFD_RELOC_IA64_PCREL21F + BFD_RELOC_METAG_HI16_GOTOFF ENUMX - BFD_RELOC_IA64_PCREL22 + BFD_RELOC_METAG_LO16_GOTOFF ENUMX - BFD_RELOC_IA64_PCREL60B + BFD_RELOC_METAG_GETSET_GOTOFF ENUMX - BFD_RELOC_IA64_PCREL64I + BFD_RELOC_METAG_GETSET_GOT ENUMX - BFD_RELOC_IA64_PCREL32MSB + BFD_RELOC_METAG_HI16_GOTPC ENUMX - BFD_RELOC_IA64_PCREL32LSB + BFD_RELOC_METAG_LO16_GOTPC ENUMX - BFD_RELOC_IA64_PCREL64MSB + BFD_RELOC_METAG_HI16_PLT ENUMX - BFD_RELOC_IA64_PCREL64LSB + BFD_RELOC_METAG_LO16_PLT ENUMX - BFD_RELOC_IA64_LTOFF_FPTR22 + BFD_RELOC_METAG_RELBRANCH_PLT ENUMX - BFD_RELOC_IA64_LTOFF_FPTR64I + BFD_RELOC_METAG_GOTOFF ENUMX - BFD_RELOC_IA64_LTOFF_FPTR32MSB + BFD_RELOC_METAG_PLT ENUMX - BFD_RELOC_IA64_LTOFF_FPTR32LSB + BFD_RELOC_METAG_COPY ENUMX - BFD_RELOC_IA64_LTOFF_FPTR64MSB + BFD_RELOC_METAG_JMP_SLOT +ENUMX + BFD_RELOC_METAG_RELATIVE +ENUMX + BFD_RELOC_METAG_GLOB_DAT +ENUMX + BFD_RELOC_METAG_TLS_GD +ENUMX + BFD_RELOC_METAG_TLS_LDM +ENUMX + BFD_RELOC_METAG_TLS_LDO_HI16 +ENUMX + BFD_RELOC_METAG_TLS_LDO_LO16 +ENUMX + BFD_RELOC_METAG_TLS_LDO +ENUMX + BFD_RELOC_METAG_TLS_IE +ENUMX + BFD_RELOC_METAG_TLS_IENONPIC +ENUMX + BFD_RELOC_METAG_TLS_IENONPIC_HI16 +ENUMX + BFD_RELOC_METAG_TLS_IENONPIC_LO16 +ENUMX + BFD_RELOC_METAG_TLS_TPOFF +ENUMX + BFD_RELOC_METAG_TLS_DTPMOD +ENUMX + BFD_RELOC_METAG_TLS_DTPOFF +ENUMX + BFD_RELOC_METAG_TLS_LE +ENUMX + BFD_RELOC_METAG_TLS_LE_HI16 +ENUMX + BFD_RELOC_METAG_TLS_LE_LO16 +ENUMDOC + Imagination Technologies Meta relocations. + +ENUM + BFD_RELOC_MMIX_GETA +ENUMX + BFD_RELOC_MMIX_GETA_1 +ENUMX + BFD_RELOC_MMIX_GETA_2 +ENUMX + BFD_RELOC_MMIX_GETA_3 +ENUMDOC + These are relocations for the GETA instruction. +ENUM + BFD_RELOC_MMIX_CBRANCH +ENUMX + BFD_RELOC_MMIX_CBRANCH_J +ENUMX + BFD_RELOC_MMIX_CBRANCH_1 +ENUMX + BFD_RELOC_MMIX_CBRANCH_2 +ENUMX + BFD_RELOC_MMIX_CBRANCH_3 +ENUMDOC + These are relocations for a conditional branch instruction. +ENUM + BFD_RELOC_MMIX_PUSHJ +ENUMX + BFD_RELOC_MMIX_PUSHJ_1 +ENUMX + BFD_RELOC_MMIX_PUSHJ_2 +ENUMX + BFD_RELOC_MMIX_PUSHJ_3 +ENUMX + BFD_RELOC_MMIX_PUSHJ_STUBBABLE +ENUMDOC + These are relocations for the PUSHJ instruction. +ENUM + BFD_RELOC_MMIX_JMP +ENUMX + BFD_RELOC_MMIX_JMP_1 +ENUMX + BFD_RELOC_MMIX_JMP_2 +ENUMX + BFD_RELOC_MMIX_JMP_3 +ENUMDOC + These are relocations for the JMP instruction. +ENUM + BFD_RELOC_MMIX_ADDR19 +ENUMDOC + This is a relocation for a relative address as in a GETA instruction or + a branch. +ENUM + BFD_RELOC_MMIX_ADDR27 +ENUMDOC + This is a relocation for a relative address as in a JMP instruction. +ENUM + BFD_RELOC_MMIX_REG_OR_BYTE +ENUMDOC + This is a relocation for an instruction field that may be a general + register or a value 0..255. +ENUM + BFD_RELOC_MMIX_REG +ENUMDOC + This is a relocation for an instruction field that may be a general + register. +ENUM + BFD_RELOC_MMIX_BASE_PLUS_OFFSET +ENUMDOC + This is a relocation for two instruction fields holding a register and + an offset, the equivalent of the relocation. +ENUM + BFD_RELOC_MMIX_LOCAL +ENUMDOC + This relocation is an assertion that the expression is not allocated as + a global register. It does not modify contents. + +ENUM + BFD_RELOC_AVR_7_PCREL +ENUMDOC + This is a 16 bit reloc for the AVR that stores 8 bit pc relative + short offset into 7 bits. +ENUM + BFD_RELOC_AVR_13_PCREL +ENUMDOC + This is a 16 bit reloc for the AVR that stores 13 bit pc relative + short offset into 12 bits. +ENUM + BFD_RELOC_AVR_16_PM +ENUMDOC + This is a 16 bit reloc for the AVR that stores 17 bit value (usually + program memory address) into 16 bits. +ENUM + BFD_RELOC_AVR_LO8_LDI +ENUMDOC + This is a 16 bit reloc for the AVR that stores 8 bit value (usually + data memory address) into 8 bit immediate value of LDI insn. +ENUM + BFD_RELOC_AVR_HI8_LDI +ENUMDOC + This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit + of data memory address) into 8 bit immediate value of LDI insn. +ENUM + BFD_RELOC_AVR_HH8_LDI +ENUMDOC + This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit + of program memory address) into 8 bit immediate value of LDI insn. +ENUM + BFD_RELOC_AVR_MS8_LDI +ENUMDOC + This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit + of 32 bit value) into 8 bit immediate value of LDI insn. +ENUM + BFD_RELOC_AVR_LO8_LDI_NEG +ENUMDOC + This is a 16 bit reloc for the AVR that stores negated 8 bit value + (usually data memory address) into 8 bit immediate value of SUBI insn. +ENUM + BFD_RELOC_AVR_HI8_LDI_NEG +ENUMDOC + This is a 16 bit reloc for the AVR that stores negated 8 bit value + (high 8 bit of data memory address) into 8 bit immediate value of + SUBI insn. +ENUM + BFD_RELOC_AVR_HH8_LDI_NEG +ENUMDOC + This is a 16 bit reloc for the AVR that stores negated 8 bit value + (most high 8 bit of program memory address) into 8 bit immediate value + of LDI or SUBI insn. +ENUM + BFD_RELOC_AVR_MS8_LDI_NEG +ENUMDOC + This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb + of 32 bit value) into 8 bit immediate value of LDI insn. +ENUM + BFD_RELOC_AVR_LO8_LDI_PM +ENUMDOC + This is a 16 bit reloc for the AVR that stores 8 bit value (usually + command address) into 8 bit immediate value of LDI insn. +ENUM + BFD_RELOC_AVR_LO8_LDI_GS +ENUMDOC + This is a 16 bit reloc for the AVR that stores 8 bit value + (command address) into 8 bit immediate value of LDI insn. If the address + is beyond the 128k boundary, the linker inserts a jump stub for this reloc + in the lower 128k. +ENUM + BFD_RELOC_AVR_HI8_LDI_PM +ENUMDOC + This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit + of command address) into 8 bit immediate value of LDI insn. +ENUM + BFD_RELOC_AVR_HI8_LDI_GS +ENUMDOC + This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit + of command address) into 8 bit immediate value of LDI insn. If the address + is beyond the 128k boundary, the linker inserts a jump stub for this reloc + below 128k. +ENUM + BFD_RELOC_AVR_HH8_LDI_PM +ENUMDOC + This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit + of command address) into 8 bit immediate value of LDI insn. +ENUM + BFD_RELOC_AVR_LO8_LDI_PM_NEG +ENUMDOC + This is a 16 bit reloc for the AVR that stores negated 8 bit value + (usually command address) into 8 bit immediate value of SUBI insn. +ENUM + BFD_RELOC_AVR_HI8_LDI_PM_NEG +ENUMDOC + This is a 16 bit reloc for the AVR that stores negated 8 bit value + (high 8 bit of 16 bit command address) into 8 bit immediate value + of SUBI insn. +ENUM + BFD_RELOC_AVR_HH8_LDI_PM_NEG +ENUMDOC + This is a 16 bit reloc for the AVR that stores negated 8 bit value + (high 6 bit of 22 bit command address) into 8 bit immediate + value of SUBI insn. +ENUM + BFD_RELOC_AVR_CALL +ENUMDOC + This is a 32 bit reloc for the AVR that stores 23 bit value + into 22 bits. +ENUM + BFD_RELOC_AVR_LDI +ENUMDOC + This is a 16 bit reloc for the AVR that stores all needed bits + for absolute addressing with ldi with overflow check to linktime +ENUM + BFD_RELOC_AVR_6 +ENUMDOC + This is a 6 bit reloc for the AVR that stores offset for ldd/std + instructions +ENUM + BFD_RELOC_AVR_6_ADIW +ENUMDOC + This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw + instructions +ENUM + BFD_RELOC_AVR_8_LO +ENUMDOC + This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol + in .byte lo8(symbol) +ENUM + BFD_RELOC_AVR_8_HI +ENUMDOC + This is a 8 bit reloc for the AVR that stores bits 8..15 of a symbol + in .byte hi8(symbol) +ENUM + BFD_RELOC_AVR_8_HLO +ENUMDOC + This is a 8 bit reloc for the AVR that stores bits 16..23 of a symbol + in .byte hlo8(symbol) +ENUM + BFD_RELOC_AVR_DIFF8 +ENUMX + BFD_RELOC_AVR_DIFF16 +ENUMX + BFD_RELOC_AVR_DIFF32 +ENUMDOC + AVR relocations to mark the difference of two local symbols. + These are only needed to support linker relaxation and can be ignored + when not relaxing. The field is set to the value of the difference + assuming no relaxation. The relocation encodes the position of the + second symbol so the linker can determine whether to adjust the field + value. +ENUM + BFD_RELOC_AVR_LDS_STS_16 +ENUMDOC + This is a 7 bit reloc for the AVR that stores SRAM address for 16bit + lds and sts instructions supported only tiny core. +ENUM + BFD_RELOC_AVR_PORT6 +ENUMDOC + This is a 6 bit reloc for the AVR that stores an I/O register + number for the IN and OUT instructions +ENUM + BFD_RELOC_AVR_PORT5 +ENUMDOC + This is a 5 bit reloc for the AVR that stores an I/O register + number for the SBIC, SBIS, SBI and CBI instructions +ENUM + BFD_RELOC_RL78_NEG8 +ENUMX + BFD_RELOC_RL78_NEG16 +ENUMX + BFD_RELOC_RL78_NEG24 +ENUMX + BFD_RELOC_RL78_NEG32 +ENUMX + BFD_RELOC_RL78_16_OP +ENUMX + BFD_RELOC_RL78_24_OP +ENUMX + BFD_RELOC_RL78_32_OP +ENUMX + BFD_RELOC_RL78_8U +ENUMX + BFD_RELOC_RL78_16U +ENUMX + BFD_RELOC_RL78_24U +ENUMX + BFD_RELOC_RL78_DIR3U_PCREL +ENUMX + BFD_RELOC_RL78_DIFF +ENUMX + BFD_RELOC_RL78_GPRELB +ENUMX + BFD_RELOC_RL78_GPRELW +ENUMX + BFD_RELOC_RL78_GPRELL +ENUMX + BFD_RELOC_RL78_SYM +ENUMX + BFD_RELOC_RL78_OP_SUBTRACT +ENUMX + BFD_RELOC_RL78_OP_NEG +ENUMX + BFD_RELOC_RL78_OP_AND +ENUMX + BFD_RELOC_RL78_OP_SHRA +ENUMX + BFD_RELOC_RL78_ABS8 +ENUMX + BFD_RELOC_RL78_ABS16 +ENUMX + BFD_RELOC_RL78_ABS16_REV +ENUMX + BFD_RELOC_RL78_ABS32 +ENUMX + BFD_RELOC_RL78_ABS32_REV +ENUMX + BFD_RELOC_RL78_ABS16U +ENUMX + BFD_RELOC_RL78_ABS16UW +ENUMX + BFD_RELOC_RL78_ABS16UL +ENUMX + BFD_RELOC_RL78_RELAX +ENUMX + BFD_RELOC_RL78_HI16 +ENUMX + BFD_RELOC_RL78_HI8 +ENUMX + BFD_RELOC_RL78_LO16 +ENUMX + BFD_RELOC_RL78_CODE +ENUMX + BFD_RELOC_RL78_SADDR +ENUMDOC + Renesas RL78 Relocations. + +ENUM + BFD_RELOC_RX_NEG8 +ENUMX + BFD_RELOC_RX_NEG16 +ENUMX + BFD_RELOC_RX_NEG24 +ENUMX + BFD_RELOC_RX_NEG32 +ENUMX + BFD_RELOC_RX_16_OP +ENUMX + BFD_RELOC_RX_24_OP +ENUMX + BFD_RELOC_RX_32_OP +ENUMX + BFD_RELOC_RX_8U +ENUMX + BFD_RELOC_RX_16U +ENUMX + BFD_RELOC_RX_24U +ENUMX + BFD_RELOC_RX_DIR3U_PCREL +ENUMX + BFD_RELOC_RX_DIFF +ENUMX + BFD_RELOC_RX_GPRELB +ENUMX + BFD_RELOC_RX_GPRELW +ENUMX + BFD_RELOC_RX_GPRELL +ENUMX + BFD_RELOC_RX_SYM +ENUMX + BFD_RELOC_RX_OP_SUBTRACT +ENUMX + BFD_RELOC_RX_OP_NEG +ENUMX + BFD_RELOC_RX_ABS8 +ENUMX + BFD_RELOC_RX_ABS16 +ENUMX + BFD_RELOC_RX_ABS16_REV +ENUMX + BFD_RELOC_RX_ABS32 +ENUMX + BFD_RELOC_RX_ABS32_REV +ENUMX + BFD_RELOC_RX_ABS16U +ENUMX + BFD_RELOC_RX_ABS16UW +ENUMX + BFD_RELOC_RX_ABS16UL +ENUMX + BFD_RELOC_RX_RELAX +ENUMDOC + Renesas RX Relocations. + +ENUM + BFD_RELOC_390_12 +ENUMDOC + Direct 12 bit. +ENUM + BFD_RELOC_390_GOT12 +ENUMDOC + 12 bit GOT offset. +ENUM + BFD_RELOC_390_PLT32 +ENUMDOC + 32 bit PC relative PLT address. +ENUM + BFD_RELOC_390_COPY +ENUMDOC + Copy symbol at runtime. +ENUM + BFD_RELOC_390_GLOB_DAT +ENUMDOC + Create GOT entry. +ENUM + BFD_RELOC_390_JMP_SLOT +ENUMDOC + Create PLT entry. +ENUM + BFD_RELOC_390_RELATIVE +ENUMDOC + Adjust by program base. +ENUM + BFD_RELOC_390_GOTPC +ENUMDOC + 32 bit PC relative offset to GOT. +ENUM + BFD_RELOC_390_GOT16 +ENUMDOC + 16 bit GOT offset. +ENUM + BFD_RELOC_390_PC12DBL +ENUMDOC + PC relative 12 bit shifted by 1. +ENUM + BFD_RELOC_390_PLT12DBL +ENUMDOC + 12 bit PC rel. PLT shifted by 1. +ENUM + BFD_RELOC_390_PC16DBL +ENUMDOC + PC relative 16 bit shifted by 1. +ENUM + BFD_RELOC_390_PLT16DBL +ENUMDOC + 16 bit PC rel. PLT shifted by 1. +ENUM + BFD_RELOC_390_PC24DBL +ENUMDOC + PC relative 24 bit shifted by 1. +ENUM + BFD_RELOC_390_PLT24DBL +ENUMDOC + 24 bit PC rel. PLT shifted by 1. +ENUM + BFD_RELOC_390_PC32DBL +ENUMDOC + PC relative 32 bit shifted by 1. +ENUM + BFD_RELOC_390_PLT32DBL +ENUMDOC + 32 bit PC rel. PLT shifted by 1. +ENUM + BFD_RELOC_390_GOTPCDBL +ENUMDOC + 32 bit PC rel. GOT shifted by 1. +ENUM + BFD_RELOC_390_GOT64 +ENUMDOC + 64 bit GOT offset. +ENUM + BFD_RELOC_390_PLT64 +ENUMDOC + 64 bit PC relative PLT address. +ENUM + BFD_RELOC_390_GOTENT +ENUMDOC + 32 bit rel. offset to GOT entry. +ENUM + BFD_RELOC_390_GOTOFF64 +ENUMDOC + 64 bit offset to GOT. +ENUM + BFD_RELOC_390_GOTPLT12 +ENUMDOC + 12-bit offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_390_GOTPLT16 +ENUMDOC + 16-bit offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_390_GOTPLT32 +ENUMDOC + 32-bit offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_390_GOTPLT64 +ENUMDOC + 64-bit offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_390_GOTPLTENT +ENUMDOC + 32-bit rel. offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_390_PLTOFF16 +ENUMDOC + 16-bit rel. offset from the GOT to a PLT entry. +ENUM + BFD_RELOC_390_PLTOFF32 +ENUMDOC + 32-bit rel. offset from the GOT to a PLT entry. +ENUM + BFD_RELOC_390_PLTOFF64 +ENUMDOC + 64-bit rel. offset from the GOT to a PLT entry. + +ENUM + BFD_RELOC_390_TLS_LOAD +ENUMX + BFD_RELOC_390_TLS_GDCALL +ENUMX + BFD_RELOC_390_TLS_LDCALL +ENUMX + BFD_RELOC_390_TLS_GD32 +ENUMX + BFD_RELOC_390_TLS_GD64 +ENUMX + BFD_RELOC_390_TLS_GOTIE12 +ENUMX + BFD_RELOC_390_TLS_GOTIE32 +ENUMX + BFD_RELOC_390_TLS_GOTIE64 +ENUMX + BFD_RELOC_390_TLS_LDM32 +ENUMX + BFD_RELOC_390_TLS_LDM64 +ENUMX + BFD_RELOC_390_TLS_IE32 +ENUMX + BFD_RELOC_390_TLS_IE64 +ENUMX + BFD_RELOC_390_TLS_IEENT +ENUMX + BFD_RELOC_390_TLS_LE32 +ENUMX + BFD_RELOC_390_TLS_LE64 +ENUMX + BFD_RELOC_390_TLS_LDO32 +ENUMX + BFD_RELOC_390_TLS_LDO64 +ENUMX + BFD_RELOC_390_TLS_DTPMOD +ENUMX + BFD_RELOC_390_TLS_DTPOFF +ENUMX + BFD_RELOC_390_TLS_TPOFF +ENUMDOC + s390 tls relocations. + +ENUM + BFD_RELOC_390_20 +ENUMX + BFD_RELOC_390_GOT20 +ENUMX + BFD_RELOC_390_GOTPLT20 +ENUMX + BFD_RELOC_390_TLS_GOTIE20 +ENUMDOC + Long displacement extension. + +ENUM + BFD_RELOC_390_IRELATIVE +ENUMDOC + STT_GNU_IFUNC relocation. + +ENUM + BFD_RELOC_SCORE_GPREL15 +ENUMDOC + Score relocations + Low 16 bit for load/store +ENUM + BFD_RELOC_SCORE_DUMMY2 +ENUMX + BFD_RELOC_SCORE_JMP +ENUMDOC + This is a 24-bit reloc with the right 1 bit assumed to be 0 +ENUM + BFD_RELOC_SCORE_BRANCH +ENUMDOC + This is a 19-bit reloc with the right 1 bit assumed to be 0 +ENUM + BFD_RELOC_SCORE_IMM30 +ENUMDOC + This is a 32-bit reloc for 48-bit instructions. +ENUM + BFD_RELOC_SCORE_IMM32 +ENUMDOC + This is a 32-bit reloc for 48-bit instructions. +ENUM + BFD_RELOC_SCORE16_JMP +ENUMDOC + This is a 11-bit reloc with the right 1 bit assumed to be 0 +ENUM + BFD_RELOC_SCORE16_BRANCH +ENUMDOC + This is a 8-bit reloc with the right 1 bit assumed to be 0 +ENUM + BFD_RELOC_SCORE_BCMP +ENUMDOC + This is a 9-bit reloc with the right 1 bit assumed to be 0 +ENUM + BFD_RELOC_SCORE_GOT15 +ENUMX + BFD_RELOC_SCORE_GOT_LO16 +ENUMX + BFD_RELOC_SCORE_CALL15 +ENUMX + BFD_RELOC_SCORE_DUMMY_HI16 +ENUMDOC + Undocumented Score relocs + +ENUM + BFD_RELOC_IP2K_FR9 +ENUMDOC + Scenix IP2K - 9-bit register number / data address +ENUM + BFD_RELOC_IP2K_BANK +ENUMDOC + Scenix IP2K - 4-bit register/data bank number +ENUM + BFD_RELOC_IP2K_ADDR16CJP +ENUMDOC + Scenix IP2K - low 13 bits of instruction word address +ENUM + BFD_RELOC_IP2K_PAGE3 +ENUMDOC + Scenix IP2K - high 3 bits of instruction word address +ENUM + BFD_RELOC_IP2K_LO8DATA +ENUMX + BFD_RELOC_IP2K_HI8DATA +ENUMX + BFD_RELOC_IP2K_EX8DATA +ENUMDOC + Scenix IP2K - ext/low/high 8 bits of data address +ENUM + BFD_RELOC_IP2K_LO8INSN +ENUMX + BFD_RELOC_IP2K_HI8INSN +ENUMDOC + Scenix IP2K - low/high 8 bits of instruction word address +ENUM + BFD_RELOC_IP2K_PC_SKIP +ENUMDOC + Scenix IP2K - even/odd PC modifier to modify snb pcl.0 +ENUM + BFD_RELOC_IP2K_TEXT +ENUMDOC + Scenix IP2K - 16 bit word address in text section. +ENUM + BFD_RELOC_IP2K_FR_OFFSET +ENUMDOC + Scenix IP2K - 7-bit sp or dp offset +ENUM + BFD_RELOC_VPE4KMATH_DATA +ENUMX + BFD_RELOC_VPE4KMATH_INSN +ENUMDOC + Scenix VPE4K coprocessor - data/insn-space addressing + +ENUM + BFD_RELOC_VTABLE_INHERIT +ENUMX + BFD_RELOC_VTABLE_ENTRY +ENUMDOC + These two relocations are used by the linker to determine which of + the entries in a C++ virtual function table are actually used. When + the --gc-sections option is given, the linker will zero out the entries + that are not used, so that the code for those functions need not be + included in the output. + + VTABLE_INHERIT is a zero-space relocation used to describe to the + linker the inheritance tree of a C++ virtual function table. The + relocation's symbol should be the parent class' vtable, and the + relocation should be located at the child vtable. + + VTABLE_ENTRY is a zero-space relocation that describes the use of a + virtual function table entry. The reloc's symbol should refer to the + table of the class mentioned in the code. Off of that base, an offset + describes the entry that is being used. For Rela hosts, this offset + is stored in the reloc's addend. For Rel hosts, we are forced to put + this offset in the reloc's section offset. + +ENUM + BFD_RELOC_IA64_IMM14 +ENUMX + BFD_RELOC_IA64_IMM22 +ENUMX + BFD_RELOC_IA64_IMM64 +ENUMX + BFD_RELOC_IA64_DIR32MSB +ENUMX + BFD_RELOC_IA64_DIR32LSB +ENUMX + BFD_RELOC_IA64_DIR64MSB +ENUMX + BFD_RELOC_IA64_DIR64LSB +ENUMX + BFD_RELOC_IA64_GPREL22 +ENUMX + BFD_RELOC_IA64_GPREL64I +ENUMX + BFD_RELOC_IA64_GPREL32MSB +ENUMX + BFD_RELOC_IA64_GPREL32LSB +ENUMX + BFD_RELOC_IA64_GPREL64MSB +ENUMX + BFD_RELOC_IA64_GPREL64LSB +ENUMX + BFD_RELOC_IA64_LTOFF22 +ENUMX + BFD_RELOC_IA64_LTOFF64I +ENUMX + BFD_RELOC_IA64_PLTOFF22 +ENUMX + BFD_RELOC_IA64_PLTOFF64I +ENUMX + BFD_RELOC_IA64_PLTOFF64MSB +ENUMX + BFD_RELOC_IA64_PLTOFF64LSB +ENUMX + BFD_RELOC_IA64_FPTR64I +ENUMX + BFD_RELOC_IA64_FPTR32MSB +ENUMX + BFD_RELOC_IA64_FPTR32LSB +ENUMX + BFD_RELOC_IA64_FPTR64MSB +ENUMX + BFD_RELOC_IA64_FPTR64LSB +ENUMX + BFD_RELOC_IA64_PCREL21B +ENUMX + BFD_RELOC_IA64_PCREL21BI +ENUMX + BFD_RELOC_IA64_PCREL21M +ENUMX + BFD_RELOC_IA64_PCREL21F +ENUMX + BFD_RELOC_IA64_PCREL22 +ENUMX + BFD_RELOC_IA64_PCREL60B +ENUMX + BFD_RELOC_IA64_PCREL64I +ENUMX + BFD_RELOC_IA64_PCREL32MSB +ENUMX + BFD_RELOC_IA64_PCREL32LSB +ENUMX + BFD_RELOC_IA64_PCREL64MSB +ENUMX + BFD_RELOC_IA64_PCREL64LSB +ENUMX + BFD_RELOC_IA64_LTOFF_FPTR22 +ENUMX + BFD_RELOC_IA64_LTOFF_FPTR64I +ENUMX + BFD_RELOC_IA64_LTOFF_FPTR32MSB +ENUMX + BFD_RELOC_IA64_LTOFF_FPTR32LSB +ENUMX + BFD_RELOC_IA64_LTOFF_FPTR64MSB +ENUMX + BFD_RELOC_IA64_LTOFF_FPTR64LSB +ENUMX + BFD_RELOC_IA64_SEGREL32MSB +ENUMX + BFD_RELOC_IA64_SEGREL32LSB +ENUMX + BFD_RELOC_IA64_SEGREL64MSB +ENUMX + BFD_RELOC_IA64_SEGREL64LSB +ENUMX + BFD_RELOC_IA64_SECREL32MSB +ENUMX + BFD_RELOC_IA64_SECREL32LSB +ENUMX + BFD_RELOC_IA64_SECREL64MSB +ENUMX + BFD_RELOC_IA64_SECREL64LSB +ENUMX + BFD_RELOC_IA64_REL32MSB +ENUMX + BFD_RELOC_IA64_REL32LSB +ENUMX + BFD_RELOC_IA64_REL64MSB +ENUMX + BFD_RELOC_IA64_REL64LSB +ENUMX + BFD_RELOC_IA64_LTV32MSB +ENUMX + BFD_RELOC_IA64_LTV32LSB +ENUMX + BFD_RELOC_IA64_LTV64MSB +ENUMX + BFD_RELOC_IA64_LTV64LSB +ENUMX + BFD_RELOC_IA64_IPLTMSB +ENUMX + BFD_RELOC_IA64_IPLTLSB +ENUMX + BFD_RELOC_IA64_COPY +ENUMX + BFD_RELOC_IA64_LTOFF22X +ENUMX + BFD_RELOC_IA64_LDXMOV +ENUMX + BFD_RELOC_IA64_TPREL14 +ENUMX + BFD_RELOC_IA64_TPREL22 +ENUMX + BFD_RELOC_IA64_TPREL64I +ENUMX + BFD_RELOC_IA64_TPREL64MSB +ENUMX + BFD_RELOC_IA64_TPREL64LSB +ENUMX + BFD_RELOC_IA64_LTOFF_TPREL22 +ENUMX + BFD_RELOC_IA64_DTPMOD64MSB +ENUMX + BFD_RELOC_IA64_DTPMOD64LSB +ENUMX + BFD_RELOC_IA64_LTOFF_DTPMOD22 +ENUMX + BFD_RELOC_IA64_DTPREL14 +ENUMX + BFD_RELOC_IA64_DTPREL22 +ENUMX + BFD_RELOC_IA64_DTPREL64I +ENUMX + BFD_RELOC_IA64_DTPREL32MSB +ENUMX + BFD_RELOC_IA64_DTPREL32LSB +ENUMX + BFD_RELOC_IA64_DTPREL64MSB +ENUMX + BFD_RELOC_IA64_DTPREL64LSB +ENUMX + BFD_RELOC_IA64_LTOFF_DTPREL22 +ENUMDOC + Intel IA64 Relocations. + +ENUM + BFD_RELOC_M68HC11_HI8 +ENUMDOC + Motorola 68HC11 reloc. + This is the 8 bit high part of an absolute address. +ENUM + BFD_RELOC_M68HC11_LO8 +ENUMDOC + Motorola 68HC11 reloc. + This is the 8 bit low part of an absolute address. +ENUM + BFD_RELOC_M68HC11_3B +ENUMDOC + Motorola 68HC11 reloc. + This is the 3 bit of a value. +ENUM + BFD_RELOC_M68HC11_RL_JUMP +ENUMDOC + Motorola 68HC11 reloc. + This reloc marks the beginning of a jump/call instruction. + It is used for linker relaxation to correctly identify beginning + of instruction and change some branches to use PC-relative + addressing mode. +ENUM + BFD_RELOC_M68HC11_RL_GROUP +ENUMDOC + Motorola 68HC11 reloc. + This reloc marks a group of several instructions that gcc generates + and for which the linker relaxation pass can modify and/or remove + some of them. +ENUM + BFD_RELOC_M68HC11_LO16 +ENUMDOC + Motorola 68HC11 reloc. + This is the 16-bit lower part of an address. It is used for 'call' + instruction to specify the symbol address without any special + transformation (due to memory bank window). +ENUM + BFD_RELOC_M68HC11_PAGE +ENUMDOC + Motorola 68HC11 reloc. + This is a 8-bit reloc that specifies the page number of an address. + It is used by 'call' instruction to specify the page number of + the symbol. +ENUM + BFD_RELOC_M68HC11_24 +ENUMDOC + Motorola 68HC11 reloc. + This is a 24-bit reloc that represents the address with a 16-bit + value and a 8-bit page number. The symbol address is transformed + to follow the 16K memory bank of 68HC12 (seen as mapped in the window). +ENUM + BFD_RELOC_M68HC12_5B +ENUMDOC + Motorola 68HC12 reloc. + This is the 5 bits of a value. +ENUM + BFD_RELOC_XGATE_RL_JUMP +ENUMDOC + Freescale XGATE reloc. + This reloc marks the beginning of a bra/jal instruction. +ENUM + BFD_RELOC_XGATE_RL_GROUP +ENUMDOC + Freescale XGATE reloc. + This reloc marks a group of several instructions that gcc generates + and for which the linker relaxation pass can modify and/or remove + some of them. +ENUM + BFD_RELOC_XGATE_LO16 +ENUMDOC + Freescale XGATE reloc. + This is the 16-bit lower part of an address. It is used for the '16-bit' + instructions. +ENUM + BFD_RELOC_XGATE_GPAGE +ENUMDOC + Freescale XGATE reloc. +ENUM + BFD_RELOC_XGATE_24 +ENUMDOC + Freescale XGATE reloc. +ENUM + BFD_RELOC_XGATE_PCREL_9 +ENUMDOC + Freescale XGATE reloc. + This is a 9-bit pc-relative reloc. +ENUM + BFD_RELOC_XGATE_PCREL_10 +ENUMDOC + Freescale XGATE reloc. + This is a 10-bit pc-relative reloc. +ENUM + BFD_RELOC_XGATE_IMM8_LO +ENUMDOC + Freescale XGATE reloc. + This is the 16-bit lower part of an address. It is used for the '16-bit' + instructions. +ENUM + BFD_RELOC_XGATE_IMM8_HI +ENUMDOC + Freescale XGATE reloc. + This is the 16-bit higher part of an address. It is used for the '16-bit' + instructions. +ENUM + BFD_RELOC_XGATE_IMM3 +ENUMDOC + Freescale XGATE reloc. + This is a 3-bit pc-relative reloc. +ENUM + BFD_RELOC_XGATE_IMM4 +ENUMDOC + Freescale XGATE reloc. + This is a 4-bit pc-relative reloc. +ENUM + BFD_RELOC_XGATE_IMM5 +ENUMDOC + Freescale XGATE reloc. + This is a 5-bit pc-relative reloc. +ENUM + BFD_RELOC_M68HC12_9B +ENUMDOC + Motorola 68HC12 reloc. + This is the 9 bits of a value. +ENUM + BFD_RELOC_M68HC12_16B +ENUMDOC + Motorola 68HC12 reloc. + This is the 16 bits of a value. +ENUM + BFD_RELOC_M68HC12_9_PCREL +ENUMDOC + Motorola 68HC12/XGATE reloc. + This is a PCREL9 branch. +ENUM + BFD_RELOC_M68HC12_10_PCREL +ENUMDOC + Motorola 68HC12/XGATE reloc. + This is a PCREL10 branch. +ENUM + BFD_RELOC_M68HC12_LO8XG +ENUMDOC + Motorola 68HC12/XGATE reloc. + This is the 8 bit low part of an absolute address and immediately precedes + a matching HI8XG part. +ENUM + BFD_RELOC_M68HC12_HI8XG +ENUMDOC + Motorola 68HC12/XGATE reloc. + This is the 8 bit high part of an absolute address and immediately follows + a matching LO8XG part. +ENUM + BFD_RELOC_16C_NUM08 +ENUMX + BFD_RELOC_16C_NUM08_C +ENUMX + BFD_RELOC_16C_NUM16 +ENUMX + BFD_RELOC_16C_NUM16_C +ENUMX + BFD_RELOC_16C_NUM32 +ENUMX + BFD_RELOC_16C_NUM32_C +ENUMX + BFD_RELOC_16C_DISP04 +ENUMX + BFD_RELOC_16C_DISP04_C +ENUMX + BFD_RELOC_16C_DISP08 +ENUMX + BFD_RELOC_16C_DISP08_C +ENUMX + BFD_RELOC_16C_DISP16 +ENUMX + BFD_RELOC_16C_DISP16_C +ENUMX + BFD_RELOC_16C_DISP24 +ENUMX + BFD_RELOC_16C_DISP24_C +ENUMX + BFD_RELOC_16C_DISP24a +ENUMX + BFD_RELOC_16C_DISP24a_C +ENUMX + BFD_RELOC_16C_REG04 +ENUMX + BFD_RELOC_16C_REG04_C +ENUMX + BFD_RELOC_16C_REG04a +ENUMX + BFD_RELOC_16C_REG04a_C +ENUMX + BFD_RELOC_16C_REG14 +ENUMX + BFD_RELOC_16C_REG14_C +ENUMX + BFD_RELOC_16C_REG16 +ENUMX + BFD_RELOC_16C_REG16_C +ENUMX + BFD_RELOC_16C_REG20 +ENUMX + BFD_RELOC_16C_REG20_C +ENUMX + BFD_RELOC_16C_ABS20 +ENUMX + BFD_RELOC_16C_ABS20_C +ENUMX + BFD_RELOC_16C_ABS24 +ENUMX + BFD_RELOC_16C_ABS24_C +ENUMX + BFD_RELOC_16C_IMM04 +ENUMX + BFD_RELOC_16C_IMM04_C +ENUMX + BFD_RELOC_16C_IMM16 +ENUMX + BFD_RELOC_16C_IMM16_C +ENUMX + BFD_RELOC_16C_IMM20 +ENUMX + BFD_RELOC_16C_IMM20_C +ENUMX + BFD_RELOC_16C_IMM24 +ENUMX + BFD_RELOC_16C_IMM24_C +ENUMX + BFD_RELOC_16C_IMM32 +ENUMX + BFD_RELOC_16C_IMM32_C +ENUMDOC + NS CR16C Relocations. + +ENUM + BFD_RELOC_CR16_NUM8 +ENUMX + BFD_RELOC_CR16_NUM16 +ENUMX + BFD_RELOC_CR16_NUM32 +ENUMX + BFD_RELOC_CR16_NUM32a +ENUMX + BFD_RELOC_CR16_REGREL0 +ENUMX + BFD_RELOC_CR16_REGREL4 +ENUMX + BFD_RELOC_CR16_REGREL4a +ENUMX + BFD_RELOC_CR16_REGREL14 +ENUMX + BFD_RELOC_CR16_REGREL14a +ENUMX + BFD_RELOC_CR16_REGREL16 +ENUMX + BFD_RELOC_CR16_REGREL20 +ENUMX + BFD_RELOC_CR16_REGREL20a +ENUMX + BFD_RELOC_CR16_ABS20 +ENUMX + BFD_RELOC_CR16_ABS24 +ENUMX + BFD_RELOC_CR16_IMM4 +ENUMX + BFD_RELOC_CR16_IMM8 +ENUMX + BFD_RELOC_CR16_IMM16 +ENUMX + BFD_RELOC_CR16_IMM20 +ENUMX + BFD_RELOC_CR16_IMM24 +ENUMX + BFD_RELOC_CR16_IMM32 +ENUMX + BFD_RELOC_CR16_IMM32a +ENUMX + BFD_RELOC_CR16_DISP4 +ENUMX + BFD_RELOC_CR16_DISP8 +ENUMX + BFD_RELOC_CR16_DISP16 +ENUMX + BFD_RELOC_CR16_DISP20 +ENUMX + BFD_RELOC_CR16_DISP24 +ENUMX + BFD_RELOC_CR16_DISP24a +ENUMX + BFD_RELOC_CR16_SWITCH8 +ENUMX + BFD_RELOC_CR16_SWITCH16 +ENUMX + BFD_RELOC_CR16_SWITCH32 +ENUMX + BFD_RELOC_CR16_GOT_REGREL20 +ENUMX + BFD_RELOC_CR16_GOTC_REGREL20 +ENUMX + BFD_RELOC_CR16_GLOB_DAT +ENUMDOC + NS CR16 Relocations. + +ENUM + BFD_RELOC_CRX_REL4 +ENUMX + BFD_RELOC_CRX_REL8 +ENUMX + BFD_RELOC_CRX_REL8_CMP +ENUMX + BFD_RELOC_CRX_REL16 +ENUMX + BFD_RELOC_CRX_REL24 +ENUMX + BFD_RELOC_CRX_REL32 +ENUMX + BFD_RELOC_CRX_REGREL12 +ENUMX + BFD_RELOC_CRX_REGREL22 +ENUMX + BFD_RELOC_CRX_REGREL28 +ENUMX + BFD_RELOC_CRX_REGREL32 +ENUMX + BFD_RELOC_CRX_ABS16 +ENUMX + BFD_RELOC_CRX_ABS32 +ENUMX + BFD_RELOC_CRX_NUM8 +ENUMX + BFD_RELOC_CRX_NUM16 +ENUMX + BFD_RELOC_CRX_NUM32 +ENUMX + BFD_RELOC_CRX_IMM16 +ENUMX + BFD_RELOC_CRX_IMM32 +ENUMX + BFD_RELOC_CRX_SWITCH8 +ENUMX + BFD_RELOC_CRX_SWITCH16 +ENUMX + BFD_RELOC_CRX_SWITCH32 +ENUMDOC + NS CRX Relocations. + +ENUM + BFD_RELOC_CRIS_BDISP8 +ENUMX + BFD_RELOC_CRIS_UNSIGNED_5 +ENUMX + BFD_RELOC_CRIS_SIGNED_6 +ENUMX + BFD_RELOC_CRIS_UNSIGNED_6 +ENUMX + BFD_RELOC_CRIS_SIGNED_8 +ENUMX + BFD_RELOC_CRIS_UNSIGNED_8 +ENUMX + BFD_RELOC_CRIS_SIGNED_16 +ENUMX + BFD_RELOC_CRIS_UNSIGNED_16 +ENUMX + BFD_RELOC_CRIS_LAPCQ_OFFSET +ENUMX + BFD_RELOC_CRIS_UNSIGNED_4 +ENUMDOC + These relocs are only used within the CRIS assembler. They are not + (at present) written to any object files. +ENUM + BFD_RELOC_CRIS_COPY +ENUMX + BFD_RELOC_CRIS_GLOB_DAT +ENUMX + BFD_RELOC_CRIS_JUMP_SLOT +ENUMX + BFD_RELOC_CRIS_RELATIVE +ENUMDOC + Relocs used in ELF shared libraries for CRIS. +ENUM + BFD_RELOC_CRIS_32_GOT +ENUMDOC + 32-bit offset to symbol-entry within GOT. +ENUM + BFD_RELOC_CRIS_16_GOT +ENUMDOC + 16-bit offset to symbol-entry within GOT. +ENUM + BFD_RELOC_CRIS_32_GOTPLT +ENUMDOC + 32-bit offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_CRIS_16_GOTPLT +ENUMDOC + 16-bit offset to symbol-entry within GOT, with PLT handling. +ENUM + BFD_RELOC_CRIS_32_GOTREL +ENUMDOC + 32-bit offset to symbol, relative to GOT. +ENUM + BFD_RELOC_CRIS_32_PLT_GOTREL +ENUMDOC + 32-bit offset to symbol with PLT entry, relative to GOT. +ENUM + BFD_RELOC_CRIS_32_PLT_PCREL +ENUMDOC + 32-bit offset to symbol with PLT entry, relative to this relocation. + +ENUM + BFD_RELOC_CRIS_32_GOT_GD +ENUMX + BFD_RELOC_CRIS_16_GOT_GD +ENUMX + BFD_RELOC_CRIS_32_GD +ENUMX + BFD_RELOC_CRIS_DTP +ENUMX + BFD_RELOC_CRIS_32_DTPREL +ENUMX + BFD_RELOC_CRIS_16_DTPREL +ENUMX + BFD_RELOC_CRIS_32_GOT_TPREL +ENUMX + BFD_RELOC_CRIS_16_GOT_TPREL +ENUMX + BFD_RELOC_CRIS_32_TPREL +ENUMX + BFD_RELOC_CRIS_16_TPREL +ENUMX + BFD_RELOC_CRIS_DTPMOD +ENUMX + BFD_RELOC_CRIS_32_IE +ENUMDOC + Relocs used in TLS code for CRIS. + +ENUM + BFD_RELOC_860_COPY +ENUMX + BFD_RELOC_860_GLOB_DAT +ENUMX + BFD_RELOC_860_JUMP_SLOT +ENUMX + BFD_RELOC_860_RELATIVE +ENUMX + BFD_RELOC_860_PC26 +ENUMX + BFD_RELOC_860_PLT26 +ENUMX + BFD_RELOC_860_PC16 +ENUMX + BFD_RELOC_860_LOW0 +ENUMX + BFD_RELOC_860_SPLIT0 +ENUMX + BFD_RELOC_860_LOW1 +ENUMX + BFD_RELOC_860_SPLIT1 +ENUMX + BFD_RELOC_860_LOW2 +ENUMX + BFD_RELOC_860_SPLIT2 +ENUMX + BFD_RELOC_860_LOW3 +ENUMX + BFD_RELOC_860_LOGOT0 +ENUMX + BFD_RELOC_860_SPGOT0 +ENUMX + BFD_RELOC_860_LOGOT1 +ENUMX + BFD_RELOC_860_SPGOT1 +ENUMX + BFD_RELOC_860_LOGOTOFF0 +ENUMX + BFD_RELOC_860_SPGOTOFF0 +ENUMX + BFD_RELOC_860_LOGOTOFF1 +ENUMX + BFD_RELOC_860_SPGOTOFF1 +ENUMX + BFD_RELOC_860_LOGOTOFF2 +ENUMX + BFD_RELOC_860_LOGOTOFF3 +ENUMX + BFD_RELOC_860_LOPC +ENUMX + BFD_RELOC_860_HIGHADJ +ENUMX + BFD_RELOC_860_HAGOT +ENUMX + BFD_RELOC_860_HAGOTOFF +ENUMX + BFD_RELOC_860_HAPC +ENUMX + BFD_RELOC_860_HIGH +ENUMX + BFD_RELOC_860_HIGOT +ENUMX + BFD_RELOC_860_HIGOTOFF +ENUMDOC + Intel i860 Relocations. + +ENUM + BFD_RELOC_OR1K_REL_26 +ENUMX + BFD_RELOC_OR1K_GOTPC_HI16 +ENUMX + BFD_RELOC_OR1K_GOTPC_LO16 +ENUMX + BFD_RELOC_OR1K_GOT16 +ENUMX + BFD_RELOC_OR1K_PLT26 +ENUMX + BFD_RELOC_OR1K_GOTOFF_HI16 +ENUMX + BFD_RELOC_OR1K_GOTOFF_LO16 +ENUMX + BFD_RELOC_OR1K_COPY +ENUMX + BFD_RELOC_OR1K_GLOB_DAT +ENUMX + BFD_RELOC_OR1K_JMP_SLOT +ENUMX + BFD_RELOC_OR1K_RELATIVE +ENUMX + BFD_RELOC_OR1K_TLS_GD_HI16 +ENUMX + BFD_RELOC_OR1K_TLS_GD_LO16 +ENUMX + BFD_RELOC_OR1K_TLS_LDM_HI16 +ENUMX + BFD_RELOC_OR1K_TLS_LDM_LO16 +ENUMX + BFD_RELOC_OR1K_TLS_LDO_HI16 +ENUMX + BFD_RELOC_OR1K_TLS_LDO_LO16 +ENUMX + BFD_RELOC_OR1K_TLS_IE_HI16 +ENUMX + BFD_RELOC_OR1K_TLS_IE_LO16 +ENUMX + BFD_RELOC_OR1K_TLS_LE_HI16 +ENUMX + BFD_RELOC_OR1K_TLS_LE_LO16 +ENUMX + BFD_RELOC_OR1K_TLS_TPOFF +ENUMX + BFD_RELOC_OR1K_TLS_DTPOFF +ENUMX + BFD_RELOC_OR1K_TLS_DTPMOD +ENUMDOC + OpenRISC 1000 Relocations. + +ENUM + BFD_RELOC_H8_DIR16A8 +ENUMX + BFD_RELOC_H8_DIR16R8 +ENUMX + BFD_RELOC_H8_DIR24A8 +ENUMX + BFD_RELOC_H8_DIR24R8 +ENUMX + BFD_RELOC_H8_DIR32A16 +ENUMX + BFD_RELOC_H8_DISP32A16 +ENUMDOC + H8 elf Relocations. + +ENUM + BFD_RELOC_XSTORMY16_REL_12 +ENUMX + BFD_RELOC_XSTORMY16_12 +ENUMX + BFD_RELOC_XSTORMY16_24 +ENUMX + BFD_RELOC_XSTORMY16_FPTR16 +ENUMDOC + Sony Xstormy16 Relocations. + +ENUM + BFD_RELOC_RELC +ENUMDOC + Self-describing complex relocations. +COMMENT + +ENUM + BFD_RELOC_XC16X_PAG +ENUMX + BFD_RELOC_XC16X_POF +ENUMX + BFD_RELOC_XC16X_SEG +ENUMX + BFD_RELOC_XC16X_SOF +ENUMDOC + Infineon Relocations. + +ENUM + BFD_RELOC_VAX_GLOB_DAT +ENUMX + BFD_RELOC_VAX_JMP_SLOT +ENUMX + BFD_RELOC_VAX_RELATIVE +ENUMDOC + Relocations used by VAX ELF. + +ENUM + BFD_RELOC_MT_PC16 +ENUMDOC + Morpho MT - 16 bit immediate relocation. +ENUM + BFD_RELOC_MT_HI16 +ENUMDOC + Morpho MT - Hi 16 bits of an address. +ENUM + BFD_RELOC_MT_LO16 +ENUMDOC + Morpho MT - Low 16 bits of an address. +ENUM + BFD_RELOC_MT_GNU_VTINHERIT +ENUMDOC + Morpho MT - Used to tell the linker which vtable entries are used. +ENUM + BFD_RELOC_MT_GNU_VTENTRY +ENUMDOC + Morpho MT - Used to tell the linker which vtable entries are used. +ENUM + BFD_RELOC_MT_PCINSN8 +ENUMDOC + Morpho MT - 8 bit immediate relocation. + +ENUM + BFD_RELOC_MSP430_10_PCREL +ENUMX + BFD_RELOC_MSP430_16_PCREL +ENUMX + BFD_RELOC_MSP430_16 +ENUMX + BFD_RELOC_MSP430_16_PCREL_BYTE +ENUMX + BFD_RELOC_MSP430_16_BYTE +ENUMX + BFD_RELOC_MSP430_2X_PCREL +ENUMX + BFD_RELOC_MSP430_RL_PCREL +ENUMX + BFD_RELOC_MSP430_ABS8 +ENUMX + BFD_RELOC_MSP430X_PCR20_EXT_SRC +ENUMX + BFD_RELOC_MSP430X_PCR20_EXT_DST +ENUMX + BFD_RELOC_MSP430X_PCR20_EXT_ODST +ENUMX + BFD_RELOC_MSP430X_ABS20_EXT_SRC +ENUMX + BFD_RELOC_MSP430X_ABS20_EXT_DST +ENUMX + BFD_RELOC_MSP430X_ABS20_EXT_ODST +ENUMX + BFD_RELOC_MSP430X_ABS20_ADR_SRC +ENUMX + BFD_RELOC_MSP430X_ABS20_ADR_DST +ENUMX + BFD_RELOC_MSP430X_PCR16 +ENUMX + BFD_RELOC_MSP430X_PCR20_CALL +ENUMX + BFD_RELOC_MSP430X_ABS16 +ENUMX + BFD_RELOC_MSP430_ABS_HI16 +ENUMX + BFD_RELOC_MSP430_PREL31 +ENUMX + BFD_RELOC_MSP430_SYM_DIFF +ENUMDOC + msp430 specific relocation codes + +ENUM + BFD_RELOC_NIOS2_S16 +ENUMX + BFD_RELOC_NIOS2_U16 +ENUMX + BFD_RELOC_NIOS2_CALL26 +ENUMX + BFD_RELOC_NIOS2_IMM5 +ENUMX + BFD_RELOC_NIOS2_CACHE_OPX +ENUMX + BFD_RELOC_NIOS2_IMM6 +ENUMX + BFD_RELOC_NIOS2_IMM8 +ENUMX + BFD_RELOC_NIOS2_HI16 +ENUMX + BFD_RELOC_NIOS2_LO16 +ENUMX + BFD_RELOC_NIOS2_HIADJ16 +ENUMX + BFD_RELOC_NIOS2_GPREL +ENUMX + BFD_RELOC_NIOS2_UJMP +ENUMX + BFD_RELOC_NIOS2_CJMP +ENUMX + BFD_RELOC_NIOS2_CALLR +ENUMX + BFD_RELOC_NIOS2_ALIGN +ENUMX + BFD_RELOC_NIOS2_GOT16 +ENUMX + BFD_RELOC_NIOS2_CALL16 +ENUMX + BFD_RELOC_NIOS2_GOTOFF_LO +ENUMX + BFD_RELOC_NIOS2_GOTOFF_HA +ENUMX + BFD_RELOC_NIOS2_PCREL_LO +ENUMX + BFD_RELOC_NIOS2_PCREL_HA +ENUMX + BFD_RELOC_NIOS2_TLS_GD16 +ENUMX + BFD_RELOC_NIOS2_TLS_LDM16 +ENUMX + BFD_RELOC_NIOS2_TLS_LDO16 +ENUMX + BFD_RELOC_NIOS2_TLS_IE16 +ENUMX + BFD_RELOC_NIOS2_TLS_LE16 +ENUMX + BFD_RELOC_NIOS2_TLS_DTPMOD +ENUMX + BFD_RELOC_NIOS2_TLS_DTPREL +ENUMX + BFD_RELOC_NIOS2_TLS_TPREL +ENUMX + BFD_RELOC_NIOS2_COPY +ENUMX + BFD_RELOC_NIOS2_GLOB_DAT +ENUMX + BFD_RELOC_NIOS2_JUMP_SLOT +ENUMX + BFD_RELOC_NIOS2_RELATIVE +ENUMX + BFD_RELOC_NIOS2_GOTOFF +ENUMX + BFD_RELOC_NIOS2_CALL26_NOAT +ENUMX + BFD_RELOC_NIOS2_GOT_LO +ENUMX + BFD_RELOC_NIOS2_GOT_HA +ENUMX + BFD_RELOC_NIOS2_CALL_LO +ENUMX + BFD_RELOC_NIOS2_CALL_HA +ENUMX + BFD_RELOC_NIOS2_R2_S12 +ENUMX + BFD_RELOC_NIOS2_R2_I10_1_PCREL +ENUMX + BFD_RELOC_NIOS2_R2_T1I7_1_PCREL +ENUMX + BFD_RELOC_NIOS2_R2_T1I7_2 +ENUMX + BFD_RELOC_NIOS2_R2_T2I4 +ENUMX + BFD_RELOC_NIOS2_R2_T2I4_1 +ENUMX + BFD_RELOC_NIOS2_R2_T2I4_2 +ENUMX + BFD_RELOC_NIOS2_R2_X1I7_2 +ENUMX + BFD_RELOC_NIOS2_R2_X2L5 +ENUMX + BFD_RELOC_NIOS2_R2_F1I5_2 +ENUMX + BFD_RELOC_NIOS2_R2_L5I4X1 +ENUMX + BFD_RELOC_NIOS2_R2_T1X1I6 +ENUMX + BFD_RELOC_NIOS2_R2_T1X1I6_2 +ENUMDOC + Relocations used by the Altera Nios II core. + +ENUM + BFD_RELOC_IQ2000_OFFSET_16 +ENUMX + BFD_RELOC_IQ2000_OFFSET_21 +ENUMX + BFD_RELOC_IQ2000_UHI16 +ENUMDOC + IQ2000 Relocations. + +ENUM + BFD_RELOC_XTENSA_RTLD +ENUMDOC + Special Xtensa relocation used only by PLT entries in ELF shared + objects to indicate that the runtime linker should set the value + to one of its own internal functions or data structures. +ENUM + BFD_RELOC_XTENSA_GLOB_DAT +ENUMX + BFD_RELOC_XTENSA_JMP_SLOT +ENUMX + BFD_RELOC_XTENSA_RELATIVE +ENUMDOC + Xtensa relocations for ELF shared objects. +ENUM + BFD_RELOC_XTENSA_PLT +ENUMDOC + Xtensa relocation used in ELF object files for symbols that may require + PLT entries. Otherwise, this is just a generic 32-bit relocation. +ENUM + BFD_RELOC_XTENSA_DIFF8 +ENUMX + BFD_RELOC_XTENSA_DIFF16 +ENUMX + BFD_RELOC_XTENSA_DIFF32 +ENUMDOC + Xtensa relocations to mark the difference of two local symbols. + These are only needed to support linker relaxation and can be ignored + when not relaxing. The field is set to the value of the difference + assuming no relaxation. The relocation encodes the position of the + first symbol so the linker can determine whether to adjust the field + value. +ENUM + BFD_RELOC_XTENSA_SLOT0_OP +ENUMX + BFD_RELOC_XTENSA_SLOT1_OP +ENUMX + BFD_RELOC_XTENSA_SLOT2_OP +ENUMX + BFD_RELOC_XTENSA_SLOT3_OP +ENUMX + BFD_RELOC_XTENSA_SLOT4_OP +ENUMX + BFD_RELOC_XTENSA_SLOT5_OP +ENUMX + BFD_RELOC_XTENSA_SLOT6_OP +ENUMX + BFD_RELOC_XTENSA_SLOT7_OP +ENUMX + BFD_RELOC_XTENSA_SLOT8_OP +ENUMX + BFD_RELOC_XTENSA_SLOT9_OP +ENUMX + BFD_RELOC_XTENSA_SLOT10_OP +ENUMX + BFD_RELOC_XTENSA_SLOT11_OP +ENUMX + BFD_RELOC_XTENSA_SLOT12_OP +ENUMX + BFD_RELOC_XTENSA_SLOT13_OP +ENUMX + BFD_RELOC_XTENSA_SLOT14_OP +ENUMDOC + Generic Xtensa relocations for instruction operands. Only the slot + number is encoded in the relocation. The relocation applies to the + last PC-relative immediate operand, or if there are no PC-relative + immediates, to the last immediate operand. +ENUM + BFD_RELOC_XTENSA_SLOT0_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT1_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT2_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT3_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT4_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT5_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT6_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT7_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT8_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT9_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT10_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT11_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT12_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT13_ALT +ENUMX + BFD_RELOC_XTENSA_SLOT14_ALT +ENUMDOC + Alternate Xtensa relocations. Only the slot is encoded in the + relocation. The meaning of these relocations is opcode-specific. +ENUM + BFD_RELOC_XTENSA_OP0 +ENUMX + BFD_RELOC_XTENSA_OP1 +ENUMX + BFD_RELOC_XTENSA_OP2 +ENUMDOC + Xtensa relocations for backward compatibility. These have all been + replaced by BFD_RELOC_XTENSA_SLOT0_OP. +ENUM + BFD_RELOC_XTENSA_ASM_EXPAND +ENUMDOC + Xtensa relocation to mark that the assembler expanded the + instructions from an original target. The expansion size is + encoded in the reloc size. +ENUM + BFD_RELOC_XTENSA_ASM_SIMPLIFY +ENUMDOC + Xtensa relocation to mark that the linker should simplify + assembler-expanded instructions. This is commonly used + internally by the linker after analysis of a + BFD_RELOC_XTENSA_ASM_EXPAND. +ENUM + BFD_RELOC_XTENSA_TLSDESC_FN +ENUMX + BFD_RELOC_XTENSA_TLSDESC_ARG +ENUMX + BFD_RELOC_XTENSA_TLS_DTPOFF +ENUMX + BFD_RELOC_XTENSA_TLS_TPOFF +ENUMX + BFD_RELOC_XTENSA_TLS_FUNC +ENUMX + BFD_RELOC_XTENSA_TLS_ARG +ENUMX + BFD_RELOC_XTENSA_TLS_CALL +ENUMDOC + Xtensa TLS relocations. + +ENUM + BFD_RELOC_Z80_DISP8 +ENUMDOC + 8 bit signed offset in (ix+d) or (iy+d). + +ENUM + BFD_RELOC_Z8K_DISP7 +ENUMDOC + DJNZ offset. +ENUM + BFD_RELOC_Z8K_CALLR +ENUMDOC + CALR offset. +ENUM + BFD_RELOC_Z8K_IMM4L +ENUMDOC + 4 bit value. + +ENUM + BFD_RELOC_LM32_CALL +ENUMX + BFD_RELOC_LM32_BRANCH +ENUMX + BFD_RELOC_LM32_16_GOT +ENUMX + BFD_RELOC_LM32_GOTOFF_HI16 +ENUMX + BFD_RELOC_LM32_GOTOFF_LO16 +ENUMX + BFD_RELOC_LM32_COPY +ENUMX + BFD_RELOC_LM32_GLOB_DAT +ENUMX + BFD_RELOC_LM32_JMP_SLOT +ENUMX + BFD_RELOC_LM32_RELATIVE +ENUMDOC + Lattice Mico32 relocations. + +ENUM + BFD_RELOC_MACH_O_SECTDIFF +ENUMDOC + Difference between two section addreses. Must be followed by a + BFD_RELOC_MACH_O_PAIR. +ENUM + BFD_RELOC_MACH_O_LOCAL_SECTDIFF +ENUMDOC + Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol. +ENUM + BFD_RELOC_MACH_O_PAIR +ENUMDOC + Pair of relocation. Contains the first symbol. + +ENUM + BFD_RELOC_MACH_O_X86_64_BRANCH32 +ENUMX + BFD_RELOC_MACH_O_X86_64_BRANCH8 +ENUMDOC + PCREL relocations. They are marked as branch to create PLT entry if + required. +ENUM + BFD_RELOC_MACH_O_X86_64_GOT +ENUMDOC + Used when referencing a GOT entry. +ENUM + BFD_RELOC_MACH_O_X86_64_GOT_LOAD +ENUMDOC + Used when loading a GOT entry with movq. It is specially marked so that + the linker could optimize the movq to a leaq if possible. +ENUM + BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32 +ENUMDOC + Symbol will be substracted. Must be followed by a BFD_RELOC_64. +ENUM + BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64 +ENUMDOC + Symbol will be substracted. Must be followed by a BFD_RELOC_64. +ENUM + BFD_RELOC_MACH_O_X86_64_PCREL32_1 +ENUMDOC + Same as BFD_RELOC_32_PCREL but with an implicit -1 addend. +ENUM + BFD_RELOC_MACH_O_X86_64_PCREL32_2 +ENUMDOC + Same as BFD_RELOC_32_PCREL but with an implicit -2 addend. +ENUM + BFD_RELOC_MACH_O_X86_64_PCREL32_4 +ENUMDOC + Same as BFD_RELOC_32_PCREL but with an implicit -4 addend. + +ENUM + BFD_RELOC_MICROBLAZE_32_LO +ENUMDOC + This is a 32 bit reloc for the microblaze that stores the + low 16 bits of a value +ENUM + BFD_RELOC_MICROBLAZE_32_LO_PCREL +ENUMDOC + This is a 32 bit pc-relative reloc for the microblaze that + stores the low 16 bits of a value +ENUM + BFD_RELOC_MICROBLAZE_32_ROSDA +ENUMDOC + This is a 32 bit reloc for the microblaze that stores a + value relative to the read-only small data area anchor +ENUM + BFD_RELOC_MICROBLAZE_32_RWSDA +ENUMDOC + This is a 32 bit reloc for the microblaze that stores a + value relative to the read-write small data area anchor +ENUM + BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM +ENUMDOC + This is a 32 bit reloc for the microblaze to handle + expressions of the form "Symbol Op Symbol" +ENUM + BFD_RELOC_MICROBLAZE_64_NONE +ENUMDOC + This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). No relocation is + done here - only used for relaxing +ENUM + BFD_RELOC_MICROBLAZE_64_GOTPC +ENUMDOC + This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). The relocation is + PC-relative GOT offset +ENUM + BFD_RELOC_MICROBLAZE_64_GOT +ENUMDOC + This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). The relocation is + GOT offset +ENUM + BFD_RELOC_MICROBLAZE_64_PLT +ENUMDOC + This is a 64 bit reloc that stores the 32 bit pc relative + value in two words (with an imm instruction). The relocation is + PC-relative offset into PLT +ENUM + BFD_RELOC_MICROBLAZE_64_GOTOFF +ENUMDOC + This is a 64 bit reloc that stores the 32 bit GOT relative + value in two words (with an imm instruction). The relocation is + relative offset from _GLOBAL_OFFSET_TABLE_ +ENUM + BFD_RELOC_MICROBLAZE_32_GOTOFF +ENUMDOC + This is a 32 bit reloc that stores the 32 bit GOT relative + value in a word. The relocation is relative offset from + _GLOBAL_OFFSET_TABLE_ +ENUM + BFD_RELOC_MICROBLAZE_COPY +ENUMDOC + This is used to tell the dynamic linker to copy the value out of + the dynamic object into the runtime process image. +ENUM + BFD_RELOC_MICROBLAZE_64_TLS +ENUMDOC + Unused Reloc +ENUM + BFD_RELOC_MICROBLAZE_64_TLSGD +ENUMDOC + This is a 64 bit reloc that stores the 32 bit GOT relative value + of the GOT TLS GD info entry in two words (with an imm instruction). The + relocation is GOT offset. +ENUM + BFD_RELOC_MICROBLAZE_64_TLSLD +ENUMDOC + This is a 64 bit reloc that stores the 32 bit GOT relative value + of the GOT TLS LD info entry in two words (with an imm instruction). The + relocation is GOT offset. +ENUM + BFD_RELOC_MICROBLAZE_32_TLSDTPMOD +ENUMDOC + This is a 32 bit reloc that stores the Module ID to GOT(n). +ENUM + BFD_RELOC_MICROBLAZE_32_TLSDTPREL +ENUMDOC + This is a 32 bit reloc that stores TLS offset to GOT(n+1). +ENUM + BFD_RELOC_MICROBLAZE_64_TLSDTPREL +ENUMDOC + This is a 32 bit reloc for storing TLS offset to two words (uses imm + instruction) +ENUM + BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL +ENUMDOC + This is a 64 bit reloc that stores 32-bit thread pointer relative offset + to two words (uses imm instruction). +ENUM + BFD_RELOC_MICROBLAZE_64_TLSTPREL +ENUMDOC + This is a 64 bit reloc that stores 32-bit thread pointer relative offset + to two words (uses imm instruction). + +ENUM + BFD_RELOC_AARCH64_RELOC_START +ENUMDOC + AArch64 pseudo relocation code to mark the start of the AArch64 + relocation enumerators. N.B. the order of the enumerators is + important as several tables in the AArch64 bfd backend are indexed + by these enumerators; make sure they are all synced. +ENUM + BFD_RELOC_AARCH64_NONE +ENUMDOC + AArch64 null relocation code. +ENUM + BFD_RELOC_AARCH64_64 +ENUMX + BFD_RELOC_AARCH64_32 +ENUMX + BFD_RELOC_AARCH64_16 +ENUMDOC + Basic absolute relocations of N bits. These are equivalent to +BFD_RELOC_N and they were added to assist the indexing of the howto +table. +ENUM + BFD_RELOC_AARCH64_64_PCREL +ENUMX + BFD_RELOC_AARCH64_32_PCREL +ENUMX + BFD_RELOC_AARCH64_16_PCREL +ENUMDOC + PC-relative relocations. These are equivalent to BFD_RELOC_N_PCREL +and they were added to assist the indexing of the howto table. +ENUM + BFD_RELOC_AARCH64_MOVW_G0 +ENUMDOC + AArch64 MOV[NZK] instruction with most significant bits 0 to 15 + of an unsigned address/value. +ENUM + BFD_RELOC_AARCH64_MOVW_G0_NC +ENUMDOC + AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of + an address/value. No overflow checking. +ENUM + BFD_RELOC_AARCH64_MOVW_G1 +ENUMDOC + AArch64 MOV[NZK] instruction with most significant bits 16 to 31 + of an unsigned address/value. +ENUM + BFD_RELOC_AARCH64_MOVW_G1_NC +ENUMDOC + AArch64 MOV[NZK] instruction with less significant bits 16 to 31 + of an address/value. No overflow checking. +ENUM + BFD_RELOC_AARCH64_MOVW_G2 +ENUMDOC + AArch64 MOV[NZK] instruction with most significant bits 32 to 47 + of an unsigned address/value. +ENUM + BFD_RELOC_AARCH64_MOVW_G2_NC +ENUMDOC + AArch64 MOV[NZK] instruction with less significant bits 32 to 47 + of an address/value. No overflow checking. +ENUM + BFD_RELOC_AARCH64_MOVW_G3 +ENUMDOC + AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 + of a signed or unsigned address/value. +ENUM + BFD_RELOC_AARCH64_MOVW_G0_S +ENUMDOC + AArch64 MOV[NZ] instruction with most significant bits 0 to 15 + of a signed value. Changes instruction to MOVZ or MOVN depending on the + value's sign. +ENUM + BFD_RELOC_AARCH64_MOVW_G1_S +ENUMDOC + AArch64 MOV[NZ] instruction with most significant bits 16 to 31 + of a signed value. Changes instruction to MOVZ or MOVN depending on the + value's sign. +ENUM + BFD_RELOC_AARCH64_MOVW_G2_S +ENUMDOC + AArch64 MOV[NZ] instruction with most significant bits 32 to 47 + of a signed value. Changes instruction to MOVZ or MOVN depending on the + value's sign. +ENUM + BFD_RELOC_AARCH64_LD_LO19_PCREL +ENUMDOC + AArch64 Load Literal instruction, holding a 19 bit pc-relative word + offset. The lowest two bits must be zero and are not stored in the + instruction, giving a 21 bit signed byte offset. +ENUM + BFD_RELOC_AARCH64_ADR_LO21_PCREL +ENUMDOC + AArch64 ADR instruction, holding a simple 21 bit pc-relative byte offset. +ENUM + BFD_RELOC_AARCH64_ADR_HI21_PCREL +ENUMDOC + AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page + offset, giving a 4KB aligned page base address. +ENUM + BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL +ENUMDOC + AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page + offset, giving a 4KB aligned page base address, but with no overflow + checking. +ENUM + BFD_RELOC_AARCH64_ADD_LO12 +ENUMDOC + AArch64 ADD immediate instruction, holding bits 0 to 11 of the address. + Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. +ENUM + BFD_RELOC_AARCH64_LDST8_LO12 +ENUMDOC + AArch64 8-bit load/store instruction, holding bits 0 to 11 of the + address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. +ENUM + BFD_RELOC_AARCH64_TSTBR14 +ENUMDOC + AArch64 14 bit pc-relative test bit and branch. + The lowest two bits must be zero and are not stored in the instruction, + giving a 16 bit signed byte offset. +ENUM + BFD_RELOC_AARCH64_BRANCH19 +ENUMDOC + AArch64 19 bit pc-relative conditional branch and compare & branch. + The lowest two bits must be zero and are not stored in the instruction, + giving a 21 bit signed byte offset. +ENUM + BFD_RELOC_AARCH64_JUMP26 +ENUMDOC + AArch64 26 bit pc-relative unconditional branch. + The lowest two bits must be zero and are not stored in the instruction, + giving a 28 bit signed byte offset. +ENUM + BFD_RELOC_AARCH64_CALL26 +ENUMDOC + AArch64 26 bit pc-relative unconditional branch and link. + The lowest two bits must be zero and are not stored in the instruction, + giving a 28 bit signed byte offset. +ENUM + BFD_RELOC_AARCH64_LDST16_LO12 +ENUMDOC + AArch64 16-bit load/store instruction, holding bits 0 to 11 of the + address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. +ENUM + BFD_RELOC_AARCH64_LDST32_LO12 +ENUMDOC + AArch64 32-bit load/store instruction, holding bits 0 to 11 of the + address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. +ENUM + BFD_RELOC_AARCH64_LDST64_LO12 +ENUMDOC + AArch64 64-bit load/store instruction, holding bits 0 to 11 of the + address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. +ENUM + BFD_RELOC_AARCH64_LDST128_LO12 +ENUMDOC + AArch64 128-bit load/store instruction, holding bits 0 to 11 of the + address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. +ENUM + BFD_RELOC_AARCH64_GOT_LD_PREL19 +ENUMDOC + AArch64 Load Literal instruction, holding a 19 bit PC relative word + offset of the global offset table entry for a symbol. The lowest two + bits must be zero and are not stored in the instruction, giving a 21 + bit signed byte offset. This relocation type requires signed overflow + checking. +ENUM + BFD_RELOC_AARCH64_ADR_GOT_PAGE +ENUMDOC + Get to the page base of the global offset table entry for a symbol as + part of an ADRP instruction using a 21 bit PC relative value.Used in + conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC. +ENUM + BFD_RELOC_AARCH64_LD64_GOT_LO12_NC +ENUMDOC + Unsigned 12 bit byte offset for 64 bit load/store from the page of + the GOT entry for this symbol. Used in conjunction with + BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in LP64 ABI only. +ENUM + BFD_RELOC_AARCH64_LD32_GOT_LO12_NC +ENUMDOC + Unsigned 12 bit byte offset for 32 bit load/store from the page of + the GOT entry for this symbol. Used in conjunction with + BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in ILP32 ABI only. + ENUM + BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC +ENUMDOC + Unsigned 16 bit byte offset for 64 bit load/store from the GOT entry + for this symbol. Valid in LP64 ABI only. +ENUM + BFD_RELOC_AARCH64_MOVW_GOTOFF_G1 +ENUMDOC + Unsigned 16 bit byte higher offset for 64 bit load/store from the GOT entry + for this symbol. Valid in LP64 ABI only. +ENUM + BFD_RELOC_AARCH64_LD64_GOTOFF_LO15 +ENUMDOC + Unsigned 15 bit byte offset for 64 bit load/store from the page of + the GOT entry for this symbol. Valid in LP64 ABI only. +ENUM + BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14 +ENUMDOC + Scaled 14 bit byte offset to the page base of the global offset table. +ENUM + BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15 +ENUMDOC + Scaled 15 bit byte offset to the page base of the global offset table. +ENUM + BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21 +ENUMDOC + Get to the page base of the global offset table entry for a symbols + tls_index structure as part of an adrp instruction using a 21 bit PC + relative value. Used in conjunction with + BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC. +ENUM + BFD_RELOC_AARCH64_TLSGD_ADR_PREL21 +ENUMDOC + AArch64 TLS General Dynamic +ENUM + BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC +ENUMDOC + Unsigned 12 bit byte offset to global offset table entry for a symbols + tls_index structure. Used in conjunction with + BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21. +ENUM + BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC +ENUMDOC + AArch64 TLS General Dynamic relocation. +ENUM + BFD_RELOC_AARCH64_TLSGD_MOVW_G1 +ENUMDOC + AArch64 TLS General Dynamic relocation. +ENUM + BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 +ENUMDOC + AArch64 TLS INITIAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC +ENUMDOC + AArch64 TLS INITIAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC +ENUMDOC + AArch64 TLS INITIAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19 +ENUMDOC + AArch64 TLS INITIAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC +ENUMDOC + AArch64 TLS INITIAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1 +ENUMDOC + AArch64 TLS INITIAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12 +ENUMDOC + bit[23:12] of byte offset to module TLS base address. +ENUM + BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12 +ENUMDOC + Unsigned 12 bit byte offset to module TLS base address. +ENUM + BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC +ENUMDOC + No overflow check version of BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12. +ENUM + BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC +ENUMDOC + Unsigned 12 bit byte offset to global offset table entry for a symbols + tls_index structure. Used in conjunction with + BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21. +ENUM + BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21 +ENUMDOC + GOT entry page address for AArch64 TLS Local Dynamic, used with ADRP + instruction. +ENUM + BFD_RELOC_AARCH64_TLSLD_ADR_PREL21 +ENUMDOC + GOT entry address for AArch64 TLS Local Dynamic, used with ADR instruction. +ENUM + BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12 +ENUMDOC + bit[11:1] of byte offset to module TLS base address, encoded in ldst + instructions. +ENUM + BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC +ENUMDOC + Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no overflow check. +ENUM + BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12 +ENUMDOC + bit[11:2] of byte offset to module TLS base address, encoded in ldst + instructions. +ENUM + BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC +ENUMDOC + Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no overflow check. +ENUM + BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12 +ENUMDOC + bit[11:3] of byte offset to module TLS base address, encoded in ldst + instructions. +ENUM + BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC +ENUMDOC + Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no overflow check. +ENUM + BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12 +ENUMDOC + bit[11:0] of byte offset to module TLS base address, encoded in ldst + instructions. +ENUM + BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC +ENUMDOC + Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no overflow check. +ENUM + BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 +ENUMDOC + bit[15:0] of byte offset to module TLS base address. +ENUM + BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC +ENUMDOC + No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 +ENUM + BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 +ENUMDOC + bit[31:16] of byte offset to module TLS base address. +ENUM + BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC +ENUMDOC + No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 +ENUM + BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2 +ENUMDOC + bit[47:32] of byte offset to module TLS base address. +ENUM + BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2 +ENUMDOC + AArch64 TLS LOCAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1 +ENUMDOC + AArch64 TLS LOCAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC +ENUMDOC + AArch64 TLS LOCAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0 +ENUMDOC + AArch64 TLS LOCAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC +ENUMDOC + AArch64 TLS LOCAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12 +ENUMDOC + AArch64 TLS LOCAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12 +ENUMDOC + AArch64 TLS LOCAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC +ENUMDOC + AArch64 TLS LOCAL EXEC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_LD_PREL19 +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21 +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21 +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_OFF_G1 +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_LDR +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_ADD +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC_CALL +ENUMDOC + AArch64 TLS DESC relocation. +ENUM + BFD_RELOC_AARCH64_COPY +ENUMDOC + AArch64 TLS relocation. +ENUM + BFD_RELOC_AARCH64_GLOB_DAT +ENUMDOC + AArch64 TLS relocation. +ENUM + BFD_RELOC_AARCH64_JUMP_SLOT +ENUMDOC + AArch64 TLS relocation. +ENUM + BFD_RELOC_AARCH64_RELATIVE +ENUMDOC + AArch64 TLS relocation. +ENUM + BFD_RELOC_AARCH64_TLS_DTPMOD +ENUMDOC + AArch64 TLS relocation. +ENUM + BFD_RELOC_AARCH64_TLS_DTPREL +ENUMDOC + AArch64 TLS relocation. +ENUM + BFD_RELOC_AARCH64_TLS_TPREL +ENUMDOC + AArch64 TLS relocation. +ENUM + BFD_RELOC_AARCH64_TLSDESC +ENUMDOC + AArch64 TLS relocation. +ENUM + BFD_RELOC_AARCH64_IRELATIVE +ENUMDOC + AArch64 support for STT_GNU_IFUNC. +ENUM + BFD_RELOC_AARCH64_RELOC_END +ENUMDOC + AArch64 pseudo relocation code to mark the end of the AArch64 + relocation enumerators that have direct mapping to ELF reloc codes. + There are a few more enumerators after this one; those are mainly + used by the AArch64 assembler for the internal fixup or to select + one of the above enumerators. +ENUM + BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP +ENUMDOC + AArch64 pseudo relocation code to be used internally by the AArch64 + assembler and not (currently) written to any object files. +ENUM + BFD_RELOC_AARCH64_LDST_LO12 +ENUMDOC + AArch64 unspecified load/store instruction, holding bits 0 to 11 of the + address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. +ENUM + BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12 +ENUMDOC + AArch64 pseudo relocation code for TLS local dynamic mode. It's to be + used internally by the AArch64 assembler and not (currently) written to + any object files. +ENUM + BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC +ENUMDOC + Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check. +ENUM + BFD_RELOC_AARCH64_LD_GOT_LO12_NC +ENUMDOC + AArch64 pseudo relocation code to be used internally by the AArch64 + assembler and not (currently) written to any object files. +ENUM + BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC +ENUMDOC + AArch64 pseudo relocation code to be used internally by the AArch64 + assembler and not (currently) written to any object files. +ENUM + BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC +ENUMDOC + AArch64 pseudo relocation code to be used internally by the AArch64 + assembler and not (currently) written to any object files. +ENUM + BFD_RELOC_TILEPRO_COPY ENUMX - BFD_RELOC_IA64_LTOFF_FPTR64LSB + BFD_RELOC_TILEPRO_GLOB_DAT ENUMX - BFD_RELOC_IA64_SEGREL32MSB + BFD_RELOC_TILEPRO_JMP_SLOT ENUMX - BFD_RELOC_IA64_SEGREL32LSB + BFD_RELOC_TILEPRO_RELATIVE ENUMX - BFD_RELOC_IA64_SEGREL64MSB + BFD_RELOC_TILEPRO_BROFF_X1 ENUMX - BFD_RELOC_IA64_SEGREL64LSB + BFD_RELOC_TILEPRO_JOFFLONG_X1 ENUMX - BFD_RELOC_IA64_SECREL32MSB + BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT ENUMX - BFD_RELOC_IA64_SECREL32LSB + BFD_RELOC_TILEPRO_IMM8_X0 ENUMX - BFD_RELOC_IA64_SECREL64MSB + BFD_RELOC_TILEPRO_IMM8_Y0 ENUMX - BFD_RELOC_IA64_SECREL64LSB + BFD_RELOC_TILEPRO_IMM8_X1 ENUMX - BFD_RELOC_IA64_REL32MSB + BFD_RELOC_TILEPRO_IMM8_Y1 ENUMX - BFD_RELOC_IA64_REL32LSB + BFD_RELOC_TILEPRO_DEST_IMM8_X1 ENUMX - BFD_RELOC_IA64_REL64MSB + BFD_RELOC_TILEPRO_MT_IMM15_X1 ENUMX - BFD_RELOC_IA64_REL64LSB + BFD_RELOC_TILEPRO_MF_IMM15_X1 ENUMX - BFD_RELOC_IA64_LTV32MSB + BFD_RELOC_TILEPRO_IMM16_X0 ENUMX - BFD_RELOC_IA64_LTV32LSB + BFD_RELOC_TILEPRO_IMM16_X1 ENUMX - BFD_RELOC_IA64_LTV64MSB + BFD_RELOC_TILEPRO_IMM16_X0_LO ENUMX - BFD_RELOC_IA64_LTV64LSB + BFD_RELOC_TILEPRO_IMM16_X1_LO ENUMX - BFD_RELOC_IA64_IPLTMSB + BFD_RELOC_TILEPRO_IMM16_X0_HI ENUMX - BFD_RELOC_IA64_IPLTLSB + BFD_RELOC_TILEPRO_IMM16_X1_HI ENUMX - BFD_RELOC_IA64_COPY + BFD_RELOC_TILEPRO_IMM16_X0_HA ENUMX - BFD_RELOC_IA64_LTOFF22X + BFD_RELOC_TILEPRO_IMM16_X1_HA ENUMX - BFD_RELOC_IA64_LDXMOV + BFD_RELOC_TILEPRO_IMM16_X0_PCREL ENUMX - BFD_RELOC_IA64_TPREL14 + BFD_RELOC_TILEPRO_IMM16_X1_PCREL ENUMX - BFD_RELOC_IA64_TPREL22 + BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL ENUMX - BFD_RELOC_IA64_TPREL64I + BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL ENUMX - BFD_RELOC_IA64_TPREL64MSB + BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL ENUMX - BFD_RELOC_IA64_TPREL64LSB + BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL ENUMX - BFD_RELOC_IA64_LTOFF_TPREL22 + BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL ENUMX - BFD_RELOC_IA64_DTPMOD64MSB + BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL ENUMX - BFD_RELOC_IA64_DTPMOD64LSB + BFD_RELOC_TILEPRO_IMM16_X0_GOT ENUMX - BFD_RELOC_IA64_LTOFF_DTPMOD22 + BFD_RELOC_TILEPRO_IMM16_X1_GOT ENUMX - BFD_RELOC_IA64_DTPREL14 + BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO ENUMX - BFD_RELOC_IA64_DTPREL22 + BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO ENUMX - BFD_RELOC_IA64_DTPREL64I + BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI ENUMX - BFD_RELOC_IA64_DTPREL32MSB + BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI ENUMX - BFD_RELOC_IA64_DTPREL32LSB + BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA ENUMX - BFD_RELOC_IA64_DTPREL64MSB + BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA ENUMX - BFD_RELOC_IA64_DTPREL64LSB + BFD_RELOC_TILEPRO_MMSTART_X0 ENUMX - BFD_RELOC_IA64_LTOFF_DTPREL22 -ENUMDOC - Intel IA64 Relocations. - -ENUM - BFD_RELOC_M68HC11_HI8 -ENUMDOC - Motorola 68HC11 reloc. - This is the 8 bit high part of an absolute address. -ENUM - BFD_RELOC_M68HC11_LO8 -ENUMDOC - Motorola 68HC11 reloc. - This is the 8 bit low part of an absolute address. -ENUM - BFD_RELOC_M68HC11_3B -ENUMDOC - Motorola 68HC11 reloc. - This is the 3 bit of a value. -ENUM - BFD_RELOC_M68HC11_RL_JUMP -ENUMDOC - Motorola 68HC11 reloc. - This reloc marks the beginning of a jump/call instruction. - It is used for linker relaxation to correctly identify beginning - of instruction and change some branches to use PC-relative - addressing mode. -ENUM - BFD_RELOC_M68HC11_RL_GROUP -ENUMDOC - Motorola 68HC11 reloc. - This reloc marks a group of several instructions that gcc generates - and for which the linker relaxation pass can modify and/or remove - some of them. -ENUM - BFD_RELOC_M68HC11_LO16 -ENUMDOC - Motorola 68HC11 reloc. - This is the 16-bit lower part of an address. It is used for 'call' - instruction to specify the symbol address without any special - transformation (due to memory bank window). -ENUM - BFD_RELOC_M68HC11_PAGE -ENUMDOC - Motorola 68HC11 reloc. - This is a 8-bit reloc that specifies the page number of an address. - It is used by 'call' instruction to specify the page number of - the symbol. -ENUM - BFD_RELOC_M68HC11_24 -ENUMDOC - Motorola 68HC11 reloc. - This is a 24-bit reloc that represents the address with a 16-bit - value and a 8-bit page number. The symbol address is transformed - to follow the 16K memory bank of 68HC12 (seen as mapped in the window). -ENUM - BFD_RELOC_M68HC12_5B -ENUMDOC - Motorola 68HC12 reloc. - This is the 5 bits of a value. - -ENUM - BFD_RELOC_16C_NUM08 + BFD_RELOC_TILEPRO_MMEND_X0 ENUMX - BFD_RELOC_16C_NUM08_C + BFD_RELOC_TILEPRO_MMSTART_X1 ENUMX - BFD_RELOC_16C_NUM16 + BFD_RELOC_TILEPRO_MMEND_X1 ENUMX - BFD_RELOC_16C_NUM16_C + BFD_RELOC_TILEPRO_SHAMT_X0 ENUMX - BFD_RELOC_16C_NUM32 + BFD_RELOC_TILEPRO_SHAMT_X1 ENUMX - BFD_RELOC_16C_NUM32_C + BFD_RELOC_TILEPRO_SHAMT_Y0 ENUMX - BFD_RELOC_16C_DISP04 + BFD_RELOC_TILEPRO_SHAMT_Y1 ENUMX - BFD_RELOC_16C_DISP04_C + BFD_RELOC_TILEPRO_TLS_GD_CALL ENUMX - BFD_RELOC_16C_DISP08 + BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD ENUMX - BFD_RELOC_16C_DISP08_C + BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD ENUMX - BFD_RELOC_16C_DISP16 + BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD ENUMX - BFD_RELOC_16C_DISP16_C + BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD ENUMX - BFD_RELOC_16C_DISP24 + BFD_RELOC_TILEPRO_TLS_IE_LOAD ENUMX - BFD_RELOC_16C_DISP24_C + BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD ENUMX - BFD_RELOC_16C_DISP24a + BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD ENUMX - BFD_RELOC_16C_DISP24a_C + BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO ENUMX - BFD_RELOC_16C_REG04 + BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO ENUMX - BFD_RELOC_16C_REG04_C + BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI ENUMX - BFD_RELOC_16C_REG04a + BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI ENUMX - BFD_RELOC_16C_REG04a_C + BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA ENUMX - BFD_RELOC_16C_REG14 + BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA ENUMX - BFD_RELOC_16C_REG14_C + BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE ENUMX - BFD_RELOC_16C_REG16 + BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE ENUMX - BFD_RELOC_16C_REG16_C + BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO ENUMX - BFD_RELOC_16C_REG20 + BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO ENUMX - BFD_RELOC_16C_REG20_C + BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI ENUMX - BFD_RELOC_16C_ABS20 + BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI ENUMX - BFD_RELOC_16C_ABS20_C + BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA ENUMX - BFD_RELOC_16C_ABS24 + BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA ENUMX - BFD_RELOC_16C_ABS24_C + BFD_RELOC_TILEPRO_TLS_DTPMOD32 ENUMX - BFD_RELOC_16C_IMM04 + BFD_RELOC_TILEPRO_TLS_DTPOFF32 ENUMX - BFD_RELOC_16C_IMM04_C + BFD_RELOC_TILEPRO_TLS_TPOFF32 ENUMX - BFD_RELOC_16C_IMM16 + BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE ENUMX - BFD_RELOC_16C_IMM16_C + BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE ENUMX - BFD_RELOC_16C_IMM20 + BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO ENUMX - BFD_RELOC_16C_IMM20_C + BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO ENUMX - BFD_RELOC_16C_IMM24 + BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI ENUMX - BFD_RELOC_16C_IMM24_C + BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI ENUMX - BFD_RELOC_16C_IMM32 + BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA ENUMX - BFD_RELOC_16C_IMM32_C + BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA ENUMDOC - NS CR16C Relocations. - + Tilera TILEPro Relocations. ENUM - BFD_RELOC_CRX_REL4 -ENUMX - BFD_RELOC_CRX_REL8 + BFD_RELOC_TILEGX_HW0 ENUMX - BFD_RELOC_CRX_REL8_CMP -ENUMX - BFD_RELOC_CRX_REL16 -ENUMX - BFD_RELOC_CRX_REL24 -ENUMX - BFD_RELOC_CRX_REL32 -ENUMX - BFD_RELOC_CRX_REGREL12 -ENUMX - BFD_RELOC_CRX_REGREL22 -ENUMX - BFD_RELOC_CRX_REGREL28 -ENUMX - BFD_RELOC_CRX_REGREL32 + BFD_RELOC_TILEGX_HW1 ENUMX - BFD_RELOC_CRX_ABS16 + BFD_RELOC_TILEGX_HW2 ENUMX - BFD_RELOC_CRX_ABS32 + BFD_RELOC_TILEGX_HW3 ENUMX - BFD_RELOC_CRX_NUM8 + BFD_RELOC_TILEGX_HW0_LAST ENUMX - BFD_RELOC_CRX_NUM16 + BFD_RELOC_TILEGX_HW1_LAST ENUMX - BFD_RELOC_CRX_NUM32 + BFD_RELOC_TILEGX_HW2_LAST ENUMX - BFD_RELOC_CRX_IMM16 + BFD_RELOC_TILEGX_COPY ENUMX - BFD_RELOC_CRX_IMM32 + BFD_RELOC_TILEGX_GLOB_DAT ENUMX - BFD_RELOC_CRX_SWITCH8 + BFD_RELOC_TILEGX_JMP_SLOT ENUMX - BFD_RELOC_CRX_SWITCH16 + BFD_RELOC_TILEGX_RELATIVE ENUMX - BFD_RELOC_CRX_SWITCH32 -ENUMDOC - NS CRX Relocations. - -ENUM - BFD_RELOC_CRIS_BDISP8 + BFD_RELOC_TILEGX_BROFF_X1 ENUMX - BFD_RELOC_CRIS_UNSIGNED_5 + BFD_RELOC_TILEGX_JUMPOFF_X1 ENUMX - BFD_RELOC_CRIS_SIGNED_6 + BFD_RELOC_TILEGX_JUMPOFF_X1_PLT ENUMX - BFD_RELOC_CRIS_UNSIGNED_6 + BFD_RELOC_TILEGX_IMM8_X0 ENUMX - BFD_RELOC_CRIS_SIGNED_8 + BFD_RELOC_TILEGX_IMM8_Y0 ENUMX - BFD_RELOC_CRIS_UNSIGNED_8 + BFD_RELOC_TILEGX_IMM8_X1 ENUMX - BFD_RELOC_CRIS_SIGNED_16 + BFD_RELOC_TILEGX_IMM8_Y1 ENUMX - BFD_RELOC_CRIS_UNSIGNED_16 + BFD_RELOC_TILEGX_DEST_IMM8_X1 ENUMX - BFD_RELOC_CRIS_LAPCQ_OFFSET + BFD_RELOC_TILEGX_MT_IMM14_X1 ENUMX - BFD_RELOC_CRIS_UNSIGNED_4 -ENUMDOC - These relocs are only used within the CRIS assembler. They are not - (at present) written to any object files. -ENUM - BFD_RELOC_CRIS_COPY + BFD_RELOC_TILEGX_MF_IMM14_X1 ENUMX - BFD_RELOC_CRIS_GLOB_DAT + BFD_RELOC_TILEGX_MMSTART_X0 ENUMX - BFD_RELOC_CRIS_JUMP_SLOT + BFD_RELOC_TILEGX_MMEND_X0 ENUMX - BFD_RELOC_CRIS_RELATIVE -ENUMDOC - Relocs used in ELF shared libraries for CRIS. -ENUM - BFD_RELOC_CRIS_32_GOT -ENUMDOC - 32-bit offset to symbol-entry within GOT. -ENUM - BFD_RELOC_CRIS_16_GOT -ENUMDOC - 16-bit offset to symbol-entry within GOT. -ENUM - BFD_RELOC_CRIS_32_GOTPLT -ENUMDOC - 32-bit offset to symbol-entry within GOT, with PLT handling. -ENUM - BFD_RELOC_CRIS_16_GOTPLT -ENUMDOC - 16-bit offset to symbol-entry within GOT, with PLT handling. -ENUM - BFD_RELOC_CRIS_32_GOTREL -ENUMDOC - 32-bit offset to symbol, relative to GOT. -ENUM - BFD_RELOC_CRIS_32_PLT_GOTREL -ENUMDOC - 32-bit offset to symbol with PLT entry, relative to GOT. -ENUM - BFD_RELOC_CRIS_32_PLT_PCREL -ENUMDOC - 32-bit offset to symbol with PLT entry, relative to this relocation. - -ENUM - BFD_RELOC_860_COPY + BFD_RELOC_TILEGX_SHAMT_X0 ENUMX - BFD_RELOC_860_GLOB_DAT + BFD_RELOC_TILEGX_SHAMT_X1 ENUMX - BFD_RELOC_860_JUMP_SLOT + BFD_RELOC_TILEGX_SHAMT_Y0 ENUMX - BFD_RELOC_860_RELATIVE + BFD_RELOC_TILEGX_SHAMT_Y1 ENUMX - BFD_RELOC_860_PC26 + BFD_RELOC_TILEGX_IMM16_X0_HW0 ENUMX - BFD_RELOC_860_PLT26 + BFD_RELOC_TILEGX_IMM16_X1_HW0 ENUMX - BFD_RELOC_860_PC16 + BFD_RELOC_TILEGX_IMM16_X0_HW1 ENUMX - BFD_RELOC_860_LOW0 + BFD_RELOC_TILEGX_IMM16_X1_HW1 ENUMX - BFD_RELOC_860_SPLIT0 + BFD_RELOC_TILEGX_IMM16_X0_HW2 ENUMX - BFD_RELOC_860_LOW1 + BFD_RELOC_TILEGX_IMM16_X1_HW2 ENUMX - BFD_RELOC_860_SPLIT1 + BFD_RELOC_TILEGX_IMM16_X0_HW3 ENUMX - BFD_RELOC_860_LOW2 + BFD_RELOC_TILEGX_IMM16_X1_HW3 ENUMX - BFD_RELOC_860_SPLIT2 + BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST ENUMX - BFD_RELOC_860_LOW3 + BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST ENUMX - BFD_RELOC_860_LOGOT0 + BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST ENUMX - BFD_RELOC_860_SPGOT0 + BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST ENUMX - BFD_RELOC_860_LOGOT1 + BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST ENUMX - BFD_RELOC_860_SPGOT1 + BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST ENUMX - BFD_RELOC_860_LOGOTOFF0 + BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL ENUMX - BFD_RELOC_860_SPGOTOFF0 + BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL ENUMX - BFD_RELOC_860_LOGOTOFF1 + BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL ENUMX - BFD_RELOC_860_SPGOTOFF1 + BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL ENUMX - BFD_RELOC_860_LOGOTOFF2 + BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL ENUMX - BFD_RELOC_860_LOGOTOFF3 + BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL ENUMX - BFD_RELOC_860_LOPC + BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL ENUMX - BFD_RELOC_860_HIGHADJ + BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL ENUMX - BFD_RELOC_860_HAGOT + BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL ENUMX - BFD_RELOC_860_HAGOTOFF + BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL ENUMX - BFD_RELOC_860_HAPC + BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL ENUMX - BFD_RELOC_860_HIGH + BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL ENUMX - BFD_RELOC_860_HIGOT + BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL ENUMX - BFD_RELOC_860_HIGOTOFF -ENUMDOC - Intel i860 Relocations. - -ENUM - BFD_RELOC_OPENRISC_ABS_26 + BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL ENUMX - BFD_RELOC_OPENRISC_REL_26 -ENUMDOC - OpenRISC Relocations. - -ENUM - BFD_RELOC_H8_DIR16A8 + BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT ENUMX - BFD_RELOC_H8_DIR16R8 + BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT ENUMX - BFD_RELOC_H8_DIR24A8 + BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL ENUMX - BFD_RELOC_H8_DIR24R8 + BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL ENUMX - BFD_RELOC_H8_DIR32A16 -ENUMDOC - H8 elf Relocations. - -ENUM - BFD_RELOC_XSTORMY16_REL_12 + BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL ENUMX - BFD_RELOC_XSTORMY16_12 + BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL ENUMX - BFD_RELOC_XSTORMY16_24 + BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL ENUMX - BFD_RELOC_XSTORMY16_FPTR16 -ENUMDOC - Sony Xstormy16 Relocations. - -ENUM - BFD_RELOC_RELC -ENUMDOC - Self-describing complex relocations. -COMMENT - -ENUM - BFD_RELOC_XC16X_PAG + BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL ENUMX - BFD_RELOC_XC16X_POF + BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT ENUMX - BFD_RELOC_XC16X_SEG + BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT ENUMX - BFD_RELOC_XC16X_SOF -ENUMDOC - Infineon Relocations. - -ENUM - BFD_RELOC_VAX_GLOB_DAT + BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT ENUMX - BFD_RELOC_VAX_JMP_SLOT + BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT ENUMX - BFD_RELOC_VAX_RELATIVE -ENUMDOC - Relocations used by VAX ELF. - -ENUM - BFD_RELOC_MT_PC16 -ENUMDOC - Morpho MT - 16 bit immediate relocation. -ENUM - BFD_RELOC_MT_HI16 -ENUMDOC - Morpho MT - Hi 16 bits of an address. -ENUM - BFD_RELOC_MT_LO16 -ENUMDOC - Morpho MT - Low 16 bits of an address. -ENUM - BFD_RELOC_MT_GNU_VTINHERIT -ENUMDOC - Morpho MT - Used to tell the linker which vtable entries are used. -ENUM - BFD_RELOC_MT_GNU_VTENTRY -ENUMDOC - Morpho MT - Used to tell the linker which vtable entries are used. -ENUM - BFD_RELOC_MT_PCINSN8 -ENUMDOC - Morpho MT - 8 bit immediate relocation. - -ENUM - BFD_RELOC_MSP430_10_PCREL + BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL ENUMX - BFD_RELOC_MSP430_16_PCREL + BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL ENUMX - BFD_RELOC_MSP430_16 + BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD ENUMX - BFD_RELOC_MSP430_16_PCREL_BYTE + BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD ENUMX - BFD_RELOC_MSP430_16_BYTE + BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE ENUMX - BFD_RELOC_MSP430_2X_PCREL + BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE ENUMX - BFD_RELOC_MSP430_RL_PCREL -ENUMDOC - msp430 specific relocation codes - -ENUM - BFD_RELOC_IQ2000_OFFSET_16 + BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE ENUMX - BFD_RELOC_IQ2000_OFFSET_21 + BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE ENUMX - BFD_RELOC_IQ2000_UHI16 -ENUMDOC - IQ2000 Relocations. - -ENUM - BFD_RELOC_XTENSA_RTLD -ENUMDOC - Special Xtensa relocation used only by PLT entries in ELF shared - objects to indicate that the runtime linker should set the value - to one of its own internal functions or data structures. -ENUM - BFD_RELOC_XTENSA_GLOB_DAT + BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE ENUMX - BFD_RELOC_XTENSA_JMP_SLOT + BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE ENUMX - BFD_RELOC_XTENSA_RELATIVE -ENUMDOC - Xtensa relocations for ELF shared objects. -ENUM - BFD_RELOC_XTENSA_PLT -ENUMDOC - Xtensa relocation used in ELF object files for symbols that may require - PLT entries. Otherwise, this is just a generic 32-bit relocation. -ENUM - BFD_RELOC_XTENSA_DIFF8 + BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD ENUMX - BFD_RELOC_XTENSA_DIFF16 + BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD ENUMX - BFD_RELOC_XTENSA_DIFF32 -ENUMDOC - Xtensa relocations to mark the difference of two local symbols. - These are only needed to support linker relaxation and can be ignored - when not relaxing. The field is set to the value of the difference - assuming no relaxation. The relocation encodes the position of the - first symbol so the linker can determine whether to adjust the field - value. -ENUM - BFD_RELOC_XTENSA_SLOT0_OP + BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD ENUMX - BFD_RELOC_XTENSA_SLOT1_OP + BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD ENUMX - BFD_RELOC_XTENSA_SLOT2_OP + BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE ENUMX - BFD_RELOC_XTENSA_SLOT3_OP + BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE ENUMX - BFD_RELOC_XTENSA_SLOT4_OP + BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL ENUMX - BFD_RELOC_XTENSA_SLOT5_OP + BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL ENUMX - BFD_RELOC_XTENSA_SLOT6_OP + BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL ENUMX - BFD_RELOC_XTENSA_SLOT7_OP + BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL ENUMX - BFD_RELOC_XTENSA_SLOT8_OP + BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL ENUMX - BFD_RELOC_XTENSA_SLOT9_OP + BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL ENUMX - BFD_RELOC_XTENSA_SLOT10_OP + BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE ENUMX - BFD_RELOC_XTENSA_SLOT11_OP + BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE ENUMX - BFD_RELOC_XTENSA_SLOT12_OP + BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE ENUMX - BFD_RELOC_XTENSA_SLOT13_OP + BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE ENUMX - BFD_RELOC_XTENSA_SLOT14_OP -ENUMDOC - Generic Xtensa relocations for instruction operands. Only the slot - number is encoded in the relocation. The relocation applies to the - last PC-relative immediate operand, or if there are no PC-relative - immediates, to the last immediate operand. -ENUM - BFD_RELOC_XTENSA_SLOT0_ALT + BFD_RELOC_TILEGX_TLS_DTPMOD64 ENUMX - BFD_RELOC_XTENSA_SLOT1_ALT + BFD_RELOC_TILEGX_TLS_DTPOFF64 ENUMX - BFD_RELOC_XTENSA_SLOT2_ALT + BFD_RELOC_TILEGX_TLS_TPOFF64 ENUMX - BFD_RELOC_XTENSA_SLOT3_ALT + BFD_RELOC_TILEGX_TLS_DTPMOD32 ENUMX - BFD_RELOC_XTENSA_SLOT4_ALT + BFD_RELOC_TILEGX_TLS_DTPOFF32 ENUMX - BFD_RELOC_XTENSA_SLOT5_ALT + BFD_RELOC_TILEGX_TLS_TPOFF32 ENUMX - BFD_RELOC_XTENSA_SLOT6_ALT + BFD_RELOC_TILEGX_TLS_GD_CALL ENUMX - BFD_RELOC_XTENSA_SLOT7_ALT + BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD ENUMX - BFD_RELOC_XTENSA_SLOT8_ALT + BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD ENUMX - BFD_RELOC_XTENSA_SLOT9_ALT + BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD ENUMX - BFD_RELOC_XTENSA_SLOT10_ALT + BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD ENUMX - BFD_RELOC_XTENSA_SLOT11_ALT + BFD_RELOC_TILEGX_TLS_IE_LOAD ENUMX - BFD_RELOC_XTENSA_SLOT12_ALT + BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD ENUMX - BFD_RELOC_XTENSA_SLOT13_ALT + BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD ENUMX - BFD_RELOC_XTENSA_SLOT14_ALT + BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD +ENUMX + BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD ENUMDOC - Alternate Xtensa relocations. Only the slot is encoded in the - relocation. The meaning of these relocations is opcode-specific. + Tilera TILE-Gx Relocations. + ENUM - BFD_RELOC_XTENSA_OP0 -ENUMX - BFD_RELOC_XTENSA_OP1 -ENUMX - BFD_RELOC_XTENSA_OP2 + BFD_RELOC_EPIPHANY_SIMM8 ENUMDOC - Xtensa relocations for backward compatibility. These have all been - replaced by BFD_RELOC_XTENSA_SLOT0_OP. + Adapteva EPIPHANY - 8 bit signed pc-relative displacement ENUM - BFD_RELOC_XTENSA_ASM_EXPAND + BFD_RELOC_EPIPHANY_SIMM24 ENUMDOC - Xtensa relocation to mark that the assembler expanded the - instructions from an original target. The expansion size is - encoded in the reloc size. + Adapteva EPIPHANY - 24 bit signed pc-relative displacement ENUM - BFD_RELOC_XTENSA_ASM_SIMPLIFY + BFD_RELOC_EPIPHANY_HIGH ENUMDOC - Xtensa relocation to mark that the linker should simplify - assembler-expanded instructions. This is commonly used - internally by the linker after analysis of a - BFD_RELOC_XTENSA_ASM_EXPAND. - + Adapteva EPIPHANY - 16 most-significant bits of absolute address ENUM - BFD_RELOC_Z80_DISP8 + BFD_RELOC_EPIPHANY_LOW ENUMDOC - 8 bit signed offset in (ix+d) or (iy+d). - + Adapteva EPIPHANY - 16 least-significant bits of absolute address ENUM - BFD_RELOC_Z8K_DISP7 + BFD_RELOC_EPIPHANY_SIMM11 ENUMDOC - DJNZ offset. + Adapteva EPIPHANY - 11 bit signed number - add/sub immediate ENUM - BFD_RELOC_Z8K_CALLR + BFD_RELOC_EPIPHANY_IMM11 ENUMDOC - CALR offset. + Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st displacement) ENUM - BFD_RELOC_Z8K_IMM4L + BFD_RELOC_EPIPHANY_IMM8 ENUMDOC - 4 bit value. + Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction. + +ENUM + BFD_RELOC_VISIUM_HI16 +ENUMX + BFD_RELOC_VISIUM_LO16 +ENUMX + BFD_RELOC_VISIUM_IM16 +ENUMX + BFD_RELOC_VISIUM_REL16 +ENUMX + BFD_RELOC_VISIUM_HI16_PCREL +ENUMX + BFD_RELOC_VISIUM_LO16_PCREL +ENUMX + BFD_RELOC_VISIUM_IM16_PCREL +ENUMDOC + Visium Relocations. ENDSENUM BFD_RELOC_UNUSED @@ -4942,10 +7655,13 @@ CODE_FRAGMENT /* FUNCTION bfd_reloc_type_lookup + bfd_reloc_name_lookup SYNOPSIS reloc_howto_type *bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code); + reloc_howto_type *bfd_reloc_name_lookup + (bfd *abfd, const char *reloc_name); DESCRIPTION Return a pointer to a howto structure which, when @@ -4960,6 +7676,12 @@ bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) return BFD_SEND (abfd, reloc_type_lookup, (abfd, code)); } +reloc_howto_type * +bfd_reloc_name_lookup (bfd *abfd, const char *reloc_name) +{ + return BFD_SEND (abfd, reloc_name_lookup, (abfd, reloc_name)); +} + static reloc_howto_type bfd_howto_32 = HOWTO (0, 00, 2, 32, FALSE, 0, complain_overflow_dont, 0, "VRT32", FALSE, 0xffffffff, 0xffffffff, TRUE); @@ -4984,7 +7706,7 @@ bfd_default_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code) case BFD_RELOC_CTOR: /* The type of reloc used in a ctor, which will be as wide as the address - so either a 64, 32, or 16 bitter. */ - switch (bfd_get_arch_info (abfd)->bits_per_address) + switch (bfd_arch_bits_per_address (abfd)) { case 64: BFD_FAIL (); @@ -5043,6 +7765,10 @@ bfd_generic_relax_section (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *link_info ATTRIBUTE_UNUSED, bfd_boolean *again) { + if (bfd_link_relocatable (link_info)) + (*link_info->callbacks->einfo) + (_("%P%F: --relax and -r may not be used together\n")); + *again = FALSE; return TRUE; } @@ -5067,6 +7793,33 @@ bfd_generic_gc_sections (bfd *abfd ATTRIBUTE_UNUSED, return TRUE; } +/* +INTERNAL_FUNCTION + bfd_generic_lookup_section_flags + +SYNOPSIS + bfd_boolean bfd_generic_lookup_section_flags + (struct bfd_link_info *, struct flag_info *, asection *); + +DESCRIPTION + Provides default handling for section flags lookup + -- i.e., does nothing. + Returns FALSE if the section should be omitted, otherwise TRUE. +*/ + +bfd_boolean +bfd_generic_lookup_section_flags (struct bfd_link_info *info ATTRIBUTE_UNUSED, + struct flag_info *flaginfo, + asection *section ATTRIBUTE_UNUSED) +{ + if (flaginfo != NULL) + { + (*_bfd_error_handler) (_("INPUT_SECTION_FLAGS are not supported.\n")); + return FALSE; + } + return TRUE; +} + /* INTERNAL_FUNCTION bfd_generic_merge_sections @@ -5114,26 +7867,26 @@ bfd_generic_get_relocated_section_contents (bfd *abfd, bfd_boolean relocatable, asymbol **symbols) { - /* Get enough memory to hold the stuff. */ bfd *input_bfd = link_order->u.indirect.section->owner; asection *input_section = link_order->u.indirect.section; - - long reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section); - arelent **reloc_vector = NULL; + long reloc_size; + arelent **reloc_vector; long reloc_count; - bfd_size_type sz; + reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section); if (reloc_size < 0) - goto error_return; - - reloc_vector = bfd_malloc (reloc_size); - if (reloc_vector == NULL && reloc_size != 0) - goto error_return; + return NULL; /* Read in the section. */ - sz = input_section->rawsize ? input_section->rawsize : input_section->size; - if (!bfd_get_section_contents (input_bfd, input_section, data, 0, sz)) - goto error_return; + if (!bfd_get_full_section_contents (input_bfd, input_section, &data)) + return NULL; + + if (reloc_size == 0) + return data; + + reloc_vector = (arelent **) bfd_malloc (reloc_size); + if (reloc_vector == NULL) + return NULL; reloc_count = bfd_canonicalize_reloc (input_bfd, input_section, @@ -5148,13 +7901,32 @@ bfd_generic_get_relocated_section_contents (bfd *abfd, for (parent = reloc_vector; *parent != NULL; parent++) { char *error_message = NULL; - bfd_reloc_status_type r = - bfd_perform_relocation (input_bfd, - *parent, - data, - input_section, - relocatable ? abfd : NULL, - &error_message); + asymbol *symbol; + bfd_reloc_status_type r; + + symbol = *(*parent)->sym_ptr_ptr; + if (symbol->section && discarded_section (symbol->section)) + { + bfd_byte *p; + static reloc_howto_type none_howto + = HOWTO (0, 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, + "unused", FALSE, 0, 0, FALSE); + + p = data + (*parent)->address * bfd_octets_per_byte (input_bfd); + _bfd_clear_contents ((*parent)->howto, input_bfd, input_section, + p); + (*parent)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr; + (*parent)->addend = 0; + (*parent)->howto = &none_howto; + r = bfd_reloc_ok; + } + else + r = bfd_perform_relocation (input_bfd, + *parent, + data, + input_section, + relocatable ? abfd : NULL, + &error_message); if (relocatable) { @@ -5192,20 +7964,41 @@ bfd_generic_get_relocated_section_contents (bfd *abfd, goto error_return; break; case bfd_reloc_outofrange: + /* PR ld/13730: + This error can result when processing some partially + complete binaries. Do not abort, but issue an error + message instead. */ + link_info->callbacks->einfo + (_("%X%P: %B(%A): relocation \"%R\" goes out of range\n"), + abfd, input_section, * parent); + goto error_return; + + case bfd_reloc_notsupported: + /* PR ld/17512 + This error can result when processing a corrupt binary. + Do not abort. Issue an error message instead. */ + link_info->callbacks->einfo + (_("%X%P: %B(%A): relocation \"%R\" is not supported\n"), + abfd, input_section, * parent); + goto error_return; + default: - abort (); + /* PR 17512; file: 90c2a92e. + Report unexpected results, without aborting. */ + link_info->callbacks->einfo + (_("%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n"), + abfd, input_section, * parent, r); break; } } } } - if (reloc_vector != NULL) - free (reloc_vector); + + free (reloc_vector); return data; error_return: - if (reloc_vector != NULL) - free (reloc_vector); + free (reloc_vector); return NULL; }