Home | History | Annotate | Line # | Download | only in bfd
reloc.c revision 1.1.1.1.2.1
      1          1.1  christos /* BFD support for handling relocation entries.
      2  1.1.1.1.2.1  pgoyette    Copyright (C) 1990-2015 Free Software Foundation, Inc.
      3          1.1  christos    Written by Cygnus Support.
      4          1.1  christos 
      5          1.1  christos    This file is part of BFD, the Binary File Descriptor library.
      6          1.1  christos 
      7          1.1  christos    This program is free software; you can redistribute it and/or modify
      8          1.1  christos    it under the terms of the GNU General Public License as published by
      9          1.1  christos    the Free Software Foundation; either version 3 of the License, or
     10          1.1  christos    (at your option) any later version.
     11          1.1  christos 
     12          1.1  christos    This program is distributed in the hope that it will be useful,
     13          1.1  christos    but WITHOUT ANY WARRANTY; without even the implied warranty of
     14          1.1  christos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15          1.1  christos    GNU General Public License for more details.
     16          1.1  christos 
     17          1.1  christos    You should have received a copy of the GNU General Public License
     18          1.1  christos    along with this program; if not, write to the Free Software
     19          1.1  christos    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
     20          1.1  christos    MA 02110-1301, USA.  */
     21          1.1  christos 
     22          1.1  christos /*
     23          1.1  christos SECTION
     24          1.1  christos 	Relocations
     25          1.1  christos 
     26          1.1  christos 	BFD maintains relocations in much the same way it maintains
     27          1.1  christos 	symbols: they are left alone until required, then read in
     28          1.1  christos 	en-masse and translated into an internal form.  A common
     29          1.1  christos 	routine <<bfd_perform_relocation>> acts upon the
     30          1.1  christos 	canonical form to do the fixup.
     31          1.1  christos 
     32          1.1  christos 	Relocations are maintained on a per section basis,
     33          1.1  christos 	while symbols are maintained on a per BFD basis.
     34          1.1  christos 
     35          1.1  christos 	All that a back end has to do to fit the BFD interface is to create
     36          1.1  christos 	a <<struct reloc_cache_entry>> for each relocation
     37          1.1  christos 	in a particular section, and fill in the right bits of the structures.
     38          1.1  christos 
     39          1.1  christos @menu
     40          1.1  christos @* typedef arelent::
     41          1.1  christos @* howto manager::
     42          1.1  christos @end menu
     43          1.1  christos 
     44          1.1  christos */
     45          1.1  christos 
     46          1.1  christos /* DO compile in the reloc_code name table from libbfd.h.  */
     47          1.1  christos #define _BFD_MAKE_TABLE_bfd_reloc_code_real
     48          1.1  christos 
     49          1.1  christos #include "sysdep.h"
     50          1.1  christos #include "bfd.h"
     51          1.1  christos #include "bfdlink.h"
     52          1.1  christos #include "libbfd.h"
     53          1.1  christos /*
     54          1.1  christos DOCDD
     55          1.1  christos INODE
     56          1.1  christos 	typedef arelent, howto manager, Relocations, Relocations
     57          1.1  christos 
     58          1.1  christos SUBSECTION
     59          1.1  christos 	typedef arelent
     60          1.1  christos 
     61          1.1  christos 	This is the structure of a relocation entry:
     62          1.1  christos 
     63          1.1  christos CODE_FRAGMENT
     64          1.1  christos .
     65          1.1  christos .typedef enum bfd_reloc_status
     66          1.1  christos .{
     67          1.1  christos .  {* No errors detected.  *}
     68          1.1  christos .  bfd_reloc_ok,
     69          1.1  christos .
     70          1.1  christos .  {* The relocation was performed, but there was an overflow.  *}
     71          1.1  christos .  bfd_reloc_overflow,
     72          1.1  christos .
     73          1.1  christos .  {* The address to relocate was not within the section supplied.  *}
     74          1.1  christos .  bfd_reloc_outofrange,
     75          1.1  christos .
     76          1.1  christos .  {* Used by special functions.  *}
     77          1.1  christos .  bfd_reloc_continue,
     78          1.1  christos .
     79          1.1  christos .  {* Unsupported relocation size requested.  *}
     80          1.1  christos .  bfd_reloc_notsupported,
     81          1.1  christos .
     82          1.1  christos .  {* Unused.  *}
     83          1.1  christos .  bfd_reloc_other,
     84          1.1  christos .
     85          1.1  christos .  {* The symbol to relocate against was undefined.  *}
     86          1.1  christos .  bfd_reloc_undefined,
     87          1.1  christos .
     88          1.1  christos .  {* The relocation was performed, but may not be ok - presently
     89          1.1  christos .     generated only when linking i960 coff files with i960 b.out
     90          1.1  christos .     symbols.  If this type is returned, the error_message argument
     91          1.1  christos .     to bfd_perform_relocation will be set.  *}
     92          1.1  christos .  bfd_reloc_dangerous
     93          1.1  christos . }
     94          1.1  christos . bfd_reloc_status_type;
     95          1.1  christos .
     96          1.1  christos .
     97          1.1  christos .typedef struct reloc_cache_entry
     98          1.1  christos .{
     99          1.1  christos .  {* A pointer into the canonical table of pointers.  *}
    100          1.1  christos .  struct bfd_symbol **sym_ptr_ptr;
    101          1.1  christos .
    102          1.1  christos .  {* offset in section.  *}
    103          1.1  christos .  bfd_size_type address;
    104          1.1  christos .
    105          1.1  christos .  {* addend for relocation value.  *}
    106          1.1  christos .  bfd_vma addend;
    107          1.1  christos .
    108          1.1  christos .  {* Pointer to how to perform the required relocation.  *}
    109          1.1  christos .  reloc_howto_type *howto;
    110          1.1  christos .
    111          1.1  christos .}
    112          1.1  christos .arelent;
    113          1.1  christos .
    114          1.1  christos */
    115          1.1  christos 
    116          1.1  christos /*
    117          1.1  christos DESCRIPTION
    118          1.1  christos 
    119          1.1  christos         Here is a description of each of the fields within an <<arelent>>:
    120          1.1  christos 
    121          1.1  christos         o <<sym_ptr_ptr>>
    122          1.1  christos 
    123          1.1  christos         The symbol table pointer points to a pointer to the symbol
    124          1.1  christos         associated with the relocation request.  It is the pointer
    125          1.1  christos         into the table returned by the back end's
    126          1.1  christos         <<canonicalize_symtab>> action. @xref{Symbols}. The symbol is
    127          1.1  christos         referenced through a pointer to a pointer so that tools like
    128          1.1  christos         the linker can fix up all the symbols of the same name by
    129          1.1  christos         modifying only one pointer. The relocation routine looks in
    130          1.1  christos         the symbol and uses the base of the section the symbol is
    131          1.1  christos         attached to and the value of the symbol as the initial
    132          1.1  christos         relocation offset. If the symbol pointer is zero, then the
    133          1.1  christos         section provided is looked up.
    134          1.1  christos 
    135          1.1  christos         o <<address>>
    136          1.1  christos 
    137          1.1  christos         The <<address>> field gives the offset in bytes from the base of
    138          1.1  christos         the section data which owns the relocation record to the first
    139          1.1  christos         byte of relocatable information. The actual data relocated
    140          1.1  christos         will be relative to this point; for example, a relocation
    141          1.1  christos         type which modifies the bottom two bytes of a four byte word
    142          1.1  christos         would not touch the first byte pointed to in a big endian
    143          1.1  christos         world.
    144          1.1  christos 
    145          1.1  christos 	o <<addend>>
    146          1.1  christos 
    147          1.1  christos 	The <<addend>> is a value provided by the back end to be added (!)
    148          1.1  christos 	to the relocation offset. Its interpretation is dependent upon
    149          1.1  christos 	the howto. For example, on the 68k the code:
    150          1.1  christos 
    151          1.1  christos |        char foo[];
    152          1.1  christos |        main()
    153          1.1  christos |                {
    154          1.1  christos |                return foo[0x12345678];
    155          1.1  christos |                }
    156          1.1  christos 
    157          1.1  christos         Could be compiled into:
    158          1.1  christos 
    159          1.1  christos |        linkw fp,#-4
    160          1.1  christos |        moveb @@#12345678,d0
    161          1.1  christos |        extbl d0
    162          1.1  christos |        unlk fp
    163          1.1  christos |        rts
    164          1.1  christos 
    165          1.1  christos         This could create a reloc pointing to <<foo>>, but leave the
    166          1.1  christos         offset in the data, something like:
    167          1.1  christos 
    168          1.1  christos |RELOCATION RECORDS FOR [.text]:
    169          1.1  christos |offset   type      value
    170          1.1  christos |00000006 32        _foo
    171          1.1  christos |
    172          1.1  christos |00000000 4e56 fffc          ; linkw fp,#-4
    173          1.1  christos |00000004 1039 1234 5678     ; moveb @@#12345678,d0
    174          1.1  christos |0000000a 49c0               ; extbl d0
    175          1.1  christos |0000000c 4e5e               ; unlk fp
    176          1.1  christos |0000000e 4e75               ; rts
    177          1.1  christos 
    178          1.1  christos         Using coff and an 88k, some instructions don't have enough
    179          1.1  christos         space in them to represent the full address range, and
    180          1.1  christos         pointers have to be loaded in two parts. So you'd get something like:
    181          1.1  christos 
    182          1.1  christos |        or.u     r13,r0,hi16(_foo+0x12345678)
    183          1.1  christos |        ld.b     r2,r13,lo16(_foo+0x12345678)
    184          1.1  christos |        jmp      r1
    185          1.1  christos 
    186          1.1  christos         This should create two relocs, both pointing to <<_foo>>, and with
    187          1.1  christos         0x12340000 in their addend field. The data would consist of:
    188          1.1  christos 
    189          1.1  christos |RELOCATION RECORDS FOR [.text]:
    190          1.1  christos |offset   type      value
    191          1.1  christos |00000002 HVRT16    _foo+0x12340000
    192          1.1  christos |00000006 LVRT16    _foo+0x12340000
    193          1.1  christos |
    194          1.1  christos |00000000 5da05678           ; or.u r13,r0,0x5678
    195          1.1  christos |00000004 1c4d5678           ; ld.b r2,r13,0x5678
    196          1.1  christos |00000008 f400c001           ; jmp r1
    197          1.1  christos 
    198          1.1  christos         The relocation routine digs out the value from the data, adds
    199          1.1  christos         it to the addend to get the original offset, and then adds the
    200          1.1  christos         value of <<_foo>>. Note that all 32 bits have to be kept around
    201          1.1  christos         somewhere, to cope with carry from bit 15 to bit 16.
    202          1.1  christos 
    203          1.1  christos         One further example is the sparc and the a.out format. The
    204          1.1  christos         sparc has a similar problem to the 88k, in that some
    205          1.1  christos         instructions don't have room for an entire offset, but on the
    206          1.1  christos         sparc the parts are created in odd sized lumps. The designers of
    207          1.1  christos         the a.out format chose to not use the data within the section
    208          1.1  christos         for storing part of the offset; all the offset is kept within
    209          1.1  christos         the reloc. Anything in the data should be ignored.
    210          1.1  christos 
    211          1.1  christos |        save %sp,-112,%sp
    212          1.1  christos |        sethi %hi(_foo+0x12345678),%g2
    213          1.1  christos |        ldsb [%g2+%lo(_foo+0x12345678)],%i0
    214          1.1  christos |        ret
    215          1.1  christos |        restore
    216          1.1  christos 
    217          1.1  christos         Both relocs contain a pointer to <<foo>>, and the offsets
    218          1.1  christos         contain junk.
    219          1.1  christos 
    220          1.1  christos |RELOCATION RECORDS FOR [.text]:
    221          1.1  christos |offset   type      value
    222          1.1  christos |00000004 HI22      _foo+0x12345678
    223          1.1  christos |00000008 LO10      _foo+0x12345678
    224          1.1  christos |
    225          1.1  christos |00000000 9de3bf90     ; save %sp,-112,%sp
    226          1.1  christos |00000004 05000000     ; sethi %hi(_foo+0),%g2
    227          1.1  christos |00000008 f048a000     ; ldsb [%g2+%lo(_foo+0)],%i0
    228          1.1  christos |0000000c 81c7e008     ; ret
    229          1.1  christos |00000010 81e80000     ; restore
    230          1.1  christos 
    231          1.1  christos         o <<howto>>
    232          1.1  christos 
    233          1.1  christos         The <<howto>> field can be imagined as a
    234          1.1  christos         relocation instruction. It is a pointer to a structure which
    235          1.1  christos         contains information on what to do with all of the other
    236          1.1  christos         information in the reloc record and data section. A back end
    237          1.1  christos         would normally have a relocation instruction set and turn
    238          1.1  christos         relocations into pointers to the correct structure on input -
    239          1.1  christos         but it would be possible to create each howto field on demand.
    240          1.1  christos 
    241          1.1  christos */
    242          1.1  christos 
    243          1.1  christos /*
    244          1.1  christos SUBSUBSECTION
    245          1.1  christos 	<<enum complain_overflow>>
    246          1.1  christos 
    247          1.1  christos 	Indicates what sort of overflow checking should be done when
    248          1.1  christos 	performing a relocation.
    249          1.1  christos 
    250          1.1  christos CODE_FRAGMENT
    251          1.1  christos .
    252          1.1  christos .enum complain_overflow
    253          1.1  christos .{
    254          1.1  christos .  {* Do not complain on overflow.  *}
    255          1.1  christos .  complain_overflow_dont,
    256          1.1  christos .
    257          1.1  christos .  {* Complain if the value overflows when considered as a signed
    258          1.1  christos .     number one bit larger than the field.  ie. A bitfield of N bits
    259          1.1  christos .     is allowed to represent -2**n to 2**n-1.  *}
    260          1.1  christos .  complain_overflow_bitfield,
    261          1.1  christos .
    262          1.1  christos .  {* Complain if the value overflows when considered as a signed
    263          1.1  christos .     number.  *}
    264          1.1  christos .  complain_overflow_signed,
    265          1.1  christos .
    266          1.1  christos .  {* Complain if the value overflows when considered as an
    267          1.1  christos .     unsigned number.  *}
    268          1.1  christos .  complain_overflow_unsigned
    269          1.1  christos .};
    270          1.1  christos 
    271          1.1  christos */
    272          1.1  christos 
    273          1.1  christos /*
    274          1.1  christos SUBSUBSECTION
    275          1.1  christos         <<reloc_howto_type>>
    276          1.1  christos 
    277          1.1  christos         The <<reloc_howto_type>> is a structure which contains all the
    278          1.1  christos         information that libbfd needs to know to tie up a back end's data.
    279          1.1  christos 
    280          1.1  christos CODE_FRAGMENT
    281          1.1  christos .struct bfd_symbol;		{* Forward declaration.  *}
    282          1.1  christos .
    283          1.1  christos .struct reloc_howto_struct
    284          1.1  christos .{
    285          1.1  christos .  {*  The type field has mainly a documentary use - the back end can
    286          1.1  christos .      do what it wants with it, though normally the back end's
    287          1.1  christos .      external idea of what a reloc number is stored
    288          1.1  christos .      in this field.  For example, a PC relative word relocation
    289          1.1  christos .      in a coff environment has the type 023 - because that's
    290          1.1  christos .      what the outside world calls a R_PCRWORD reloc.  *}
    291          1.1  christos .  unsigned int type;
    292          1.1  christos .
    293          1.1  christos .  {*  The value the final relocation is shifted right by.  This drops
    294          1.1  christos .      unwanted data from the relocation.  *}
    295          1.1  christos .  unsigned int rightshift;
    296          1.1  christos .
    297          1.1  christos .  {*  The size of the item to be relocated.  This is *not* a
    298          1.1  christos .      power-of-two measure.  To get the number of bytes operated
    299          1.1  christos .      on by a type of relocation, use bfd_get_reloc_size.  *}
    300          1.1  christos .  int size;
    301          1.1  christos .
    302          1.1  christos .  {*  The number of bits in the item to be relocated.  This is used
    303          1.1  christos .      when doing overflow checking.  *}
    304          1.1  christos .  unsigned int bitsize;
    305          1.1  christos .
    306          1.1  christos .  {*  The relocation is relative to the field being relocated.  *}
    307          1.1  christos .  bfd_boolean pc_relative;
    308          1.1  christos .
    309          1.1  christos .  {*  The bit position of the reloc value in the destination.
    310          1.1  christos .      The relocated value is left shifted by this amount.  *}
    311          1.1  christos .  unsigned int bitpos;
    312          1.1  christos .
    313          1.1  christos .  {* What type of overflow error should be checked for when
    314          1.1  christos .     relocating.  *}
    315          1.1  christos .  enum complain_overflow complain_on_overflow;
    316          1.1  christos .
    317          1.1  christos .  {* If this field is non null, then the supplied function is
    318          1.1  christos .     called rather than the normal function.  This allows really
    319          1.1  christos .     strange relocation methods to be accommodated (e.g., i960 callj
    320          1.1  christos .     instructions).  *}
    321          1.1  christos .  bfd_reloc_status_type (*special_function)
    322          1.1  christos .    (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
    323          1.1  christos .     bfd *, char **);
    324          1.1  christos .
    325          1.1  christos .  {* The textual name of the relocation type.  *}
    326          1.1  christos .  char *name;
    327          1.1  christos .
    328          1.1  christos .  {* Some formats record a relocation addend in the section contents
    329          1.1  christos .     rather than with the relocation.  For ELF formats this is the
    330          1.1  christos .     distinction between USE_REL and USE_RELA (though the code checks
    331          1.1  christos .     for USE_REL == 1/0).  The value of this field is TRUE if the
    332          1.1  christos .     addend is recorded with the section contents; when performing a
    333          1.1  christos .     partial link (ld -r) the section contents (the data) will be
    334          1.1  christos .     modified.  The value of this field is FALSE if addends are
    335          1.1  christos .     recorded with the relocation (in arelent.addend); when performing
    336          1.1  christos .     a partial link the relocation will be modified.
    337          1.1  christos .     All relocations for all ELF USE_RELA targets should set this field
    338          1.1  christos .     to FALSE (values of TRUE should be looked on with suspicion).
    339          1.1  christos .     However, the converse is not true: not all relocations of all ELF
    340          1.1  christos .     USE_REL targets set this field to TRUE.  Why this is so is peculiar
    341          1.1  christos .     to each particular target.  For relocs that aren't used in partial
    342          1.1  christos .     links (e.g. GOT stuff) it doesn't matter what this is set to.  *}
    343          1.1  christos .  bfd_boolean partial_inplace;
    344          1.1  christos .
    345          1.1  christos .  {* src_mask selects the part of the instruction (or data) to be used
    346          1.1  christos .     in the relocation sum.  If the target relocations don't have an
    347          1.1  christos .     addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
    348          1.1  christos .     dst_mask to extract the addend from the section contents.  If
    349          1.1  christos .     relocations do have an addend in the reloc, eg. ELF USE_RELA, this
    350          1.1  christos .     field should be zero.  Non-zero values for ELF USE_RELA targets are
    351          1.1  christos .     bogus as in those cases the value in the dst_mask part of the
    352          1.1  christos .     section contents should be treated as garbage.  *}
    353          1.1  christos .  bfd_vma src_mask;
    354          1.1  christos .
    355          1.1  christos .  {* dst_mask selects which parts of the instruction (or data) are
    356          1.1  christos .     replaced with a relocated value.  *}
    357          1.1  christos .  bfd_vma dst_mask;
    358          1.1  christos .
    359          1.1  christos .  {* When some formats create PC relative instructions, they leave
    360          1.1  christos .     the value of the pc of the place being relocated in the offset
    361          1.1  christos .     slot of the instruction, so that a PC relative relocation can
    362          1.1  christos .     be made just by adding in an ordinary offset (e.g., sun3 a.out).
    363          1.1  christos .     Some formats leave the displacement part of an instruction
    364          1.1  christos .     empty (e.g., m88k bcs); this flag signals the fact.  *}
    365          1.1  christos .  bfd_boolean pcrel_offset;
    366          1.1  christos .};
    367          1.1  christos .
    368          1.1  christos */
    369          1.1  christos 
    370          1.1  christos /*
    371          1.1  christos FUNCTION
    372          1.1  christos 	The HOWTO Macro
    373          1.1  christos 
    374          1.1  christos DESCRIPTION
    375          1.1  christos 	The HOWTO define is horrible and will go away.
    376          1.1  christos 
    377          1.1  christos .#define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
    378          1.1  christos .  { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
    379          1.1  christos 
    380          1.1  christos DESCRIPTION
    381          1.1  christos 	And will be replaced with the totally magic way. But for the
    382          1.1  christos 	moment, we are compatible, so do it this way.
    383          1.1  christos 
    384          1.1  christos .#define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
    385          1.1  christos .  HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
    386          1.1  christos .         NAME, FALSE, 0, 0, IN)
    387          1.1  christos .
    388          1.1  christos 
    389          1.1  christos DESCRIPTION
    390          1.1  christos 	This is used to fill in an empty howto entry in an array.
    391          1.1  christos 
    392          1.1  christos .#define EMPTY_HOWTO(C) \
    393          1.1  christos .  HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
    394          1.1  christos .         NULL, FALSE, 0, 0, FALSE)
    395          1.1  christos .
    396          1.1  christos 
    397          1.1  christos DESCRIPTION
    398          1.1  christos 	Helper routine to turn a symbol into a relocation value.
    399          1.1  christos 
    400          1.1  christos .#define HOWTO_PREPARE(relocation, symbol)               \
    401          1.1  christos .  {                                                     \
    402          1.1  christos .    if (symbol != NULL)                                 \
    403          1.1  christos .      {                                                 \
    404          1.1  christos .        if (bfd_is_com_section (symbol->section))       \
    405          1.1  christos .          {                                             \
    406          1.1  christos .            relocation = 0;                             \
    407          1.1  christos .          }                                             \
    408          1.1  christos .        else                                            \
    409          1.1  christos .          {                                             \
    410          1.1  christos .            relocation = symbol->value;                 \
    411          1.1  christos .          }                                             \
    412          1.1  christos .      }                                                 \
    413          1.1  christos .  }
    414          1.1  christos .
    415          1.1  christos */
    416          1.1  christos 
    417          1.1  christos /*
    418          1.1  christos FUNCTION
    419          1.1  christos 	bfd_get_reloc_size
    420          1.1  christos 
    421          1.1  christos SYNOPSIS
    422          1.1  christos 	unsigned int bfd_get_reloc_size (reloc_howto_type *);
    423          1.1  christos 
    424          1.1  christos DESCRIPTION
    425          1.1  christos 	For a reloc_howto_type that operates on a fixed number of bytes,
    426          1.1  christos 	this returns the number of bytes operated on.
    427          1.1  christos  */
    428          1.1  christos 
    429          1.1  christos unsigned int
    430          1.1  christos bfd_get_reloc_size (reloc_howto_type *howto)
    431          1.1  christos {
    432          1.1  christos   switch (howto->size)
    433          1.1  christos     {
    434          1.1  christos     case 0: return 1;
    435          1.1  christos     case 1: return 2;
    436          1.1  christos     case 2: return 4;
    437          1.1  christos     case 3: return 0;
    438          1.1  christos     case 4: return 8;
    439          1.1  christos     case 8: return 16;
    440  1.1.1.1.2.1  pgoyette     case -1: return 2;
    441          1.1  christos     case -2: return 4;
    442          1.1  christos     default: abort ();
    443          1.1  christos     }
    444          1.1  christos }
    445          1.1  christos 
    446          1.1  christos /*
    447          1.1  christos TYPEDEF
    448          1.1  christos 	arelent_chain
    449          1.1  christos 
    450          1.1  christos DESCRIPTION
    451          1.1  christos 
    452          1.1  christos 	How relocs are tied together in an <<asection>>:
    453          1.1  christos 
    454          1.1  christos .typedef struct relent_chain
    455          1.1  christos .{
    456          1.1  christos .  arelent relent;
    457          1.1  christos .  struct relent_chain *next;
    458          1.1  christos .}
    459          1.1  christos .arelent_chain;
    460          1.1  christos .
    461          1.1  christos */
    462          1.1  christos 
    463          1.1  christos /* N_ONES produces N one bits, without overflowing machine arithmetic.  */
    464          1.1  christos #define N_ONES(n) (((((bfd_vma) 1 << ((n) - 1)) - 1) << 1) | 1)
    465          1.1  christos 
    466          1.1  christos /*
    467          1.1  christos FUNCTION
    468          1.1  christos 	bfd_check_overflow
    469          1.1  christos 
    470          1.1  christos SYNOPSIS
    471          1.1  christos 	bfd_reloc_status_type bfd_check_overflow
    472          1.1  christos 	  (enum complain_overflow how,
    473          1.1  christos 	   unsigned int bitsize,
    474          1.1  christos 	   unsigned int rightshift,
    475          1.1  christos 	   unsigned int addrsize,
    476          1.1  christos 	   bfd_vma relocation);
    477          1.1  christos 
    478          1.1  christos DESCRIPTION
    479          1.1  christos 	Perform overflow checking on @var{relocation} which has
    480          1.1  christos 	@var{bitsize} significant bits and will be shifted right by
    481          1.1  christos 	@var{rightshift} bits, on a machine with addresses containing
    482          1.1  christos 	@var{addrsize} significant bits.  The result is either of
    483          1.1  christos 	@code{bfd_reloc_ok} or @code{bfd_reloc_overflow}.
    484          1.1  christos 
    485          1.1  christos */
    486          1.1  christos 
    487          1.1  christos bfd_reloc_status_type
    488          1.1  christos bfd_check_overflow (enum complain_overflow how,
    489          1.1  christos 		    unsigned int bitsize,
    490          1.1  christos 		    unsigned int rightshift,
    491          1.1  christos 		    unsigned int addrsize,
    492          1.1  christos 		    bfd_vma relocation)
    493          1.1  christos {
    494          1.1  christos   bfd_vma fieldmask, addrmask, signmask, ss, a;
    495          1.1  christos   bfd_reloc_status_type flag = bfd_reloc_ok;
    496          1.1  christos 
    497          1.1  christos   /* Note: BITSIZE should always be <= ADDRSIZE, but in case it's not,
    498          1.1  christos      we'll be permissive: extra bits in the field mask will
    499          1.1  christos      automatically extend the address mask for purposes of the
    500          1.1  christos      overflow check.  */
    501          1.1  christos   fieldmask = N_ONES (bitsize);
    502          1.1  christos   signmask = ~fieldmask;
    503          1.1  christos   addrmask = N_ONES (addrsize) | (fieldmask << rightshift);
    504  1.1.1.1.2.1  pgoyette   a = (relocation & addrmask) >> rightshift;
    505          1.1  christos 
    506          1.1  christos   switch (how)
    507          1.1  christos     {
    508          1.1  christos     case complain_overflow_dont:
    509          1.1  christos       break;
    510          1.1  christos 
    511          1.1  christos     case complain_overflow_signed:
    512          1.1  christos       /* If any sign bits are set, all sign bits must be set.  That
    513          1.1  christos          is, A must be a valid negative address after shifting.  */
    514          1.1  christos       signmask = ~ (fieldmask >> 1);
    515          1.1  christos       /* Fall thru */
    516          1.1  christos 
    517          1.1  christos     case complain_overflow_bitfield:
    518          1.1  christos       /* Bitfields are sometimes signed, sometimes unsigned.  We
    519          1.1  christos 	 explicitly allow an address wrap too, which means a bitfield
    520          1.1  christos 	 of n bits is allowed to store -2**n to 2**n-1.  Thus overflow
    521          1.1  christos 	 if the value has some, but not all, bits set outside the
    522          1.1  christos 	 field.  */
    523          1.1  christos       ss = a & signmask;
    524          1.1  christos       if (ss != 0 && ss != ((addrmask >> rightshift) & signmask))
    525          1.1  christos 	flag = bfd_reloc_overflow;
    526          1.1  christos       break;
    527          1.1  christos 
    528          1.1  christos     case complain_overflow_unsigned:
    529          1.1  christos       /* We have an overflow if the address does not fit in the field.  */
    530          1.1  christos       if ((a & signmask) != 0)
    531          1.1  christos 	flag = bfd_reloc_overflow;
    532          1.1  christos       break;
    533          1.1  christos 
    534          1.1  christos     default:
    535          1.1  christos       abort ();
    536          1.1  christos     }
    537          1.1  christos 
    538          1.1  christos   return flag;
    539          1.1  christos }
    540          1.1  christos 
    541          1.1  christos /*
    542          1.1  christos FUNCTION
    543          1.1  christos 	bfd_perform_relocation
    544          1.1  christos 
    545          1.1  christos SYNOPSIS
    546          1.1  christos 	bfd_reloc_status_type bfd_perform_relocation
    547          1.1  christos           (bfd *abfd,
    548          1.1  christos            arelent *reloc_entry,
    549          1.1  christos            void *data,
    550          1.1  christos            asection *input_section,
    551          1.1  christos            bfd *output_bfd,
    552          1.1  christos 	   char **error_message);
    553          1.1  christos 
    554          1.1  christos DESCRIPTION
    555          1.1  christos 	If @var{output_bfd} is supplied to this function, the
    556          1.1  christos 	generated image will be relocatable; the relocations are
    557          1.1  christos 	copied to the output file after they have been changed to
    558          1.1  christos 	reflect the new state of the world. There are two ways of
    559          1.1  christos 	reflecting the results of partial linkage in an output file:
    560          1.1  christos 	by modifying the output data in place, and by modifying the
    561          1.1  christos 	relocation record.  Some native formats (e.g., basic a.out and
    562          1.1  christos 	basic coff) have no way of specifying an addend in the
    563          1.1  christos 	relocation type, so the addend has to go in the output data.
    564          1.1  christos 	This is no big deal since in these formats the output data
    565          1.1  christos 	slot will always be big enough for the addend. Complex reloc
    566          1.1  christos 	types with addends were invented to solve just this problem.
    567          1.1  christos 	The @var{error_message} argument is set to an error message if
    568          1.1  christos 	this return @code{bfd_reloc_dangerous}.
    569          1.1  christos 
    570          1.1  christos */
    571          1.1  christos 
    572          1.1  christos bfd_reloc_status_type
    573          1.1  christos bfd_perform_relocation (bfd *abfd,
    574          1.1  christos 			arelent *reloc_entry,
    575          1.1  christos 			void *data,
    576          1.1  christos 			asection *input_section,
    577          1.1  christos 			bfd *output_bfd,
    578          1.1  christos 			char **error_message)
    579          1.1  christos {
    580          1.1  christos   bfd_vma relocation;
    581          1.1  christos   bfd_reloc_status_type flag = bfd_reloc_ok;
    582  1.1.1.1.2.1  pgoyette   bfd_size_type octets;
    583          1.1  christos   bfd_vma output_base = 0;
    584          1.1  christos   reloc_howto_type *howto = reloc_entry->howto;
    585          1.1  christos   asection *reloc_target_output_section;
    586          1.1  christos   asymbol *symbol;
    587          1.1  christos 
    588          1.1  christos   symbol = *(reloc_entry->sym_ptr_ptr);
    589          1.1  christos   if (bfd_is_abs_section (symbol->section)
    590          1.1  christos       && output_bfd != NULL)
    591          1.1  christos     {
    592          1.1  christos       reloc_entry->address += input_section->output_offset;
    593          1.1  christos       return bfd_reloc_ok;
    594          1.1  christos     }
    595          1.1  christos 
    596  1.1.1.1.2.1  pgoyette   /* PR 17512: file: 0f67f69d.  */
    597  1.1.1.1.2.1  pgoyette   if (howto == NULL)
    598  1.1.1.1.2.1  pgoyette     return bfd_reloc_undefined;
    599  1.1.1.1.2.1  pgoyette 
    600          1.1  christos   /* If we are not producing relocatable output, return an error if
    601          1.1  christos      the symbol is not defined.  An undefined weak symbol is
    602          1.1  christos      considered to have a value of zero (SVR4 ABI, p. 4-27).  */
    603          1.1  christos   if (bfd_is_und_section (symbol->section)
    604          1.1  christos       && (symbol->flags & BSF_WEAK) == 0
    605          1.1  christos       && output_bfd == NULL)
    606          1.1  christos     flag = bfd_reloc_undefined;
    607          1.1  christos 
    608          1.1  christos   /* If there is a function supplied to handle this relocation type,
    609          1.1  christos      call it.  It'll return `bfd_reloc_continue' if further processing
    610          1.1  christos      can be done.  */
    611          1.1  christos   if (howto->special_function)
    612          1.1  christos     {
    613          1.1  christos       bfd_reloc_status_type cont;
    614          1.1  christos       cont = howto->special_function (abfd, reloc_entry, symbol, data,
    615          1.1  christos 				      input_section, output_bfd,
    616          1.1  christos 				      error_message);
    617          1.1  christos       if (cont != bfd_reloc_continue)
    618          1.1  christos 	return cont;
    619          1.1  christos     }
    620          1.1  christos 
    621  1.1.1.1.2.1  pgoyette   /* Is the address of the relocation really within the section?
    622  1.1.1.1.2.1  pgoyette      Include the size of the reloc in the test for out of range addresses.
    623  1.1.1.1.2.1  pgoyette      PR 17512: file: c146ab8b, 46dff27f, 38e53ebf.  */
    624  1.1.1.1.2.1  pgoyette   octets = reloc_entry->address * bfd_octets_per_byte (abfd);
    625  1.1.1.1.2.1  pgoyette   if (octets + bfd_get_reloc_size (howto)
    626  1.1.1.1.2.1  pgoyette       > bfd_get_section_limit_octets (abfd, input_section))
    627          1.1  christos     return bfd_reloc_outofrange;
    628          1.1  christos 
    629          1.1  christos   /* Work out which section the relocation is targeted at and the
    630          1.1  christos      initial relocation command value.  */
    631          1.1  christos 
    632          1.1  christos   /* Get symbol value.  (Common symbols are special.)  */
    633          1.1  christos   if (bfd_is_com_section (symbol->section))
    634          1.1  christos     relocation = 0;
    635          1.1  christos   else
    636          1.1  christos     relocation = symbol->value;
    637          1.1  christos 
    638          1.1  christos   reloc_target_output_section = symbol->section->output_section;
    639          1.1  christos 
    640          1.1  christos   /* Convert input-section-relative symbol value to absolute.  */
    641          1.1  christos   if ((output_bfd && ! howto->partial_inplace)
    642          1.1  christos       || reloc_target_output_section == NULL)
    643          1.1  christos     output_base = 0;
    644          1.1  christos   else
    645          1.1  christos     output_base = reloc_target_output_section->vma;
    646          1.1  christos 
    647          1.1  christos   relocation += output_base + symbol->section->output_offset;
    648          1.1  christos 
    649          1.1  christos   /* Add in supplied addend.  */
    650          1.1  christos   relocation += reloc_entry->addend;
    651          1.1  christos 
    652          1.1  christos   /* Here the variable relocation holds the final address of the
    653          1.1  christos      symbol we are relocating against, plus any addend.  */
    654          1.1  christos 
    655          1.1  christos   if (howto->pc_relative)
    656          1.1  christos     {
    657          1.1  christos       /* This is a PC relative relocation.  We want to set RELOCATION
    658          1.1  christos 	 to the distance between the address of the symbol and the
    659          1.1  christos 	 location.  RELOCATION is already the address of the symbol.
    660          1.1  christos 
    661          1.1  christos 	 We start by subtracting the address of the section containing
    662          1.1  christos 	 the location.
    663          1.1  christos 
    664          1.1  christos 	 If pcrel_offset is set, we must further subtract the position
    665          1.1  christos 	 of the location within the section.  Some targets arrange for
    666          1.1  christos 	 the addend to be the negative of the position of the location
    667          1.1  christos 	 within the section; for example, i386-aout does this.  For
    668          1.1  christos 	 i386-aout, pcrel_offset is FALSE.  Some other targets do not
    669          1.1  christos 	 include the position of the location; for example, m88kbcs,
    670          1.1  christos 	 or ELF.  For those targets, pcrel_offset is TRUE.
    671          1.1  christos 
    672          1.1  christos 	 If we are producing relocatable output, then we must ensure
    673          1.1  christos 	 that this reloc will be correctly computed when the final
    674          1.1  christos 	 relocation is done.  If pcrel_offset is FALSE we want to wind
    675          1.1  christos 	 up with the negative of the location within the section,
    676          1.1  christos 	 which means we must adjust the existing addend by the change
    677          1.1  christos 	 in the location within the section.  If pcrel_offset is TRUE
    678          1.1  christos 	 we do not want to adjust the existing addend at all.
    679          1.1  christos 
    680          1.1  christos 	 FIXME: This seems logical to me, but for the case of
    681          1.1  christos 	 producing relocatable output it is not what the code
    682          1.1  christos 	 actually does.  I don't want to change it, because it seems
    683          1.1  christos 	 far too likely that something will break.  */
    684          1.1  christos 
    685          1.1  christos       relocation -=
    686          1.1  christos 	input_section->output_section->vma + input_section->output_offset;
    687          1.1  christos 
    688          1.1  christos       if (howto->pcrel_offset)
    689          1.1  christos 	relocation -= reloc_entry->address;
    690          1.1  christos     }
    691          1.1  christos 
    692          1.1  christos   if (output_bfd != NULL)
    693          1.1  christos     {
    694          1.1  christos       if (! howto->partial_inplace)
    695          1.1  christos 	{
    696          1.1  christos 	  /* This is a partial relocation, and we want to apply the relocation
    697          1.1  christos 	     to the reloc entry rather than the raw data. Modify the reloc
    698          1.1  christos 	     inplace to reflect what we now know.  */
    699          1.1  christos 	  reloc_entry->addend = relocation;
    700          1.1  christos 	  reloc_entry->address += input_section->output_offset;
    701          1.1  christos 	  return flag;
    702          1.1  christos 	}
    703          1.1  christos       else
    704          1.1  christos 	{
    705          1.1  christos 	  /* This is a partial relocation, but inplace, so modify the
    706          1.1  christos 	     reloc record a bit.
    707          1.1  christos 
    708          1.1  christos 	     If we've relocated with a symbol with a section, change
    709          1.1  christos 	     into a ref to the section belonging to the symbol.  */
    710          1.1  christos 
    711          1.1  christos 	  reloc_entry->address += input_section->output_offset;
    712          1.1  christos 
    713          1.1  christos 	  /* WTF?? */
    714          1.1  christos 	  if (abfd->xvec->flavour == bfd_target_coff_flavour
    715          1.1  christos 	      && strcmp (abfd->xvec->name, "coff-Intel-little") != 0
    716          1.1  christos 	      && strcmp (abfd->xvec->name, "coff-Intel-big") != 0)
    717          1.1  christos 	    {
    718          1.1  christos 	      /* For m68k-coff, the addend was being subtracted twice during
    719          1.1  christos 		 relocation with -r.  Removing the line below this comment
    720          1.1  christos 		 fixes that problem; see PR 2953.
    721          1.1  christos 
    722          1.1  christos However, Ian wrote the following, regarding removing the line below,
    723          1.1  christos which explains why it is still enabled:  --djm
    724          1.1  christos 
    725          1.1  christos If you put a patch like that into BFD you need to check all the COFF
    726          1.1  christos linkers.  I am fairly certain that patch will break coff-i386 (e.g.,
    727          1.1  christos SCO); see coff_i386_reloc in coff-i386.c where I worked around the
    728          1.1  christos problem in a different way.  There may very well be a reason that the
    729          1.1  christos code works as it does.
    730          1.1  christos 
    731          1.1  christos Hmmm.  The first obvious point is that bfd_perform_relocation should
    732          1.1  christos not have any tests that depend upon the flavour.  It's seem like
    733          1.1  christos entirely the wrong place for such a thing.  The second obvious point
    734          1.1  christos is that the current code ignores the reloc addend when producing
    735          1.1  christos relocatable output for COFF.  That's peculiar.  In fact, I really
    736          1.1  christos have no idea what the point of the line you want to remove is.
    737          1.1  christos 
    738          1.1  christos A typical COFF reloc subtracts the old value of the symbol and adds in
    739          1.1  christos the new value to the location in the object file (if it's a pc
    740          1.1  christos relative reloc it adds the difference between the symbol value and the
    741          1.1  christos location).  When relocating we need to preserve that property.
    742          1.1  christos 
    743          1.1  christos BFD handles this by setting the addend to the negative of the old
    744          1.1  christos value of the symbol.  Unfortunately it handles common symbols in a
    745          1.1  christos non-standard way (it doesn't subtract the old value) but that's a
    746          1.1  christos different story (we can't change it without losing backward
    747          1.1  christos compatibility with old object files) (coff-i386 does subtract the old
    748          1.1  christos value, to be compatible with existing coff-i386 targets, like SCO).
    749          1.1  christos 
    750          1.1  christos So everything works fine when not producing relocatable output.  When
    751          1.1  christos we are producing relocatable output, logically we should do exactly
    752          1.1  christos what we do when not producing relocatable output.  Therefore, your
    753          1.1  christos patch is correct.  In fact, it should probably always just set
    754          1.1  christos reloc_entry->addend to 0 for all cases, since it is, in fact, going to
    755          1.1  christos add the value into the object file.  This won't hurt the COFF code,
    756          1.1  christos which doesn't use the addend; I'm not sure what it will do to other
    757          1.1  christos formats (the thing to check for would be whether any formats both use
    758          1.1  christos the addend and set partial_inplace).
    759          1.1  christos 
    760          1.1  christos When I wanted to make coff-i386 produce relocatable output, I ran
    761          1.1  christos into the problem that you are running into: I wanted to remove that
    762          1.1  christos line.  Rather than risk it, I made the coff-i386 relocs use a special
    763          1.1  christos function; it's coff_i386_reloc in coff-i386.c.  The function
    764          1.1  christos specifically adds the addend field into the object file, knowing that
    765          1.1  christos bfd_perform_relocation is not going to.  If you remove that line, then
    766          1.1  christos coff-i386.c will wind up adding the addend field in twice.  It's
    767          1.1  christos trivial to fix; it just needs to be done.
    768          1.1  christos 
    769          1.1  christos The problem with removing the line is just that it may break some
    770          1.1  christos working code.  With BFD it's hard to be sure of anything.  The right
    771          1.1  christos way to deal with this is simply to build and test at least all the
    772          1.1  christos supported COFF targets.  It should be straightforward if time and disk
    773          1.1  christos space consuming.  For each target:
    774          1.1  christos     1) build the linker
    775          1.1  christos     2) generate some executable, and link it using -r (I would
    776          1.1  christos        probably use paranoia.o and link against newlib/libc.a, which
    777          1.1  christos        for all the supported targets would be available in
    778          1.1  christos        /usr/cygnus/progressive/H-host/target/lib/libc.a).
    779          1.1  christos     3) make the change to reloc.c
    780          1.1  christos     4) rebuild the linker
    781          1.1  christos     5) repeat step 2
    782          1.1  christos     6) if the resulting object files are the same, you have at least
    783          1.1  christos        made it no worse
    784          1.1  christos     7) if they are different you have to figure out which version is
    785          1.1  christos        right
    786          1.1  christos */
    787          1.1  christos 	      relocation -= reloc_entry->addend;
    788          1.1  christos 	      reloc_entry->addend = 0;
    789          1.1  christos 	    }
    790          1.1  christos 	  else
    791          1.1  christos 	    {
    792          1.1  christos 	      reloc_entry->addend = relocation;
    793          1.1  christos 	    }
    794          1.1  christos 	}
    795          1.1  christos     }
    796          1.1  christos 
    797          1.1  christos   /* FIXME: This overflow checking is incomplete, because the value
    798          1.1  christos      might have overflowed before we get here.  For a correct check we
    799          1.1  christos      need to compute the value in a size larger than bitsize, but we
    800          1.1  christos      can't reasonably do that for a reloc the same size as a host
    801          1.1  christos      machine word.
    802          1.1  christos      FIXME: We should also do overflow checking on the result after
    803          1.1  christos      adding in the value contained in the object file.  */
    804          1.1  christos   if (howto->complain_on_overflow != complain_overflow_dont
    805          1.1  christos       && flag == bfd_reloc_ok)
    806          1.1  christos     flag = bfd_check_overflow (howto->complain_on_overflow,
    807          1.1  christos 			       howto->bitsize,
    808          1.1  christos 			       howto->rightshift,
    809          1.1  christos 			       bfd_arch_bits_per_address (abfd),
    810          1.1  christos 			       relocation);
    811          1.1  christos 
    812          1.1  christos   /* Either we are relocating all the way, or we don't want to apply
    813          1.1  christos      the relocation to the reloc entry (probably because there isn't
    814          1.1  christos      any room in the output format to describe addends to relocs).  */
    815          1.1  christos 
    816          1.1  christos   /* The cast to bfd_vma avoids a bug in the Alpha OSF/1 C compiler
    817          1.1  christos      (OSF version 1.3, compiler version 3.11).  It miscompiles the
    818          1.1  christos      following program:
    819          1.1  christos 
    820          1.1  christos      struct str
    821          1.1  christos      {
    822          1.1  christos        unsigned int i0;
    823          1.1  christos      } s = { 0 };
    824          1.1  christos 
    825          1.1  christos      int
    826          1.1  christos      main ()
    827          1.1  christos      {
    828          1.1  christos        unsigned long x;
    829          1.1  christos 
    830          1.1  christos        x = 0x100000000;
    831          1.1  christos        x <<= (unsigned long) s.i0;
    832          1.1  christos        if (x == 0)
    833          1.1  christos 	 printf ("failed\n");
    834          1.1  christos        else
    835          1.1  christos 	 printf ("succeeded (%lx)\n", x);
    836          1.1  christos      }
    837          1.1  christos      */
    838          1.1  christos 
    839          1.1  christos   relocation >>= (bfd_vma) howto->rightshift;
    840          1.1  christos 
    841          1.1  christos   /* Shift everything up to where it's going to be used.  */
    842          1.1  christos   relocation <<= (bfd_vma) howto->bitpos;
    843          1.1  christos 
    844          1.1  christos   /* Wait for the day when all have the mask in them.  */
    845          1.1  christos 
    846          1.1  christos   /* What we do:
    847          1.1  christos      i instruction to be left alone
    848          1.1  christos      o offset within instruction
    849          1.1  christos      r relocation offset to apply
    850          1.1  christos      S src mask
    851          1.1  christos      D dst mask
    852          1.1  christos      N ~dst mask
    853          1.1  christos      A part 1
    854          1.1  christos      B part 2
    855          1.1  christos      R result
    856          1.1  christos 
    857          1.1  christos      Do this:
    858          1.1  christos      ((  i i i i i o o o o o  from bfd_get<size>
    859          1.1  christos      and           S S S S S) to get the size offset we want
    860          1.1  christos      +   r r r r r r r r r r) to get the final value to place
    861          1.1  christos      and           D D D D D  to chop to right size
    862          1.1  christos      -----------------------
    863          1.1  christos      =             A A A A A
    864          1.1  christos      And this:
    865          1.1  christos      (   i i i i i o o o o o  from bfd_get<size>
    866          1.1  christos      and N N N N N          ) get instruction
    867          1.1  christos      -----------------------
    868          1.1  christos      =   B B B B B
    869          1.1  christos 
    870          1.1  christos      And then:
    871          1.1  christos      (   B B B B B
    872          1.1  christos      or            A A A A A)
    873          1.1  christos      -----------------------
    874          1.1  christos      =   R R R R R R R R R R  put into bfd_put<size>
    875          1.1  christos      */
    876          1.1  christos 
    877          1.1  christos #define DOIT(x) \
    878          1.1  christos   x = ( (x & ~howto->dst_mask) | (((x & howto->src_mask) +  relocation) & howto->dst_mask))
    879          1.1  christos 
    880          1.1  christos   switch (howto->size)
    881          1.1  christos     {
    882          1.1  christos     case 0:
    883          1.1  christos       {
    884          1.1  christos 	char x = bfd_get_8 (abfd, (char *) data + octets);
    885          1.1  christos 	DOIT (x);
    886          1.1  christos 	bfd_put_8 (abfd, x, (unsigned char *) data + octets);
    887          1.1  christos       }
    888          1.1  christos       break;
    889          1.1  christos 
    890          1.1  christos     case 1:
    891          1.1  christos       {
    892          1.1  christos 	short x = bfd_get_16 (abfd, (bfd_byte *) data + octets);
    893          1.1  christos 	DOIT (x);
    894          1.1  christos 	bfd_put_16 (abfd, (bfd_vma) x, (unsigned char *) data + octets);
    895          1.1  christos       }
    896          1.1  christos       break;
    897          1.1  christos     case 2:
    898          1.1  christos       {
    899          1.1  christos 	long x = bfd_get_32 (abfd, (bfd_byte *) data + octets);
    900          1.1  christos 	DOIT (x);
    901          1.1  christos 	bfd_put_32 (abfd, (bfd_vma) x, (bfd_byte *) data + octets);
    902          1.1  christos       }
    903          1.1  christos       break;
    904          1.1  christos     case -2:
    905          1.1  christos       {
    906          1.1  christos 	long x = bfd_get_32 (abfd, (bfd_byte *) data + octets);
    907          1.1  christos 	relocation = -relocation;
    908          1.1  christos 	DOIT (x);
    909          1.1  christos 	bfd_put_32 (abfd, (bfd_vma) x, (bfd_byte *) data + octets);
    910          1.1  christos       }
    911          1.1  christos       break;
    912          1.1  christos 
    913          1.1  christos     case -1:
    914          1.1  christos       {
    915          1.1  christos 	long x = bfd_get_16 (abfd, (bfd_byte *) data + octets);
    916          1.1  christos 	relocation = -relocation;
    917          1.1  christos 	DOIT (x);
    918          1.1  christos 	bfd_put_16 (abfd, (bfd_vma) x, (bfd_byte *) data + octets);
    919          1.1  christos       }
    920          1.1  christos       break;
    921          1.1  christos 
    922          1.1  christos     case 3:
    923          1.1  christos       /* Do nothing */
    924          1.1  christos       break;
    925          1.1  christos 
    926          1.1  christos     case 4:
    927          1.1  christos #ifdef BFD64
    928          1.1  christos       {
    929          1.1  christos 	bfd_vma x = bfd_get_64 (abfd, (bfd_byte *) data + octets);
    930          1.1  christos 	DOIT (x);
    931          1.1  christos 	bfd_put_64 (abfd, x, (bfd_byte *) data + octets);
    932          1.1  christos       }
    933          1.1  christos #else
    934          1.1  christos       abort ();
    935          1.1  christos #endif
    936          1.1  christos       break;
    937          1.1  christos     default:
    938          1.1  christos       return bfd_reloc_other;
    939          1.1  christos     }
    940          1.1  christos 
    941          1.1  christos   return flag;
    942          1.1  christos }
    943          1.1  christos 
    944          1.1  christos /*
    945          1.1  christos FUNCTION
    946          1.1  christos 	bfd_install_relocation
    947          1.1  christos 
    948          1.1  christos SYNOPSIS
    949          1.1  christos 	bfd_reloc_status_type bfd_install_relocation
    950          1.1  christos           (bfd *abfd,
    951          1.1  christos            arelent *reloc_entry,
    952          1.1  christos            void *data, bfd_vma data_start,
    953          1.1  christos            asection *input_section,
    954          1.1  christos 	   char **error_message);
    955          1.1  christos 
    956          1.1  christos DESCRIPTION
    957          1.1  christos 	This looks remarkably like <<bfd_perform_relocation>>, except it
    958          1.1  christos 	does not expect that the section contents have been filled in.
    959          1.1  christos 	I.e., it's suitable for use when creating, rather than applying
    960          1.1  christos 	a relocation.
    961          1.1  christos 
    962          1.1  christos 	For now, this function should be considered reserved for the
    963          1.1  christos 	assembler.
    964          1.1  christos */
    965          1.1  christos 
    966          1.1  christos bfd_reloc_status_type
    967          1.1  christos bfd_install_relocation (bfd *abfd,
    968          1.1  christos 			arelent *reloc_entry,
    969          1.1  christos 			void *data_start,
    970          1.1  christos 			bfd_vma data_start_offset,
    971          1.1  christos 			asection *input_section,
    972          1.1  christos 			char **error_message)
    973          1.1  christos {
    974          1.1  christos   bfd_vma relocation;
    975          1.1  christos   bfd_reloc_status_type flag = bfd_reloc_ok;
    976  1.1.1.1.2.1  pgoyette   bfd_size_type octets;
    977          1.1  christos   bfd_vma output_base = 0;
    978          1.1  christos   reloc_howto_type *howto = reloc_entry->howto;
    979          1.1  christos   asection *reloc_target_output_section;
    980          1.1  christos   asymbol *symbol;
    981          1.1  christos   bfd_byte *data;
    982          1.1  christos 
    983          1.1  christos   symbol = *(reloc_entry->sym_ptr_ptr);
    984          1.1  christos   if (bfd_is_abs_section (symbol->section))
    985          1.1  christos     {
    986          1.1  christos       reloc_entry->address += input_section->output_offset;
    987          1.1  christos       return bfd_reloc_ok;
    988          1.1  christos     }
    989          1.1  christos 
    990          1.1  christos   /* If there is a function supplied to handle this relocation type,
    991          1.1  christos      call it.  It'll return `bfd_reloc_continue' if further processing
    992          1.1  christos      can be done.  */
    993          1.1  christos   if (howto->special_function)
    994          1.1  christos     {
    995          1.1  christos       bfd_reloc_status_type cont;
    996          1.1  christos 
    997          1.1  christos       /* XXX - The special_function calls haven't been fixed up to deal
    998          1.1  christos 	 with creating new relocations and section contents.  */
    999          1.1  christos       cont = howto->special_function (abfd, reloc_entry, symbol,
   1000          1.1  christos 				      /* XXX - Non-portable! */
   1001          1.1  christos 				      ((bfd_byte *) data_start
   1002          1.1  christos 				       - data_start_offset),
   1003          1.1  christos 				      input_section, abfd, error_message);
   1004          1.1  christos       if (cont != bfd_reloc_continue)
   1005          1.1  christos 	return cont;
   1006          1.1  christos     }
   1007          1.1  christos 
   1008          1.1  christos   /* Is the address of the relocation really within the section?  */
   1009  1.1.1.1.2.1  pgoyette   octets = reloc_entry->address * bfd_octets_per_byte (abfd);
   1010  1.1.1.1.2.1  pgoyette   if (octets + bfd_get_reloc_size (howto)
   1011  1.1.1.1.2.1  pgoyette       > bfd_get_section_limit_octets (abfd, input_section))
   1012          1.1  christos     return bfd_reloc_outofrange;
   1013          1.1  christos 
   1014          1.1  christos   /* Work out which section the relocation is targeted at and the
   1015          1.1  christos      initial relocation command value.  */
   1016          1.1  christos 
   1017          1.1  christos   /* Get symbol value.  (Common symbols are special.)  */
   1018          1.1  christos   if (bfd_is_com_section (symbol->section))
   1019          1.1  christos     relocation = 0;
   1020          1.1  christos   else
   1021          1.1  christos     relocation = symbol->value;
   1022          1.1  christos 
   1023          1.1  christos   reloc_target_output_section = symbol->section->output_section;
   1024          1.1  christos 
   1025          1.1  christos   /* Convert input-section-relative symbol value to absolute.  */
   1026          1.1  christos   if (! howto->partial_inplace)
   1027          1.1  christos     output_base = 0;
   1028          1.1  christos   else
   1029          1.1  christos     output_base = reloc_target_output_section->vma;
   1030          1.1  christos 
   1031          1.1  christos   relocation += output_base + symbol->section->output_offset;
   1032          1.1  christos 
   1033          1.1  christos   /* Add in supplied addend.  */
   1034          1.1  christos   relocation += reloc_entry->addend;
   1035          1.1  christos 
   1036          1.1  christos   /* Here the variable relocation holds the final address of the
   1037          1.1  christos      symbol we are relocating against, plus any addend.  */
   1038          1.1  christos 
   1039          1.1  christos   if (howto->pc_relative)
   1040          1.1  christos     {
   1041          1.1  christos       /* This is a PC relative relocation.  We want to set RELOCATION
   1042          1.1  christos 	 to the distance between the address of the symbol and the
   1043          1.1  christos 	 location.  RELOCATION is already the address of the symbol.
   1044          1.1  christos 
   1045          1.1  christos 	 We start by subtracting the address of the section containing
   1046          1.1  christos 	 the location.
   1047          1.1  christos 
   1048          1.1  christos 	 If pcrel_offset is set, we must further subtract the position
   1049          1.1  christos 	 of the location within the section.  Some targets arrange for
   1050          1.1  christos 	 the addend to be the negative of the position of the location
   1051          1.1  christos 	 within the section; for example, i386-aout does this.  For
   1052          1.1  christos 	 i386-aout, pcrel_offset is FALSE.  Some other targets do not
   1053          1.1  christos 	 include the position of the location; for example, m88kbcs,
   1054          1.1  christos 	 or ELF.  For those targets, pcrel_offset is TRUE.
   1055          1.1  christos 
   1056          1.1  christos 	 If we are producing relocatable output, then we must ensure
   1057          1.1  christos 	 that this reloc will be correctly computed when the final
   1058          1.1  christos 	 relocation is done.  If pcrel_offset is FALSE we want to wind
   1059          1.1  christos 	 up with the negative of the location within the section,
   1060          1.1  christos 	 which means we must adjust the existing addend by the change
   1061          1.1  christos 	 in the location within the section.  If pcrel_offset is TRUE
   1062          1.1  christos 	 we do not want to adjust the existing addend at all.
   1063          1.1  christos 
   1064          1.1  christos 	 FIXME: This seems logical to me, but for the case of
   1065          1.1  christos 	 producing relocatable output it is not what the code
   1066          1.1  christos 	 actually does.  I don't want to change it, because it seems
   1067          1.1  christos 	 far too likely that something will break.  */
   1068          1.1  christos 
   1069          1.1  christos       relocation -=
   1070          1.1  christos 	input_section->output_section->vma + input_section->output_offset;
   1071          1.1  christos 
   1072          1.1  christos       if (howto->pcrel_offset && howto->partial_inplace)
   1073          1.1  christos 	relocation -= reloc_entry->address;
   1074          1.1  christos     }
   1075          1.1  christos 
   1076          1.1  christos   if (! howto->partial_inplace)
   1077          1.1  christos     {
   1078          1.1  christos       /* This is a partial relocation, and we want to apply the relocation
   1079          1.1  christos 	 to the reloc entry rather than the raw data. Modify the reloc
   1080          1.1  christos 	 inplace to reflect what we now know.  */
   1081          1.1  christos       reloc_entry->addend = relocation;
   1082          1.1  christos       reloc_entry->address += input_section->output_offset;
   1083          1.1  christos       return flag;
   1084          1.1  christos     }
   1085          1.1  christos   else
   1086          1.1  christos     {
   1087          1.1  christos       /* This is a partial relocation, but inplace, so modify the
   1088          1.1  christos 	 reloc record a bit.
   1089          1.1  christos 
   1090          1.1  christos 	 If we've relocated with a symbol with a section, change
   1091          1.1  christos 	 into a ref to the section belonging to the symbol.  */
   1092          1.1  christos       reloc_entry->address += input_section->output_offset;
   1093          1.1  christos 
   1094          1.1  christos       /* WTF?? */
   1095          1.1  christos       if (abfd->xvec->flavour == bfd_target_coff_flavour
   1096          1.1  christos 	  && strcmp (abfd->xvec->name, "coff-Intel-little") != 0
   1097          1.1  christos 	  && strcmp (abfd->xvec->name, "coff-Intel-big") != 0)
   1098          1.1  christos 	{
   1099          1.1  christos 
   1100          1.1  christos 	  /* For m68k-coff, the addend was being subtracted twice during
   1101          1.1  christos 	     relocation with -r.  Removing the line below this comment
   1102          1.1  christos 	     fixes that problem; see PR 2953.
   1103          1.1  christos 
   1104          1.1  christos However, Ian wrote the following, regarding removing the line below,
   1105          1.1  christos which explains why it is still enabled:  --djm
   1106          1.1  christos 
   1107          1.1  christos If you put a patch like that into BFD you need to check all the COFF
   1108          1.1  christos linkers.  I am fairly certain that patch will break coff-i386 (e.g.,
   1109          1.1  christos SCO); see coff_i386_reloc in coff-i386.c where I worked around the
   1110          1.1  christos problem in a different way.  There may very well be a reason that the
   1111          1.1  christos code works as it does.
   1112          1.1  christos 
   1113          1.1  christos Hmmm.  The first obvious point is that bfd_install_relocation should
   1114          1.1  christos not have any tests that depend upon the flavour.  It's seem like
   1115          1.1  christos entirely the wrong place for such a thing.  The second obvious point
   1116          1.1  christos is that the current code ignores the reloc addend when producing
   1117          1.1  christos relocatable output for COFF.  That's peculiar.  In fact, I really
   1118          1.1  christos have no idea what the point of the line you want to remove is.
   1119          1.1  christos 
   1120          1.1  christos A typical COFF reloc subtracts the old value of the symbol and adds in
   1121          1.1  christos the new value to the location in the object file (if it's a pc
   1122          1.1  christos relative reloc it adds the difference between the symbol value and the
   1123          1.1  christos location).  When relocating we need to preserve that property.
   1124          1.1  christos 
   1125          1.1  christos BFD handles this by setting the addend to the negative of the old
   1126          1.1  christos value of the symbol.  Unfortunately it handles common symbols in a
   1127          1.1  christos non-standard way (it doesn't subtract the old value) but that's a
   1128          1.1  christos different story (we can't change it without losing backward
   1129          1.1  christos compatibility with old object files) (coff-i386 does subtract the old
   1130          1.1  christos value, to be compatible with existing coff-i386 targets, like SCO).
   1131          1.1  christos 
   1132          1.1  christos So everything works fine when not producing relocatable output.  When
   1133          1.1  christos we are producing relocatable output, logically we should do exactly
   1134          1.1  christos what we do when not producing relocatable output.  Therefore, your
   1135          1.1  christos patch is correct.  In fact, it should probably always just set
   1136          1.1  christos reloc_entry->addend to 0 for all cases, since it is, in fact, going to
   1137          1.1  christos add the value into the object file.  This won't hurt the COFF code,
   1138          1.1  christos which doesn't use the addend; I'm not sure what it will do to other
   1139          1.1  christos formats (the thing to check for would be whether any formats both use
   1140          1.1  christos the addend and set partial_inplace).
   1141          1.1  christos 
   1142          1.1  christos When I wanted to make coff-i386 produce relocatable output, I ran
   1143          1.1  christos into the problem that you are running into: I wanted to remove that
   1144          1.1  christos line.  Rather than risk it, I made the coff-i386 relocs use a special
   1145          1.1  christos function; it's coff_i386_reloc in coff-i386.c.  The function
   1146          1.1  christos specifically adds the addend field into the object file, knowing that
   1147          1.1  christos bfd_install_relocation is not going to.  If you remove that line, then
   1148          1.1  christos coff-i386.c will wind up adding the addend field in twice.  It's
   1149          1.1  christos trivial to fix; it just needs to be done.
   1150          1.1  christos 
   1151          1.1  christos The problem with removing the line is just that it may break some
   1152          1.1  christos working code.  With BFD it's hard to be sure of anything.  The right
   1153          1.1  christos way to deal with this is simply to build and test at least all the
   1154          1.1  christos supported COFF targets.  It should be straightforward if time and disk
   1155          1.1  christos space consuming.  For each target:
   1156          1.1  christos     1) build the linker
   1157          1.1  christos     2) generate some executable, and link it using -r (I would
   1158          1.1  christos        probably use paranoia.o and link against newlib/libc.a, which
   1159          1.1  christos        for all the supported targets would be available in
   1160          1.1  christos        /usr/cygnus/progressive/H-host/target/lib/libc.a).
   1161          1.1  christos     3) make the change to reloc.c
   1162          1.1  christos     4) rebuild the linker
   1163          1.1  christos     5) repeat step 2
   1164          1.1  christos     6) if the resulting object files are the same, you have at least
   1165          1.1  christos        made it no worse
   1166          1.1  christos     7) if they are different you have to figure out which version is
   1167          1.1  christos        right.  */
   1168          1.1  christos 	  relocation -= reloc_entry->addend;
   1169          1.1  christos 	  /* FIXME: There should be no target specific code here...  */
   1170          1.1  christos 	  if (strcmp (abfd->xvec->name, "coff-z8k") != 0)
   1171          1.1  christos 	    reloc_entry->addend = 0;
   1172          1.1  christos 	}
   1173          1.1  christos       else
   1174          1.1  christos 	{
   1175          1.1  christos 	  reloc_entry->addend = relocation;
   1176          1.1  christos 	}
   1177          1.1  christos     }
   1178          1.1  christos 
   1179          1.1  christos   /* FIXME: This overflow checking is incomplete, because the value
   1180          1.1  christos      might have overflowed before we get here.  For a correct check we
   1181          1.1  christos      need to compute the value in a size larger than bitsize, but we
   1182          1.1  christos      can't reasonably do that for a reloc the same size as a host
   1183          1.1  christos      machine word.
   1184          1.1  christos      FIXME: We should also do overflow checking on the result after
   1185          1.1  christos      adding in the value contained in the object file.  */
   1186          1.1  christos   if (howto->complain_on_overflow != complain_overflow_dont)
   1187          1.1  christos     flag = bfd_check_overflow (howto->complain_on_overflow,
   1188          1.1  christos 			       howto->bitsize,
   1189          1.1  christos 			       howto->rightshift,
   1190          1.1  christos 			       bfd_arch_bits_per_address (abfd),
   1191          1.1  christos 			       relocation);
   1192          1.1  christos 
   1193          1.1  christos   /* Either we are relocating all the way, or we don't want to apply
   1194          1.1  christos      the relocation to the reloc entry (probably because there isn't
   1195          1.1  christos      any room in the output format to describe addends to relocs).  */
   1196          1.1  christos 
   1197          1.1  christos   /* The cast to bfd_vma avoids a bug in the Alpha OSF/1 C compiler
   1198          1.1  christos      (OSF version 1.3, compiler version 3.11).  It miscompiles the
   1199          1.1  christos      following program:
   1200          1.1  christos 
   1201          1.1  christos      struct str
   1202          1.1  christos      {
   1203          1.1  christos        unsigned int i0;
   1204          1.1  christos      } s = { 0 };
   1205          1.1  christos 
   1206          1.1  christos      int
   1207          1.1  christos      main ()
   1208          1.1  christos      {
   1209          1.1  christos        unsigned long x;
   1210          1.1  christos 
   1211          1.1  christos        x = 0x100000000;
   1212          1.1  christos        x <<= (unsigned long) s.i0;
   1213          1.1  christos        if (x == 0)
   1214          1.1  christos 	 printf ("failed\n");
   1215          1.1  christos        else
   1216          1.1  christos 	 printf ("succeeded (%lx)\n", x);
   1217          1.1  christos      }
   1218          1.1  christos      */
   1219          1.1  christos 
   1220          1.1  christos   relocation >>= (bfd_vma) howto->rightshift;
   1221          1.1  christos 
   1222          1.1  christos   /* Shift everything up to where it's going to be used.  */
   1223          1.1  christos   relocation <<= (bfd_vma) howto->bitpos;
   1224          1.1  christos 
   1225          1.1  christos   /* Wait for the day when all have the mask in them.  */
   1226          1.1  christos 
   1227          1.1  christos   /* What we do:
   1228          1.1  christos      i instruction to be left alone
   1229          1.1  christos      o offset within instruction
   1230          1.1  christos      r relocation offset to apply
   1231          1.1  christos      S src mask
   1232          1.1  christos      D dst mask
   1233          1.1  christos      N ~dst mask
   1234          1.1  christos      A part 1
   1235          1.1  christos      B part 2
   1236          1.1  christos      R result
   1237          1.1  christos 
   1238          1.1  christos      Do this:
   1239          1.1  christos      ((  i i i i i o o o o o  from bfd_get<size>
   1240          1.1  christos      and           S S S S S) to get the size offset we want
   1241          1.1  christos      +   r r r r r r r r r r) to get the final value to place
   1242          1.1  christos      and           D D D D D  to chop to right size
   1243          1.1  christos      -----------------------
   1244          1.1  christos      =             A A A A A
   1245          1.1  christos      And this:
   1246          1.1  christos      (   i i i i i o o o o o  from bfd_get<size>
   1247          1.1  christos      and N N N N N          ) get instruction
   1248          1.1  christos      -----------------------
   1249          1.1  christos      =   B B B B B
   1250          1.1  christos 
   1251          1.1  christos      And then:
   1252          1.1  christos      (   B B B B B
   1253          1.1  christos      or            A A A A A)
   1254          1.1  christos      -----------------------
   1255          1.1  christos      =   R R R R R R R R R R  put into bfd_put<size>
   1256          1.1  christos      */
   1257          1.1  christos 
   1258          1.1  christos #define DOIT(x) \
   1259          1.1  christos   x = ( (x & ~howto->dst_mask) | (((x & howto->src_mask) +  relocation) & howto->dst_mask))
   1260          1.1  christos 
   1261          1.1  christos   data = (bfd_byte *) data_start + (octets - data_start_offset);
   1262          1.1  christos 
   1263          1.1  christos   switch (howto->size)
   1264          1.1  christos     {
   1265          1.1  christos     case 0:
   1266          1.1  christos       {
   1267          1.1  christos 	char x = bfd_get_8 (abfd, data);
   1268          1.1  christos 	DOIT (x);
   1269          1.1  christos 	bfd_put_8 (abfd, x, data);
   1270          1.1  christos       }
   1271          1.1  christos       break;
   1272          1.1  christos 
   1273          1.1  christos     case 1:
   1274          1.1  christos       {
   1275          1.1  christos 	short x = bfd_get_16 (abfd, data);
   1276          1.1  christos 	DOIT (x);
   1277          1.1  christos 	bfd_put_16 (abfd, (bfd_vma) x, data);
   1278          1.1  christos       }
   1279          1.1  christos       break;
   1280          1.1  christos     case 2:
   1281          1.1  christos       {
   1282          1.1  christos 	long x = bfd_get_32 (abfd, data);
   1283          1.1  christos 	DOIT (x);
   1284          1.1  christos 	bfd_put_32 (abfd, (bfd_vma) x, data);
   1285          1.1  christos       }
   1286          1.1  christos       break;
   1287          1.1  christos     case -2:
   1288          1.1  christos       {
   1289          1.1  christos 	long x = bfd_get_32 (abfd, data);
   1290          1.1  christos 	relocation = -relocation;
   1291          1.1  christos 	DOIT (x);
   1292          1.1  christos 	bfd_put_32 (abfd, (bfd_vma) x, data);
   1293          1.1  christos       }
   1294          1.1  christos       break;
   1295          1.1  christos 
   1296          1.1  christos     case 3:
   1297          1.1  christos       /* Do nothing */
   1298          1.1  christos       break;
   1299          1.1  christos 
   1300          1.1  christos     case 4:
   1301          1.1  christos       {
   1302          1.1  christos 	bfd_vma x = bfd_get_64 (abfd, data);
   1303          1.1  christos 	DOIT (x);
   1304          1.1  christos 	bfd_put_64 (abfd, x, data);
   1305          1.1  christos       }
   1306          1.1  christos       break;
   1307          1.1  christos     default:
   1308          1.1  christos       return bfd_reloc_other;
   1309          1.1  christos     }
   1310          1.1  christos 
   1311          1.1  christos   return flag;
   1312          1.1  christos }
   1313          1.1  christos 
   1314          1.1  christos /* This relocation routine is used by some of the backend linkers.
   1315          1.1  christos    They do not construct asymbol or arelent structures, so there is no
   1316          1.1  christos    reason for them to use bfd_perform_relocation.  Also,
   1317          1.1  christos    bfd_perform_relocation is so hacked up it is easier to write a new
   1318          1.1  christos    function than to try to deal with it.
   1319          1.1  christos 
   1320          1.1  christos    This routine does a final relocation.  Whether it is useful for a
   1321          1.1  christos    relocatable link depends upon how the object format defines
   1322          1.1  christos    relocations.
   1323          1.1  christos 
   1324          1.1  christos    FIXME: This routine ignores any special_function in the HOWTO,
   1325          1.1  christos    since the existing special_function values have been written for
   1326          1.1  christos    bfd_perform_relocation.
   1327          1.1  christos 
   1328          1.1  christos    HOWTO is the reloc howto information.
   1329          1.1  christos    INPUT_BFD is the BFD which the reloc applies to.
   1330          1.1  christos    INPUT_SECTION is the section which the reloc applies to.
   1331          1.1  christos    CONTENTS is the contents of the section.
   1332          1.1  christos    ADDRESS is the address of the reloc within INPUT_SECTION.
   1333          1.1  christos    VALUE is the value of the symbol the reloc refers to.
   1334          1.1  christos    ADDEND is the addend of the reloc.  */
   1335          1.1  christos 
   1336          1.1  christos bfd_reloc_status_type
   1337          1.1  christos _bfd_final_link_relocate (reloc_howto_type *howto,
   1338          1.1  christos 			  bfd *input_bfd,
   1339          1.1  christos 			  asection *input_section,
   1340          1.1  christos 			  bfd_byte *contents,
   1341          1.1  christos 			  bfd_vma address,
   1342          1.1  christos 			  bfd_vma value,
   1343          1.1  christos 			  bfd_vma addend)
   1344          1.1  christos {
   1345          1.1  christos   bfd_vma relocation;
   1346  1.1.1.1.2.1  pgoyette   bfd_size_type octets = address * bfd_octets_per_byte (input_bfd);
   1347          1.1  christos 
   1348          1.1  christos   /* Sanity check the address.  */
   1349  1.1.1.1.2.1  pgoyette   if (octets + bfd_get_reloc_size (howto)
   1350  1.1.1.1.2.1  pgoyette       > bfd_get_section_limit_octets (input_bfd, input_section))
   1351          1.1  christos     return bfd_reloc_outofrange;
   1352          1.1  christos 
   1353          1.1  christos   /* This function assumes that we are dealing with a basic relocation
   1354          1.1  christos      against a symbol.  We want to compute the value of the symbol to
   1355          1.1  christos      relocate to.  This is just VALUE, the value of the symbol, plus
   1356          1.1  christos      ADDEND, any addend associated with the reloc.  */
   1357          1.1  christos   relocation = value + addend;
   1358          1.1  christos 
   1359          1.1  christos   /* If the relocation is PC relative, we want to set RELOCATION to
   1360          1.1  christos      the distance between the symbol (currently in RELOCATION) and the
   1361          1.1  christos      location we are relocating.  Some targets (e.g., i386-aout)
   1362          1.1  christos      arrange for the contents of the section to be the negative of the
   1363          1.1  christos      offset of the location within the section; for such targets
   1364          1.1  christos      pcrel_offset is FALSE.  Other targets (e.g., m88kbcs or ELF)
   1365          1.1  christos      simply leave the contents of the section as zero; for such
   1366          1.1  christos      targets pcrel_offset is TRUE.  If pcrel_offset is FALSE we do not
   1367          1.1  christos      need to subtract out the offset of the location within the
   1368          1.1  christos      section (which is just ADDRESS).  */
   1369          1.1  christos   if (howto->pc_relative)
   1370          1.1  christos     {
   1371          1.1  christos       relocation -= (input_section->output_section->vma
   1372          1.1  christos 		     + input_section->output_offset);
   1373          1.1  christos       if (howto->pcrel_offset)
   1374          1.1  christos 	relocation -= address;
   1375          1.1  christos     }
   1376          1.1  christos 
   1377          1.1  christos   return _bfd_relocate_contents (howto, input_bfd, relocation,
   1378          1.1  christos 				 contents + address);
   1379          1.1  christos }
   1380          1.1  christos 
   1381          1.1  christos /* Relocate a given location using a given value and howto.  */
   1382          1.1  christos 
   1383          1.1  christos bfd_reloc_status_type
   1384          1.1  christos _bfd_relocate_contents (reloc_howto_type *howto,
   1385          1.1  christos 			bfd *input_bfd,
   1386          1.1  christos 			bfd_vma relocation,
   1387          1.1  christos 			bfd_byte *location)
   1388          1.1  christos {
   1389          1.1  christos   int size;
   1390          1.1  christos   bfd_vma x = 0;
   1391          1.1  christos   bfd_reloc_status_type flag;
   1392          1.1  christos   unsigned int rightshift = howto->rightshift;
   1393          1.1  christos   unsigned int bitpos = howto->bitpos;
   1394          1.1  christos 
   1395          1.1  christos   /* If the size is negative, negate RELOCATION.  This isn't very
   1396          1.1  christos      general.  */
   1397          1.1  christos   if (howto->size < 0)
   1398          1.1  christos     relocation = -relocation;
   1399          1.1  christos 
   1400          1.1  christos   /* Get the value we are going to relocate.  */
   1401          1.1  christos   size = bfd_get_reloc_size (howto);
   1402          1.1  christos   switch (size)
   1403          1.1  christos     {
   1404          1.1  christos     default:
   1405          1.1  christos       abort ();
   1406  1.1.1.1.2.1  pgoyette     case 0:
   1407  1.1.1.1.2.1  pgoyette       return bfd_reloc_ok;
   1408          1.1  christos     case 1:
   1409          1.1  christos       x = bfd_get_8 (input_bfd, location);
   1410          1.1  christos       break;
   1411          1.1  christos     case 2:
   1412          1.1  christos       x = bfd_get_16 (input_bfd, location);
   1413          1.1  christos       break;
   1414          1.1  christos     case 4:
   1415          1.1  christos       x = bfd_get_32 (input_bfd, location);
   1416          1.1  christos       break;
   1417          1.1  christos     case 8:
   1418          1.1  christos #ifdef BFD64
   1419          1.1  christos       x = bfd_get_64 (input_bfd, location);
   1420          1.1  christos #else
   1421          1.1  christos       abort ();
   1422          1.1  christos #endif
   1423          1.1  christos       break;
   1424          1.1  christos     }
   1425          1.1  christos 
   1426          1.1  christos   /* Check for overflow.  FIXME: We may drop bits during the addition
   1427          1.1  christos      which we don't check for.  We must either check at every single
   1428          1.1  christos      operation, which would be tedious, or we must do the computations
   1429          1.1  christos      in a type larger than bfd_vma, which would be inefficient.  */
   1430          1.1  christos   flag = bfd_reloc_ok;
   1431          1.1  christos   if (howto->complain_on_overflow != complain_overflow_dont)
   1432          1.1  christos     {
   1433          1.1  christos       bfd_vma addrmask, fieldmask, signmask, ss;
   1434          1.1  christos       bfd_vma a, b, sum;
   1435          1.1  christos 
   1436          1.1  christos       /* Get the values to be added together.  For signed and unsigned
   1437          1.1  christos          relocations, we assume that all values should be truncated to
   1438          1.1  christos          the size of an address.  For bitfields, all the bits matter.
   1439          1.1  christos          See also bfd_check_overflow.  */
   1440          1.1  christos       fieldmask = N_ONES (howto->bitsize);
   1441          1.1  christos       signmask = ~fieldmask;
   1442          1.1  christos       addrmask = (N_ONES (bfd_arch_bits_per_address (input_bfd))
   1443          1.1  christos 		  | (fieldmask << rightshift));
   1444          1.1  christos       a = (relocation & addrmask) >> rightshift;
   1445          1.1  christos       b = (x & howto->src_mask & addrmask) >> bitpos;
   1446          1.1  christos       addrmask >>= rightshift;
   1447          1.1  christos 
   1448          1.1  christos       switch (howto->complain_on_overflow)
   1449          1.1  christos 	{
   1450          1.1  christos 	case complain_overflow_signed:
   1451          1.1  christos 	  /* If any sign bits are set, all sign bits must be set.
   1452          1.1  christos 	     That is, A must be a valid negative address after
   1453          1.1  christos 	     shifting.  */
   1454          1.1  christos 	  signmask = ~(fieldmask >> 1);
   1455          1.1  christos 	  /* Fall thru */
   1456          1.1  christos 
   1457          1.1  christos 	case complain_overflow_bitfield:
   1458          1.1  christos 	  /* Much like the signed check, but for a field one bit
   1459          1.1  christos 	     wider.  We allow a bitfield to represent numbers in the
   1460          1.1  christos 	     range -2**n to 2**n-1, where n is the number of bits in the
   1461          1.1  christos 	     field.  Note that when bfd_vma is 32 bits, a 32-bit reloc
   1462          1.1  christos 	     can't overflow, which is exactly what we want.  */
   1463          1.1  christos 	  ss = a & signmask;
   1464          1.1  christos 	  if (ss != 0 && ss != (addrmask & signmask))
   1465          1.1  christos 	    flag = bfd_reloc_overflow;
   1466          1.1  christos 
   1467          1.1  christos 	  /* We only need this next bit of code if the sign bit of B
   1468          1.1  christos              is below the sign bit of A.  This would only happen if
   1469          1.1  christos              SRC_MASK had fewer bits than BITSIZE.  Note that if
   1470          1.1  christos              SRC_MASK has more bits than BITSIZE, we can get into
   1471          1.1  christos              trouble; we would need to verify that B is in range, as
   1472          1.1  christos              we do for A above.  */
   1473          1.1  christos 	  ss = ((~howto->src_mask) >> 1) & howto->src_mask;
   1474          1.1  christos 	  ss >>= bitpos;
   1475          1.1  christos 
   1476          1.1  christos 	  /* Set all the bits above the sign bit.  */
   1477          1.1  christos 	  b = (b ^ ss) - ss;
   1478          1.1  christos 
   1479          1.1  christos 	  /* Now we can do the addition.  */
   1480          1.1  christos 	  sum = a + b;
   1481          1.1  christos 
   1482          1.1  christos 	  /* See if the result has the correct sign.  Bits above the
   1483          1.1  christos              sign bit are junk now; ignore them.  If the sum is
   1484          1.1  christos              positive, make sure we did not have all negative inputs;
   1485          1.1  christos              if the sum is negative, make sure we did not have all
   1486          1.1  christos              positive inputs.  The test below looks only at the sign
   1487          1.1  christos              bits, and it really just
   1488          1.1  christos 	         SIGN (A) == SIGN (B) && SIGN (A) != SIGN (SUM)
   1489          1.1  christos 
   1490          1.1  christos 	     We mask with addrmask here to explicitly allow an address
   1491          1.1  christos 	     wrap-around.  The Linux kernel relies on it, and it is
   1492          1.1  christos 	     the only way to write assembler code which can run when
   1493          1.1  christos 	     loaded at a location 0x80000000 away from the location at
   1494          1.1  christos 	     which it is linked.  */
   1495          1.1  christos 	  if (((~(a ^ b)) & (a ^ sum)) & signmask & addrmask)
   1496          1.1  christos 	    flag = bfd_reloc_overflow;
   1497          1.1  christos 	  break;
   1498          1.1  christos 
   1499          1.1  christos 	case complain_overflow_unsigned:
   1500          1.1  christos 	  /* Checking for an unsigned overflow is relatively easy:
   1501          1.1  christos              trim the addresses and add, and trim the result as well.
   1502          1.1  christos              Overflow is normally indicated when the result does not
   1503          1.1  christos              fit in the field.  However, we also need to consider the
   1504          1.1  christos              case when, e.g., fieldmask is 0x7fffffff or smaller, an
   1505          1.1  christos              input is 0x80000000, and bfd_vma is only 32 bits; then we
   1506          1.1  christos              will get sum == 0, but there is an overflow, since the
   1507          1.1  christos              inputs did not fit in the field.  Instead of doing a
   1508          1.1  christos              separate test, we can check for this by or-ing in the
   1509          1.1  christos              operands when testing for the sum overflowing its final
   1510          1.1  christos              field.  */
   1511          1.1  christos 	  sum = (a + b) & addrmask;
   1512          1.1  christos 	  if ((a | b | sum) & signmask)
   1513          1.1  christos 	    flag = bfd_reloc_overflow;
   1514          1.1  christos 	  break;
   1515          1.1  christos 
   1516          1.1  christos 	default:
   1517          1.1  christos 	  abort ();
   1518          1.1  christos 	}
   1519          1.1  christos     }
   1520          1.1  christos 
   1521          1.1  christos   /* Put RELOCATION in the right bits.  */
   1522          1.1  christos   relocation >>= (bfd_vma) rightshift;
   1523          1.1  christos   relocation <<= (bfd_vma) bitpos;
   1524          1.1  christos 
   1525          1.1  christos   /* Add RELOCATION to the right bits of X.  */
   1526          1.1  christos   x = ((x & ~howto->dst_mask)
   1527          1.1  christos        | (((x & howto->src_mask) + relocation) & howto->dst_mask));
   1528          1.1  christos 
   1529          1.1  christos   /* Put the relocated value back in the object file.  */
   1530          1.1  christos   switch (size)
   1531          1.1  christos     {
   1532          1.1  christos     default:
   1533          1.1  christos       abort ();
   1534          1.1  christos     case 1:
   1535          1.1  christos       bfd_put_8 (input_bfd, x, location);
   1536          1.1  christos       break;
   1537          1.1  christos     case 2:
   1538          1.1  christos       bfd_put_16 (input_bfd, x, location);
   1539          1.1  christos       break;
   1540          1.1  christos     case 4:
   1541          1.1  christos       bfd_put_32 (input_bfd, x, location);
   1542          1.1  christos       break;
   1543          1.1  christos     case 8:
   1544          1.1  christos #ifdef BFD64
   1545          1.1  christos       bfd_put_64 (input_bfd, x, location);
   1546          1.1  christos #else
   1547          1.1  christos       abort ();
   1548          1.1  christos #endif
   1549          1.1  christos       break;
   1550          1.1  christos     }
   1551          1.1  christos 
   1552          1.1  christos   return flag;
   1553          1.1  christos }
   1554          1.1  christos 
   1555          1.1  christos /* Clear a given location using a given howto, by applying a fixed relocation
   1556          1.1  christos    value and discarding any in-place addend.  This is used for fixed-up
   1557          1.1  christos    relocations against discarded symbols, to make ignorable debug or unwind
   1558          1.1  christos    information more obvious.  */
   1559          1.1  christos 
   1560          1.1  christos void
   1561          1.1  christos _bfd_clear_contents (reloc_howto_type *howto,
   1562          1.1  christos 		     bfd *input_bfd,
   1563          1.1  christos 		     asection *input_section,
   1564          1.1  christos 		     bfd_byte *location)
   1565          1.1  christos {
   1566          1.1  christos   int size;
   1567          1.1  christos   bfd_vma x = 0;
   1568          1.1  christos 
   1569          1.1  christos   /* Get the value we are going to relocate.  */
   1570          1.1  christos   size = bfd_get_reloc_size (howto);
   1571          1.1  christos   switch (size)
   1572          1.1  christos     {
   1573          1.1  christos     default:
   1574          1.1  christos       abort ();
   1575  1.1.1.1.2.1  pgoyette     case 0:
   1576  1.1.1.1.2.1  pgoyette       return;
   1577          1.1  christos     case 1:
   1578          1.1  christos       x = bfd_get_8 (input_bfd, location);
   1579          1.1  christos       break;
   1580          1.1  christos     case 2:
   1581          1.1  christos       x = bfd_get_16 (input_bfd, location);
   1582          1.1  christos       break;
   1583          1.1  christos     case 4:
   1584          1.1  christos       x = bfd_get_32 (input_bfd, location);
   1585          1.1  christos       break;
   1586          1.1  christos     case 8:
   1587          1.1  christos #ifdef BFD64
   1588          1.1  christos       x = bfd_get_64 (input_bfd, location);
   1589          1.1  christos #else
   1590          1.1  christos       abort ();
   1591          1.1  christos #endif
   1592          1.1  christos       break;
   1593          1.1  christos     }
   1594          1.1  christos 
   1595          1.1  christos   /* Zero out the unwanted bits of X.  */
   1596          1.1  christos   x &= ~howto->dst_mask;
   1597          1.1  christos 
   1598          1.1  christos   /* For a range list, use 1 instead of 0 as placeholder.  0
   1599          1.1  christos      would terminate the list, hiding any later entries.  */
   1600          1.1  christos   if (strcmp (bfd_get_section_name (input_bfd, input_section),
   1601          1.1  christos 	      ".debug_ranges") == 0
   1602          1.1  christos       && (howto->dst_mask & 1) != 0)
   1603          1.1  christos     x |= 1;
   1604          1.1  christos 
   1605          1.1  christos   /* Put the relocated value back in the object file.  */
   1606          1.1  christos   switch (size)
   1607          1.1  christos     {
   1608          1.1  christos     default:
   1609          1.1  christos     case 0:
   1610          1.1  christos       abort ();
   1611          1.1  christos     case 1:
   1612          1.1  christos       bfd_put_8 (input_bfd, x, location);
   1613          1.1  christos       break;
   1614          1.1  christos     case 2:
   1615          1.1  christos       bfd_put_16 (input_bfd, x, location);
   1616          1.1  christos       break;
   1617          1.1  christos     case 4:
   1618          1.1  christos       bfd_put_32 (input_bfd, x, location);
   1619          1.1  christos       break;
   1620          1.1  christos     case 8:
   1621          1.1  christos #ifdef BFD64
   1622          1.1  christos       bfd_put_64 (input_bfd, x, location);
   1623          1.1  christos #else
   1624          1.1  christos       abort ();
   1625          1.1  christos #endif
   1626          1.1  christos       break;
   1627          1.1  christos     }
   1628          1.1  christos }
   1629          1.1  christos 
   1630          1.1  christos /*
   1631          1.1  christos DOCDD
   1632          1.1  christos INODE
   1633          1.1  christos 	howto manager,  , typedef arelent, Relocations
   1634          1.1  christos 
   1635          1.1  christos SUBSECTION
   1636          1.1  christos 	The howto manager
   1637          1.1  christos 
   1638          1.1  christos 	When an application wants to create a relocation, but doesn't
   1639          1.1  christos 	know what the target machine might call it, it can find out by
   1640          1.1  christos 	using this bit of code.
   1641          1.1  christos 
   1642          1.1  christos */
   1643          1.1  christos 
   1644          1.1  christos /*
   1645          1.1  christos TYPEDEF
   1646          1.1  christos 	bfd_reloc_code_type
   1647          1.1  christos 
   1648          1.1  christos DESCRIPTION
   1649          1.1  christos 	The insides of a reloc code.  The idea is that, eventually, there
   1650          1.1  christos 	will be one enumerator for every type of relocation we ever do.
   1651          1.1  christos 	Pass one of these values to <<bfd_reloc_type_lookup>>, and it'll
   1652          1.1  christos 	return a howto pointer.
   1653          1.1  christos 
   1654          1.1  christos 	This does mean that the application must determine the correct
   1655          1.1  christos 	enumerator value; you can't get a howto pointer from a random set
   1656          1.1  christos 	of attributes.
   1657          1.1  christos 
   1658          1.1  christos SENUM
   1659          1.1  christos    bfd_reloc_code_real
   1660          1.1  christos 
   1661          1.1  christos ENUM
   1662          1.1  christos   BFD_RELOC_64
   1663          1.1  christos ENUMX
   1664          1.1  christos   BFD_RELOC_32
   1665          1.1  christos ENUMX
   1666          1.1  christos   BFD_RELOC_26
   1667          1.1  christos ENUMX
   1668          1.1  christos   BFD_RELOC_24
   1669          1.1  christos ENUMX
   1670          1.1  christos   BFD_RELOC_16
   1671          1.1  christos ENUMX
   1672          1.1  christos   BFD_RELOC_14
   1673          1.1  christos ENUMX
   1674          1.1  christos   BFD_RELOC_8
   1675          1.1  christos ENUMDOC
   1676          1.1  christos   Basic absolute relocations of N bits.
   1677          1.1  christos 
   1678          1.1  christos ENUM
   1679          1.1  christos   BFD_RELOC_64_PCREL
   1680          1.1  christos ENUMX
   1681          1.1  christos   BFD_RELOC_32_PCREL
   1682          1.1  christos ENUMX
   1683          1.1  christos   BFD_RELOC_24_PCREL
   1684          1.1  christos ENUMX
   1685          1.1  christos   BFD_RELOC_16_PCREL
   1686          1.1  christos ENUMX
   1687          1.1  christos   BFD_RELOC_12_PCREL
   1688          1.1  christos ENUMX
   1689          1.1  christos   BFD_RELOC_8_PCREL
   1690          1.1  christos ENUMDOC
   1691          1.1  christos   PC-relative relocations.  Sometimes these are relative to the address
   1692          1.1  christos of the relocation itself; sometimes they are relative to the start of
   1693          1.1  christos the section containing the relocation.  It depends on the specific target.
   1694          1.1  christos 
   1695          1.1  christos The 24-bit relocation is used in some Intel 960 configurations.
   1696          1.1  christos 
   1697          1.1  christos ENUM
   1698          1.1  christos   BFD_RELOC_32_SECREL
   1699          1.1  christos ENUMDOC
   1700          1.1  christos   Section relative relocations.  Some targets need this for DWARF2.
   1701          1.1  christos 
   1702          1.1  christos ENUM
   1703          1.1  christos   BFD_RELOC_32_GOT_PCREL
   1704          1.1  christos ENUMX
   1705          1.1  christos   BFD_RELOC_16_GOT_PCREL
   1706          1.1  christos ENUMX
   1707          1.1  christos   BFD_RELOC_8_GOT_PCREL
   1708          1.1  christos ENUMX
   1709          1.1  christos   BFD_RELOC_32_GOTOFF
   1710          1.1  christos ENUMX
   1711          1.1  christos   BFD_RELOC_16_GOTOFF
   1712          1.1  christos ENUMX
   1713          1.1  christos   BFD_RELOC_LO16_GOTOFF
   1714          1.1  christos ENUMX
   1715          1.1  christos   BFD_RELOC_HI16_GOTOFF
   1716          1.1  christos ENUMX
   1717          1.1  christos   BFD_RELOC_HI16_S_GOTOFF
   1718          1.1  christos ENUMX
   1719          1.1  christos   BFD_RELOC_8_GOTOFF
   1720          1.1  christos ENUMX
   1721          1.1  christos   BFD_RELOC_64_PLT_PCREL
   1722          1.1  christos ENUMX
   1723          1.1  christos   BFD_RELOC_32_PLT_PCREL
   1724          1.1  christos ENUMX
   1725          1.1  christos   BFD_RELOC_24_PLT_PCREL
   1726          1.1  christos ENUMX
   1727          1.1  christos   BFD_RELOC_16_PLT_PCREL
   1728          1.1  christos ENUMX
   1729          1.1  christos   BFD_RELOC_8_PLT_PCREL
   1730          1.1  christos ENUMX
   1731          1.1  christos   BFD_RELOC_64_PLTOFF
   1732          1.1  christos ENUMX
   1733          1.1  christos   BFD_RELOC_32_PLTOFF
   1734          1.1  christos ENUMX
   1735          1.1  christos   BFD_RELOC_16_PLTOFF
   1736          1.1  christos ENUMX
   1737          1.1  christos   BFD_RELOC_LO16_PLTOFF
   1738          1.1  christos ENUMX
   1739          1.1  christos   BFD_RELOC_HI16_PLTOFF
   1740          1.1  christos ENUMX
   1741          1.1  christos   BFD_RELOC_HI16_S_PLTOFF
   1742          1.1  christos ENUMX
   1743          1.1  christos   BFD_RELOC_8_PLTOFF
   1744          1.1  christos ENUMDOC
   1745          1.1  christos   For ELF.
   1746          1.1  christos 
   1747          1.1  christos ENUM
   1748  1.1.1.1.2.1  pgoyette   BFD_RELOC_SIZE32
   1749  1.1.1.1.2.1  pgoyette ENUMX
   1750  1.1.1.1.2.1  pgoyette   BFD_RELOC_SIZE64
   1751  1.1.1.1.2.1  pgoyette ENUMDOC
   1752  1.1.1.1.2.1  pgoyette   Size relocations.
   1753  1.1.1.1.2.1  pgoyette 
   1754  1.1.1.1.2.1  pgoyette ENUM
   1755          1.1  christos   BFD_RELOC_68K_GLOB_DAT
   1756          1.1  christos ENUMX
   1757          1.1  christos   BFD_RELOC_68K_JMP_SLOT
   1758          1.1  christos ENUMX
   1759          1.1  christos   BFD_RELOC_68K_RELATIVE
   1760          1.1  christos ENUMX
   1761          1.1  christos   BFD_RELOC_68K_TLS_GD32
   1762          1.1  christos ENUMX
   1763          1.1  christos   BFD_RELOC_68K_TLS_GD16
   1764          1.1  christos ENUMX
   1765          1.1  christos   BFD_RELOC_68K_TLS_GD8
   1766          1.1  christos ENUMX
   1767          1.1  christos   BFD_RELOC_68K_TLS_LDM32
   1768          1.1  christos ENUMX
   1769          1.1  christos   BFD_RELOC_68K_TLS_LDM16
   1770          1.1  christos ENUMX
   1771          1.1  christos   BFD_RELOC_68K_TLS_LDM8
   1772          1.1  christos ENUMX
   1773          1.1  christos   BFD_RELOC_68K_TLS_LDO32
   1774          1.1  christos ENUMX
   1775          1.1  christos   BFD_RELOC_68K_TLS_LDO16
   1776          1.1  christos ENUMX
   1777          1.1  christos   BFD_RELOC_68K_TLS_LDO8
   1778          1.1  christos ENUMX
   1779          1.1  christos   BFD_RELOC_68K_TLS_IE32
   1780          1.1  christos ENUMX
   1781          1.1  christos   BFD_RELOC_68K_TLS_IE16
   1782          1.1  christos ENUMX
   1783          1.1  christos   BFD_RELOC_68K_TLS_IE8
   1784          1.1  christos ENUMX
   1785          1.1  christos   BFD_RELOC_68K_TLS_LE32
   1786          1.1  christos ENUMX
   1787          1.1  christos   BFD_RELOC_68K_TLS_LE16
   1788          1.1  christos ENUMX
   1789          1.1  christos   BFD_RELOC_68K_TLS_LE8
   1790          1.1  christos ENUMDOC
   1791          1.1  christos   Relocations used by 68K ELF.
   1792          1.1  christos 
   1793          1.1  christos ENUM
   1794          1.1  christos   BFD_RELOC_VAX_GLOB_DAT
   1795          1.1  christos ENUMX
   1796          1.1  christos   BFD_RELOC_VAX_GLOB_REF
   1797          1.1  christos ENUMX
   1798          1.1  christos   BFD_RELOC_VAX_JMP_SLOT
   1799          1.1  christos ENUMX
   1800          1.1  christos   BFD_RELOC_VAX_RELATIVE
   1801          1.1  christos ENUMDOC
   1802          1.1  christos   Relocations used by VAX ELF.
   1803          1.1  christos 
   1804          1.1  christos ENUM
   1805          1.1  christos   BFD_RELOC_32_BASEREL
   1806          1.1  christos ENUMX
   1807          1.1  christos   BFD_RELOC_16_BASEREL
   1808          1.1  christos ENUMX
   1809          1.1  christos   BFD_RELOC_LO16_BASEREL
   1810          1.1  christos ENUMX
   1811          1.1  christos   BFD_RELOC_HI16_BASEREL
   1812          1.1  christos ENUMX
   1813          1.1  christos   BFD_RELOC_HI16_S_BASEREL
   1814          1.1  christos ENUMX
   1815          1.1  christos   BFD_RELOC_8_BASEREL
   1816          1.1  christos ENUMX
   1817          1.1  christos   BFD_RELOC_RVA
   1818          1.1  christos ENUMDOC
   1819          1.1  christos   Linkage-table relative.
   1820          1.1  christos 
   1821          1.1  christos ENUM
   1822          1.1  christos   BFD_RELOC_8_FFnn
   1823          1.1  christos ENUMDOC
   1824          1.1  christos   Absolute 8-bit relocation, but used to form an address like 0xFFnn.
   1825          1.1  christos 
   1826          1.1  christos ENUM
   1827          1.1  christos   BFD_RELOC_32_PCREL_S2
   1828          1.1  christos ENUMX
   1829          1.1  christos   BFD_RELOC_16_PCREL_S2
   1830          1.1  christos ENUMX
   1831          1.1  christos   BFD_RELOC_23_PCREL_S2
   1832          1.1  christos ENUMDOC
   1833          1.1  christos   These PC-relative relocations are stored as word displacements --
   1834          1.1  christos i.e., byte displacements shifted right two bits.  The 30-bit word
   1835          1.1  christos displacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the
   1836          1.1  christos SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
   1837          1.1  christos signed 16-bit displacement is used on the MIPS, and the 23-bit
   1838          1.1  christos displacement is used on the Alpha.
   1839          1.1  christos 
   1840          1.1  christos ENUM
   1841          1.1  christos   BFD_RELOC_HI22
   1842          1.1  christos ENUMX
   1843          1.1  christos   BFD_RELOC_LO10
   1844          1.1  christos ENUMDOC
   1845          1.1  christos   High 22 bits and low 10 bits of 32-bit value, placed into lower bits of
   1846          1.1  christos the target word.  These are used on the SPARC.
   1847          1.1  christos 
   1848          1.1  christos ENUM
   1849          1.1  christos   BFD_RELOC_GPREL16
   1850          1.1  christos ENUMX
   1851          1.1  christos   BFD_RELOC_GPREL32
   1852          1.1  christos ENUMDOC
   1853          1.1  christos   For systems that allocate a Global Pointer register, these are
   1854          1.1  christos displacements off that register.  These relocation types are
   1855          1.1  christos handled specially, because the value the register will have is
   1856          1.1  christos decided relatively late.
   1857          1.1  christos 
   1858          1.1  christos ENUM
   1859          1.1  christos   BFD_RELOC_I960_CALLJ
   1860          1.1  christos ENUMDOC
   1861          1.1  christos   Reloc types used for i960/b.out.
   1862          1.1  christos 
   1863          1.1  christos ENUM
   1864          1.1  christos   BFD_RELOC_NONE
   1865          1.1  christos ENUMX
   1866          1.1  christos   BFD_RELOC_SPARC_WDISP22
   1867          1.1  christos ENUMX
   1868          1.1  christos   BFD_RELOC_SPARC22
   1869          1.1  christos ENUMX
   1870          1.1  christos   BFD_RELOC_SPARC13
   1871          1.1  christos ENUMX
   1872          1.1  christos   BFD_RELOC_SPARC_GOT10
   1873          1.1  christos ENUMX
   1874          1.1  christos   BFD_RELOC_SPARC_GOT13
   1875          1.1  christos ENUMX
   1876          1.1  christos   BFD_RELOC_SPARC_GOT22
   1877          1.1  christos ENUMX
   1878          1.1  christos   BFD_RELOC_SPARC_PC10
   1879          1.1  christos ENUMX
   1880          1.1  christos   BFD_RELOC_SPARC_PC22
   1881          1.1  christos ENUMX
   1882          1.1  christos   BFD_RELOC_SPARC_WPLT30
   1883          1.1  christos ENUMX
   1884          1.1  christos   BFD_RELOC_SPARC_COPY
   1885          1.1  christos ENUMX
   1886          1.1  christos   BFD_RELOC_SPARC_GLOB_DAT
   1887          1.1  christos ENUMX
   1888          1.1  christos   BFD_RELOC_SPARC_JMP_SLOT
   1889          1.1  christos ENUMX
   1890          1.1  christos   BFD_RELOC_SPARC_RELATIVE
   1891          1.1  christos ENUMX
   1892          1.1  christos   BFD_RELOC_SPARC_UA16
   1893          1.1  christos ENUMX
   1894          1.1  christos   BFD_RELOC_SPARC_UA32
   1895          1.1  christos ENUMX
   1896          1.1  christos   BFD_RELOC_SPARC_UA64
   1897          1.1  christos ENUMX
   1898          1.1  christos   BFD_RELOC_SPARC_GOTDATA_HIX22
   1899          1.1  christos ENUMX
   1900          1.1  christos   BFD_RELOC_SPARC_GOTDATA_LOX10
   1901          1.1  christos ENUMX
   1902          1.1  christos   BFD_RELOC_SPARC_GOTDATA_OP_HIX22
   1903          1.1  christos ENUMX
   1904          1.1  christos   BFD_RELOC_SPARC_GOTDATA_OP_LOX10
   1905          1.1  christos ENUMX
   1906          1.1  christos   BFD_RELOC_SPARC_GOTDATA_OP
   1907          1.1  christos ENUMX
   1908          1.1  christos   BFD_RELOC_SPARC_JMP_IREL
   1909          1.1  christos ENUMX
   1910          1.1  christos   BFD_RELOC_SPARC_IRELATIVE
   1911          1.1  christos ENUMDOC
   1912          1.1  christos   SPARC ELF relocations.  There is probably some overlap with other
   1913          1.1  christos   relocation types already defined.
   1914          1.1  christos 
   1915          1.1  christos ENUM
   1916          1.1  christos   BFD_RELOC_SPARC_BASE13
   1917          1.1  christos ENUMX
   1918          1.1  christos   BFD_RELOC_SPARC_BASE22
   1919          1.1  christos ENUMDOC
   1920          1.1  christos   I think these are specific to SPARC a.out (e.g., Sun 4).
   1921          1.1  christos 
   1922          1.1  christos ENUMEQ
   1923          1.1  christos   BFD_RELOC_SPARC_64
   1924          1.1  christos   BFD_RELOC_64
   1925          1.1  christos ENUMX
   1926          1.1  christos   BFD_RELOC_SPARC_10
   1927          1.1  christos ENUMX
   1928          1.1  christos   BFD_RELOC_SPARC_11
   1929          1.1  christos ENUMX
   1930          1.1  christos   BFD_RELOC_SPARC_OLO10
   1931          1.1  christos ENUMX
   1932          1.1  christos   BFD_RELOC_SPARC_HH22
   1933          1.1  christos ENUMX
   1934          1.1  christos   BFD_RELOC_SPARC_HM10
   1935          1.1  christos ENUMX
   1936          1.1  christos   BFD_RELOC_SPARC_LM22
   1937          1.1  christos ENUMX
   1938          1.1  christos   BFD_RELOC_SPARC_PC_HH22
   1939          1.1  christos ENUMX
   1940          1.1  christos   BFD_RELOC_SPARC_PC_HM10
   1941          1.1  christos ENUMX
   1942          1.1  christos   BFD_RELOC_SPARC_PC_LM22
   1943          1.1  christos ENUMX
   1944          1.1  christos   BFD_RELOC_SPARC_WDISP16
   1945          1.1  christos ENUMX
   1946          1.1  christos   BFD_RELOC_SPARC_WDISP19
   1947          1.1  christos ENUMX
   1948          1.1  christos   BFD_RELOC_SPARC_7
   1949          1.1  christos ENUMX
   1950          1.1  christos   BFD_RELOC_SPARC_6
   1951          1.1  christos ENUMX
   1952          1.1  christos   BFD_RELOC_SPARC_5
   1953          1.1  christos ENUMEQX
   1954          1.1  christos   BFD_RELOC_SPARC_DISP64
   1955          1.1  christos   BFD_RELOC_64_PCREL
   1956          1.1  christos ENUMX
   1957          1.1  christos   BFD_RELOC_SPARC_PLT32
   1958          1.1  christos ENUMX
   1959          1.1  christos   BFD_RELOC_SPARC_PLT64
   1960          1.1  christos ENUMX
   1961          1.1  christos   BFD_RELOC_SPARC_HIX22
   1962          1.1  christos ENUMX
   1963          1.1  christos   BFD_RELOC_SPARC_LOX10
   1964          1.1  christos ENUMX
   1965          1.1  christos   BFD_RELOC_SPARC_H44
   1966          1.1  christos ENUMX
   1967          1.1  christos   BFD_RELOC_SPARC_M44
   1968          1.1  christos ENUMX
   1969          1.1  christos   BFD_RELOC_SPARC_L44
   1970          1.1  christos ENUMX
   1971          1.1  christos   BFD_RELOC_SPARC_REGISTER
   1972          1.1  christos ENUMX
   1973          1.1  christos   BFD_RELOC_SPARC_H34
   1974          1.1  christos ENUMX
   1975          1.1  christos   BFD_RELOC_SPARC_SIZE32
   1976          1.1  christos ENUMX
   1977          1.1  christos   BFD_RELOC_SPARC_SIZE64
   1978          1.1  christos ENUMX
   1979          1.1  christos   BFD_RELOC_SPARC_WDISP10
   1980          1.1  christos ENUMDOC
   1981          1.1  christos   SPARC64 relocations
   1982          1.1  christos 
   1983          1.1  christos ENUM
   1984          1.1  christos   BFD_RELOC_SPARC_REV32
   1985          1.1  christos ENUMDOC
   1986          1.1  christos   SPARC little endian relocation
   1987          1.1  christos ENUM
   1988          1.1  christos   BFD_RELOC_SPARC_TLS_GD_HI22
   1989          1.1  christos ENUMX
   1990          1.1  christos   BFD_RELOC_SPARC_TLS_GD_LO10
   1991          1.1  christos ENUMX
   1992          1.1  christos   BFD_RELOC_SPARC_TLS_GD_ADD
   1993          1.1  christos ENUMX
   1994          1.1  christos   BFD_RELOC_SPARC_TLS_GD_CALL
   1995          1.1  christos ENUMX
   1996          1.1  christos   BFD_RELOC_SPARC_TLS_LDM_HI22
   1997          1.1  christos ENUMX
   1998          1.1  christos   BFD_RELOC_SPARC_TLS_LDM_LO10
   1999          1.1  christos ENUMX
   2000          1.1  christos   BFD_RELOC_SPARC_TLS_LDM_ADD
   2001          1.1  christos ENUMX
   2002          1.1  christos   BFD_RELOC_SPARC_TLS_LDM_CALL
   2003          1.1  christos ENUMX
   2004          1.1  christos   BFD_RELOC_SPARC_TLS_LDO_HIX22
   2005          1.1  christos ENUMX
   2006          1.1  christos   BFD_RELOC_SPARC_TLS_LDO_LOX10
   2007          1.1  christos ENUMX
   2008          1.1  christos   BFD_RELOC_SPARC_TLS_LDO_ADD
   2009          1.1  christos ENUMX
   2010          1.1  christos   BFD_RELOC_SPARC_TLS_IE_HI22
   2011          1.1  christos ENUMX
   2012          1.1  christos   BFD_RELOC_SPARC_TLS_IE_LO10
   2013          1.1  christos ENUMX
   2014          1.1  christos   BFD_RELOC_SPARC_TLS_IE_LD
   2015          1.1  christos ENUMX
   2016          1.1  christos   BFD_RELOC_SPARC_TLS_IE_LDX
   2017          1.1  christos ENUMX
   2018          1.1  christos   BFD_RELOC_SPARC_TLS_IE_ADD
   2019          1.1  christos ENUMX
   2020          1.1  christos   BFD_RELOC_SPARC_TLS_LE_HIX22
   2021          1.1  christos ENUMX
   2022          1.1  christos   BFD_RELOC_SPARC_TLS_LE_LOX10
   2023          1.1  christos ENUMX
   2024          1.1  christos   BFD_RELOC_SPARC_TLS_DTPMOD32
   2025          1.1  christos ENUMX
   2026          1.1  christos   BFD_RELOC_SPARC_TLS_DTPMOD64
   2027          1.1  christos ENUMX
   2028          1.1  christos   BFD_RELOC_SPARC_TLS_DTPOFF32
   2029          1.1  christos ENUMX
   2030          1.1  christos   BFD_RELOC_SPARC_TLS_DTPOFF64
   2031          1.1  christos ENUMX
   2032          1.1  christos   BFD_RELOC_SPARC_TLS_TPOFF32
   2033          1.1  christos ENUMX
   2034          1.1  christos   BFD_RELOC_SPARC_TLS_TPOFF64
   2035          1.1  christos ENUMDOC
   2036          1.1  christos   SPARC TLS relocations
   2037          1.1  christos 
   2038          1.1  christos ENUM
   2039          1.1  christos   BFD_RELOC_SPU_IMM7
   2040          1.1  christos ENUMX
   2041          1.1  christos   BFD_RELOC_SPU_IMM8
   2042          1.1  christos ENUMX
   2043          1.1  christos   BFD_RELOC_SPU_IMM10
   2044          1.1  christos ENUMX
   2045          1.1  christos   BFD_RELOC_SPU_IMM10W
   2046          1.1  christos ENUMX
   2047          1.1  christos   BFD_RELOC_SPU_IMM16
   2048          1.1  christos ENUMX
   2049          1.1  christos   BFD_RELOC_SPU_IMM16W
   2050          1.1  christos ENUMX
   2051          1.1  christos   BFD_RELOC_SPU_IMM18
   2052          1.1  christos ENUMX
   2053          1.1  christos   BFD_RELOC_SPU_PCREL9a
   2054          1.1  christos ENUMX
   2055          1.1  christos   BFD_RELOC_SPU_PCREL9b
   2056          1.1  christos ENUMX
   2057          1.1  christos   BFD_RELOC_SPU_PCREL16
   2058          1.1  christos ENUMX
   2059          1.1  christos   BFD_RELOC_SPU_LO16
   2060          1.1  christos ENUMX
   2061          1.1  christos   BFD_RELOC_SPU_HI16
   2062          1.1  christos ENUMX
   2063          1.1  christos   BFD_RELOC_SPU_PPU32
   2064          1.1  christos ENUMX
   2065          1.1  christos   BFD_RELOC_SPU_PPU64
   2066          1.1  christos ENUMX
   2067          1.1  christos   BFD_RELOC_SPU_ADD_PIC
   2068          1.1  christos ENUMDOC
   2069          1.1  christos   SPU Relocations.
   2070          1.1  christos 
   2071          1.1  christos ENUM
   2072          1.1  christos   BFD_RELOC_ALPHA_GPDISP_HI16
   2073          1.1  christos ENUMDOC
   2074          1.1  christos   Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
   2075          1.1  christos      "addend" in some special way.
   2076          1.1  christos   For GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when
   2077          1.1  christos      writing; when reading, it will be the absolute section symbol.  The
   2078          1.1  christos      addend is the displacement in bytes of the "lda" instruction from
   2079          1.1  christos      the "ldah" instruction (which is at the address of this reloc).
   2080          1.1  christos ENUM
   2081          1.1  christos   BFD_RELOC_ALPHA_GPDISP_LO16
   2082          1.1  christos ENUMDOC
   2083          1.1  christos   For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
   2084          1.1  christos      with GPDISP_HI16 relocs.  The addend is ignored when writing the
   2085          1.1  christos      relocations out, and is filled in with the file's GP value on
   2086          1.1  christos      reading, for convenience.
   2087          1.1  christos 
   2088          1.1  christos ENUM
   2089          1.1  christos   BFD_RELOC_ALPHA_GPDISP
   2090          1.1  christos ENUMDOC
   2091          1.1  christos   The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
   2092          1.1  christos      relocation except that there is no accompanying GPDISP_LO16
   2093          1.1  christos      relocation.
   2094          1.1  christos 
   2095          1.1  christos ENUM
   2096          1.1  christos   BFD_RELOC_ALPHA_LITERAL
   2097          1.1  christos ENUMX
   2098          1.1  christos   BFD_RELOC_ALPHA_ELF_LITERAL
   2099          1.1  christos ENUMX
   2100          1.1  christos   BFD_RELOC_ALPHA_LITUSE
   2101          1.1  christos ENUMDOC
   2102          1.1  christos   The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
   2103          1.1  christos      the assembler turns it into a LDQ instruction to load the address of
   2104          1.1  christos      the symbol, and then fills in a register in the real instruction.
   2105          1.1  christos 
   2106          1.1  christos      The LITERAL reloc, at the LDQ instruction, refers to the .lita
   2107          1.1  christos      section symbol.  The addend is ignored when writing, but is filled
   2108          1.1  christos      in with the file's GP value on reading, for convenience, as with the
   2109          1.1  christos      GPDISP_LO16 reloc.
   2110          1.1  christos 
   2111          1.1  christos      The ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16.
   2112          1.1  christos      It should refer to the symbol to be referenced, as with 16_GOTOFF,
   2113          1.1  christos      but it generates output not based on the position within the .got
   2114          1.1  christos      section, but relative to the GP value chosen for the file during the
   2115          1.1  christos      final link stage.
   2116          1.1  christos 
   2117          1.1  christos      The LITUSE reloc, on the instruction using the loaded address, gives
   2118          1.1  christos      information to the linker that it might be able to use to optimize
   2119          1.1  christos      away some literal section references.  The symbol is ignored (read
   2120          1.1  christos      as the absolute section symbol), and the "addend" indicates the type
   2121          1.1  christos      of instruction using the register:
   2122          1.1  christos               1 - "memory" fmt insn
   2123          1.1  christos               2 - byte-manipulation (byte offset reg)
   2124          1.1  christos               3 - jsr (target of branch)
   2125          1.1  christos 
   2126          1.1  christos ENUM
   2127          1.1  christos   BFD_RELOC_ALPHA_HINT
   2128          1.1  christos ENUMDOC
   2129          1.1  christos   The HINT relocation indicates a value that should be filled into the
   2130          1.1  christos      "hint" field of a jmp/jsr/ret instruction, for possible branch-
   2131          1.1  christos      prediction logic which may be provided on some processors.
   2132          1.1  christos 
   2133          1.1  christos ENUM
   2134          1.1  christos   BFD_RELOC_ALPHA_LINKAGE
   2135          1.1  christos ENUMDOC
   2136          1.1  christos   The LINKAGE relocation outputs a linkage pair in the object file,
   2137          1.1  christos      which is filled by the linker.
   2138          1.1  christos 
   2139          1.1  christos ENUM
   2140          1.1  christos   BFD_RELOC_ALPHA_CODEADDR
   2141          1.1  christos ENUMDOC
   2142          1.1  christos   The CODEADDR relocation outputs a STO_CA in the object file,
   2143          1.1  christos      which is filled by the linker.
   2144          1.1  christos 
   2145          1.1  christos ENUM
   2146          1.1  christos   BFD_RELOC_ALPHA_GPREL_HI16
   2147          1.1  christos ENUMX
   2148          1.1  christos   BFD_RELOC_ALPHA_GPREL_LO16
   2149          1.1  christos ENUMDOC
   2150          1.1  christos   The GPREL_HI/LO relocations together form a 32-bit offset from the
   2151          1.1  christos      GP register.
   2152          1.1  christos 
   2153          1.1  christos ENUM
   2154          1.1  christos   BFD_RELOC_ALPHA_BRSGP
   2155          1.1  christos ENUMDOC
   2156          1.1  christos   Like BFD_RELOC_23_PCREL_S2, except that the source and target must
   2157          1.1  christos   share a common GP, and the target address is adjusted for
   2158          1.1  christos   STO_ALPHA_STD_GPLOAD.
   2159          1.1  christos 
   2160          1.1  christos ENUM
   2161          1.1  christos   BFD_RELOC_ALPHA_NOP
   2162          1.1  christos ENUMDOC
   2163          1.1  christos   The NOP relocation outputs a NOP if the longword displacement
   2164          1.1  christos      between two procedure entry points is < 2^21.
   2165          1.1  christos 
   2166          1.1  christos ENUM
   2167          1.1  christos   BFD_RELOC_ALPHA_BSR
   2168          1.1  christos ENUMDOC
   2169          1.1  christos   The BSR relocation outputs a BSR if the longword displacement
   2170          1.1  christos      between two procedure entry points is < 2^21.
   2171          1.1  christos 
   2172          1.1  christos ENUM
   2173          1.1  christos   BFD_RELOC_ALPHA_LDA
   2174          1.1  christos ENUMDOC
   2175          1.1  christos   The LDA relocation outputs a LDA if the longword displacement
   2176          1.1  christos      between two procedure entry points is < 2^16.
   2177          1.1  christos 
   2178          1.1  christos ENUM
   2179          1.1  christos   BFD_RELOC_ALPHA_BOH
   2180          1.1  christos ENUMDOC
   2181          1.1  christos   The BOH relocation outputs a BSR if the longword displacement
   2182          1.1  christos      between two procedure entry points is < 2^21, or else a hint.
   2183          1.1  christos 
   2184          1.1  christos ENUM
   2185          1.1  christos   BFD_RELOC_ALPHA_TLSGD
   2186          1.1  christos ENUMX
   2187          1.1  christos   BFD_RELOC_ALPHA_TLSLDM
   2188          1.1  christos ENUMX
   2189          1.1  christos   BFD_RELOC_ALPHA_DTPMOD64
   2190          1.1  christos ENUMX
   2191          1.1  christos   BFD_RELOC_ALPHA_GOTDTPREL16
   2192          1.1  christos ENUMX
   2193          1.1  christos   BFD_RELOC_ALPHA_DTPREL64
   2194          1.1  christos ENUMX
   2195          1.1  christos   BFD_RELOC_ALPHA_DTPREL_HI16
   2196          1.1  christos ENUMX
   2197          1.1  christos   BFD_RELOC_ALPHA_DTPREL_LO16
   2198          1.1  christos ENUMX
   2199          1.1  christos   BFD_RELOC_ALPHA_DTPREL16
   2200          1.1  christos ENUMX
   2201          1.1  christos   BFD_RELOC_ALPHA_GOTTPREL16
   2202          1.1  christos ENUMX
   2203          1.1  christos   BFD_RELOC_ALPHA_TPREL64
   2204          1.1  christos ENUMX
   2205          1.1  christos   BFD_RELOC_ALPHA_TPREL_HI16
   2206          1.1  christos ENUMX
   2207          1.1  christos   BFD_RELOC_ALPHA_TPREL_LO16
   2208          1.1  christos ENUMX
   2209          1.1  christos   BFD_RELOC_ALPHA_TPREL16
   2210          1.1  christos ENUMDOC
   2211          1.1  christos   Alpha thread-local storage relocations.
   2212          1.1  christos 
   2213          1.1  christos ENUM
   2214          1.1  christos   BFD_RELOC_MIPS_JMP
   2215          1.1  christos ENUMX
   2216          1.1  christos   BFD_RELOC_MICROMIPS_JMP
   2217          1.1  christos ENUMDOC
   2218          1.1  christos   The MIPS jump instruction.
   2219          1.1  christos 
   2220          1.1  christos ENUM
   2221          1.1  christos   BFD_RELOC_MIPS16_JMP
   2222          1.1  christos ENUMDOC
   2223          1.1  christos   The MIPS16 jump instruction.
   2224          1.1  christos 
   2225          1.1  christos ENUM
   2226          1.1  christos   BFD_RELOC_MIPS16_GPREL
   2227          1.1  christos ENUMDOC
   2228          1.1  christos   MIPS16 GP relative reloc.
   2229          1.1  christos 
   2230          1.1  christos ENUM
   2231          1.1  christos   BFD_RELOC_HI16
   2232          1.1  christos ENUMDOC
   2233          1.1  christos   High 16 bits of 32-bit value; simple reloc.
   2234          1.1  christos 
   2235          1.1  christos ENUM
   2236          1.1  christos   BFD_RELOC_HI16_S
   2237          1.1  christos ENUMDOC
   2238          1.1  christos   High 16 bits of 32-bit value but the low 16 bits will be sign
   2239          1.1  christos      extended and added to form the final result.  If the low 16
   2240          1.1  christos      bits form a negative number, we need to add one to the high value
   2241          1.1  christos      to compensate for the borrow when the low bits are added.
   2242          1.1  christos 
   2243          1.1  christos ENUM
   2244          1.1  christos   BFD_RELOC_LO16
   2245          1.1  christos ENUMDOC
   2246          1.1  christos   Low 16 bits.
   2247          1.1  christos 
   2248          1.1  christos ENUM
   2249          1.1  christos   BFD_RELOC_HI16_PCREL
   2250          1.1  christos ENUMDOC
   2251          1.1  christos   High 16 bits of 32-bit pc-relative value
   2252          1.1  christos ENUM
   2253          1.1  christos   BFD_RELOC_HI16_S_PCREL
   2254          1.1  christos ENUMDOC
   2255          1.1  christos   High 16 bits of 32-bit pc-relative value, adjusted
   2256          1.1  christos ENUM
   2257          1.1  christos   BFD_RELOC_LO16_PCREL
   2258          1.1  christos ENUMDOC
   2259          1.1  christos   Low 16 bits of pc-relative value
   2260          1.1  christos 
   2261          1.1  christos ENUM
   2262          1.1  christos   BFD_RELOC_MIPS16_GOT16
   2263          1.1  christos ENUMX
   2264          1.1  christos   BFD_RELOC_MIPS16_CALL16
   2265          1.1  christos ENUMDOC
   2266          1.1  christos   Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of
   2267          1.1  christos      16-bit immediate fields
   2268          1.1  christos ENUM
   2269          1.1  christos   BFD_RELOC_MIPS16_HI16
   2270          1.1  christos ENUMDOC
   2271          1.1  christos   MIPS16 high 16 bits of 32-bit value.
   2272          1.1  christos ENUM
   2273          1.1  christos   BFD_RELOC_MIPS16_HI16_S
   2274          1.1  christos ENUMDOC
   2275          1.1  christos   MIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign
   2276          1.1  christos      extended and added to form the final result.  If the low 16
   2277          1.1  christos      bits form a negative number, we need to add one to the high value
   2278          1.1  christos      to compensate for the borrow when the low bits are added.
   2279          1.1  christos ENUM
   2280          1.1  christos   BFD_RELOC_MIPS16_LO16
   2281          1.1  christos ENUMDOC
   2282          1.1  christos   MIPS16 low 16 bits.
   2283          1.1  christos 
   2284          1.1  christos ENUM
   2285          1.1  christos   BFD_RELOC_MIPS16_TLS_GD
   2286          1.1  christos ENUMX
   2287          1.1  christos   BFD_RELOC_MIPS16_TLS_LDM
   2288          1.1  christos ENUMX
   2289          1.1  christos   BFD_RELOC_MIPS16_TLS_DTPREL_HI16
   2290          1.1  christos ENUMX
   2291          1.1  christos   BFD_RELOC_MIPS16_TLS_DTPREL_LO16
   2292          1.1  christos ENUMX
   2293          1.1  christos   BFD_RELOC_MIPS16_TLS_GOTTPREL
   2294          1.1  christos ENUMX
   2295          1.1  christos   BFD_RELOC_MIPS16_TLS_TPREL_HI16
   2296          1.1  christos ENUMX
   2297          1.1  christos   BFD_RELOC_MIPS16_TLS_TPREL_LO16
   2298          1.1  christos ENUMDOC
   2299          1.1  christos   MIPS16 TLS relocations
   2300          1.1  christos 
   2301          1.1  christos ENUM
   2302          1.1  christos   BFD_RELOC_MIPS_LITERAL
   2303          1.1  christos ENUMX
   2304          1.1  christos   BFD_RELOC_MICROMIPS_LITERAL
   2305          1.1  christos ENUMDOC
   2306          1.1  christos   Relocation against a MIPS literal section.
   2307          1.1  christos 
   2308          1.1  christos ENUM
   2309          1.1  christos   BFD_RELOC_MICROMIPS_7_PCREL_S1
   2310          1.1  christos ENUMX
   2311          1.1  christos   BFD_RELOC_MICROMIPS_10_PCREL_S1
   2312          1.1  christos ENUMX
   2313          1.1  christos   BFD_RELOC_MICROMIPS_16_PCREL_S1
   2314          1.1  christos ENUMDOC
   2315          1.1  christos   microMIPS PC-relative relocations.
   2316          1.1  christos 
   2317          1.1  christos ENUM
   2318  1.1.1.1.2.1  pgoyette   BFD_RELOC_MIPS_21_PCREL_S2
   2319  1.1.1.1.2.1  pgoyette ENUMX
   2320  1.1.1.1.2.1  pgoyette   BFD_RELOC_MIPS_26_PCREL_S2
   2321  1.1.1.1.2.1  pgoyette ENUMX
   2322  1.1.1.1.2.1  pgoyette   BFD_RELOC_MIPS_18_PCREL_S3
   2323  1.1.1.1.2.1  pgoyette ENUMX
   2324  1.1.1.1.2.1  pgoyette   BFD_RELOC_MIPS_19_PCREL_S2
   2325  1.1.1.1.2.1  pgoyette ENUMDOC
   2326  1.1.1.1.2.1  pgoyette   MIPS PC-relative relocations.
   2327  1.1.1.1.2.1  pgoyette 
   2328  1.1.1.1.2.1  pgoyette ENUM
   2329          1.1  christos   BFD_RELOC_MICROMIPS_GPREL16
   2330          1.1  christos ENUMX
   2331          1.1  christos   BFD_RELOC_MICROMIPS_HI16
   2332          1.1  christos ENUMX
   2333          1.1  christos   BFD_RELOC_MICROMIPS_HI16_S
   2334          1.1  christos ENUMX
   2335          1.1  christos   BFD_RELOC_MICROMIPS_LO16
   2336          1.1  christos ENUMDOC
   2337          1.1  christos   microMIPS versions of generic BFD relocs.
   2338          1.1  christos 
   2339          1.1  christos ENUM
   2340          1.1  christos   BFD_RELOC_MIPS_GOT16
   2341          1.1  christos ENUMX
   2342          1.1  christos   BFD_RELOC_MICROMIPS_GOT16
   2343          1.1  christos ENUMX
   2344          1.1  christos   BFD_RELOC_MIPS_CALL16
   2345          1.1  christos ENUMX
   2346          1.1  christos   BFD_RELOC_MICROMIPS_CALL16
   2347          1.1  christos ENUMX
   2348          1.1  christos   BFD_RELOC_MIPS_GOT_HI16
   2349          1.1  christos ENUMX
   2350          1.1  christos   BFD_RELOC_MICROMIPS_GOT_HI16
   2351          1.1  christos ENUMX
   2352          1.1  christos   BFD_RELOC_MIPS_GOT_LO16
   2353          1.1  christos ENUMX
   2354          1.1  christos   BFD_RELOC_MICROMIPS_GOT_LO16
   2355          1.1  christos ENUMX
   2356          1.1  christos   BFD_RELOC_MIPS_CALL_HI16
   2357          1.1  christos ENUMX
   2358          1.1  christos   BFD_RELOC_MICROMIPS_CALL_HI16
   2359          1.1  christos ENUMX
   2360          1.1  christos   BFD_RELOC_MIPS_CALL_LO16
   2361          1.1  christos ENUMX
   2362          1.1  christos   BFD_RELOC_MICROMIPS_CALL_LO16
   2363          1.1  christos ENUMX
   2364          1.1  christos   BFD_RELOC_MIPS_SUB
   2365          1.1  christos ENUMX
   2366          1.1  christos   BFD_RELOC_MICROMIPS_SUB
   2367          1.1  christos ENUMX
   2368          1.1  christos   BFD_RELOC_MIPS_GOT_PAGE
   2369          1.1  christos ENUMX
   2370          1.1  christos   BFD_RELOC_MICROMIPS_GOT_PAGE
   2371          1.1  christos ENUMX
   2372          1.1  christos   BFD_RELOC_MIPS_GOT_OFST
   2373          1.1  christos ENUMX
   2374          1.1  christos   BFD_RELOC_MICROMIPS_GOT_OFST
   2375          1.1  christos ENUMX
   2376          1.1  christos   BFD_RELOC_MIPS_GOT_DISP
   2377          1.1  christos ENUMX
   2378          1.1  christos   BFD_RELOC_MICROMIPS_GOT_DISP
   2379          1.1  christos ENUMX
   2380          1.1  christos   BFD_RELOC_MIPS_SHIFT5
   2381          1.1  christos ENUMX
   2382          1.1  christos   BFD_RELOC_MIPS_SHIFT6
   2383          1.1  christos ENUMX
   2384          1.1  christos   BFD_RELOC_MIPS_INSERT_A
   2385          1.1  christos ENUMX
   2386          1.1  christos   BFD_RELOC_MIPS_INSERT_B
   2387          1.1  christos ENUMX
   2388          1.1  christos   BFD_RELOC_MIPS_DELETE
   2389          1.1  christos ENUMX
   2390          1.1  christos   BFD_RELOC_MIPS_HIGHEST
   2391          1.1  christos ENUMX
   2392          1.1  christos   BFD_RELOC_MICROMIPS_HIGHEST
   2393          1.1  christos ENUMX
   2394          1.1  christos   BFD_RELOC_MIPS_HIGHER
   2395          1.1  christos ENUMX
   2396          1.1  christos   BFD_RELOC_MICROMIPS_HIGHER
   2397          1.1  christos ENUMX
   2398          1.1  christos   BFD_RELOC_MIPS_SCN_DISP
   2399          1.1  christos ENUMX
   2400          1.1  christos   BFD_RELOC_MICROMIPS_SCN_DISP
   2401          1.1  christos ENUMX
   2402          1.1  christos   BFD_RELOC_MIPS_REL16
   2403          1.1  christos ENUMX
   2404          1.1  christos   BFD_RELOC_MIPS_RELGOT
   2405          1.1  christos ENUMX
   2406          1.1  christos   BFD_RELOC_MIPS_JALR
   2407          1.1  christos ENUMX
   2408          1.1  christos   BFD_RELOC_MICROMIPS_JALR
   2409          1.1  christos ENUMX
   2410          1.1  christos   BFD_RELOC_MIPS_TLS_DTPMOD32
   2411          1.1  christos ENUMX
   2412          1.1  christos   BFD_RELOC_MIPS_TLS_DTPREL32
   2413          1.1  christos ENUMX
   2414          1.1  christos   BFD_RELOC_MIPS_TLS_DTPMOD64
   2415          1.1  christos ENUMX
   2416          1.1  christos   BFD_RELOC_MIPS_TLS_DTPREL64
   2417          1.1  christos ENUMX
   2418          1.1  christos   BFD_RELOC_MIPS_TLS_GD
   2419          1.1  christos ENUMX
   2420          1.1  christos   BFD_RELOC_MICROMIPS_TLS_GD
   2421          1.1  christos ENUMX
   2422          1.1  christos   BFD_RELOC_MIPS_TLS_LDM
   2423          1.1  christos ENUMX
   2424          1.1  christos   BFD_RELOC_MICROMIPS_TLS_LDM
   2425          1.1  christos ENUMX
   2426          1.1  christos   BFD_RELOC_MIPS_TLS_DTPREL_HI16
   2427          1.1  christos ENUMX
   2428          1.1  christos   BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16
   2429          1.1  christos ENUMX
   2430          1.1  christos   BFD_RELOC_MIPS_TLS_DTPREL_LO16
   2431          1.1  christos ENUMX
   2432          1.1  christos   BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16
   2433          1.1  christos ENUMX
   2434          1.1  christos   BFD_RELOC_MIPS_TLS_GOTTPREL
   2435          1.1  christos ENUMX
   2436          1.1  christos   BFD_RELOC_MICROMIPS_TLS_GOTTPREL
   2437          1.1  christos ENUMX
   2438          1.1  christos   BFD_RELOC_MIPS_TLS_TPREL32
   2439          1.1  christos ENUMX
   2440          1.1  christos   BFD_RELOC_MIPS_TLS_TPREL64
   2441          1.1  christos ENUMX
   2442          1.1  christos   BFD_RELOC_MIPS_TLS_TPREL_HI16
   2443          1.1  christos ENUMX
   2444          1.1  christos   BFD_RELOC_MICROMIPS_TLS_TPREL_HI16
   2445          1.1  christos ENUMX
   2446          1.1  christos   BFD_RELOC_MIPS_TLS_TPREL_LO16
   2447          1.1  christos ENUMX
   2448          1.1  christos   BFD_RELOC_MICROMIPS_TLS_TPREL_LO16
   2449  1.1.1.1.2.1  pgoyette ENUMX
   2450  1.1.1.1.2.1  pgoyette   BFD_RELOC_MIPS_EH
   2451          1.1  christos ENUMDOC
   2452          1.1  christos   MIPS ELF relocations.
   2453          1.1  christos COMMENT
   2454          1.1  christos 
   2455          1.1  christos ENUM
   2456          1.1  christos   BFD_RELOC_MIPS_COPY
   2457          1.1  christos ENUMX
   2458          1.1  christos   BFD_RELOC_MIPS_JUMP_SLOT
   2459          1.1  christos ENUMDOC
   2460          1.1  christos   MIPS ELF relocations (VxWorks and PLT extensions).
   2461          1.1  christos COMMENT
   2462          1.1  christos 
   2463          1.1  christos ENUM
   2464          1.1  christos   BFD_RELOC_MOXIE_10_PCREL
   2465          1.1  christos ENUMDOC
   2466          1.1  christos   Moxie ELF relocations.
   2467          1.1  christos COMMENT
   2468          1.1  christos 
   2469          1.1  christos ENUM
   2470  1.1.1.1.2.1  pgoyette   BFD_RELOC_FT32_10
   2471  1.1.1.1.2.1  pgoyette ENUMX
   2472  1.1.1.1.2.1  pgoyette   BFD_RELOC_FT32_20
   2473  1.1.1.1.2.1  pgoyette ENUMX
   2474  1.1.1.1.2.1  pgoyette   BFD_RELOC_FT32_17
   2475  1.1.1.1.2.1  pgoyette ENUMX
   2476  1.1.1.1.2.1  pgoyette   BFD_RELOC_FT32_18
   2477  1.1.1.1.2.1  pgoyette ENUMDOC
   2478  1.1.1.1.2.1  pgoyette   FT32 ELF relocations.
   2479  1.1.1.1.2.1  pgoyette COMMENT
   2480  1.1.1.1.2.1  pgoyette 
   2481  1.1.1.1.2.1  pgoyette ENUM
   2482          1.1  christos   BFD_RELOC_FRV_LABEL16
   2483          1.1  christos ENUMX
   2484          1.1  christos   BFD_RELOC_FRV_LABEL24
   2485          1.1  christos ENUMX
   2486          1.1  christos   BFD_RELOC_FRV_LO16
   2487          1.1  christos ENUMX
   2488          1.1  christos   BFD_RELOC_FRV_HI16
   2489          1.1  christos ENUMX
   2490          1.1  christos   BFD_RELOC_FRV_GPREL12
   2491          1.1  christos ENUMX
   2492          1.1  christos   BFD_RELOC_FRV_GPRELU12
   2493          1.1  christos ENUMX
   2494          1.1  christos   BFD_RELOC_FRV_GPREL32
   2495          1.1  christos ENUMX
   2496          1.1  christos   BFD_RELOC_FRV_GPRELHI
   2497          1.1  christos ENUMX
   2498          1.1  christos   BFD_RELOC_FRV_GPRELLO
   2499          1.1  christos ENUMX
   2500          1.1  christos   BFD_RELOC_FRV_GOT12
   2501          1.1  christos ENUMX
   2502          1.1  christos   BFD_RELOC_FRV_GOTHI
   2503          1.1  christos ENUMX
   2504          1.1  christos   BFD_RELOC_FRV_GOTLO
   2505          1.1  christos ENUMX
   2506          1.1  christos   BFD_RELOC_FRV_FUNCDESC
   2507          1.1  christos ENUMX
   2508          1.1  christos   BFD_RELOC_FRV_FUNCDESC_GOT12
   2509          1.1  christos ENUMX
   2510          1.1  christos   BFD_RELOC_FRV_FUNCDESC_GOTHI
   2511          1.1  christos ENUMX
   2512          1.1  christos   BFD_RELOC_FRV_FUNCDESC_GOTLO
   2513          1.1  christos ENUMX
   2514          1.1  christos   BFD_RELOC_FRV_FUNCDESC_VALUE
   2515          1.1  christos ENUMX
   2516          1.1  christos   BFD_RELOC_FRV_FUNCDESC_GOTOFF12
   2517          1.1  christos ENUMX
   2518          1.1  christos   BFD_RELOC_FRV_FUNCDESC_GOTOFFHI
   2519          1.1  christos ENUMX
   2520          1.1  christos   BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
   2521          1.1  christos ENUMX
   2522          1.1  christos   BFD_RELOC_FRV_GOTOFF12
   2523          1.1  christos ENUMX
   2524          1.1  christos   BFD_RELOC_FRV_GOTOFFHI
   2525          1.1  christos ENUMX
   2526          1.1  christos   BFD_RELOC_FRV_GOTOFFLO
   2527          1.1  christos ENUMX
   2528          1.1  christos   BFD_RELOC_FRV_GETTLSOFF
   2529          1.1  christos ENUMX
   2530          1.1  christos   BFD_RELOC_FRV_TLSDESC_VALUE
   2531          1.1  christos ENUMX
   2532          1.1  christos   BFD_RELOC_FRV_GOTTLSDESC12
   2533          1.1  christos ENUMX
   2534          1.1  christos   BFD_RELOC_FRV_GOTTLSDESCHI
   2535          1.1  christos ENUMX
   2536          1.1  christos   BFD_RELOC_FRV_GOTTLSDESCLO
   2537          1.1  christos ENUMX
   2538          1.1  christos   BFD_RELOC_FRV_TLSMOFF12
   2539          1.1  christos ENUMX
   2540          1.1  christos   BFD_RELOC_FRV_TLSMOFFHI
   2541          1.1  christos ENUMX
   2542          1.1  christos   BFD_RELOC_FRV_TLSMOFFLO
   2543          1.1  christos ENUMX
   2544          1.1  christos   BFD_RELOC_FRV_GOTTLSOFF12
   2545          1.1  christos ENUMX
   2546          1.1  christos   BFD_RELOC_FRV_GOTTLSOFFHI
   2547          1.1  christos ENUMX
   2548          1.1  christos   BFD_RELOC_FRV_GOTTLSOFFLO
   2549          1.1  christos ENUMX
   2550          1.1  christos   BFD_RELOC_FRV_TLSOFF
   2551          1.1  christos ENUMX
   2552          1.1  christos   BFD_RELOC_FRV_TLSDESC_RELAX
   2553          1.1  christos ENUMX
   2554          1.1  christos   BFD_RELOC_FRV_GETTLSOFF_RELAX
   2555          1.1  christos ENUMX
   2556          1.1  christos   BFD_RELOC_FRV_TLSOFF_RELAX
   2557          1.1  christos ENUMX
   2558          1.1  christos   BFD_RELOC_FRV_TLSMOFF
   2559          1.1  christos ENUMDOC
   2560          1.1  christos   Fujitsu Frv Relocations.
   2561          1.1  christos COMMENT
   2562          1.1  christos 
   2563          1.1  christos ENUM
   2564          1.1  christos   BFD_RELOC_MN10300_GOTOFF24
   2565          1.1  christos ENUMDOC
   2566          1.1  christos   This is a 24bit GOT-relative reloc for the mn10300.
   2567          1.1  christos ENUM
   2568          1.1  christos   BFD_RELOC_MN10300_GOT32
   2569          1.1  christos ENUMDOC
   2570          1.1  christos   This is a 32bit GOT-relative reloc for the mn10300, offset by two bytes
   2571          1.1  christos   in the instruction.
   2572          1.1  christos ENUM
   2573          1.1  christos   BFD_RELOC_MN10300_GOT24
   2574          1.1  christos ENUMDOC
   2575          1.1  christos   This is a 24bit GOT-relative reloc for the mn10300, offset by two bytes
   2576          1.1  christos   in the instruction.
   2577          1.1  christos ENUM
   2578          1.1  christos   BFD_RELOC_MN10300_GOT16
   2579          1.1  christos ENUMDOC
   2580          1.1  christos   This is a 16bit GOT-relative reloc for the mn10300, offset by two bytes
   2581          1.1  christos   in the instruction.
   2582          1.1  christos ENUM
   2583          1.1  christos   BFD_RELOC_MN10300_COPY
   2584          1.1  christos ENUMDOC
   2585          1.1  christos   Copy symbol at runtime.
   2586          1.1  christos ENUM
   2587          1.1  christos   BFD_RELOC_MN10300_GLOB_DAT
   2588          1.1  christos ENUMDOC
   2589          1.1  christos   Create GOT entry.
   2590          1.1  christos ENUM
   2591          1.1  christos   BFD_RELOC_MN10300_JMP_SLOT
   2592          1.1  christos ENUMDOC
   2593          1.1  christos   Create PLT entry.
   2594          1.1  christos ENUM
   2595          1.1  christos   BFD_RELOC_MN10300_RELATIVE
   2596          1.1  christos ENUMDOC
   2597          1.1  christos   Adjust by program base.
   2598          1.1  christos ENUM
   2599          1.1  christos   BFD_RELOC_MN10300_SYM_DIFF
   2600          1.1  christos ENUMDOC
   2601          1.1  christos   Together with another reloc targeted at the same location,
   2602          1.1  christos   allows for a value that is the difference of two symbols
   2603          1.1  christos   in the same section.
   2604          1.1  christos ENUM
   2605          1.1  christos   BFD_RELOC_MN10300_ALIGN
   2606          1.1  christos ENUMDOC
   2607          1.1  christos   The addend of this reloc is an alignment power that must
   2608          1.1  christos   be honoured at the offset's location, regardless of linker
   2609          1.1  christos   relaxation.
   2610          1.1  christos ENUM
   2611          1.1  christos   BFD_RELOC_MN10300_TLS_GD
   2612          1.1  christos ENUMX
   2613          1.1  christos   BFD_RELOC_MN10300_TLS_LD
   2614          1.1  christos ENUMX
   2615          1.1  christos   BFD_RELOC_MN10300_TLS_LDO
   2616          1.1  christos ENUMX
   2617          1.1  christos   BFD_RELOC_MN10300_TLS_GOTIE
   2618          1.1  christos ENUMX
   2619          1.1  christos   BFD_RELOC_MN10300_TLS_IE
   2620          1.1  christos ENUMX
   2621          1.1  christos   BFD_RELOC_MN10300_TLS_LE
   2622          1.1  christos ENUMX
   2623          1.1  christos   BFD_RELOC_MN10300_TLS_DTPMOD
   2624          1.1  christos ENUMX
   2625          1.1  christos   BFD_RELOC_MN10300_TLS_DTPOFF
   2626          1.1  christos ENUMX
   2627          1.1  christos   BFD_RELOC_MN10300_TLS_TPOFF
   2628          1.1  christos ENUMDOC
   2629          1.1  christos   Various TLS-related relocations.
   2630          1.1  christos ENUM
   2631          1.1  christos   BFD_RELOC_MN10300_32_PCREL
   2632          1.1  christos ENUMDOC
   2633          1.1  christos   This is a 32bit pcrel reloc for the mn10300, offset by two bytes in the
   2634          1.1  christos   instruction.
   2635          1.1  christos ENUM
   2636          1.1  christos   BFD_RELOC_MN10300_16_PCREL
   2637          1.1  christos ENUMDOC
   2638          1.1  christos   This is a 16bit pcrel reloc for the mn10300, offset by two bytes in the
   2639          1.1  christos   instruction.
   2640          1.1  christos COMMENT
   2641          1.1  christos 
   2642          1.1  christos ENUM
   2643          1.1  christos   BFD_RELOC_386_GOT32
   2644          1.1  christos ENUMX
   2645          1.1  christos   BFD_RELOC_386_PLT32
   2646          1.1  christos ENUMX
   2647          1.1  christos   BFD_RELOC_386_COPY
   2648          1.1  christos ENUMX
   2649          1.1  christos   BFD_RELOC_386_GLOB_DAT
   2650          1.1  christos ENUMX
   2651          1.1  christos   BFD_RELOC_386_JUMP_SLOT
   2652          1.1  christos ENUMX
   2653          1.1  christos   BFD_RELOC_386_RELATIVE
   2654          1.1  christos ENUMX
   2655          1.1  christos   BFD_RELOC_386_GOTOFF
   2656          1.1  christos ENUMX
   2657          1.1  christos   BFD_RELOC_386_GOTPC
   2658          1.1  christos ENUMX
   2659          1.1  christos   BFD_RELOC_386_TLS_TPOFF
   2660          1.1  christos ENUMX
   2661          1.1  christos   BFD_RELOC_386_TLS_IE
   2662          1.1  christos ENUMX
   2663          1.1  christos   BFD_RELOC_386_TLS_GOTIE
   2664          1.1  christos ENUMX
   2665          1.1  christos   BFD_RELOC_386_TLS_LE
   2666          1.1  christos ENUMX
   2667          1.1  christos   BFD_RELOC_386_TLS_GD
   2668          1.1  christos ENUMX
   2669          1.1  christos   BFD_RELOC_386_TLS_LDM
   2670          1.1  christos ENUMX
   2671          1.1  christos   BFD_RELOC_386_TLS_LDO_32
   2672          1.1  christos ENUMX
   2673          1.1  christos   BFD_RELOC_386_TLS_IE_32
   2674          1.1  christos ENUMX
   2675          1.1  christos   BFD_RELOC_386_TLS_LE_32
   2676          1.1  christos ENUMX
   2677          1.1  christos   BFD_RELOC_386_TLS_DTPMOD32
   2678          1.1  christos ENUMX
   2679          1.1  christos   BFD_RELOC_386_TLS_DTPOFF32
   2680          1.1  christos ENUMX
   2681          1.1  christos   BFD_RELOC_386_TLS_TPOFF32
   2682          1.1  christos ENUMX
   2683          1.1  christos   BFD_RELOC_386_TLS_GOTDESC
   2684          1.1  christos ENUMX
   2685          1.1  christos   BFD_RELOC_386_TLS_DESC_CALL
   2686          1.1  christos ENUMX
   2687          1.1  christos   BFD_RELOC_386_TLS_DESC
   2688          1.1  christos ENUMX
   2689          1.1  christos   BFD_RELOC_386_IRELATIVE
   2690  1.1.1.1.2.1  pgoyette ENUMX
   2691  1.1.1.1.2.1  pgoyette   BFD_RELOC_386_GOT32X
   2692          1.1  christos ENUMDOC
   2693          1.1  christos   i386/elf relocations
   2694          1.1  christos 
   2695          1.1  christos ENUM
   2696          1.1  christos   BFD_RELOC_X86_64_GOT32
   2697          1.1  christos ENUMX
   2698          1.1  christos   BFD_RELOC_X86_64_PLT32
   2699          1.1  christos ENUMX
   2700          1.1  christos   BFD_RELOC_X86_64_COPY
   2701          1.1  christos ENUMX
   2702          1.1  christos   BFD_RELOC_X86_64_GLOB_DAT
   2703          1.1  christos ENUMX
   2704          1.1  christos   BFD_RELOC_X86_64_JUMP_SLOT
   2705          1.1  christos ENUMX
   2706          1.1  christos   BFD_RELOC_X86_64_RELATIVE
   2707          1.1  christos ENUMX
   2708          1.1  christos   BFD_RELOC_X86_64_GOTPCREL
   2709          1.1  christos ENUMX
   2710          1.1  christos   BFD_RELOC_X86_64_32S
   2711          1.1  christos ENUMX
   2712          1.1  christos   BFD_RELOC_X86_64_DTPMOD64
   2713          1.1  christos ENUMX
   2714          1.1  christos   BFD_RELOC_X86_64_DTPOFF64
   2715          1.1  christos ENUMX
   2716          1.1  christos   BFD_RELOC_X86_64_TPOFF64
   2717          1.1  christos ENUMX
   2718          1.1  christos   BFD_RELOC_X86_64_TLSGD
   2719          1.1  christos ENUMX
   2720          1.1  christos   BFD_RELOC_X86_64_TLSLD
   2721          1.1  christos ENUMX
   2722          1.1  christos   BFD_RELOC_X86_64_DTPOFF32
   2723          1.1  christos ENUMX
   2724          1.1  christos   BFD_RELOC_X86_64_GOTTPOFF
   2725          1.1  christos ENUMX
   2726          1.1  christos   BFD_RELOC_X86_64_TPOFF32
   2727          1.1  christos ENUMX
   2728          1.1  christos   BFD_RELOC_X86_64_GOTOFF64
   2729          1.1  christos ENUMX
   2730          1.1  christos   BFD_RELOC_X86_64_GOTPC32
   2731          1.1  christos ENUMX
   2732          1.1  christos   BFD_RELOC_X86_64_GOT64
   2733          1.1  christos ENUMX
   2734          1.1  christos   BFD_RELOC_X86_64_GOTPCREL64
   2735          1.1  christos ENUMX
   2736          1.1  christos   BFD_RELOC_X86_64_GOTPC64
   2737          1.1  christos ENUMX
   2738          1.1  christos   BFD_RELOC_X86_64_GOTPLT64
   2739          1.1  christos ENUMX
   2740          1.1  christos   BFD_RELOC_X86_64_PLTOFF64
   2741          1.1  christos ENUMX
   2742          1.1  christos   BFD_RELOC_X86_64_GOTPC32_TLSDESC
   2743          1.1  christos ENUMX
   2744          1.1  christos   BFD_RELOC_X86_64_TLSDESC_CALL
   2745          1.1  christos ENUMX
   2746          1.1  christos   BFD_RELOC_X86_64_TLSDESC
   2747          1.1  christos ENUMX
   2748          1.1  christos   BFD_RELOC_X86_64_IRELATIVE
   2749  1.1.1.1.2.1  pgoyette ENUMX
   2750  1.1.1.1.2.1  pgoyette   BFD_RELOC_X86_64_PC32_BND
   2751  1.1.1.1.2.1  pgoyette ENUMX
   2752  1.1.1.1.2.1  pgoyette   BFD_RELOC_X86_64_PLT32_BND
   2753  1.1.1.1.2.1  pgoyette ENUMX
   2754  1.1.1.1.2.1  pgoyette   BFD_RELOC_X86_64_GOTPCRELX
   2755  1.1.1.1.2.1  pgoyette ENUMX
   2756  1.1.1.1.2.1  pgoyette   BFD_RELOC_X86_64_REX_GOTPCRELX
   2757          1.1  christos ENUMDOC
   2758          1.1  christos   x86-64/elf relocations
   2759          1.1  christos 
   2760          1.1  christos ENUM
   2761          1.1  christos   BFD_RELOC_NS32K_IMM_8
   2762          1.1  christos ENUMX
   2763          1.1  christos   BFD_RELOC_NS32K_IMM_16
   2764          1.1  christos ENUMX
   2765          1.1  christos   BFD_RELOC_NS32K_IMM_32
   2766          1.1  christos ENUMX
   2767          1.1  christos   BFD_RELOC_NS32K_IMM_8_PCREL
   2768          1.1  christos ENUMX
   2769          1.1  christos   BFD_RELOC_NS32K_IMM_16_PCREL
   2770          1.1  christos ENUMX
   2771          1.1  christos   BFD_RELOC_NS32K_IMM_32_PCREL
   2772          1.1  christos ENUMX
   2773          1.1  christos   BFD_RELOC_NS32K_DISP_8
   2774          1.1  christos ENUMX
   2775          1.1  christos   BFD_RELOC_NS32K_DISP_16
   2776          1.1  christos ENUMX
   2777          1.1  christos   BFD_RELOC_NS32K_DISP_32
   2778          1.1  christos ENUMX
   2779          1.1  christos   BFD_RELOC_NS32K_DISP_8_PCREL
   2780          1.1  christos ENUMX
   2781          1.1  christos   BFD_RELOC_NS32K_DISP_16_PCREL
   2782          1.1  christos ENUMX
   2783          1.1  christos   BFD_RELOC_NS32K_DISP_32_PCREL
   2784          1.1  christos ENUMDOC
   2785          1.1  christos   ns32k relocations
   2786          1.1  christos 
   2787          1.1  christos ENUM
   2788          1.1  christos   BFD_RELOC_PDP11_DISP_8_PCREL
   2789          1.1  christos ENUMX
   2790          1.1  christos   BFD_RELOC_PDP11_DISP_6_PCREL
   2791          1.1  christos ENUMDOC
   2792          1.1  christos   PDP11 relocations
   2793          1.1  christos 
   2794          1.1  christos ENUM
   2795          1.1  christos   BFD_RELOC_PJ_CODE_HI16
   2796          1.1  christos ENUMX
   2797          1.1  christos   BFD_RELOC_PJ_CODE_LO16
   2798          1.1  christos ENUMX
   2799          1.1  christos   BFD_RELOC_PJ_CODE_DIR16
   2800          1.1  christos ENUMX
   2801          1.1  christos   BFD_RELOC_PJ_CODE_DIR32
   2802          1.1  christos ENUMX
   2803          1.1  christos   BFD_RELOC_PJ_CODE_REL16
   2804          1.1  christos ENUMX
   2805          1.1  christos   BFD_RELOC_PJ_CODE_REL32
   2806          1.1  christos ENUMDOC
   2807          1.1  christos   Picojava relocs.  Not all of these appear in object files.
   2808          1.1  christos 
   2809          1.1  christos ENUM
   2810          1.1  christos   BFD_RELOC_PPC_B26
   2811          1.1  christos ENUMX
   2812          1.1  christos   BFD_RELOC_PPC_BA26
   2813          1.1  christos ENUMX
   2814          1.1  christos   BFD_RELOC_PPC_TOC16
   2815          1.1  christos ENUMX
   2816          1.1  christos   BFD_RELOC_PPC_B16
   2817          1.1  christos ENUMX
   2818          1.1  christos   BFD_RELOC_PPC_B16_BRTAKEN
   2819          1.1  christos ENUMX
   2820          1.1  christos   BFD_RELOC_PPC_B16_BRNTAKEN
   2821          1.1  christos ENUMX
   2822          1.1  christos   BFD_RELOC_PPC_BA16
   2823          1.1  christos ENUMX
   2824          1.1  christos   BFD_RELOC_PPC_BA16_BRTAKEN
   2825          1.1  christos ENUMX
   2826          1.1  christos   BFD_RELOC_PPC_BA16_BRNTAKEN
   2827          1.1  christos ENUMX
   2828          1.1  christos   BFD_RELOC_PPC_COPY
   2829          1.1  christos ENUMX
   2830          1.1  christos   BFD_RELOC_PPC_GLOB_DAT
   2831          1.1  christos ENUMX
   2832          1.1  christos   BFD_RELOC_PPC_JMP_SLOT
   2833          1.1  christos ENUMX
   2834          1.1  christos   BFD_RELOC_PPC_RELATIVE
   2835          1.1  christos ENUMX
   2836          1.1  christos   BFD_RELOC_PPC_LOCAL24PC
   2837          1.1  christos ENUMX
   2838          1.1  christos   BFD_RELOC_PPC_EMB_NADDR32
   2839          1.1  christos ENUMX
   2840          1.1  christos   BFD_RELOC_PPC_EMB_NADDR16
   2841          1.1  christos ENUMX
   2842          1.1  christos   BFD_RELOC_PPC_EMB_NADDR16_LO
   2843          1.1  christos ENUMX
   2844          1.1  christos   BFD_RELOC_PPC_EMB_NADDR16_HI
   2845          1.1  christos ENUMX
   2846          1.1  christos   BFD_RELOC_PPC_EMB_NADDR16_HA
   2847          1.1  christos ENUMX
   2848          1.1  christos   BFD_RELOC_PPC_EMB_SDAI16
   2849          1.1  christos ENUMX
   2850          1.1  christos   BFD_RELOC_PPC_EMB_SDA2I16
   2851          1.1  christos ENUMX
   2852          1.1  christos   BFD_RELOC_PPC_EMB_SDA2REL
   2853          1.1  christos ENUMX
   2854          1.1  christos   BFD_RELOC_PPC_EMB_SDA21
   2855          1.1  christos ENUMX
   2856          1.1  christos   BFD_RELOC_PPC_EMB_MRKREF
   2857          1.1  christos ENUMX
   2858          1.1  christos   BFD_RELOC_PPC_EMB_RELSEC16
   2859          1.1  christos ENUMX
   2860          1.1  christos   BFD_RELOC_PPC_EMB_RELST_LO
   2861          1.1  christos ENUMX
   2862          1.1  christos   BFD_RELOC_PPC_EMB_RELST_HI
   2863          1.1  christos ENUMX
   2864          1.1  christos   BFD_RELOC_PPC_EMB_RELST_HA
   2865          1.1  christos ENUMX
   2866          1.1  christos   BFD_RELOC_PPC_EMB_BIT_FLD
   2867          1.1  christos ENUMX
   2868          1.1  christos   BFD_RELOC_PPC_EMB_RELSDA
   2869          1.1  christos ENUMX
   2870          1.1  christos   BFD_RELOC_PPC_VLE_REL8
   2871          1.1  christos ENUMX
   2872          1.1  christos   BFD_RELOC_PPC_VLE_REL15
   2873          1.1  christos ENUMX
   2874          1.1  christos   BFD_RELOC_PPC_VLE_REL24
   2875          1.1  christos ENUMX
   2876          1.1  christos   BFD_RELOC_PPC_VLE_LO16A
   2877          1.1  christos ENUMX
   2878          1.1  christos   BFD_RELOC_PPC_VLE_LO16D
   2879          1.1  christos ENUMX
   2880          1.1  christos   BFD_RELOC_PPC_VLE_HI16A
   2881          1.1  christos ENUMX
   2882          1.1  christos   BFD_RELOC_PPC_VLE_HI16D
   2883          1.1  christos ENUMX
   2884          1.1  christos   BFD_RELOC_PPC_VLE_HA16A
   2885          1.1  christos ENUMX
   2886          1.1  christos   BFD_RELOC_PPC_VLE_HA16D
   2887          1.1  christos ENUMX
   2888          1.1  christos   BFD_RELOC_PPC_VLE_SDA21
   2889          1.1  christos ENUMX
   2890          1.1  christos   BFD_RELOC_PPC_VLE_SDA21_LO
   2891          1.1  christos ENUMX
   2892          1.1  christos   BFD_RELOC_PPC_VLE_SDAREL_LO16A
   2893          1.1  christos ENUMX
   2894          1.1  christos   BFD_RELOC_PPC_VLE_SDAREL_LO16D
   2895          1.1  christos ENUMX
   2896          1.1  christos   BFD_RELOC_PPC_VLE_SDAREL_HI16A
   2897          1.1  christos ENUMX
   2898          1.1  christos   BFD_RELOC_PPC_VLE_SDAREL_HI16D
   2899          1.1  christos ENUMX
   2900          1.1  christos   BFD_RELOC_PPC_VLE_SDAREL_HA16A
   2901          1.1  christos ENUMX
   2902          1.1  christos   BFD_RELOC_PPC_VLE_SDAREL_HA16D
   2903          1.1  christos ENUMX
   2904  1.1.1.1.2.1  pgoyette   BFD_RELOC_PPC_REL16DX_HA
   2905  1.1.1.1.2.1  pgoyette ENUMX
   2906          1.1  christos   BFD_RELOC_PPC64_HIGHER
   2907          1.1  christos ENUMX
   2908          1.1  christos   BFD_RELOC_PPC64_HIGHER_S
   2909          1.1  christos ENUMX
   2910          1.1  christos   BFD_RELOC_PPC64_HIGHEST
   2911          1.1  christos ENUMX
   2912          1.1  christos   BFD_RELOC_PPC64_HIGHEST_S
   2913          1.1  christos ENUMX
   2914          1.1  christos   BFD_RELOC_PPC64_TOC16_LO
   2915          1.1  christos ENUMX
   2916          1.1  christos   BFD_RELOC_PPC64_TOC16_HI
   2917          1.1  christos ENUMX
   2918          1.1  christos   BFD_RELOC_PPC64_TOC16_HA
   2919          1.1  christos ENUMX
   2920          1.1  christos   BFD_RELOC_PPC64_TOC
   2921          1.1  christos ENUMX
   2922          1.1  christos   BFD_RELOC_PPC64_PLTGOT16
   2923          1.1  christos ENUMX
   2924          1.1  christos   BFD_RELOC_PPC64_PLTGOT16_LO
   2925          1.1  christos ENUMX
   2926          1.1  christos   BFD_RELOC_PPC64_PLTGOT16_HI
   2927          1.1  christos ENUMX
   2928          1.1  christos   BFD_RELOC_PPC64_PLTGOT16_HA
   2929          1.1  christos ENUMX
   2930          1.1  christos   BFD_RELOC_PPC64_ADDR16_DS
   2931          1.1  christos ENUMX
   2932          1.1  christos   BFD_RELOC_PPC64_ADDR16_LO_DS
   2933          1.1  christos ENUMX
   2934          1.1  christos   BFD_RELOC_PPC64_GOT16_DS
   2935          1.1  christos ENUMX
   2936          1.1  christos   BFD_RELOC_PPC64_GOT16_LO_DS
   2937          1.1  christos ENUMX
   2938          1.1  christos   BFD_RELOC_PPC64_PLT16_LO_DS
   2939          1.1  christos ENUMX
   2940          1.1  christos   BFD_RELOC_PPC64_SECTOFF_DS
   2941          1.1  christos ENUMX
   2942          1.1  christos   BFD_RELOC_PPC64_SECTOFF_LO_DS
   2943          1.1  christos ENUMX
   2944          1.1  christos   BFD_RELOC_PPC64_TOC16_DS
   2945          1.1  christos ENUMX
   2946          1.1  christos   BFD_RELOC_PPC64_TOC16_LO_DS
   2947          1.1  christos ENUMX
   2948          1.1  christos   BFD_RELOC_PPC64_PLTGOT16_DS
   2949          1.1  christos ENUMX
   2950          1.1  christos   BFD_RELOC_PPC64_PLTGOT16_LO_DS
   2951  1.1.1.1.2.1  pgoyette ENUMX
   2952  1.1.1.1.2.1  pgoyette   BFD_RELOC_PPC64_ADDR16_HIGH
   2953  1.1.1.1.2.1  pgoyette ENUMX
   2954  1.1.1.1.2.1  pgoyette   BFD_RELOC_PPC64_ADDR16_HIGHA
   2955  1.1.1.1.2.1  pgoyette ENUMX
   2956  1.1.1.1.2.1  pgoyette   BFD_RELOC_PPC64_ADDR64_LOCAL
   2957  1.1.1.1.2.1  pgoyette ENUMX
   2958  1.1.1.1.2.1  pgoyette   BFD_RELOC_PPC64_ENTRY
   2959          1.1  christos ENUMDOC
   2960          1.1  christos   Power(rs6000) and PowerPC relocations.
   2961          1.1  christos 
   2962          1.1  christos ENUM
   2963          1.1  christos   BFD_RELOC_PPC_TLS
   2964          1.1  christos ENUMX
   2965          1.1  christos   BFD_RELOC_PPC_TLSGD
   2966          1.1  christos ENUMX
   2967          1.1  christos   BFD_RELOC_PPC_TLSLD
   2968          1.1  christos ENUMX
   2969          1.1  christos   BFD_RELOC_PPC_DTPMOD
   2970          1.1  christos ENUMX
   2971          1.1  christos   BFD_RELOC_PPC_TPREL16
   2972          1.1  christos ENUMX
   2973          1.1  christos   BFD_RELOC_PPC_TPREL16_LO
   2974          1.1  christos ENUMX
   2975          1.1  christos   BFD_RELOC_PPC_TPREL16_HI
   2976          1.1  christos ENUMX
   2977          1.1  christos   BFD_RELOC_PPC_TPREL16_HA
   2978          1.1  christos ENUMX
   2979          1.1  christos   BFD_RELOC_PPC_TPREL
   2980          1.1  christos ENUMX
   2981          1.1  christos   BFD_RELOC_PPC_DTPREL16
   2982          1.1  christos ENUMX
   2983          1.1  christos   BFD_RELOC_PPC_DTPREL16_LO
   2984          1.1  christos ENUMX
   2985          1.1  christos   BFD_RELOC_PPC_DTPREL16_HI
   2986          1.1  christos ENUMX
   2987          1.1  christos   BFD_RELOC_PPC_DTPREL16_HA
   2988          1.1  christos ENUMX
   2989          1.1  christos   BFD_RELOC_PPC_DTPREL
   2990          1.1  christos ENUMX
   2991          1.1  christos   BFD_RELOC_PPC_GOT_TLSGD16
   2992          1.1  christos ENUMX
   2993          1.1  christos   BFD_RELOC_PPC_GOT_TLSGD16_LO
   2994          1.1  christos ENUMX
   2995          1.1  christos   BFD_RELOC_PPC_GOT_TLSGD16_HI
   2996          1.1  christos ENUMX
   2997          1.1  christos   BFD_RELOC_PPC_GOT_TLSGD16_HA
   2998          1.1  christos ENUMX
   2999          1.1  christos   BFD_RELOC_PPC_GOT_TLSLD16
   3000          1.1  christos ENUMX
   3001          1.1  christos   BFD_RELOC_PPC_GOT_TLSLD16_LO
   3002          1.1  christos ENUMX
   3003          1.1  christos   BFD_RELOC_PPC_GOT_TLSLD16_HI
   3004          1.1  christos ENUMX
   3005          1.1  christos   BFD_RELOC_PPC_GOT_TLSLD16_HA
   3006          1.1  christos ENUMX
   3007          1.1  christos   BFD_RELOC_PPC_GOT_TPREL16
   3008          1.1  christos ENUMX
   3009          1.1  christos   BFD_RELOC_PPC_GOT_TPREL16_LO
   3010          1.1  christos ENUMX
   3011          1.1  christos   BFD_RELOC_PPC_GOT_TPREL16_HI
   3012          1.1  christos ENUMX
   3013          1.1  christos   BFD_RELOC_PPC_GOT_TPREL16_HA
   3014          1.1  christos ENUMX
   3015          1.1  christos   BFD_RELOC_PPC_GOT_DTPREL16
   3016          1.1  christos ENUMX
   3017          1.1  christos   BFD_RELOC_PPC_GOT_DTPREL16_LO
   3018          1.1  christos ENUMX
   3019          1.1  christos   BFD_RELOC_PPC_GOT_DTPREL16_HI
   3020          1.1  christos ENUMX
   3021          1.1  christos   BFD_RELOC_PPC_GOT_DTPREL16_HA
   3022          1.1  christos ENUMX
   3023          1.1  christos   BFD_RELOC_PPC64_TPREL16_DS
   3024          1.1  christos ENUMX
   3025          1.1  christos   BFD_RELOC_PPC64_TPREL16_LO_DS
   3026          1.1  christos ENUMX
   3027          1.1  christos   BFD_RELOC_PPC64_TPREL16_HIGHER
   3028          1.1  christos ENUMX
   3029          1.1  christos   BFD_RELOC_PPC64_TPREL16_HIGHERA
   3030          1.1  christos ENUMX
   3031          1.1  christos   BFD_RELOC_PPC64_TPREL16_HIGHEST
   3032          1.1  christos ENUMX
   3033          1.1  christos   BFD_RELOC_PPC64_TPREL16_HIGHESTA
   3034          1.1  christos ENUMX
   3035          1.1  christos   BFD_RELOC_PPC64_DTPREL16_DS
   3036          1.1  christos ENUMX
   3037          1.1  christos   BFD_RELOC_PPC64_DTPREL16_LO_DS
   3038          1.1  christos ENUMX
   3039          1.1  christos   BFD_RELOC_PPC64_DTPREL16_HIGHER
   3040          1.1  christos ENUMX
   3041          1.1  christos   BFD_RELOC_PPC64_DTPREL16_HIGHERA
   3042          1.1  christos ENUMX
   3043          1.1  christos   BFD_RELOC_PPC64_DTPREL16_HIGHEST
   3044          1.1  christos ENUMX
   3045          1.1  christos   BFD_RELOC_PPC64_DTPREL16_HIGHESTA
   3046  1.1.1.1.2.1  pgoyette ENUMX
   3047  1.1.1.1.2.1  pgoyette   BFD_RELOC_PPC64_TPREL16_HIGH
   3048  1.1.1.1.2.1  pgoyette ENUMX
   3049  1.1.1.1.2.1  pgoyette   BFD_RELOC_PPC64_TPREL16_HIGHA
   3050  1.1.1.1.2.1  pgoyette ENUMX
   3051  1.1.1.1.2.1  pgoyette   BFD_RELOC_PPC64_DTPREL16_HIGH
   3052  1.1.1.1.2.1  pgoyette ENUMX
   3053  1.1.1.1.2.1  pgoyette   BFD_RELOC_PPC64_DTPREL16_HIGHA
   3054          1.1  christos ENUMDOC
   3055          1.1  christos   PowerPC and PowerPC64 thread-local storage relocations.
   3056          1.1  christos 
   3057          1.1  christos ENUM
   3058          1.1  christos   BFD_RELOC_I370_D12
   3059          1.1  christos ENUMDOC
   3060          1.1  christos   IBM 370/390 relocations
   3061          1.1  christos 
   3062          1.1  christos ENUM
   3063          1.1  christos   BFD_RELOC_CTOR
   3064          1.1  christos ENUMDOC
   3065          1.1  christos   The type of reloc used to build a constructor table - at the moment
   3066          1.1  christos   probably a 32 bit wide absolute relocation, but the target can choose.
   3067          1.1  christos   It generally does map to one of the other relocation types.
   3068          1.1  christos 
   3069          1.1  christos ENUM
   3070          1.1  christos   BFD_RELOC_ARM_PCREL_BRANCH
   3071          1.1  christos ENUMDOC
   3072          1.1  christos   ARM 26 bit pc-relative branch.  The lowest two bits must be zero and are
   3073          1.1  christos   not stored in the instruction.
   3074          1.1  christos ENUM
   3075          1.1  christos   BFD_RELOC_ARM_PCREL_BLX
   3076          1.1  christos ENUMDOC
   3077          1.1  christos   ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
   3078          1.1  christos   not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
   3079          1.1  christos   field in the instruction.
   3080          1.1  christos ENUM
   3081          1.1  christos   BFD_RELOC_THUMB_PCREL_BLX
   3082          1.1  christos ENUMDOC
   3083          1.1  christos   Thumb 22 bit pc-relative branch.  The lowest bit must be zero and is
   3084          1.1  christos   not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
   3085          1.1  christos   field in the instruction.
   3086          1.1  christos ENUM
   3087          1.1  christos   BFD_RELOC_ARM_PCREL_CALL
   3088          1.1  christos ENUMDOC
   3089          1.1  christos   ARM 26-bit pc-relative branch for an unconditional BL or BLX instruction.
   3090          1.1  christos ENUM
   3091          1.1  christos   BFD_RELOC_ARM_PCREL_JUMP
   3092          1.1  christos ENUMDOC
   3093          1.1  christos   ARM 26-bit pc-relative branch for B or conditional BL instruction.
   3094          1.1  christos 
   3095          1.1  christos ENUM
   3096          1.1  christos   BFD_RELOC_THUMB_PCREL_BRANCH7
   3097          1.1  christos ENUMX
   3098          1.1  christos   BFD_RELOC_THUMB_PCREL_BRANCH9
   3099          1.1  christos ENUMX
   3100          1.1  christos   BFD_RELOC_THUMB_PCREL_BRANCH12
   3101          1.1  christos ENUMX
   3102          1.1  christos   BFD_RELOC_THUMB_PCREL_BRANCH20
   3103          1.1  christos ENUMX
   3104          1.1  christos   BFD_RELOC_THUMB_PCREL_BRANCH23
   3105          1.1  christos ENUMX
   3106          1.1  christos   BFD_RELOC_THUMB_PCREL_BRANCH25
   3107          1.1  christos ENUMDOC
   3108          1.1  christos   Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
   3109          1.1  christos   The lowest bit must be zero and is not stored in the instruction.
   3110          1.1  christos   Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
   3111          1.1  christos   "nn" one smaller in all cases.  Note further that BRANCH23
   3112          1.1  christos   corresponds to R_ARM_THM_CALL.
   3113          1.1  christos 
   3114          1.1  christos ENUM
   3115          1.1  christos   BFD_RELOC_ARM_OFFSET_IMM
   3116          1.1  christos ENUMDOC
   3117          1.1  christos   12-bit immediate offset, used in ARM-format ldr and str instructions.
   3118          1.1  christos 
   3119          1.1  christos ENUM
   3120          1.1  christos   BFD_RELOC_ARM_THUMB_OFFSET
   3121          1.1  christos ENUMDOC
   3122          1.1  christos   5-bit immediate offset, used in Thumb-format ldr and str instructions.
   3123          1.1  christos 
   3124          1.1  christos ENUM
   3125          1.1  christos   BFD_RELOC_ARM_TARGET1
   3126          1.1  christos ENUMDOC
   3127          1.1  christos   Pc-relative or absolute relocation depending on target.  Used for
   3128          1.1  christos   entries in .init_array sections.
   3129          1.1  christos ENUM
   3130          1.1  christos   BFD_RELOC_ARM_ROSEGREL32
   3131          1.1  christos ENUMDOC
   3132          1.1  christos   Read-only segment base relative address.
   3133          1.1  christos ENUM
   3134          1.1  christos   BFD_RELOC_ARM_SBREL32
   3135          1.1  christos ENUMDOC
   3136          1.1  christos   Data segment base relative address.
   3137          1.1  christos ENUM
   3138          1.1  christos   BFD_RELOC_ARM_TARGET2
   3139          1.1  christos ENUMDOC
   3140          1.1  christos   This reloc is used for references to RTTI data from exception handling
   3141          1.1  christos   tables.  The actual definition depends on the target.  It may be a
   3142          1.1  christos   pc-relative or some form of GOT-indirect relocation.
   3143          1.1  christos ENUM
   3144          1.1  christos   BFD_RELOC_ARM_PREL31
   3145          1.1  christos ENUMDOC
   3146          1.1  christos   31-bit PC relative address.
   3147          1.1  christos ENUM
   3148          1.1  christos   BFD_RELOC_ARM_MOVW
   3149          1.1  christos ENUMX
   3150          1.1  christos   BFD_RELOC_ARM_MOVT
   3151          1.1  christos ENUMX
   3152          1.1  christos   BFD_RELOC_ARM_MOVW_PCREL
   3153          1.1  christos ENUMX
   3154          1.1  christos   BFD_RELOC_ARM_MOVT_PCREL
   3155          1.1  christos ENUMX
   3156          1.1  christos   BFD_RELOC_ARM_THUMB_MOVW
   3157          1.1  christos ENUMX
   3158          1.1  christos   BFD_RELOC_ARM_THUMB_MOVT
   3159          1.1  christos ENUMX
   3160          1.1  christos   BFD_RELOC_ARM_THUMB_MOVW_PCREL
   3161          1.1  christos ENUMX
   3162          1.1  christos   BFD_RELOC_ARM_THUMB_MOVT_PCREL
   3163          1.1  christos ENUMDOC
   3164          1.1  christos   Low and High halfword relocations for MOVW and MOVT instructions.
   3165          1.1  christos 
   3166          1.1  christos ENUM
   3167          1.1  christos   BFD_RELOC_ARM_JUMP_SLOT
   3168          1.1  christos ENUMX
   3169          1.1  christos   BFD_RELOC_ARM_GLOB_DAT
   3170          1.1  christos ENUMX
   3171          1.1  christos   BFD_RELOC_ARM_GOT32
   3172          1.1  christos ENUMX
   3173          1.1  christos   BFD_RELOC_ARM_PLT32
   3174          1.1  christos ENUMX
   3175          1.1  christos   BFD_RELOC_ARM_RELATIVE
   3176          1.1  christos ENUMX
   3177          1.1  christos   BFD_RELOC_ARM_GOTOFF
   3178          1.1  christos ENUMX
   3179          1.1  christos   BFD_RELOC_ARM_GOTPC
   3180          1.1  christos ENUMX
   3181          1.1  christos   BFD_RELOC_ARM_GOT_PREL
   3182          1.1  christos ENUMDOC
   3183          1.1  christos   Relocations for setting up GOTs and PLTs for shared libraries.
   3184          1.1  christos 
   3185          1.1  christos ENUM
   3186          1.1  christos   BFD_RELOC_ARM_TLS_GD32
   3187          1.1  christos ENUMX
   3188          1.1  christos   BFD_RELOC_ARM_TLS_LDO32
   3189          1.1  christos ENUMX
   3190          1.1  christos   BFD_RELOC_ARM_TLS_LDM32
   3191          1.1  christos ENUMX
   3192          1.1  christos   BFD_RELOC_ARM_TLS_DTPOFF32
   3193          1.1  christos ENUMX
   3194          1.1  christos   BFD_RELOC_ARM_TLS_DTPMOD32
   3195          1.1  christos ENUMX
   3196          1.1  christos   BFD_RELOC_ARM_TLS_TPOFF32
   3197          1.1  christos ENUMX
   3198          1.1  christos   BFD_RELOC_ARM_TLS_IE32
   3199          1.1  christos ENUMX
   3200          1.1  christos   BFD_RELOC_ARM_TLS_LE32
   3201          1.1  christos ENUMX
   3202          1.1  christos   BFD_RELOC_ARM_TLS_GOTDESC
   3203          1.1  christos ENUMX
   3204          1.1  christos   BFD_RELOC_ARM_TLS_CALL
   3205          1.1  christos ENUMX
   3206          1.1  christos   BFD_RELOC_ARM_THM_TLS_CALL
   3207          1.1  christos ENUMX
   3208          1.1  christos   BFD_RELOC_ARM_TLS_DESCSEQ
   3209          1.1  christos ENUMX
   3210          1.1  christos   BFD_RELOC_ARM_THM_TLS_DESCSEQ
   3211          1.1  christos ENUMX
   3212          1.1  christos   BFD_RELOC_ARM_TLS_DESC
   3213          1.1  christos ENUMDOC
   3214          1.1  christos   ARM thread-local storage relocations.
   3215          1.1  christos 
   3216          1.1  christos ENUM
   3217          1.1  christos   BFD_RELOC_ARM_ALU_PC_G0_NC
   3218          1.1  christos ENUMX
   3219          1.1  christos   BFD_RELOC_ARM_ALU_PC_G0
   3220          1.1  christos ENUMX
   3221          1.1  christos   BFD_RELOC_ARM_ALU_PC_G1_NC
   3222          1.1  christos ENUMX
   3223          1.1  christos   BFD_RELOC_ARM_ALU_PC_G1
   3224          1.1  christos ENUMX
   3225          1.1  christos   BFD_RELOC_ARM_ALU_PC_G2
   3226          1.1  christos ENUMX
   3227          1.1  christos   BFD_RELOC_ARM_LDR_PC_G0
   3228          1.1  christos ENUMX
   3229          1.1  christos   BFD_RELOC_ARM_LDR_PC_G1
   3230          1.1  christos ENUMX
   3231          1.1  christos   BFD_RELOC_ARM_LDR_PC_G2
   3232          1.1  christos ENUMX
   3233          1.1  christos   BFD_RELOC_ARM_LDRS_PC_G0
   3234          1.1  christos ENUMX
   3235          1.1  christos   BFD_RELOC_ARM_LDRS_PC_G1
   3236          1.1  christos ENUMX
   3237          1.1  christos   BFD_RELOC_ARM_LDRS_PC_G2
   3238          1.1  christos ENUMX
   3239          1.1  christos   BFD_RELOC_ARM_LDC_PC_G0
   3240          1.1  christos ENUMX
   3241          1.1  christos   BFD_RELOC_ARM_LDC_PC_G1
   3242          1.1  christos ENUMX
   3243          1.1  christos   BFD_RELOC_ARM_LDC_PC_G2
   3244          1.1  christos ENUMX
   3245          1.1  christos   BFD_RELOC_ARM_ALU_SB_G0_NC
   3246          1.1  christos ENUMX
   3247          1.1  christos   BFD_RELOC_ARM_ALU_SB_G0
   3248          1.1  christos ENUMX
   3249          1.1  christos   BFD_RELOC_ARM_ALU_SB_G1_NC
   3250          1.1  christos ENUMX
   3251          1.1  christos   BFD_RELOC_ARM_ALU_SB_G1
   3252          1.1  christos ENUMX
   3253          1.1  christos   BFD_RELOC_ARM_ALU_SB_G2
   3254          1.1  christos ENUMX
   3255          1.1  christos   BFD_RELOC_ARM_LDR_SB_G0
   3256          1.1  christos ENUMX
   3257          1.1  christos   BFD_RELOC_ARM_LDR_SB_G1
   3258          1.1  christos ENUMX
   3259          1.1  christos   BFD_RELOC_ARM_LDR_SB_G2
   3260          1.1  christos ENUMX
   3261          1.1  christos   BFD_RELOC_ARM_LDRS_SB_G0
   3262          1.1  christos ENUMX
   3263          1.1  christos   BFD_RELOC_ARM_LDRS_SB_G1
   3264          1.1  christos ENUMX
   3265          1.1  christos   BFD_RELOC_ARM_LDRS_SB_G2
   3266          1.1  christos ENUMX
   3267          1.1  christos   BFD_RELOC_ARM_LDC_SB_G0
   3268          1.1  christos ENUMX
   3269          1.1  christos   BFD_RELOC_ARM_LDC_SB_G1
   3270          1.1  christos ENUMX
   3271          1.1  christos   BFD_RELOC_ARM_LDC_SB_G2
   3272          1.1  christos ENUMDOC
   3273          1.1  christos   ARM group relocations.
   3274          1.1  christos 
   3275          1.1  christos ENUM
   3276          1.1  christos   BFD_RELOC_ARM_V4BX
   3277          1.1  christos ENUMDOC
   3278          1.1  christos   Annotation of BX instructions.
   3279          1.1  christos 
   3280          1.1  christos ENUM
   3281          1.1  christos   BFD_RELOC_ARM_IRELATIVE
   3282          1.1  christos ENUMDOC
   3283          1.1  christos   ARM support for STT_GNU_IFUNC.
   3284          1.1  christos 
   3285          1.1  christos ENUM
   3286          1.1  christos   BFD_RELOC_ARM_IMMEDIATE
   3287          1.1  christos ENUMX
   3288          1.1  christos   BFD_RELOC_ARM_ADRL_IMMEDIATE
   3289          1.1  christos ENUMX
   3290          1.1  christos   BFD_RELOC_ARM_T32_IMMEDIATE
   3291          1.1  christos ENUMX
   3292          1.1  christos   BFD_RELOC_ARM_T32_ADD_IMM
   3293          1.1  christos ENUMX
   3294          1.1  christos   BFD_RELOC_ARM_T32_IMM12
   3295          1.1  christos ENUMX
   3296          1.1  christos   BFD_RELOC_ARM_T32_ADD_PC12
   3297          1.1  christos ENUMX
   3298          1.1  christos   BFD_RELOC_ARM_SHIFT_IMM
   3299          1.1  christos ENUMX
   3300          1.1  christos   BFD_RELOC_ARM_SMC
   3301          1.1  christos ENUMX
   3302          1.1  christos   BFD_RELOC_ARM_HVC
   3303          1.1  christos ENUMX
   3304          1.1  christos   BFD_RELOC_ARM_SWI
   3305          1.1  christos ENUMX
   3306          1.1  christos   BFD_RELOC_ARM_MULTI
   3307          1.1  christos ENUMX
   3308          1.1  christos   BFD_RELOC_ARM_CP_OFF_IMM
   3309          1.1  christos ENUMX
   3310          1.1  christos   BFD_RELOC_ARM_CP_OFF_IMM_S2
   3311          1.1  christos ENUMX
   3312          1.1  christos   BFD_RELOC_ARM_T32_CP_OFF_IMM
   3313          1.1  christos ENUMX
   3314          1.1  christos   BFD_RELOC_ARM_T32_CP_OFF_IMM_S2
   3315          1.1  christos ENUMX
   3316          1.1  christos   BFD_RELOC_ARM_ADR_IMM
   3317          1.1  christos ENUMX
   3318          1.1  christos   BFD_RELOC_ARM_LDR_IMM
   3319          1.1  christos ENUMX
   3320          1.1  christos   BFD_RELOC_ARM_LITERAL
   3321          1.1  christos ENUMX
   3322          1.1  christos   BFD_RELOC_ARM_IN_POOL
   3323          1.1  christos ENUMX
   3324          1.1  christos   BFD_RELOC_ARM_OFFSET_IMM8
   3325          1.1  christos ENUMX
   3326          1.1  christos   BFD_RELOC_ARM_T32_OFFSET_U8
   3327          1.1  christos ENUMX
   3328          1.1  christos   BFD_RELOC_ARM_T32_OFFSET_IMM
   3329          1.1  christos ENUMX
   3330          1.1  christos   BFD_RELOC_ARM_HWLITERAL
   3331          1.1  christos ENUMX
   3332          1.1  christos   BFD_RELOC_ARM_THUMB_ADD
   3333          1.1  christos ENUMX
   3334          1.1  christos   BFD_RELOC_ARM_THUMB_IMM
   3335          1.1  christos ENUMX
   3336          1.1  christos   BFD_RELOC_ARM_THUMB_SHIFT
   3337          1.1  christos ENUMDOC
   3338          1.1  christos   These relocs are only used within the ARM assembler.  They are not
   3339          1.1  christos   (at present) written to any object files.
   3340          1.1  christos 
   3341          1.1  christos ENUM
   3342          1.1  christos   BFD_RELOC_SH_PCDISP8BY2
   3343          1.1  christos ENUMX
   3344          1.1  christos   BFD_RELOC_SH_PCDISP12BY2
   3345          1.1  christos ENUMX
   3346          1.1  christos   BFD_RELOC_SH_IMM3
   3347          1.1  christos ENUMX
   3348          1.1  christos   BFD_RELOC_SH_IMM3U
   3349          1.1  christos ENUMX
   3350          1.1  christos   BFD_RELOC_SH_DISP12
   3351          1.1  christos ENUMX
   3352          1.1  christos   BFD_RELOC_SH_DISP12BY2
   3353          1.1  christos ENUMX
   3354          1.1  christos   BFD_RELOC_SH_DISP12BY4
   3355          1.1  christos ENUMX
   3356          1.1  christos   BFD_RELOC_SH_DISP12BY8
   3357          1.1  christos ENUMX
   3358          1.1  christos   BFD_RELOC_SH_DISP20
   3359          1.1  christos ENUMX
   3360          1.1  christos   BFD_RELOC_SH_DISP20BY8
   3361          1.1  christos ENUMX
   3362          1.1  christos   BFD_RELOC_SH_IMM4
   3363          1.1  christos ENUMX
   3364          1.1  christos   BFD_RELOC_SH_IMM4BY2
   3365          1.1  christos ENUMX
   3366          1.1  christos   BFD_RELOC_SH_IMM4BY4
   3367          1.1  christos ENUMX
   3368          1.1  christos   BFD_RELOC_SH_IMM8
   3369          1.1  christos ENUMX
   3370          1.1  christos   BFD_RELOC_SH_IMM8BY2
   3371          1.1  christos ENUMX
   3372          1.1  christos   BFD_RELOC_SH_IMM8BY4
   3373          1.1  christos ENUMX
   3374          1.1  christos   BFD_RELOC_SH_PCRELIMM8BY2
   3375          1.1  christos ENUMX
   3376          1.1  christos   BFD_RELOC_SH_PCRELIMM8BY4
   3377          1.1  christos ENUMX
   3378          1.1  christos   BFD_RELOC_SH_SWITCH16
   3379          1.1  christos ENUMX
   3380          1.1  christos   BFD_RELOC_SH_SWITCH32
   3381          1.1  christos ENUMX
   3382          1.1  christos   BFD_RELOC_SH_USES
   3383          1.1  christos ENUMX
   3384          1.1  christos   BFD_RELOC_SH_COUNT
   3385          1.1  christos ENUMX
   3386          1.1  christos   BFD_RELOC_SH_ALIGN
   3387          1.1  christos ENUMX
   3388          1.1  christos   BFD_RELOC_SH_CODE
   3389          1.1  christos ENUMX
   3390          1.1  christos   BFD_RELOC_SH_DATA
   3391          1.1  christos ENUMX
   3392          1.1  christos   BFD_RELOC_SH_LABEL
   3393          1.1  christos ENUMX
   3394          1.1  christos   BFD_RELOC_SH_LOOP_START
   3395          1.1  christos ENUMX
   3396          1.1  christos   BFD_RELOC_SH_LOOP_END
   3397          1.1  christos ENUMX
   3398          1.1  christos   BFD_RELOC_SH_COPY
   3399          1.1  christos ENUMX
   3400          1.1  christos   BFD_RELOC_SH_GLOB_DAT
   3401          1.1  christos ENUMX
   3402          1.1  christos   BFD_RELOC_SH_JMP_SLOT
   3403          1.1  christos ENUMX
   3404          1.1  christos   BFD_RELOC_SH_RELATIVE
   3405          1.1  christos ENUMX
   3406          1.1  christos   BFD_RELOC_SH_GOTPC
   3407          1.1  christos ENUMX
   3408          1.1  christos   BFD_RELOC_SH_GOT_LOW16
   3409          1.1  christos ENUMX
   3410          1.1  christos   BFD_RELOC_SH_GOT_MEDLOW16
   3411          1.1  christos ENUMX
   3412          1.1  christos   BFD_RELOC_SH_GOT_MEDHI16
   3413          1.1  christos ENUMX
   3414          1.1  christos   BFD_RELOC_SH_GOT_HI16
   3415          1.1  christos ENUMX
   3416          1.1  christos   BFD_RELOC_SH_GOTPLT_LOW16
   3417          1.1  christos ENUMX
   3418          1.1  christos   BFD_RELOC_SH_GOTPLT_MEDLOW16
   3419          1.1  christos ENUMX
   3420          1.1  christos   BFD_RELOC_SH_GOTPLT_MEDHI16
   3421          1.1  christos ENUMX
   3422          1.1  christos   BFD_RELOC_SH_GOTPLT_HI16
   3423          1.1  christos ENUMX
   3424          1.1  christos   BFD_RELOC_SH_PLT_LOW16
   3425          1.1  christos ENUMX
   3426          1.1  christos   BFD_RELOC_SH_PLT_MEDLOW16
   3427          1.1  christos ENUMX
   3428          1.1  christos   BFD_RELOC_SH_PLT_MEDHI16
   3429          1.1  christos ENUMX
   3430          1.1  christos   BFD_RELOC_SH_PLT_HI16
   3431          1.1  christos ENUMX
   3432          1.1  christos   BFD_RELOC_SH_GOTOFF_LOW16
   3433          1.1  christos ENUMX
   3434          1.1  christos   BFD_RELOC_SH_GOTOFF_MEDLOW16
   3435          1.1  christos ENUMX
   3436          1.1  christos   BFD_RELOC_SH_GOTOFF_MEDHI16
   3437          1.1  christos ENUMX
   3438          1.1  christos   BFD_RELOC_SH_GOTOFF_HI16
   3439          1.1  christos ENUMX
   3440          1.1  christos   BFD_RELOC_SH_GOTPC_LOW16
   3441          1.1  christos ENUMX
   3442          1.1  christos   BFD_RELOC_SH_GOTPC_MEDLOW16
   3443          1.1  christos ENUMX
   3444          1.1  christos   BFD_RELOC_SH_GOTPC_MEDHI16
   3445          1.1  christos ENUMX
   3446          1.1  christos   BFD_RELOC_SH_GOTPC_HI16
   3447          1.1  christos ENUMX
   3448          1.1  christos   BFD_RELOC_SH_COPY64
   3449          1.1  christos ENUMX
   3450          1.1  christos   BFD_RELOC_SH_GLOB_DAT64
   3451          1.1  christos ENUMX
   3452          1.1  christos   BFD_RELOC_SH_JMP_SLOT64
   3453          1.1  christos ENUMX
   3454          1.1  christos   BFD_RELOC_SH_RELATIVE64
   3455          1.1  christos ENUMX
   3456          1.1  christos   BFD_RELOC_SH_GOT10BY4
   3457          1.1  christos ENUMX
   3458          1.1  christos   BFD_RELOC_SH_GOT10BY8
   3459          1.1  christos ENUMX
   3460          1.1  christos   BFD_RELOC_SH_GOTPLT10BY4
   3461          1.1  christos ENUMX
   3462          1.1  christos   BFD_RELOC_SH_GOTPLT10BY8
   3463          1.1  christos ENUMX
   3464          1.1  christos   BFD_RELOC_SH_GOTPLT32
   3465          1.1  christos ENUMX
   3466          1.1  christos   BFD_RELOC_SH_SHMEDIA_CODE
   3467          1.1  christos ENUMX
   3468          1.1  christos   BFD_RELOC_SH_IMMU5
   3469          1.1  christos ENUMX
   3470          1.1  christos   BFD_RELOC_SH_IMMS6
   3471          1.1  christos ENUMX
   3472          1.1  christos   BFD_RELOC_SH_IMMS6BY32
   3473          1.1  christos ENUMX
   3474          1.1  christos   BFD_RELOC_SH_IMMU6
   3475          1.1  christos ENUMX
   3476          1.1  christos   BFD_RELOC_SH_IMMS10
   3477          1.1  christos ENUMX
   3478          1.1  christos   BFD_RELOC_SH_IMMS10BY2
   3479          1.1  christos ENUMX
   3480          1.1  christos   BFD_RELOC_SH_IMMS10BY4
   3481          1.1  christos ENUMX
   3482          1.1  christos   BFD_RELOC_SH_IMMS10BY8
   3483          1.1  christos ENUMX
   3484          1.1  christos   BFD_RELOC_SH_IMMS16
   3485          1.1  christos ENUMX
   3486          1.1  christos   BFD_RELOC_SH_IMMU16
   3487          1.1  christos ENUMX
   3488          1.1  christos   BFD_RELOC_SH_IMM_LOW16
   3489          1.1  christos ENUMX
   3490          1.1  christos   BFD_RELOC_SH_IMM_LOW16_PCREL
   3491          1.1  christos ENUMX
   3492          1.1  christos   BFD_RELOC_SH_IMM_MEDLOW16
   3493          1.1  christos ENUMX
   3494          1.1  christos   BFD_RELOC_SH_IMM_MEDLOW16_PCREL
   3495          1.1  christos ENUMX
   3496          1.1  christos   BFD_RELOC_SH_IMM_MEDHI16
   3497          1.1  christos ENUMX
   3498          1.1  christos   BFD_RELOC_SH_IMM_MEDHI16_PCREL
   3499          1.1  christos ENUMX
   3500          1.1  christos   BFD_RELOC_SH_IMM_HI16
   3501          1.1  christos ENUMX
   3502          1.1  christos   BFD_RELOC_SH_IMM_HI16_PCREL
   3503          1.1  christos ENUMX
   3504          1.1  christos   BFD_RELOC_SH_PT_16
   3505          1.1  christos ENUMX
   3506          1.1  christos   BFD_RELOC_SH_TLS_GD_32
   3507          1.1  christos ENUMX
   3508          1.1  christos   BFD_RELOC_SH_TLS_LD_32
   3509          1.1  christos ENUMX
   3510          1.1  christos   BFD_RELOC_SH_TLS_LDO_32
   3511          1.1  christos ENUMX
   3512          1.1  christos   BFD_RELOC_SH_TLS_IE_32
   3513          1.1  christos ENUMX
   3514          1.1  christos   BFD_RELOC_SH_TLS_LE_32
   3515          1.1  christos ENUMX
   3516          1.1  christos   BFD_RELOC_SH_TLS_DTPMOD32
   3517          1.1  christos ENUMX
   3518          1.1  christos   BFD_RELOC_SH_TLS_DTPOFF32
   3519          1.1  christos ENUMX
   3520          1.1  christos   BFD_RELOC_SH_TLS_TPOFF32
   3521          1.1  christos ENUMX
   3522          1.1  christos   BFD_RELOC_SH_GOT20
   3523          1.1  christos ENUMX
   3524          1.1  christos   BFD_RELOC_SH_GOTOFF20
   3525          1.1  christos ENUMX
   3526          1.1  christos   BFD_RELOC_SH_GOTFUNCDESC
   3527          1.1  christos ENUMX
   3528          1.1  christos   BFD_RELOC_SH_GOTFUNCDESC20
   3529          1.1  christos ENUMX
   3530          1.1  christos   BFD_RELOC_SH_GOTOFFFUNCDESC
   3531          1.1  christos ENUMX
   3532          1.1  christos   BFD_RELOC_SH_GOTOFFFUNCDESC20
   3533          1.1  christos ENUMX
   3534          1.1  christos   BFD_RELOC_SH_FUNCDESC
   3535          1.1  christos ENUMDOC
   3536          1.1  christos   Renesas / SuperH SH relocs.  Not all of these appear in object files.
   3537          1.1  christos 
   3538          1.1  christos ENUM
   3539  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_NONE
   3540  1.1.1.1.2.1  pgoyette ENUMX
   3541  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_8
   3542  1.1.1.1.2.1  pgoyette ENUMX
   3543  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_16
   3544  1.1.1.1.2.1  pgoyette ENUMX
   3545  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_24
   3546  1.1.1.1.2.1  pgoyette ENUMX
   3547  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_32
   3548  1.1.1.1.2.1  pgoyette ENUMX
   3549  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_N8
   3550  1.1.1.1.2.1  pgoyette ENUMX
   3551  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_N16
   3552  1.1.1.1.2.1  pgoyette ENUMX
   3553  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_N24
   3554  1.1.1.1.2.1  pgoyette ENUMX
   3555  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_N32
   3556  1.1.1.1.2.1  pgoyette ENUMX
   3557  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SDA
   3558  1.1.1.1.2.1  pgoyette ENUMX
   3559  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SECTOFF
   3560  1.1.1.1.2.1  pgoyette ENUMX
   3561  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_S21H_PCREL
   3562  1.1.1.1.2.1  pgoyette ENUMX
   3563  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_S21W_PCREL
   3564  1.1.1.1.2.1  pgoyette ENUMX
   3565  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_S25H_PCREL
   3566  1.1.1.1.2.1  pgoyette ENUMX
   3567  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_S25W_PCREL
   3568  1.1.1.1.2.1  pgoyette ENUMX
   3569  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SDA32
   3570  1.1.1.1.2.1  pgoyette ENUMX
   3571  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SDA_LDST
   3572  1.1.1.1.2.1  pgoyette ENUMX
   3573  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SDA_LDST1
   3574  1.1.1.1.2.1  pgoyette ENUMX
   3575  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SDA_LDST2
   3576  1.1.1.1.2.1  pgoyette ENUMX
   3577  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SDA16_LD
   3578  1.1.1.1.2.1  pgoyette ENUMX
   3579  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SDA16_LD1
   3580  1.1.1.1.2.1  pgoyette ENUMX
   3581  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SDA16_LD2
   3582  1.1.1.1.2.1  pgoyette ENUMX
   3583  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_S13_PCREL
   3584  1.1.1.1.2.1  pgoyette ENUMX
   3585  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_W
   3586  1.1.1.1.2.1  pgoyette ENUMX
   3587  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_32_ME
   3588  1.1.1.1.2.1  pgoyette ENUMX
   3589  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_32_ME_S
   3590  1.1.1.1.2.1  pgoyette ENUMX
   3591  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_N32_ME
   3592  1.1.1.1.2.1  pgoyette ENUMX
   3593  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SECTOFF_ME
   3594  1.1.1.1.2.1  pgoyette ENUMX
   3595  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SDA32_ME
   3596  1.1.1.1.2.1  pgoyette ENUMX
   3597  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_W_ME
   3598  1.1.1.1.2.1  pgoyette ENUMX
   3599  1.1.1.1.2.1  pgoyette   BFD_RELOC_AC_SECTOFF_U8
   3600  1.1.1.1.2.1  pgoyette ENUMX
   3601  1.1.1.1.2.1  pgoyette   BFD_RELOC_AC_SECTOFF_U8_1
   3602  1.1.1.1.2.1  pgoyette ENUMX
   3603  1.1.1.1.2.1  pgoyette   BFD_RELOC_AC_SECTOFF_U8_2
   3604  1.1.1.1.2.1  pgoyette ENUMX
   3605  1.1.1.1.2.1  pgoyette   BFD_RELOC_AC_SECTFOFF_S9
   3606  1.1.1.1.2.1  pgoyette ENUMX
   3607  1.1.1.1.2.1  pgoyette   BFD_RELOC_AC_SECTFOFF_S9_1
   3608  1.1.1.1.2.1  pgoyette ENUMX
   3609  1.1.1.1.2.1  pgoyette   BFD_RELOC_AC_SECTFOFF_S9_2
   3610  1.1.1.1.2.1  pgoyette ENUMX
   3611  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SECTOFF_ME_1
   3612  1.1.1.1.2.1  pgoyette ENUMX
   3613  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SECTOFF_ME_2
   3614  1.1.1.1.2.1  pgoyette ENUMX
   3615  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SECTOFF_1
   3616  1.1.1.1.2.1  pgoyette ENUMX
   3617  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SECTOFF_2
   3618  1.1.1.1.2.1  pgoyette ENUMX
   3619  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_SDA16_ST2
   3620  1.1.1.1.2.1  pgoyette ENUMX
   3621  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_32_PCREL
   3622  1.1.1.1.2.1  pgoyette ENUMX
   3623  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_PC32
   3624  1.1.1.1.2.1  pgoyette ENUMX
   3625  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_GOT32
   3626  1.1.1.1.2.1  pgoyette ENUMX
   3627  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_GOTPC32
   3628  1.1.1.1.2.1  pgoyette ENUMX
   3629  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_PLT32
   3630  1.1.1.1.2.1  pgoyette ENUMX
   3631  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_COPY
   3632  1.1.1.1.2.1  pgoyette ENUMX
   3633  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_GLOB_DAT
   3634  1.1.1.1.2.1  pgoyette ENUMX
   3635  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_JMP_SLOT
   3636  1.1.1.1.2.1  pgoyette ENUMX
   3637  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_RELATIVE
   3638  1.1.1.1.2.1  pgoyette ENUMX
   3639  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_GOTOFF
   3640  1.1.1.1.2.1  pgoyette ENUMX
   3641  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_GOTPC
   3642  1.1.1.1.2.1  pgoyette ENUMX
   3643  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_S21W_PCREL_PLT
   3644  1.1.1.1.2.1  pgoyette ENUMX
   3645  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_S25H_PCREL_PLT
   3646  1.1.1.1.2.1  pgoyette ENUMX
   3647  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_TLS_DTPMOD
   3648  1.1.1.1.2.1  pgoyette ENUMX
   3649  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_TLS_TPOFF
   3650  1.1.1.1.2.1  pgoyette ENUMX
   3651  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_TLS_GD_GOT
   3652  1.1.1.1.2.1  pgoyette ENUMX
   3653  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_TLS_GD_LD
   3654  1.1.1.1.2.1  pgoyette ENUMX
   3655  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_TLS_GD_CALL
   3656  1.1.1.1.2.1  pgoyette ENUMX
   3657  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_TLS_IE_GOT
   3658  1.1.1.1.2.1  pgoyette ENUMX
   3659  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_TLS_DTPOFF
   3660  1.1.1.1.2.1  pgoyette ENUMX
   3661  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_TLS_DTPOFF_S9
   3662  1.1.1.1.2.1  pgoyette ENUMX
   3663  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_TLS_LE_S9
   3664  1.1.1.1.2.1  pgoyette ENUMX
   3665  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_TLS_LE_32
   3666  1.1.1.1.2.1  pgoyette ENUMX
   3667  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_S25W_PCREL_PLT
   3668  1.1.1.1.2.1  pgoyette ENUMX
   3669  1.1.1.1.2.1  pgoyette   BFD_RELOC_ARC_S21H_PCREL_PLT
   3670          1.1  christos ENUMDOC
   3671  1.1.1.1.2.1  pgoyette   ARC relocs.
   3672          1.1  christos 
   3673          1.1  christos ENUM
   3674          1.1  christos   BFD_RELOC_BFIN_16_IMM
   3675          1.1  christos ENUMDOC
   3676          1.1  christos   ADI Blackfin 16 bit immediate absolute reloc.
   3677          1.1  christos ENUM
   3678          1.1  christos   BFD_RELOC_BFIN_16_HIGH
   3679          1.1  christos ENUMDOC
   3680          1.1  christos   ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.
   3681          1.1  christos ENUM
   3682          1.1  christos   BFD_RELOC_BFIN_4_PCREL
   3683          1.1  christos ENUMDOC
   3684          1.1  christos   ADI Blackfin 'a' part of LSETUP.
   3685          1.1  christos ENUM
   3686          1.1  christos   BFD_RELOC_BFIN_5_PCREL
   3687          1.1  christos ENUMDOC
   3688          1.1  christos   ADI Blackfin.
   3689          1.1  christos ENUM
   3690          1.1  christos   BFD_RELOC_BFIN_16_LOW
   3691          1.1  christos ENUMDOC
   3692          1.1  christos   ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.
   3693          1.1  christos ENUM
   3694          1.1  christos   BFD_RELOC_BFIN_10_PCREL
   3695          1.1  christos ENUMDOC
   3696          1.1  christos   ADI Blackfin.
   3697          1.1  christos ENUM
   3698          1.1  christos   BFD_RELOC_BFIN_11_PCREL
   3699          1.1  christos ENUMDOC
   3700          1.1  christos   ADI Blackfin 'b' part of LSETUP.
   3701          1.1  christos ENUM
   3702          1.1  christos   BFD_RELOC_BFIN_12_PCREL_JUMP
   3703          1.1  christos ENUMDOC
   3704          1.1  christos   ADI Blackfin.
   3705          1.1  christos ENUM
   3706          1.1  christos   BFD_RELOC_BFIN_12_PCREL_JUMP_S
   3707          1.1  christos ENUMDOC
   3708          1.1  christos   ADI Blackfin Short jump, pcrel.
   3709          1.1  christos ENUM
   3710          1.1  christos   BFD_RELOC_BFIN_24_PCREL_CALL_X
   3711          1.1  christos ENUMDOC
   3712          1.1  christos   ADI Blackfin Call.x not implemented.
   3713          1.1  christos ENUM
   3714          1.1  christos   BFD_RELOC_BFIN_24_PCREL_JUMP_L
   3715          1.1  christos ENUMDOC
   3716          1.1  christos   ADI Blackfin Long Jump pcrel.
   3717          1.1  christos ENUM
   3718          1.1  christos   BFD_RELOC_BFIN_GOT17M4
   3719          1.1  christos ENUMX
   3720          1.1  christos   BFD_RELOC_BFIN_GOTHI
   3721          1.1  christos ENUMX
   3722          1.1  christos   BFD_RELOC_BFIN_GOTLO
   3723          1.1  christos ENUMX
   3724          1.1  christos   BFD_RELOC_BFIN_FUNCDESC
   3725          1.1  christos ENUMX
   3726          1.1  christos   BFD_RELOC_BFIN_FUNCDESC_GOT17M4
   3727          1.1  christos ENUMX
   3728          1.1  christos   BFD_RELOC_BFIN_FUNCDESC_GOTHI
   3729          1.1  christos ENUMX
   3730          1.1  christos   BFD_RELOC_BFIN_FUNCDESC_GOTLO
   3731          1.1  christos ENUMX
   3732          1.1  christos   BFD_RELOC_BFIN_FUNCDESC_VALUE
   3733          1.1  christos ENUMX
   3734          1.1  christos   BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4
   3735          1.1  christos ENUMX
   3736          1.1  christos   BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI
   3737          1.1  christos ENUMX
   3738          1.1  christos   BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO
   3739          1.1  christos ENUMX
   3740          1.1  christos   BFD_RELOC_BFIN_GOTOFF17M4
   3741          1.1  christos ENUMX
   3742          1.1  christos   BFD_RELOC_BFIN_GOTOFFHI
   3743          1.1  christos ENUMX
   3744          1.1  christos   BFD_RELOC_BFIN_GOTOFFLO
   3745          1.1  christos ENUMDOC
   3746          1.1  christos   ADI Blackfin FD-PIC relocations.
   3747          1.1  christos ENUM
   3748          1.1  christos   BFD_RELOC_BFIN_GOT
   3749          1.1  christos ENUMDOC
   3750          1.1  christos   ADI Blackfin GOT relocation.
   3751          1.1  christos ENUM
   3752          1.1  christos   BFD_RELOC_BFIN_PLTPC
   3753          1.1  christos ENUMDOC
   3754          1.1  christos   ADI Blackfin PLTPC relocation.
   3755          1.1  christos ENUM
   3756          1.1  christos   BFD_ARELOC_BFIN_PUSH
   3757          1.1  christos ENUMDOC
   3758          1.1  christos   ADI Blackfin arithmetic relocation.
   3759          1.1  christos ENUM
   3760          1.1  christos   BFD_ARELOC_BFIN_CONST
   3761          1.1  christos ENUMDOC
   3762          1.1  christos   ADI Blackfin arithmetic relocation.
   3763          1.1  christos ENUM
   3764          1.1  christos   BFD_ARELOC_BFIN_ADD
   3765          1.1  christos ENUMDOC
   3766          1.1  christos   ADI Blackfin arithmetic relocation.
   3767          1.1  christos ENUM
   3768          1.1  christos   BFD_ARELOC_BFIN_SUB
   3769          1.1  christos ENUMDOC
   3770          1.1  christos   ADI Blackfin arithmetic relocation.
   3771          1.1  christos ENUM
   3772          1.1  christos   BFD_ARELOC_BFIN_MULT
   3773          1.1  christos ENUMDOC
   3774          1.1  christos   ADI Blackfin arithmetic relocation.
   3775          1.1  christos ENUM
   3776          1.1  christos   BFD_ARELOC_BFIN_DIV
   3777          1.1  christos ENUMDOC
   3778          1.1  christos   ADI Blackfin arithmetic relocation.
   3779          1.1  christos ENUM
   3780          1.1  christos   BFD_ARELOC_BFIN_MOD
   3781          1.1  christos ENUMDOC
   3782          1.1  christos   ADI Blackfin arithmetic relocation.
   3783          1.1  christos ENUM
   3784          1.1  christos   BFD_ARELOC_BFIN_LSHIFT
   3785          1.1  christos ENUMDOC
   3786          1.1  christos   ADI Blackfin arithmetic relocation.
   3787          1.1  christos ENUM
   3788          1.1  christos   BFD_ARELOC_BFIN_RSHIFT
   3789          1.1  christos ENUMDOC
   3790          1.1  christos   ADI Blackfin arithmetic relocation.
   3791          1.1  christos ENUM
   3792          1.1  christos   BFD_ARELOC_BFIN_AND
   3793          1.1  christos ENUMDOC
   3794          1.1  christos   ADI Blackfin arithmetic relocation.
   3795          1.1  christos ENUM
   3796          1.1  christos   BFD_ARELOC_BFIN_OR
   3797          1.1  christos ENUMDOC
   3798          1.1  christos   ADI Blackfin arithmetic relocation.
   3799          1.1  christos ENUM
   3800          1.1  christos   BFD_ARELOC_BFIN_XOR
   3801          1.1  christos ENUMDOC
   3802          1.1  christos   ADI Blackfin arithmetic relocation.
   3803          1.1  christos ENUM
   3804          1.1  christos   BFD_ARELOC_BFIN_LAND
   3805          1.1  christos ENUMDOC
   3806          1.1  christos   ADI Blackfin arithmetic relocation.
   3807          1.1  christos ENUM
   3808          1.1  christos   BFD_ARELOC_BFIN_LOR
   3809          1.1  christos ENUMDOC
   3810          1.1  christos   ADI Blackfin arithmetic relocation.
   3811          1.1  christos ENUM
   3812          1.1  christos   BFD_ARELOC_BFIN_LEN
   3813          1.1  christos ENUMDOC
   3814          1.1  christos   ADI Blackfin arithmetic relocation.
   3815          1.1  christos ENUM
   3816          1.1  christos   BFD_ARELOC_BFIN_NEG
   3817          1.1  christos ENUMDOC
   3818          1.1  christos   ADI Blackfin arithmetic relocation.
   3819          1.1  christos ENUM
   3820          1.1  christos   BFD_ARELOC_BFIN_COMP
   3821          1.1  christos ENUMDOC
   3822          1.1  christos   ADI Blackfin arithmetic relocation.
   3823          1.1  christos ENUM
   3824          1.1  christos   BFD_ARELOC_BFIN_PAGE
   3825          1.1  christos ENUMDOC
   3826          1.1  christos   ADI Blackfin arithmetic relocation.
   3827          1.1  christos ENUM
   3828          1.1  christos   BFD_ARELOC_BFIN_HWPAGE
   3829          1.1  christos ENUMDOC
   3830          1.1  christos   ADI Blackfin arithmetic relocation.
   3831          1.1  christos ENUM
   3832          1.1  christos   BFD_ARELOC_BFIN_ADDR
   3833          1.1  christos ENUMDOC
   3834          1.1  christos   ADI Blackfin arithmetic relocation.
   3835          1.1  christos 
   3836          1.1  christos ENUM
   3837          1.1  christos   BFD_RELOC_D10V_10_PCREL_R
   3838          1.1  christos ENUMDOC
   3839          1.1  christos   Mitsubishi D10V relocs.
   3840          1.1  christos   This is a 10-bit reloc with the right 2 bits
   3841          1.1  christos   assumed to be 0.
   3842          1.1  christos ENUM
   3843          1.1  christos   BFD_RELOC_D10V_10_PCREL_L
   3844          1.1  christos ENUMDOC
   3845          1.1  christos   Mitsubishi D10V relocs.
   3846          1.1  christos   This is a 10-bit reloc with the right 2 bits
   3847          1.1  christos   assumed to be 0.  This is the same as the previous reloc
   3848          1.1  christos   except it is in the left container, i.e.,
   3849          1.1  christos   shifted left 15 bits.
   3850          1.1  christos ENUM
   3851          1.1  christos   BFD_RELOC_D10V_18
   3852          1.1  christos ENUMDOC
   3853          1.1  christos   This is an 18-bit reloc with the right 2 bits
   3854          1.1  christos   assumed to be 0.
   3855          1.1  christos ENUM
   3856          1.1  christos   BFD_RELOC_D10V_18_PCREL
   3857          1.1  christos ENUMDOC
   3858          1.1  christos   This is an 18-bit reloc with the right 2 bits
   3859          1.1  christos   assumed to be 0.
   3860          1.1  christos 
   3861          1.1  christos ENUM
   3862          1.1  christos   BFD_RELOC_D30V_6
   3863          1.1  christos ENUMDOC
   3864          1.1  christos   Mitsubishi D30V relocs.
   3865          1.1  christos   This is a 6-bit absolute reloc.
   3866          1.1  christos ENUM
   3867          1.1  christos   BFD_RELOC_D30V_9_PCREL
   3868          1.1  christos ENUMDOC
   3869          1.1  christos   This is a 6-bit pc-relative reloc with
   3870          1.1  christos   the right 3 bits assumed to be 0.
   3871          1.1  christos ENUM
   3872          1.1  christos   BFD_RELOC_D30V_9_PCREL_R
   3873          1.1  christos ENUMDOC
   3874          1.1  christos   This is a 6-bit pc-relative reloc with
   3875          1.1  christos   the right 3 bits assumed to be 0. Same
   3876          1.1  christos   as the previous reloc but on the right side
   3877          1.1  christos   of the container.
   3878          1.1  christos ENUM
   3879          1.1  christos   BFD_RELOC_D30V_15
   3880          1.1  christos ENUMDOC
   3881          1.1  christos   This is a 12-bit absolute reloc with the
   3882          1.1  christos   right 3 bitsassumed to be 0.
   3883          1.1  christos ENUM
   3884          1.1  christos   BFD_RELOC_D30V_15_PCREL
   3885          1.1  christos ENUMDOC
   3886          1.1  christos   This is a 12-bit pc-relative reloc with
   3887          1.1  christos   the right 3 bits assumed to be 0.
   3888          1.1  christos ENUM
   3889          1.1  christos   BFD_RELOC_D30V_15_PCREL_R
   3890          1.1  christos ENUMDOC
   3891          1.1  christos   This is a 12-bit pc-relative reloc with
   3892          1.1  christos   the right 3 bits assumed to be 0. Same
   3893          1.1  christos   as the previous reloc but on the right side
   3894          1.1  christos   of the container.
   3895          1.1  christos ENUM
   3896          1.1  christos   BFD_RELOC_D30V_21
   3897          1.1  christos ENUMDOC
   3898          1.1  christos   This is an 18-bit absolute reloc with
   3899          1.1  christos   the right 3 bits assumed to be 0.
   3900          1.1  christos ENUM
   3901          1.1  christos   BFD_RELOC_D30V_21_PCREL
   3902          1.1  christos ENUMDOC
   3903          1.1  christos   This is an 18-bit pc-relative reloc with
   3904          1.1  christos   the right 3 bits assumed to be 0.
   3905          1.1  christos ENUM
   3906          1.1  christos   BFD_RELOC_D30V_21_PCREL_R
   3907          1.1  christos ENUMDOC
   3908          1.1  christos   This is an 18-bit pc-relative reloc with
   3909          1.1  christos   the right 3 bits assumed to be 0. Same
   3910          1.1  christos   as the previous reloc but on the right side
   3911          1.1  christos   of the container.
   3912          1.1  christos ENUM
   3913          1.1  christos   BFD_RELOC_D30V_32
   3914          1.1  christos ENUMDOC
   3915          1.1  christos   This is a 32-bit absolute reloc.
   3916          1.1  christos ENUM
   3917          1.1  christos   BFD_RELOC_D30V_32_PCREL
   3918          1.1  christos ENUMDOC
   3919          1.1  christos   This is a 32-bit pc-relative reloc.
   3920          1.1  christos 
   3921          1.1  christos ENUM
   3922          1.1  christos   BFD_RELOC_DLX_HI16_S
   3923          1.1  christos ENUMDOC
   3924          1.1  christos   DLX relocs
   3925          1.1  christos ENUM
   3926          1.1  christos   BFD_RELOC_DLX_LO16
   3927          1.1  christos ENUMDOC
   3928          1.1  christos   DLX relocs
   3929          1.1  christos ENUM
   3930          1.1  christos   BFD_RELOC_DLX_JMP26
   3931          1.1  christos ENUMDOC
   3932          1.1  christos   DLX relocs
   3933          1.1  christos 
   3934          1.1  christos ENUM
   3935          1.1  christos   BFD_RELOC_M32C_HI8
   3936          1.1  christos ENUMX
   3937          1.1  christos   BFD_RELOC_M32C_RL_JUMP
   3938          1.1  christos ENUMX
   3939          1.1  christos   BFD_RELOC_M32C_RL_1ADDR
   3940          1.1  christos ENUMX
   3941          1.1  christos   BFD_RELOC_M32C_RL_2ADDR
   3942          1.1  christos ENUMDOC
   3943          1.1  christos   Renesas M16C/M32C Relocations.
   3944          1.1  christos 
   3945          1.1  christos ENUM
   3946          1.1  christos   BFD_RELOC_M32R_24
   3947          1.1  christos ENUMDOC
   3948          1.1  christos   Renesas M32R (formerly Mitsubishi M32R) relocs.
   3949          1.1  christos   This is a 24 bit absolute address.
   3950          1.1  christos ENUM
   3951          1.1  christos   BFD_RELOC_M32R_10_PCREL
   3952          1.1  christos ENUMDOC
   3953          1.1  christos   This is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0.
   3954          1.1  christos ENUM
   3955          1.1  christos   BFD_RELOC_M32R_18_PCREL
   3956          1.1  christos ENUMDOC
   3957          1.1  christos   This is an 18-bit reloc with the right 2 bits assumed to be 0.
   3958          1.1  christos ENUM
   3959          1.1  christos   BFD_RELOC_M32R_26_PCREL
   3960          1.1  christos ENUMDOC
   3961          1.1  christos   This is a 26-bit reloc with the right 2 bits assumed to be 0.
   3962          1.1  christos ENUM
   3963          1.1  christos   BFD_RELOC_M32R_HI16_ULO
   3964          1.1  christos ENUMDOC
   3965          1.1  christos   This is a 16-bit reloc containing the high 16 bits of an address
   3966          1.1  christos   used when the lower 16 bits are treated as unsigned.
   3967          1.1  christos ENUM
   3968          1.1  christos   BFD_RELOC_M32R_HI16_SLO
   3969          1.1  christos ENUMDOC
   3970          1.1  christos   This is a 16-bit reloc containing the high 16 bits of an address
   3971          1.1  christos   used when the lower 16 bits are treated as signed.
   3972          1.1  christos ENUM
   3973          1.1  christos   BFD_RELOC_M32R_LO16
   3974          1.1  christos ENUMDOC
   3975          1.1  christos   This is a 16-bit reloc containing the lower 16 bits of an address.
   3976          1.1  christos ENUM
   3977          1.1  christos   BFD_RELOC_M32R_SDA16
   3978          1.1  christos ENUMDOC
   3979          1.1  christos   This is a 16-bit reloc containing the small data area offset for use in
   3980          1.1  christos   add3, load, and store instructions.
   3981          1.1  christos ENUM
   3982          1.1  christos   BFD_RELOC_M32R_GOT24
   3983          1.1  christos ENUMX
   3984          1.1  christos   BFD_RELOC_M32R_26_PLTREL
   3985          1.1  christos ENUMX
   3986          1.1  christos   BFD_RELOC_M32R_COPY
   3987          1.1  christos ENUMX
   3988          1.1  christos   BFD_RELOC_M32R_GLOB_DAT
   3989          1.1  christos ENUMX
   3990          1.1  christos   BFD_RELOC_M32R_JMP_SLOT
   3991          1.1  christos ENUMX
   3992          1.1  christos   BFD_RELOC_M32R_RELATIVE
   3993          1.1  christos ENUMX
   3994          1.1  christos   BFD_RELOC_M32R_GOTOFF
   3995          1.1  christos ENUMX
   3996          1.1  christos   BFD_RELOC_M32R_GOTOFF_HI_ULO
   3997          1.1  christos ENUMX
   3998          1.1  christos   BFD_RELOC_M32R_GOTOFF_HI_SLO
   3999          1.1  christos ENUMX
   4000          1.1  christos   BFD_RELOC_M32R_GOTOFF_LO
   4001          1.1  christos ENUMX
   4002          1.1  christos   BFD_RELOC_M32R_GOTPC24
   4003          1.1  christos ENUMX
   4004          1.1  christos   BFD_RELOC_M32R_GOT16_HI_ULO
   4005          1.1  christos ENUMX
   4006          1.1  christos   BFD_RELOC_M32R_GOT16_HI_SLO
   4007          1.1  christos ENUMX
   4008          1.1  christos   BFD_RELOC_M32R_GOT16_LO
   4009          1.1  christos ENUMX
   4010          1.1  christos   BFD_RELOC_M32R_GOTPC_HI_ULO
   4011          1.1  christos ENUMX
   4012          1.1  christos   BFD_RELOC_M32R_GOTPC_HI_SLO
   4013          1.1  christos ENUMX
   4014          1.1  christos   BFD_RELOC_M32R_GOTPC_LO
   4015          1.1  christos ENUMDOC
   4016          1.1  christos   For PIC.
   4017          1.1  christos 
   4018          1.1  christos 
   4019          1.1  christos ENUM
   4020  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_20
   4021          1.1  christos ENUMDOC
   4022  1.1.1.1.2.1  pgoyette   NDS32 relocs.
   4023  1.1.1.1.2.1  pgoyette   This is a 20 bit absolute address.
   4024          1.1  christos ENUM
   4025  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_9_PCREL
   4026          1.1  christos ENUMDOC
   4027  1.1.1.1.2.1  pgoyette   This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0.
   4028          1.1  christos ENUM
   4029  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_WORD_9_PCREL
   4030          1.1  christos ENUMDOC
   4031  1.1.1.1.2.1  pgoyette   This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0.
   4032          1.1  christos ENUM
   4033  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_15_PCREL
   4034          1.1  christos ENUMDOC
   4035  1.1.1.1.2.1  pgoyette   This is an 15-bit reloc with the right 1 bit assumed to be 0.
   4036          1.1  christos ENUM
   4037  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_17_PCREL
   4038          1.1  christos ENUMDOC
   4039  1.1.1.1.2.1  pgoyette   This is an 17-bit reloc with the right 1 bit assumed to be 0.
   4040          1.1  christos ENUM
   4041  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_25_PCREL
   4042          1.1  christos ENUMDOC
   4043  1.1.1.1.2.1  pgoyette   This is a 25-bit reloc with the right 1 bit assumed to be 0.
   4044          1.1  christos ENUM
   4045  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_HI20
   4046          1.1  christos ENUMDOC
   4047  1.1.1.1.2.1  pgoyette   This is a 20-bit reloc containing the high 20 bits of an address
   4048  1.1.1.1.2.1  pgoyette   used with the lower 12 bits
   4049          1.1  christos ENUM
   4050  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LO12S3
   4051          1.1  christos ENUMDOC
   4052  1.1.1.1.2.1  pgoyette   This is a 12-bit reloc containing the lower 12 bits of an address
   4053  1.1.1.1.2.1  pgoyette   then shift right by 3. This is used with ldi,sdi...
   4054          1.1  christos ENUM
   4055  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LO12S2
   4056          1.1  christos ENUMDOC
   4057  1.1.1.1.2.1  pgoyette   This is a 12-bit reloc containing the lower 12 bits of an address
   4058  1.1.1.1.2.1  pgoyette   then shift left by 2. This is used with lwi,swi...
   4059          1.1  christos ENUM
   4060  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LO12S1
   4061          1.1  christos ENUMDOC
   4062  1.1.1.1.2.1  pgoyette   This is a 12-bit reloc containing the lower 12 bits of an address
   4063  1.1.1.1.2.1  pgoyette   then shift left by 1. This is used with lhi,shi...
   4064          1.1  christos ENUM
   4065  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LO12S0
   4066          1.1  christos ENUMDOC
   4067  1.1.1.1.2.1  pgoyette   This is a 12-bit reloc containing the lower 12 bits of an address
   4068  1.1.1.1.2.1  pgoyette   then shift left by 0. This is used with lbisbi...
   4069          1.1  christos ENUM
   4070  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LO12S0_ORI
   4071          1.1  christos ENUMDOC
   4072  1.1.1.1.2.1  pgoyette   This is a 12-bit reloc containing the lower 12 bits of an address
   4073  1.1.1.1.2.1  pgoyette   then shift left by 0. This is only used with branch relaxations
   4074          1.1  christos ENUM
   4075  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA15S3
   4076          1.1  christos ENUMDOC
   4077  1.1.1.1.2.1  pgoyette   This is a 15-bit reloc containing the small data area 18-bit signed offset
   4078  1.1.1.1.2.1  pgoyette   and shift left by 3 for use in ldi, sdi...
   4079          1.1  christos ENUM
   4080  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA15S2
   4081          1.1  christos ENUMDOC
   4082  1.1.1.1.2.1  pgoyette   This is a 15-bit reloc containing the small data area 17-bit signed offset
   4083  1.1.1.1.2.1  pgoyette   and shift left by 2 for use in lwi, swi...
   4084          1.1  christos ENUM
   4085  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA15S1
   4086          1.1  christos ENUMDOC
   4087  1.1.1.1.2.1  pgoyette   This is a 15-bit reloc containing the small data area 16-bit signed offset
   4088  1.1.1.1.2.1  pgoyette   and shift left by 1 for use in lhi, shi...
   4089          1.1  christos ENUM
   4090  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA15S0
   4091          1.1  christos ENUMDOC
   4092  1.1.1.1.2.1  pgoyette   This is a 15-bit reloc containing the small data area 15-bit signed offset
   4093  1.1.1.1.2.1  pgoyette   and shift left by 0 for use in lbi, sbi...
   4094          1.1  christos ENUM
   4095  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA16S3
   4096          1.1  christos ENUMDOC
   4097  1.1.1.1.2.1  pgoyette   This is a 16-bit reloc containing the small data area 16-bit signed offset
   4098  1.1.1.1.2.1  pgoyette   and shift left by 3
   4099          1.1  christos ENUM
   4100  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA17S2
   4101          1.1  christos ENUMDOC
   4102  1.1.1.1.2.1  pgoyette   This is a 17-bit reloc containing the small data area 17-bit signed offset
   4103  1.1.1.1.2.1  pgoyette   and shift left by 2 for use in lwi.gp, swi.gp...
   4104          1.1  christos ENUM
   4105  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA18S1
   4106          1.1  christos ENUMDOC
   4107  1.1.1.1.2.1  pgoyette   This is a 18-bit reloc containing the small data area 18-bit signed offset
   4108  1.1.1.1.2.1  pgoyette   and shift left by 1 for use in lhi.gp, shi.gp...
   4109          1.1  christos ENUM
   4110  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA19S0
   4111          1.1  christos ENUMDOC
   4112  1.1.1.1.2.1  pgoyette   This is a 19-bit reloc containing the small data area 19-bit signed offset
   4113  1.1.1.1.2.1  pgoyette   and shift left by 0 for use in lbi.gp, sbi.gp...
   4114          1.1  christos ENUM
   4115  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOT20
   4116  1.1.1.1.2.1  pgoyette ENUMX
   4117  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_9_PLTREL
   4118  1.1.1.1.2.1  pgoyette ENUMX
   4119  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_25_PLTREL
   4120  1.1.1.1.2.1  pgoyette ENUMX
   4121  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_COPY
   4122  1.1.1.1.2.1  pgoyette ENUMX
   4123  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GLOB_DAT
   4124  1.1.1.1.2.1  pgoyette ENUMX
   4125  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_JMP_SLOT
   4126  1.1.1.1.2.1  pgoyette ENUMX
   4127  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_RELATIVE
   4128  1.1.1.1.2.1  pgoyette ENUMX
   4129  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOTOFF
   4130  1.1.1.1.2.1  pgoyette ENUMX
   4131  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOTOFF_HI20
   4132  1.1.1.1.2.1  pgoyette ENUMX
   4133  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOTOFF_LO12
   4134  1.1.1.1.2.1  pgoyette ENUMX
   4135  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOTPC20
   4136  1.1.1.1.2.1  pgoyette ENUMX
   4137  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOT_HI20
   4138  1.1.1.1.2.1  pgoyette ENUMX
   4139  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOT_LO12
   4140  1.1.1.1.2.1  pgoyette ENUMX
   4141  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOTPC_HI20
   4142  1.1.1.1.2.1  pgoyette ENUMX
   4143  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOTPC_LO12
   4144          1.1  christos ENUMDOC
   4145  1.1.1.1.2.1  pgoyette   for PIC
   4146  1.1.1.1.2.1  pgoyette ENUM
   4147  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_INSN16
   4148  1.1.1.1.2.1  pgoyette ENUMX
   4149  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LABEL
   4150  1.1.1.1.2.1  pgoyette ENUMX
   4151  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGCALL1
   4152  1.1.1.1.2.1  pgoyette ENUMX
   4153  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGCALL2
   4154  1.1.1.1.2.1  pgoyette ENUMX
   4155  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGCALL3
   4156  1.1.1.1.2.1  pgoyette ENUMX
   4157  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGJUMP1
   4158  1.1.1.1.2.1  pgoyette ENUMX
   4159  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGJUMP2
   4160  1.1.1.1.2.1  pgoyette ENUMX
   4161  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGJUMP3
   4162  1.1.1.1.2.1  pgoyette ENUMX
   4163  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LOADSTORE
   4164  1.1.1.1.2.1  pgoyette ENUMX
   4165  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_9_FIXED
   4166  1.1.1.1.2.1  pgoyette ENUMX
   4167  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_15_FIXED
   4168  1.1.1.1.2.1  pgoyette ENUMX
   4169  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_17_FIXED
   4170  1.1.1.1.2.1  pgoyette ENUMX
   4171  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_25_FIXED
   4172  1.1.1.1.2.1  pgoyette ENUMX
   4173  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGCALL4
   4174  1.1.1.1.2.1  pgoyette ENUMX
   4175  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGCALL5
   4176  1.1.1.1.2.1  pgoyette ENUMX
   4177  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGCALL6
   4178  1.1.1.1.2.1  pgoyette ENUMX
   4179  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGJUMP4
   4180  1.1.1.1.2.1  pgoyette ENUMX
   4181  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGJUMP5
   4182  1.1.1.1.2.1  pgoyette ENUMX
   4183  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGJUMP6
   4184  1.1.1.1.2.1  pgoyette ENUMX
   4185  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LONGJUMP7
   4186          1.1  christos ENUMDOC
   4187  1.1.1.1.2.1  pgoyette   for relax
   4188  1.1.1.1.2.1  pgoyette ENUM
   4189  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PLTREL_HI20
   4190  1.1.1.1.2.1  pgoyette ENUMX
   4191  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PLTREL_LO12
   4192  1.1.1.1.2.1  pgoyette ENUMX
   4193  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PLT_GOTREL_HI20
   4194  1.1.1.1.2.1  pgoyette ENUMX
   4195  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PLT_GOTREL_LO12
   4196          1.1  christos ENUMDOC
   4197  1.1.1.1.2.1  pgoyette   for PIC
   4198  1.1.1.1.2.1  pgoyette ENUM
   4199  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA12S2_DP
   4200  1.1.1.1.2.1  pgoyette ENUMX
   4201  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA12S2_SP
   4202  1.1.1.1.2.1  pgoyette ENUMX
   4203  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LO12S2_DP
   4204  1.1.1.1.2.1  pgoyette ENUMX
   4205  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_LO12S2_SP
   4206          1.1  christos ENUMDOC
   4207  1.1.1.1.2.1  pgoyette   for floating point
   4208  1.1.1.1.2.1  pgoyette ENUM
   4209  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_DWARF2_OP1
   4210  1.1.1.1.2.1  pgoyette ENUMX
   4211  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_DWARF2_OP2
   4212  1.1.1.1.2.1  pgoyette ENUMX
   4213  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_DWARF2_LEB
   4214          1.1  christos ENUMDOC
   4215  1.1.1.1.2.1  pgoyette   for dwarf2 debug_line.
   4216  1.1.1.1.2.1  pgoyette ENUM
   4217  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_UPDATE_TA
   4218          1.1  christos ENUMDOC
   4219  1.1.1.1.2.1  pgoyette   for eliminate 16-bit instructions
   4220  1.1.1.1.2.1  pgoyette ENUM
   4221  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PLT_GOTREL_LO20
   4222  1.1.1.1.2.1  pgoyette ENUMX
   4223  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PLT_GOTREL_LO15
   4224  1.1.1.1.2.1  pgoyette ENUMX
   4225  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PLT_GOTREL_LO19
   4226  1.1.1.1.2.1  pgoyette ENUMX
   4227  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOT_LO15
   4228  1.1.1.1.2.1  pgoyette ENUMX
   4229  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOT_LO19
   4230  1.1.1.1.2.1  pgoyette ENUMX
   4231  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOTOFF_LO15
   4232  1.1.1.1.2.1  pgoyette ENUMX
   4233  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOTOFF_LO19
   4234  1.1.1.1.2.1  pgoyette ENUMX
   4235  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOT15S2
   4236  1.1.1.1.2.1  pgoyette ENUMX
   4237  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOT17S2
   4238          1.1  christos ENUMDOC
   4239  1.1.1.1.2.1  pgoyette   for PIC object relaxation
   4240  1.1.1.1.2.1  pgoyette ENUM
   4241  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_5
   4242          1.1  christos ENUMDOC
   4243  1.1.1.1.2.1  pgoyette   NDS32 relocs.
   4244  1.1.1.1.2.1  pgoyette   This is a 5 bit absolute address.
   4245  1.1.1.1.2.1  pgoyette ENUM
   4246  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_10_UPCREL
   4247          1.1  christos ENUMDOC
   4248  1.1.1.1.2.1  pgoyette   This is a 10-bit unsigned pc-relative reloc with the right 1 bit assumed to be 0.
   4249  1.1.1.1.2.1  pgoyette ENUM
   4250  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SDA_FP7U2_RELA
   4251          1.1  christos ENUMDOC
   4252  1.1.1.1.2.1  pgoyette   If fp were omitted, fp can used as another gp.
   4253  1.1.1.1.2.1  pgoyette ENUM
   4254  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_RELAX_ENTRY
   4255  1.1.1.1.2.1  pgoyette ENUMX
   4256  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOT_SUFF
   4257  1.1.1.1.2.1  pgoyette ENUMX
   4258  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOTOFF_SUFF
   4259  1.1.1.1.2.1  pgoyette ENUMX
   4260  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PLT_GOT_SUFF
   4261  1.1.1.1.2.1  pgoyette ENUMX
   4262  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_MULCALL_SUFF
   4263  1.1.1.1.2.1  pgoyette ENUMX
   4264  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PTR
   4265  1.1.1.1.2.1  pgoyette ENUMX
   4266  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PTR_COUNT
   4267  1.1.1.1.2.1  pgoyette ENUMX
   4268  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PTR_RESOLVED
   4269  1.1.1.1.2.1  pgoyette ENUMX
   4270  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_PLTBLOCK
   4271  1.1.1.1.2.1  pgoyette ENUMX
   4272  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_RELAX_REGION_BEGIN
   4273  1.1.1.1.2.1  pgoyette ENUMX
   4274  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_RELAX_REGION_END
   4275  1.1.1.1.2.1  pgoyette ENUMX
   4276  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_MINUEND
   4277  1.1.1.1.2.1  pgoyette ENUMX
   4278  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_SUBTRAHEND
   4279  1.1.1.1.2.1  pgoyette ENUMX
   4280  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_DIFF8
   4281  1.1.1.1.2.1  pgoyette ENUMX
   4282  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_DIFF16
   4283  1.1.1.1.2.1  pgoyette ENUMX
   4284  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_DIFF32
   4285  1.1.1.1.2.1  pgoyette ENUMX
   4286  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_DIFF_ULEB128
   4287  1.1.1.1.2.1  pgoyette ENUMX
   4288  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_EMPTY
   4289          1.1  christos ENUMDOC
   4290  1.1.1.1.2.1  pgoyette   relaxation relative relocation types
   4291  1.1.1.1.2.1  pgoyette ENUM
   4292  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_25_ABS
   4293  1.1.1.1.2.1  pgoyette ENUMDOC
   4294  1.1.1.1.2.1  pgoyette   This is a 25 bit absolute address.
   4295  1.1.1.1.2.1  pgoyette ENUM
   4296  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_DATA
   4297  1.1.1.1.2.1  pgoyette ENUMX
   4298  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TRAN
   4299  1.1.1.1.2.1  pgoyette ENUMX
   4300  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_17IFC_PCREL
   4301  1.1.1.1.2.1  pgoyette ENUMX
   4302  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_10IFCU_PCREL
   4303  1.1.1.1.2.1  pgoyette ENUMDOC
   4304  1.1.1.1.2.1  pgoyette   For ex9 and ifc using.
   4305  1.1.1.1.2.1  pgoyette ENUM
   4306  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TPOFF
   4307  1.1.1.1.2.1  pgoyette ENUMX
   4308  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_LE_HI20
   4309  1.1.1.1.2.1  pgoyette ENUMX
   4310  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_LE_LO12
   4311  1.1.1.1.2.1  pgoyette ENUMX
   4312  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_LE_ADD
   4313  1.1.1.1.2.1  pgoyette ENUMX
   4314  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_LE_LS
   4315  1.1.1.1.2.1  pgoyette ENUMX
   4316  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_GOTTPOFF
   4317  1.1.1.1.2.1  pgoyette ENUMX
   4318  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_IE_HI20
   4319  1.1.1.1.2.1  pgoyette ENUMX
   4320  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_IE_LO12S2
   4321  1.1.1.1.2.1  pgoyette ENUMX
   4322  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_TPOFF
   4323  1.1.1.1.2.1  pgoyette ENUMX
   4324  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_LE_20
   4325  1.1.1.1.2.1  pgoyette ENUMX
   4326  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_LE_15S0
   4327  1.1.1.1.2.1  pgoyette ENUMX
   4328  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_LE_15S1
   4329  1.1.1.1.2.1  pgoyette ENUMX
   4330  1.1.1.1.2.1  pgoyette   BFD_RELOC_NDS32_TLS_LE_15S2
   4331  1.1.1.1.2.1  pgoyette ENUMDOC
   4332  1.1.1.1.2.1  pgoyette   For TLS.
   4333  1.1.1.1.2.1  pgoyette 
   4334  1.1.1.1.2.1  pgoyette 
   4335  1.1.1.1.2.1  pgoyette ENUM
   4336  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_9_PCREL
   4337  1.1.1.1.2.1  pgoyette ENUMDOC
   4338  1.1.1.1.2.1  pgoyette   This is a 9-bit reloc
   4339  1.1.1.1.2.1  pgoyette ENUM
   4340  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_22_PCREL
   4341  1.1.1.1.2.1  pgoyette ENUMDOC
   4342  1.1.1.1.2.1  pgoyette   This is a 22-bit reloc
   4343  1.1.1.1.2.1  pgoyette 
   4344  1.1.1.1.2.1  pgoyette ENUM
   4345  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_SDA_16_16_OFFSET
   4346  1.1.1.1.2.1  pgoyette ENUMDOC
   4347  1.1.1.1.2.1  pgoyette   This is a 16 bit offset from the short data area pointer.
   4348  1.1.1.1.2.1  pgoyette ENUM
   4349  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_SDA_15_16_OFFSET
   4350  1.1.1.1.2.1  pgoyette ENUMDOC
   4351  1.1.1.1.2.1  pgoyette   This is a 16 bit offset (of which only 15 bits are used) from the
   4352  1.1.1.1.2.1  pgoyette   short data area pointer.
   4353  1.1.1.1.2.1  pgoyette ENUM
   4354  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_ZDA_16_16_OFFSET
   4355  1.1.1.1.2.1  pgoyette ENUMDOC
   4356  1.1.1.1.2.1  pgoyette   This is a 16 bit offset from the zero data area pointer.
   4357  1.1.1.1.2.1  pgoyette ENUM
   4358  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_ZDA_15_16_OFFSET
   4359  1.1.1.1.2.1  pgoyette ENUMDOC
   4360  1.1.1.1.2.1  pgoyette   This is a 16 bit offset (of which only 15 bits are used) from the
   4361  1.1.1.1.2.1  pgoyette   zero data area pointer.
   4362  1.1.1.1.2.1  pgoyette ENUM
   4363  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_TDA_6_8_OFFSET
   4364  1.1.1.1.2.1  pgoyette ENUMDOC
   4365  1.1.1.1.2.1  pgoyette   This is an 8 bit offset (of which only 6 bits are used) from the
   4366  1.1.1.1.2.1  pgoyette   tiny data area pointer.
   4367  1.1.1.1.2.1  pgoyette ENUM
   4368  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_TDA_7_8_OFFSET
   4369  1.1.1.1.2.1  pgoyette ENUMDOC
   4370  1.1.1.1.2.1  pgoyette   This is an 8bit offset (of which only 7 bits are used) from the tiny
   4371  1.1.1.1.2.1  pgoyette   data area pointer.
   4372  1.1.1.1.2.1  pgoyette ENUM
   4373  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_TDA_7_7_OFFSET
   4374  1.1.1.1.2.1  pgoyette ENUMDOC
   4375  1.1.1.1.2.1  pgoyette   This is a 7 bit offset from the tiny data area pointer.
   4376  1.1.1.1.2.1  pgoyette ENUM
   4377  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_TDA_16_16_OFFSET
   4378  1.1.1.1.2.1  pgoyette ENUMDOC
   4379  1.1.1.1.2.1  pgoyette   This is a 16 bit offset from the tiny data area pointer.
   4380  1.1.1.1.2.1  pgoyette COMMENT
   4381  1.1.1.1.2.1  pgoyette ENUM
   4382  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_TDA_4_5_OFFSET
   4383  1.1.1.1.2.1  pgoyette ENUMDOC
   4384  1.1.1.1.2.1  pgoyette   This is a 5 bit offset (of which only 4 bits are used) from the tiny
   4385  1.1.1.1.2.1  pgoyette   data area pointer.
   4386  1.1.1.1.2.1  pgoyette ENUM
   4387  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_TDA_4_4_OFFSET
   4388  1.1.1.1.2.1  pgoyette ENUMDOC
   4389  1.1.1.1.2.1  pgoyette   This is a 4 bit offset from the tiny data area pointer.
   4390  1.1.1.1.2.1  pgoyette ENUM
   4391  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
   4392  1.1.1.1.2.1  pgoyette ENUMDOC
   4393  1.1.1.1.2.1  pgoyette   This is a 16 bit offset from the short data area pointer, with the
   4394  1.1.1.1.2.1  pgoyette   bits placed non-contiguously in the instruction.
   4395  1.1.1.1.2.1  pgoyette ENUM
   4396  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
   4397  1.1.1.1.2.1  pgoyette ENUMDOC
   4398  1.1.1.1.2.1  pgoyette   This is a 16 bit offset from the zero data area pointer, with the
   4399  1.1.1.1.2.1  pgoyette   bits placed non-contiguously in the instruction.
   4400  1.1.1.1.2.1  pgoyette ENUM
   4401  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_CALLT_6_7_OFFSET
   4402  1.1.1.1.2.1  pgoyette ENUMDOC
   4403  1.1.1.1.2.1  pgoyette   This is a 6 bit offset from the call table base pointer.
   4404  1.1.1.1.2.1  pgoyette ENUM
   4405  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_CALLT_16_16_OFFSET
   4406  1.1.1.1.2.1  pgoyette ENUMDOC
   4407  1.1.1.1.2.1  pgoyette   This is a 16 bit offset from the call table base pointer.
   4408  1.1.1.1.2.1  pgoyette ENUM
   4409  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_LONGCALL
   4410  1.1.1.1.2.1  pgoyette ENUMDOC
   4411  1.1.1.1.2.1  pgoyette   Used for relaxing indirect function calls.
   4412  1.1.1.1.2.1  pgoyette ENUM
   4413  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_LONGJUMP
   4414  1.1.1.1.2.1  pgoyette ENUMDOC
   4415  1.1.1.1.2.1  pgoyette   Used for relaxing indirect jumps.
   4416  1.1.1.1.2.1  pgoyette ENUM
   4417  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_ALIGN
   4418  1.1.1.1.2.1  pgoyette ENUMDOC
   4419  1.1.1.1.2.1  pgoyette   Used to maintain alignment whilst relaxing.
   4420  1.1.1.1.2.1  pgoyette ENUM
   4421  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_LO16_SPLIT_OFFSET
   4422  1.1.1.1.2.1  pgoyette ENUMDOC
   4423  1.1.1.1.2.1  pgoyette   This is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu
   4424  1.1.1.1.2.1  pgoyette   instructions.
   4425  1.1.1.1.2.1  pgoyette ENUM
   4426  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_16_PCREL
   4427  1.1.1.1.2.1  pgoyette ENUMDOC
   4428  1.1.1.1.2.1  pgoyette   This is a 16-bit reloc.
   4429  1.1.1.1.2.1  pgoyette ENUM
   4430  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_17_PCREL
   4431  1.1.1.1.2.1  pgoyette ENUMDOC
   4432  1.1.1.1.2.1  pgoyette   This is a 17-bit reloc.
   4433  1.1.1.1.2.1  pgoyette ENUM
   4434  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_23
   4435  1.1.1.1.2.1  pgoyette ENUMDOC
   4436  1.1.1.1.2.1  pgoyette   This is a 23-bit reloc.
   4437  1.1.1.1.2.1  pgoyette ENUM
   4438  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_32_PCREL
   4439  1.1.1.1.2.1  pgoyette ENUMDOC
   4440  1.1.1.1.2.1  pgoyette   This is a 32-bit reloc.
   4441  1.1.1.1.2.1  pgoyette ENUM
   4442  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_32_ABS
   4443  1.1.1.1.2.1  pgoyette ENUMDOC
   4444  1.1.1.1.2.1  pgoyette   This is a 32-bit reloc.
   4445  1.1.1.1.2.1  pgoyette ENUM
   4446  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_16_SPLIT_OFFSET
   4447  1.1.1.1.2.1  pgoyette ENUMDOC
   4448  1.1.1.1.2.1  pgoyette   This is a 16-bit reloc.
   4449  1.1.1.1.2.1  pgoyette ENUM
   4450  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_16_S1
   4451  1.1.1.1.2.1  pgoyette ENUMDOC
   4452  1.1.1.1.2.1  pgoyette   This is a 16-bit reloc.
   4453  1.1.1.1.2.1  pgoyette ENUM
   4454  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_LO16_S1
   4455  1.1.1.1.2.1  pgoyette ENUMDOC
   4456  1.1.1.1.2.1  pgoyette   Low 16 bits. 16 bit shifted by 1.
   4457  1.1.1.1.2.1  pgoyette ENUM
   4458  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_CALLT_15_16_OFFSET
   4459  1.1.1.1.2.1  pgoyette ENUMDOC
   4460  1.1.1.1.2.1  pgoyette   This is a 16 bit offset from the call table base pointer.
   4461  1.1.1.1.2.1  pgoyette ENUM
   4462  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_32_GOTPCREL
   4463  1.1.1.1.2.1  pgoyette ENUMDOC
   4464  1.1.1.1.2.1  pgoyette   DSO relocations.
   4465  1.1.1.1.2.1  pgoyette ENUM
   4466  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_16_GOT
   4467  1.1.1.1.2.1  pgoyette ENUMDOC
   4468  1.1.1.1.2.1  pgoyette   DSO relocations.
   4469  1.1.1.1.2.1  pgoyette ENUM
   4470  1.1.1.1.2.1  pgoyette   BFD_RELOC_V850_32_GOT
   4471          1.1  christos ENUMDOC
   4472          1.1  christos   DSO relocations.
   4473  1.1.1.1.2.1  pgoyette ENUM
   4474          1.1  christos   BFD_RELOC_V850_22_PLT_PCREL
   4475          1.1  christos ENUMDOC
   4476          1.1  christos   DSO relocations.
   4477  1.1.1.1.2.1  pgoyette ENUM
   4478          1.1  christos   BFD_RELOC_V850_32_PLT_PCREL
   4479          1.1  christos ENUMDOC
   4480          1.1  christos   DSO relocations.
   4481  1.1.1.1.2.1  pgoyette ENUM
   4482          1.1  christos   BFD_RELOC_V850_COPY
   4483          1.1  christos ENUMDOC
   4484          1.1  christos   DSO relocations.
   4485  1.1.1.1.2.1  pgoyette ENUM
   4486          1.1  christos   BFD_RELOC_V850_GLOB_DAT
   4487          1.1  christos ENUMDOC
   4488          1.1  christos   DSO relocations.
   4489  1.1.1.1.2.1  pgoyette ENUM
   4490          1.1  christos   BFD_RELOC_V850_JMP_SLOT
   4491          1.1  christos ENUMDOC
   4492          1.1  christos   DSO relocations.
   4493  1.1.1.1.2.1  pgoyette ENUM
   4494          1.1  christos   BFD_RELOC_V850_RELATIVE
   4495          1.1  christos ENUMDOC
   4496          1.1  christos   DSO relocations.
   4497  1.1.1.1.2.1  pgoyette ENUM
   4498          1.1  christos   BFD_RELOC_V850_16_GOTOFF
   4499          1.1  christos ENUMDOC
   4500          1.1  christos   DSO relocations.
   4501  1.1.1.1.2.1  pgoyette ENUM
   4502          1.1  christos   BFD_RELOC_V850_32_GOTOFF
   4503          1.1  christos ENUMDOC
   4504          1.1  christos   DSO relocations.
   4505  1.1.1.1.2.1  pgoyette ENUM
   4506          1.1  christos   BFD_RELOC_V850_CODE
   4507          1.1  christos ENUMDOC
   4508          1.1  christos   start code.
   4509  1.1.1.1.2.1  pgoyette ENUM
   4510          1.1  christos   BFD_RELOC_V850_DATA
   4511          1.1  christos ENUMDOC
   4512          1.1  christos   start data in text.
   4513          1.1  christos 
   4514          1.1  christos ENUM
   4515          1.1  christos   BFD_RELOC_TIC30_LDP
   4516          1.1  christos ENUMDOC
   4517          1.1  christos   This is a 8bit DP reloc for the tms320c30, where the most
   4518          1.1  christos   significant 8 bits of a 24 bit word are placed into the least
   4519          1.1  christos   significant 8 bits of the opcode.
   4520          1.1  christos 
   4521          1.1  christos ENUM
   4522          1.1  christos   BFD_RELOC_TIC54X_PARTLS7
   4523          1.1  christos ENUMDOC
   4524          1.1  christos   This is a 7bit reloc for the tms320c54x, where the least
   4525          1.1  christos   significant 7 bits of a 16 bit word are placed into the least
   4526          1.1  christos   significant 7 bits of the opcode.
   4527          1.1  christos 
   4528          1.1  christos ENUM
   4529          1.1  christos   BFD_RELOC_TIC54X_PARTMS9
   4530          1.1  christos ENUMDOC
   4531          1.1  christos   This is a 9bit DP reloc for the tms320c54x, where the most
   4532          1.1  christos   significant 9 bits of a 16 bit word are placed into the least
   4533          1.1  christos   significant 9 bits of the opcode.
   4534          1.1  christos 
   4535          1.1  christos ENUM
   4536          1.1  christos   BFD_RELOC_TIC54X_23
   4537          1.1  christos ENUMDOC
   4538          1.1  christos   This is an extended address 23-bit reloc for the tms320c54x.
   4539          1.1  christos 
   4540          1.1  christos ENUM
   4541          1.1  christos   BFD_RELOC_TIC54X_16_OF_23
   4542          1.1  christos ENUMDOC
   4543          1.1  christos   This is a 16-bit reloc for the tms320c54x, where the least
   4544          1.1  christos   significant 16 bits of a 23-bit extended address are placed into
   4545          1.1  christos   the opcode.
   4546          1.1  christos 
   4547          1.1  christos ENUM
   4548          1.1  christos   BFD_RELOC_TIC54X_MS7_OF_23
   4549          1.1  christos ENUMDOC
   4550          1.1  christos   This is a reloc for the tms320c54x, where the most
   4551          1.1  christos   significant 7 bits of a 23-bit extended address are placed into
   4552          1.1  christos   the opcode.
   4553          1.1  christos 
   4554          1.1  christos ENUM
   4555          1.1  christos   BFD_RELOC_C6000_PCR_S21
   4556          1.1  christos ENUMX
   4557          1.1  christos   BFD_RELOC_C6000_PCR_S12
   4558          1.1  christos ENUMX
   4559          1.1  christos   BFD_RELOC_C6000_PCR_S10
   4560          1.1  christos ENUMX
   4561          1.1  christos   BFD_RELOC_C6000_PCR_S7
   4562          1.1  christos ENUMX
   4563          1.1  christos   BFD_RELOC_C6000_ABS_S16
   4564          1.1  christos ENUMX
   4565          1.1  christos   BFD_RELOC_C6000_ABS_L16
   4566          1.1  christos ENUMX
   4567          1.1  christos   BFD_RELOC_C6000_ABS_H16
   4568          1.1  christos ENUMX
   4569          1.1  christos   BFD_RELOC_C6000_SBR_U15_B
   4570          1.1  christos ENUMX
   4571          1.1  christos   BFD_RELOC_C6000_SBR_U15_H
   4572          1.1  christos ENUMX
   4573          1.1  christos   BFD_RELOC_C6000_SBR_U15_W
   4574          1.1  christos ENUMX
   4575          1.1  christos   BFD_RELOC_C6000_SBR_S16
   4576          1.1  christos ENUMX
   4577          1.1  christos   BFD_RELOC_C6000_SBR_L16_B
   4578          1.1  christos ENUMX
   4579          1.1  christos   BFD_RELOC_C6000_SBR_L16_H
   4580          1.1  christos ENUMX
   4581          1.1  christos   BFD_RELOC_C6000_SBR_L16_W
   4582          1.1  christos ENUMX
   4583          1.1  christos   BFD_RELOC_C6000_SBR_H16_B
   4584          1.1  christos ENUMX
   4585          1.1  christos   BFD_RELOC_C6000_SBR_H16_H
   4586          1.1  christos ENUMX
   4587          1.1  christos   BFD_RELOC_C6000_SBR_H16_W
   4588          1.1  christos ENUMX
   4589          1.1  christos   BFD_RELOC_C6000_SBR_GOT_U15_W
   4590          1.1  christos ENUMX
   4591          1.1  christos   BFD_RELOC_C6000_SBR_GOT_L16_W
   4592          1.1  christos ENUMX
   4593          1.1  christos   BFD_RELOC_C6000_SBR_GOT_H16_W
   4594          1.1  christos ENUMX
   4595          1.1  christos   BFD_RELOC_C6000_DSBT_INDEX
   4596          1.1  christos ENUMX
   4597          1.1  christos   BFD_RELOC_C6000_PREL31
   4598          1.1  christos ENUMX
   4599          1.1  christos   BFD_RELOC_C6000_COPY
   4600          1.1  christos ENUMX
   4601          1.1  christos   BFD_RELOC_C6000_JUMP_SLOT
   4602          1.1  christos ENUMX
   4603          1.1  christos   BFD_RELOC_C6000_EHTYPE
   4604          1.1  christos ENUMX
   4605          1.1  christos   BFD_RELOC_C6000_PCR_H16
   4606          1.1  christos ENUMX
   4607          1.1  christos   BFD_RELOC_C6000_PCR_L16
   4608          1.1  christos ENUMX
   4609          1.1  christos   BFD_RELOC_C6000_ALIGN
   4610          1.1  christos ENUMX
   4611          1.1  christos   BFD_RELOC_C6000_FPHEAD
   4612          1.1  christos ENUMX
   4613          1.1  christos   BFD_RELOC_C6000_NOCMP
   4614          1.1  christos ENUMDOC
   4615          1.1  christos   TMS320C6000 relocations.
   4616          1.1  christos 
   4617          1.1  christos ENUM
   4618          1.1  christos   BFD_RELOC_FR30_48
   4619          1.1  christos ENUMDOC
   4620          1.1  christos   This is a 48 bit reloc for the FR30 that stores 32 bits.
   4621          1.1  christos ENUM
   4622          1.1  christos   BFD_RELOC_FR30_20
   4623          1.1  christos ENUMDOC
   4624          1.1  christos   This is a 32 bit reloc for the FR30 that stores 20 bits split up into
   4625          1.1  christos   two sections.
   4626          1.1  christos ENUM
   4627          1.1  christos   BFD_RELOC_FR30_6_IN_4
   4628          1.1  christos ENUMDOC
   4629          1.1  christos   This is a 16 bit reloc for the FR30 that stores a 6 bit word offset in
   4630          1.1  christos   4 bits.
   4631          1.1  christos ENUM
   4632          1.1  christos   BFD_RELOC_FR30_8_IN_8
   4633          1.1  christos ENUMDOC
   4634          1.1  christos   This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
   4635          1.1  christos   into 8 bits.
   4636          1.1  christos ENUM
   4637          1.1  christos   BFD_RELOC_FR30_9_IN_8
   4638          1.1  christos ENUMDOC
   4639          1.1  christos   This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
   4640          1.1  christos   into 8 bits.
   4641          1.1  christos ENUM
   4642          1.1  christos   BFD_RELOC_FR30_10_IN_8
   4643          1.1  christos ENUMDOC
   4644          1.1  christos   This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
   4645          1.1  christos   into 8 bits.
   4646          1.1  christos ENUM
   4647          1.1  christos   BFD_RELOC_FR30_9_PCREL
   4648          1.1  christos ENUMDOC
   4649          1.1  christos   This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
   4650          1.1  christos   short offset into 8 bits.
   4651          1.1  christos ENUM
   4652          1.1  christos   BFD_RELOC_FR30_12_PCREL
   4653          1.1  christos ENUMDOC
   4654          1.1  christos   This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
   4655          1.1  christos   short offset into 11 bits.
   4656          1.1  christos 
   4657          1.1  christos ENUM
   4658          1.1  christos   BFD_RELOC_MCORE_PCREL_IMM8BY4
   4659          1.1  christos ENUMX
   4660          1.1  christos   BFD_RELOC_MCORE_PCREL_IMM11BY2
   4661          1.1  christos ENUMX
   4662          1.1  christos   BFD_RELOC_MCORE_PCREL_IMM4BY2
   4663          1.1  christos ENUMX
   4664          1.1  christos   BFD_RELOC_MCORE_PCREL_32
   4665          1.1  christos ENUMX
   4666          1.1  christos   BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
   4667          1.1  christos ENUMX
   4668          1.1  christos   BFD_RELOC_MCORE_RVA
   4669          1.1  christos ENUMDOC
   4670          1.1  christos   Motorola Mcore relocations.
   4671          1.1  christos 
   4672          1.1  christos ENUM
   4673          1.1  christos   BFD_RELOC_MEP_8
   4674          1.1  christos ENUMX
   4675          1.1  christos   BFD_RELOC_MEP_16
   4676          1.1  christos ENUMX
   4677          1.1  christos   BFD_RELOC_MEP_32
   4678          1.1  christos ENUMX
   4679          1.1  christos   BFD_RELOC_MEP_PCREL8A2
   4680          1.1  christos ENUMX
   4681          1.1  christos   BFD_RELOC_MEP_PCREL12A2
   4682          1.1  christos ENUMX
   4683          1.1  christos   BFD_RELOC_MEP_PCREL17A2
   4684          1.1  christos ENUMX
   4685          1.1  christos   BFD_RELOC_MEP_PCREL24A2
   4686          1.1  christos ENUMX
   4687          1.1  christos   BFD_RELOC_MEP_PCABS24A2
   4688          1.1  christos ENUMX
   4689          1.1  christos   BFD_RELOC_MEP_LOW16
   4690          1.1  christos ENUMX
   4691          1.1  christos   BFD_RELOC_MEP_HI16U
   4692          1.1  christos ENUMX
   4693          1.1  christos   BFD_RELOC_MEP_HI16S
   4694          1.1  christos ENUMX
   4695          1.1  christos   BFD_RELOC_MEP_GPREL
   4696          1.1  christos ENUMX
   4697          1.1  christos   BFD_RELOC_MEP_TPREL
   4698          1.1  christos ENUMX
   4699          1.1  christos   BFD_RELOC_MEP_TPREL7
   4700          1.1  christos ENUMX
   4701          1.1  christos   BFD_RELOC_MEP_TPREL7A2
   4702          1.1  christos ENUMX
   4703          1.1  christos   BFD_RELOC_MEP_TPREL7A4
   4704          1.1  christos ENUMX
   4705          1.1  christos   BFD_RELOC_MEP_UIMM24
   4706          1.1  christos ENUMX
   4707          1.1  christos   BFD_RELOC_MEP_ADDR24A4
   4708          1.1  christos ENUMX
   4709          1.1  christos   BFD_RELOC_MEP_GNU_VTINHERIT
   4710          1.1  christos ENUMX
   4711          1.1  christos   BFD_RELOC_MEP_GNU_VTENTRY
   4712          1.1  christos ENUMDOC
   4713          1.1  christos   Toshiba Media Processor Relocations.
   4714          1.1  christos COMMENT
   4715          1.1  christos 
   4716          1.1  christos ENUM
   4717  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_HIADDR16
   4718  1.1.1.1.2.1  pgoyette ENUMX
   4719  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_LOADDR16
   4720  1.1.1.1.2.1  pgoyette ENUMX
   4721  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_RELBRANCH
   4722  1.1.1.1.2.1  pgoyette ENUMX
   4723  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_GETSETOFF
   4724  1.1.1.1.2.1  pgoyette ENUMX
   4725  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_HIOG
   4726  1.1.1.1.2.1  pgoyette ENUMX
   4727  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_LOOG
   4728  1.1.1.1.2.1  pgoyette ENUMX
   4729  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_REL8
   4730  1.1.1.1.2.1  pgoyette ENUMX
   4731  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_REL16
   4732  1.1.1.1.2.1  pgoyette ENUMX
   4733  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_HI16_GOTOFF
   4734  1.1.1.1.2.1  pgoyette ENUMX
   4735  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_LO16_GOTOFF
   4736  1.1.1.1.2.1  pgoyette ENUMX
   4737  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_GETSET_GOTOFF
   4738  1.1.1.1.2.1  pgoyette ENUMX
   4739  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_GETSET_GOT
   4740  1.1.1.1.2.1  pgoyette ENUMX
   4741  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_HI16_GOTPC
   4742  1.1.1.1.2.1  pgoyette ENUMX
   4743  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_LO16_GOTPC
   4744  1.1.1.1.2.1  pgoyette ENUMX
   4745  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_HI16_PLT
   4746  1.1.1.1.2.1  pgoyette ENUMX
   4747  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_LO16_PLT
   4748  1.1.1.1.2.1  pgoyette ENUMX
   4749  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_RELBRANCH_PLT
   4750  1.1.1.1.2.1  pgoyette ENUMX
   4751  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_GOTOFF
   4752  1.1.1.1.2.1  pgoyette ENUMX
   4753  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_PLT
   4754  1.1.1.1.2.1  pgoyette ENUMX
   4755  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_COPY
   4756  1.1.1.1.2.1  pgoyette ENUMX
   4757  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_JMP_SLOT
   4758  1.1.1.1.2.1  pgoyette ENUMX
   4759  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_RELATIVE
   4760  1.1.1.1.2.1  pgoyette ENUMX
   4761  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_GLOB_DAT
   4762  1.1.1.1.2.1  pgoyette ENUMX
   4763  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_GD
   4764  1.1.1.1.2.1  pgoyette ENUMX
   4765  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_LDM
   4766  1.1.1.1.2.1  pgoyette ENUMX
   4767  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_LDO_HI16
   4768  1.1.1.1.2.1  pgoyette ENUMX
   4769  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_LDO_LO16
   4770  1.1.1.1.2.1  pgoyette ENUMX
   4771  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_LDO
   4772  1.1.1.1.2.1  pgoyette ENUMX
   4773  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_IE
   4774  1.1.1.1.2.1  pgoyette ENUMX
   4775  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_IENONPIC
   4776  1.1.1.1.2.1  pgoyette ENUMX
   4777  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_IENONPIC_HI16
   4778  1.1.1.1.2.1  pgoyette ENUMX
   4779  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_IENONPIC_LO16
   4780  1.1.1.1.2.1  pgoyette ENUMX
   4781  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_TPOFF
   4782  1.1.1.1.2.1  pgoyette ENUMX
   4783  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_DTPMOD
   4784  1.1.1.1.2.1  pgoyette ENUMX
   4785  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_DTPOFF
   4786  1.1.1.1.2.1  pgoyette ENUMX
   4787  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_LE
   4788  1.1.1.1.2.1  pgoyette ENUMX
   4789  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_LE_HI16
   4790  1.1.1.1.2.1  pgoyette ENUMX
   4791  1.1.1.1.2.1  pgoyette   BFD_RELOC_METAG_TLS_LE_LO16
   4792  1.1.1.1.2.1  pgoyette ENUMDOC
   4793  1.1.1.1.2.1  pgoyette   Imagination Technologies Meta relocations.
   4794  1.1.1.1.2.1  pgoyette 
   4795  1.1.1.1.2.1  pgoyette ENUM
   4796          1.1  christos   BFD_RELOC_MMIX_GETA
   4797          1.1  christos ENUMX
   4798          1.1  christos   BFD_RELOC_MMIX_GETA_1
   4799          1.1  christos ENUMX
   4800          1.1  christos   BFD_RELOC_MMIX_GETA_2
   4801          1.1  christos ENUMX
   4802          1.1  christos   BFD_RELOC_MMIX_GETA_3
   4803          1.1  christos ENUMDOC
   4804          1.1  christos   These are relocations for the GETA instruction.
   4805          1.1  christos ENUM
   4806          1.1  christos   BFD_RELOC_MMIX_CBRANCH
   4807          1.1  christos ENUMX
   4808          1.1  christos   BFD_RELOC_MMIX_CBRANCH_J
   4809          1.1  christos ENUMX
   4810          1.1  christos   BFD_RELOC_MMIX_CBRANCH_1
   4811          1.1  christos ENUMX
   4812          1.1  christos   BFD_RELOC_MMIX_CBRANCH_2
   4813          1.1  christos ENUMX
   4814          1.1  christos   BFD_RELOC_MMIX_CBRANCH_3
   4815          1.1  christos ENUMDOC
   4816          1.1  christos   These are relocations for a conditional branch instruction.
   4817          1.1  christos ENUM
   4818          1.1  christos   BFD_RELOC_MMIX_PUSHJ
   4819          1.1  christos ENUMX
   4820          1.1  christos   BFD_RELOC_MMIX_PUSHJ_1
   4821          1.1  christos ENUMX
   4822          1.1  christos   BFD_RELOC_MMIX_PUSHJ_2
   4823          1.1  christos ENUMX
   4824          1.1  christos   BFD_RELOC_MMIX_PUSHJ_3
   4825          1.1  christos ENUMX
   4826          1.1  christos   BFD_RELOC_MMIX_PUSHJ_STUBBABLE
   4827          1.1  christos ENUMDOC
   4828          1.1  christos   These are relocations for the PUSHJ instruction.
   4829          1.1  christos ENUM
   4830          1.1  christos   BFD_RELOC_MMIX_JMP
   4831          1.1  christos ENUMX
   4832          1.1  christos   BFD_RELOC_MMIX_JMP_1
   4833          1.1  christos ENUMX
   4834          1.1  christos   BFD_RELOC_MMIX_JMP_2
   4835          1.1  christos ENUMX
   4836          1.1  christos   BFD_RELOC_MMIX_JMP_3
   4837          1.1  christos ENUMDOC
   4838          1.1  christos   These are relocations for the JMP instruction.
   4839          1.1  christos ENUM
   4840          1.1  christos   BFD_RELOC_MMIX_ADDR19
   4841          1.1  christos ENUMDOC
   4842          1.1  christos   This is a relocation for a relative address as in a GETA instruction or
   4843          1.1  christos   a branch.
   4844          1.1  christos ENUM
   4845          1.1  christos   BFD_RELOC_MMIX_ADDR27
   4846          1.1  christos ENUMDOC
   4847          1.1  christos   This is a relocation for a relative address as in a JMP instruction.
   4848          1.1  christos ENUM
   4849          1.1  christos   BFD_RELOC_MMIX_REG_OR_BYTE
   4850          1.1  christos ENUMDOC
   4851          1.1  christos   This is a relocation for an instruction field that may be a general
   4852          1.1  christos   register or a value 0..255.
   4853          1.1  christos ENUM
   4854          1.1  christos   BFD_RELOC_MMIX_REG
   4855          1.1  christos ENUMDOC
   4856          1.1  christos   This is a relocation for an instruction field that may be a general
   4857          1.1  christos   register.
   4858          1.1  christos ENUM
   4859          1.1  christos   BFD_RELOC_MMIX_BASE_PLUS_OFFSET
   4860          1.1  christos ENUMDOC
   4861          1.1  christos   This is a relocation for two instruction fields holding a register and
   4862          1.1  christos   an offset, the equivalent of the relocation.
   4863          1.1  christos ENUM
   4864          1.1  christos   BFD_RELOC_MMIX_LOCAL
   4865          1.1  christos ENUMDOC
   4866          1.1  christos   This relocation is an assertion that the expression is not allocated as
   4867          1.1  christos   a global register.  It does not modify contents.
   4868          1.1  christos 
   4869          1.1  christos ENUM
   4870          1.1  christos   BFD_RELOC_AVR_7_PCREL
   4871          1.1  christos ENUMDOC
   4872          1.1  christos   This is a 16 bit reloc for the AVR that stores 8 bit pc relative
   4873          1.1  christos   short offset into 7 bits.
   4874          1.1  christos ENUM
   4875          1.1  christos   BFD_RELOC_AVR_13_PCREL
   4876          1.1  christos ENUMDOC
   4877          1.1  christos   This is a 16 bit reloc for the AVR that stores 13 bit pc relative
   4878          1.1  christos   short offset into 12 bits.
   4879          1.1  christos ENUM
   4880          1.1  christos   BFD_RELOC_AVR_16_PM
   4881          1.1  christos ENUMDOC
   4882          1.1  christos   This is a 16 bit reloc for the AVR that stores 17 bit value (usually
   4883          1.1  christos   program memory address) into 16 bits.
   4884          1.1  christos ENUM
   4885          1.1  christos   BFD_RELOC_AVR_LO8_LDI
   4886          1.1  christos ENUMDOC
   4887          1.1  christos   This is a 16 bit reloc for the AVR that stores 8 bit value (usually
   4888          1.1  christos   data memory address) into 8 bit immediate value of LDI insn.
   4889          1.1  christos ENUM
   4890          1.1  christos   BFD_RELOC_AVR_HI8_LDI
   4891          1.1  christos ENUMDOC
   4892          1.1  christos   This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
   4893          1.1  christos   of data memory address) into 8 bit immediate value of LDI insn.
   4894          1.1  christos ENUM
   4895          1.1  christos   BFD_RELOC_AVR_HH8_LDI
   4896          1.1  christos ENUMDOC
   4897          1.1  christos   This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
   4898          1.1  christos   of program memory address) into 8 bit immediate value of LDI insn.
   4899          1.1  christos ENUM
   4900          1.1  christos   BFD_RELOC_AVR_MS8_LDI
   4901          1.1  christos ENUMDOC
   4902          1.1  christos   This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
   4903          1.1  christos   of 32 bit value) into 8 bit immediate value of LDI insn.
   4904          1.1  christos ENUM
   4905          1.1  christos   BFD_RELOC_AVR_LO8_LDI_NEG
   4906          1.1  christos ENUMDOC
   4907          1.1  christos   This is a 16 bit reloc for the AVR that stores negated 8 bit value
   4908          1.1  christos   (usually data memory address) into 8 bit immediate value of SUBI insn.
   4909          1.1  christos ENUM
   4910          1.1  christos   BFD_RELOC_AVR_HI8_LDI_NEG
   4911          1.1  christos ENUMDOC
   4912          1.1  christos   This is a 16 bit reloc for the AVR that stores negated 8 bit value
   4913          1.1  christos   (high 8 bit of data memory address) into 8 bit immediate value of
   4914          1.1  christos   SUBI insn.
   4915          1.1  christos ENUM
   4916          1.1  christos   BFD_RELOC_AVR_HH8_LDI_NEG
   4917          1.1  christos ENUMDOC
   4918          1.1  christos   This is a 16 bit reloc for the AVR that stores negated 8 bit value
   4919          1.1  christos   (most high 8 bit of program memory address) into 8 bit immediate value
   4920          1.1  christos   of LDI or SUBI insn.
   4921          1.1  christos ENUM
   4922          1.1  christos   BFD_RELOC_AVR_MS8_LDI_NEG
   4923          1.1  christos ENUMDOC
   4924          1.1  christos   This is a 16 bit reloc for the AVR that stores negated 8 bit value (msb
   4925          1.1  christos   of 32 bit value) into 8 bit immediate value of LDI insn.
   4926          1.1  christos ENUM
   4927          1.1  christos   BFD_RELOC_AVR_LO8_LDI_PM
   4928          1.1  christos ENUMDOC
   4929          1.1  christos   This is a 16 bit reloc for the AVR that stores 8 bit value (usually
   4930          1.1  christos   command address) into 8 bit immediate value of LDI insn.
   4931          1.1  christos ENUM
   4932          1.1  christos   BFD_RELOC_AVR_LO8_LDI_GS
   4933          1.1  christos ENUMDOC
   4934  1.1.1.1.2.1  pgoyette   This is a 16 bit reloc for the AVR that stores 8 bit value
   4935          1.1  christos   (command address) into 8 bit immediate value of LDI insn. If the address
   4936          1.1  christos   is beyond the 128k boundary, the linker inserts a jump stub for this reloc
   4937          1.1  christos   in the lower 128k.
   4938          1.1  christos ENUM
   4939          1.1  christos   BFD_RELOC_AVR_HI8_LDI_PM
   4940          1.1  christos ENUMDOC
   4941          1.1  christos   This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
   4942          1.1  christos   of command address) into 8 bit immediate value of LDI insn.
   4943          1.1  christos ENUM
   4944          1.1  christos   BFD_RELOC_AVR_HI8_LDI_GS
   4945          1.1  christos ENUMDOC
   4946          1.1  christos   This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
   4947          1.1  christos   of command address) into 8 bit immediate value of LDI insn.  If the address
   4948          1.1  christos   is beyond the 128k boundary, the linker inserts a jump stub for this reloc
   4949          1.1  christos   below 128k.
   4950          1.1  christos ENUM
   4951          1.1  christos   BFD_RELOC_AVR_HH8_LDI_PM
   4952          1.1  christos ENUMDOC
   4953          1.1  christos   This is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit
   4954          1.1  christos   of command address) into 8 bit immediate value of LDI insn.
   4955          1.1  christos ENUM
   4956          1.1  christos   BFD_RELOC_AVR_LO8_LDI_PM_NEG
   4957          1.1  christos ENUMDOC
   4958          1.1  christos   This is a 16 bit reloc for the AVR that stores negated 8 bit value
   4959          1.1  christos   (usually command address) into 8 bit immediate value of SUBI insn.
   4960          1.1  christos ENUM
   4961          1.1  christos   BFD_RELOC_AVR_HI8_LDI_PM_NEG
   4962          1.1  christos ENUMDOC
   4963          1.1  christos   This is a 16 bit reloc for the AVR that stores negated 8 bit value
   4964          1.1  christos   (high 8 bit of 16 bit command address) into 8 bit immediate value
   4965          1.1  christos   of SUBI insn.
   4966          1.1  christos ENUM
   4967          1.1  christos   BFD_RELOC_AVR_HH8_LDI_PM_NEG
   4968          1.1  christos ENUMDOC
   4969          1.1  christos   This is a 16 bit reloc for the AVR that stores negated 8 bit value
   4970          1.1  christos   (high 6 bit of 22 bit command address) into 8 bit immediate
   4971          1.1  christos   value of SUBI insn.
   4972          1.1  christos ENUM
   4973          1.1  christos   BFD_RELOC_AVR_CALL
   4974          1.1  christos ENUMDOC
   4975          1.1  christos   This is a 32 bit reloc for the AVR that stores 23 bit value
   4976          1.1  christos   into 22 bits.
   4977          1.1  christos ENUM
   4978          1.1  christos   BFD_RELOC_AVR_LDI
   4979          1.1  christos ENUMDOC
   4980          1.1  christos   This is a 16 bit reloc for the AVR that stores all needed bits
   4981          1.1  christos   for absolute addressing with ldi with overflow check to linktime
   4982          1.1  christos ENUM
   4983          1.1  christos   BFD_RELOC_AVR_6
   4984          1.1  christos ENUMDOC
   4985          1.1  christos   This is a 6 bit reloc for the AVR that stores offset for ldd/std
   4986          1.1  christos   instructions
   4987          1.1  christos ENUM
   4988          1.1  christos   BFD_RELOC_AVR_6_ADIW
   4989          1.1  christos ENUMDOC
   4990          1.1  christos   This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
   4991          1.1  christos   instructions
   4992          1.1  christos ENUM
   4993          1.1  christos   BFD_RELOC_AVR_8_LO
   4994          1.1  christos ENUMDOC
   4995          1.1  christos   This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol
   4996          1.1  christos   in .byte lo8(symbol)
   4997          1.1  christos ENUM
   4998          1.1  christos   BFD_RELOC_AVR_8_HI
   4999          1.1  christos ENUMDOC
   5000          1.1  christos   This is a 8 bit reloc for the AVR that stores bits 8..15 of a symbol
   5001          1.1  christos   in .byte hi8(symbol)
   5002          1.1  christos ENUM
   5003          1.1  christos   BFD_RELOC_AVR_8_HLO
   5004          1.1  christos ENUMDOC
   5005          1.1  christos   This is a 8 bit reloc for the AVR that stores bits 16..23 of a symbol
   5006          1.1  christos   in .byte hlo8(symbol)
   5007  1.1.1.1.2.1  pgoyette ENUM
   5008  1.1.1.1.2.1  pgoyette   BFD_RELOC_AVR_DIFF8
   5009  1.1.1.1.2.1  pgoyette ENUMX
   5010  1.1.1.1.2.1  pgoyette   BFD_RELOC_AVR_DIFF16
   5011  1.1.1.1.2.1  pgoyette ENUMX
   5012  1.1.1.1.2.1  pgoyette   BFD_RELOC_AVR_DIFF32
   5013  1.1.1.1.2.1  pgoyette ENUMDOC
   5014  1.1.1.1.2.1  pgoyette   AVR relocations to mark the difference of two local symbols.
   5015  1.1.1.1.2.1  pgoyette   These are only needed to support linker relaxation and can be ignored
   5016  1.1.1.1.2.1  pgoyette   when not relaxing.  The field is set to the value of the difference
   5017  1.1.1.1.2.1  pgoyette   assuming no relaxation.  The relocation encodes the position of the
   5018  1.1.1.1.2.1  pgoyette   second symbol so the linker can determine whether to adjust the field
   5019  1.1.1.1.2.1  pgoyette   value.
   5020  1.1.1.1.2.1  pgoyette ENUM
   5021  1.1.1.1.2.1  pgoyette   BFD_RELOC_AVR_LDS_STS_16
   5022  1.1.1.1.2.1  pgoyette ENUMDOC
   5023  1.1.1.1.2.1  pgoyette   This is a 7 bit reloc for the AVR that stores SRAM address for 16bit
   5024  1.1.1.1.2.1  pgoyette   lds and sts instructions supported only tiny core.
   5025  1.1.1.1.2.1  pgoyette ENUM
   5026  1.1.1.1.2.1  pgoyette   BFD_RELOC_AVR_PORT6
   5027  1.1.1.1.2.1  pgoyette ENUMDOC
   5028  1.1.1.1.2.1  pgoyette   This is a 6 bit reloc for the AVR that stores an I/O register
   5029  1.1.1.1.2.1  pgoyette   number for the IN and OUT instructions
   5030  1.1.1.1.2.1  pgoyette ENUM
   5031  1.1.1.1.2.1  pgoyette   BFD_RELOC_AVR_PORT5
   5032  1.1.1.1.2.1  pgoyette ENUMDOC
   5033  1.1.1.1.2.1  pgoyette   This is a 5 bit reloc for the AVR that stores an I/O register
   5034  1.1.1.1.2.1  pgoyette   number for the SBIC, SBIS, SBI and CBI instructions
   5035          1.1  christos ENUM
   5036          1.1  christos   BFD_RELOC_RL78_NEG8
   5037          1.1  christos ENUMX
   5038          1.1  christos   BFD_RELOC_RL78_NEG16
   5039          1.1  christos ENUMX
   5040          1.1  christos   BFD_RELOC_RL78_NEG24
   5041          1.1  christos ENUMX
   5042          1.1  christos   BFD_RELOC_RL78_NEG32
   5043          1.1  christos ENUMX
   5044          1.1  christos   BFD_RELOC_RL78_16_OP
   5045          1.1  christos ENUMX
   5046          1.1  christos   BFD_RELOC_RL78_24_OP
   5047          1.1  christos ENUMX
   5048          1.1  christos   BFD_RELOC_RL78_32_OP
   5049          1.1  christos ENUMX
   5050          1.1  christos   BFD_RELOC_RL78_8U
   5051          1.1  christos ENUMX
   5052          1.1  christos   BFD_RELOC_RL78_16U
   5053          1.1  christos ENUMX
   5054          1.1  christos   BFD_RELOC_RL78_24U
   5055          1.1  christos ENUMX
   5056          1.1  christos   BFD_RELOC_RL78_DIR3U_PCREL
   5057          1.1  christos ENUMX
   5058          1.1  christos   BFD_RELOC_RL78_DIFF
   5059          1.1  christos ENUMX
   5060          1.1  christos   BFD_RELOC_RL78_GPRELB
   5061          1.1  christos ENUMX
   5062          1.1  christos   BFD_RELOC_RL78_GPRELW
   5063          1.1  christos ENUMX
   5064          1.1  christos   BFD_RELOC_RL78_GPRELL
   5065          1.1  christos ENUMX
   5066          1.1  christos   BFD_RELOC_RL78_SYM
   5067          1.1  christos ENUMX
   5068          1.1  christos   BFD_RELOC_RL78_OP_SUBTRACT
   5069          1.1  christos ENUMX
   5070          1.1  christos   BFD_RELOC_RL78_OP_NEG
   5071          1.1  christos ENUMX
   5072          1.1  christos   BFD_RELOC_RL78_OP_AND
   5073          1.1  christos ENUMX
   5074          1.1  christos   BFD_RELOC_RL78_OP_SHRA
   5075          1.1  christos ENUMX
   5076          1.1  christos   BFD_RELOC_RL78_ABS8
   5077          1.1  christos ENUMX
   5078          1.1  christos   BFD_RELOC_RL78_ABS16
   5079          1.1  christos ENUMX
   5080          1.1  christos   BFD_RELOC_RL78_ABS16_REV
   5081          1.1  christos ENUMX
   5082          1.1  christos   BFD_RELOC_RL78_ABS32
   5083          1.1  christos ENUMX
   5084          1.1  christos   BFD_RELOC_RL78_ABS32_REV
   5085          1.1  christos ENUMX
   5086          1.1  christos   BFD_RELOC_RL78_ABS16U
   5087          1.1  christos ENUMX
   5088          1.1  christos   BFD_RELOC_RL78_ABS16UW
   5089          1.1  christos ENUMX
   5090          1.1  christos   BFD_RELOC_RL78_ABS16UL
   5091          1.1  christos ENUMX
   5092          1.1  christos   BFD_RELOC_RL78_RELAX
   5093          1.1  christos ENUMX
   5094          1.1  christos   BFD_RELOC_RL78_HI16
   5095          1.1  christos ENUMX
   5096          1.1  christos   BFD_RELOC_RL78_HI8
   5097          1.1  christos ENUMX
   5098          1.1  christos   BFD_RELOC_RL78_LO16
   5099  1.1.1.1.2.1  pgoyette ENUMX
   5100  1.1.1.1.2.1  pgoyette   BFD_RELOC_RL78_CODE
   5101  1.1.1.1.2.1  pgoyette ENUMX
   5102  1.1.1.1.2.1  pgoyette   BFD_RELOC_RL78_SADDR
   5103          1.1  christos ENUMDOC
   5104          1.1  christos   Renesas RL78 Relocations.
   5105          1.1  christos 
   5106          1.1  christos ENUM
   5107          1.1  christos   BFD_RELOC_RX_NEG8
   5108          1.1  christos ENUMX
   5109          1.1  christos   BFD_RELOC_RX_NEG16
   5110          1.1  christos ENUMX
   5111          1.1  christos   BFD_RELOC_RX_NEG24
   5112          1.1  christos ENUMX
   5113          1.1  christos   BFD_RELOC_RX_NEG32
   5114          1.1  christos ENUMX
   5115          1.1  christos   BFD_RELOC_RX_16_OP
   5116          1.1  christos ENUMX
   5117          1.1  christos   BFD_RELOC_RX_24_OP
   5118          1.1  christos ENUMX
   5119          1.1  christos   BFD_RELOC_RX_32_OP
   5120          1.1  christos ENUMX
   5121          1.1  christos   BFD_RELOC_RX_8U
   5122          1.1  christos ENUMX
   5123          1.1  christos   BFD_RELOC_RX_16U
   5124          1.1  christos ENUMX
   5125          1.1  christos   BFD_RELOC_RX_24U
   5126          1.1  christos ENUMX
   5127          1.1  christos   BFD_RELOC_RX_DIR3U_PCREL
   5128          1.1  christos ENUMX
   5129          1.1  christos   BFD_RELOC_RX_DIFF
   5130          1.1  christos ENUMX
   5131          1.1  christos   BFD_RELOC_RX_GPRELB
   5132          1.1  christos ENUMX
   5133          1.1  christos   BFD_RELOC_RX_GPRELW
   5134          1.1  christos ENUMX
   5135          1.1  christos   BFD_RELOC_RX_GPRELL
   5136          1.1  christos ENUMX
   5137          1.1  christos   BFD_RELOC_RX_SYM
   5138          1.1  christos ENUMX
   5139          1.1  christos   BFD_RELOC_RX_OP_SUBTRACT
   5140          1.1  christos ENUMX
   5141          1.1  christos   BFD_RELOC_RX_OP_NEG
   5142          1.1  christos ENUMX
   5143          1.1  christos   BFD_RELOC_RX_ABS8
   5144          1.1  christos ENUMX
   5145          1.1  christos   BFD_RELOC_RX_ABS16
   5146          1.1  christos ENUMX
   5147          1.1  christos   BFD_RELOC_RX_ABS16_REV
   5148          1.1  christos ENUMX
   5149          1.1  christos   BFD_RELOC_RX_ABS32
   5150          1.1  christos ENUMX
   5151          1.1  christos   BFD_RELOC_RX_ABS32_REV
   5152          1.1  christos ENUMX
   5153          1.1  christos   BFD_RELOC_RX_ABS16U
   5154          1.1  christos ENUMX
   5155          1.1  christos   BFD_RELOC_RX_ABS16UW
   5156          1.1  christos ENUMX
   5157          1.1  christos   BFD_RELOC_RX_ABS16UL
   5158          1.1  christos ENUMX
   5159          1.1  christos   BFD_RELOC_RX_RELAX
   5160          1.1  christos ENUMDOC
   5161          1.1  christos   Renesas RX Relocations.
   5162          1.1  christos 
   5163          1.1  christos ENUM
   5164          1.1  christos   BFD_RELOC_390_12
   5165          1.1  christos ENUMDOC
   5166          1.1  christos    Direct 12 bit.
   5167          1.1  christos ENUM
   5168          1.1  christos   BFD_RELOC_390_GOT12
   5169          1.1  christos ENUMDOC
   5170          1.1  christos   12 bit GOT offset.
   5171          1.1  christos ENUM
   5172          1.1  christos   BFD_RELOC_390_PLT32
   5173          1.1  christos ENUMDOC
   5174          1.1  christos   32 bit PC relative PLT address.
   5175          1.1  christos ENUM
   5176          1.1  christos   BFD_RELOC_390_COPY
   5177          1.1  christos ENUMDOC
   5178          1.1  christos   Copy symbol at runtime.
   5179          1.1  christos ENUM
   5180          1.1  christos   BFD_RELOC_390_GLOB_DAT
   5181          1.1  christos ENUMDOC
   5182          1.1  christos   Create GOT entry.
   5183          1.1  christos ENUM
   5184          1.1  christos   BFD_RELOC_390_JMP_SLOT
   5185          1.1  christos ENUMDOC
   5186          1.1  christos   Create PLT entry.
   5187          1.1  christos ENUM
   5188          1.1  christos   BFD_RELOC_390_RELATIVE
   5189          1.1  christos ENUMDOC
   5190          1.1  christos   Adjust by program base.
   5191          1.1  christos ENUM
   5192          1.1  christos   BFD_RELOC_390_GOTPC
   5193          1.1  christos ENUMDOC
   5194          1.1  christos   32 bit PC relative offset to GOT.
   5195          1.1  christos ENUM
   5196          1.1  christos   BFD_RELOC_390_GOT16
   5197          1.1  christos ENUMDOC
   5198          1.1  christos   16 bit GOT offset.
   5199          1.1  christos ENUM
   5200  1.1.1.1.2.1  pgoyette   BFD_RELOC_390_PC12DBL
   5201  1.1.1.1.2.1  pgoyette ENUMDOC
   5202  1.1.1.1.2.1  pgoyette   PC relative 12 bit shifted by 1.
   5203  1.1.1.1.2.1  pgoyette ENUM
   5204  1.1.1.1.2.1  pgoyette   BFD_RELOC_390_PLT12DBL
   5205  1.1.1.1.2.1  pgoyette ENUMDOC
   5206  1.1.1.1.2.1  pgoyette   12 bit PC rel. PLT shifted by 1.
   5207  1.1.1.1.2.1  pgoyette ENUM
   5208          1.1  christos   BFD_RELOC_390_PC16DBL
   5209          1.1  christos ENUMDOC
   5210          1.1  christos   PC relative 16 bit shifted by 1.
   5211          1.1  christos ENUM
   5212          1.1  christos   BFD_RELOC_390_PLT16DBL
   5213          1.1  christos ENUMDOC
   5214          1.1  christos   16 bit PC rel. PLT shifted by 1.
   5215          1.1  christos ENUM
   5216  1.1.1.1.2.1  pgoyette   BFD_RELOC_390_PC24DBL
   5217  1.1.1.1.2.1  pgoyette ENUMDOC
   5218  1.1.1.1.2.1  pgoyette   PC relative 24 bit shifted by 1.
   5219  1.1.1.1.2.1  pgoyette ENUM
   5220  1.1.1.1.2.1  pgoyette   BFD_RELOC_390_PLT24DBL
   5221  1.1.1.1.2.1  pgoyette ENUMDOC
   5222  1.1.1.1.2.1  pgoyette   24 bit PC rel. PLT shifted by 1.
   5223  1.1.1.1.2.1  pgoyette ENUM
   5224          1.1  christos   BFD_RELOC_390_PC32DBL
   5225          1.1  christos ENUMDOC
   5226          1.1  christos   PC relative 32 bit shifted by 1.
   5227          1.1  christos ENUM
   5228          1.1  christos   BFD_RELOC_390_PLT32DBL
   5229          1.1  christos ENUMDOC
   5230          1.1  christos   32 bit PC rel. PLT shifted by 1.
   5231          1.1  christos ENUM
   5232          1.1  christos   BFD_RELOC_390_GOTPCDBL
   5233          1.1  christos ENUMDOC
   5234          1.1  christos   32 bit PC rel. GOT shifted by 1.
   5235          1.1  christos ENUM
   5236          1.1  christos   BFD_RELOC_390_GOT64
   5237          1.1  christos ENUMDOC
   5238          1.1  christos   64 bit GOT offset.
   5239          1.1  christos ENUM
   5240          1.1  christos   BFD_RELOC_390_PLT64
   5241          1.1  christos ENUMDOC
   5242          1.1  christos   64 bit PC relative PLT address.
   5243          1.1  christos ENUM
   5244          1.1  christos   BFD_RELOC_390_GOTENT
   5245          1.1  christos ENUMDOC
   5246          1.1  christos   32 bit rel. offset to GOT entry.
   5247          1.1  christos ENUM
   5248          1.1  christos   BFD_RELOC_390_GOTOFF64
   5249          1.1  christos ENUMDOC
   5250          1.1  christos   64 bit offset to GOT.
   5251          1.1  christos ENUM
   5252          1.1  christos   BFD_RELOC_390_GOTPLT12
   5253          1.1  christos ENUMDOC
   5254          1.1  christos   12-bit offset to symbol-entry within GOT, with PLT handling.
   5255          1.1  christos ENUM
   5256          1.1  christos   BFD_RELOC_390_GOTPLT16
   5257          1.1  christos ENUMDOC
   5258          1.1  christos   16-bit offset to symbol-entry within GOT, with PLT handling.
   5259          1.1  christos ENUM
   5260          1.1  christos   BFD_RELOC_390_GOTPLT32
   5261          1.1  christos ENUMDOC
   5262          1.1  christos   32-bit offset to symbol-entry within GOT, with PLT handling.
   5263          1.1  christos ENUM
   5264          1.1  christos   BFD_RELOC_390_GOTPLT64
   5265          1.1  christos ENUMDOC
   5266          1.1  christos   64-bit offset to symbol-entry within GOT, with PLT handling.
   5267          1.1  christos ENUM
   5268          1.1  christos   BFD_RELOC_390_GOTPLTENT
   5269          1.1  christos ENUMDOC
   5270          1.1  christos   32-bit rel. offset to symbol-entry within GOT, with PLT handling.
   5271          1.1  christos ENUM
   5272          1.1  christos   BFD_RELOC_390_PLTOFF16
   5273          1.1  christos ENUMDOC
   5274          1.1  christos   16-bit rel. offset from the GOT to a PLT entry.
   5275          1.1  christos ENUM
   5276          1.1  christos   BFD_RELOC_390_PLTOFF32
   5277          1.1  christos ENUMDOC
   5278          1.1  christos   32-bit rel. offset from the GOT to a PLT entry.
   5279          1.1  christos ENUM
   5280          1.1  christos   BFD_RELOC_390_PLTOFF64
   5281          1.1  christos ENUMDOC
   5282          1.1  christos   64-bit rel. offset from the GOT to a PLT entry.
   5283          1.1  christos 
   5284          1.1  christos ENUM
   5285          1.1  christos   BFD_RELOC_390_TLS_LOAD
   5286          1.1  christos ENUMX
   5287          1.1  christos   BFD_RELOC_390_TLS_GDCALL
   5288          1.1  christos ENUMX
   5289          1.1  christos   BFD_RELOC_390_TLS_LDCALL
   5290          1.1  christos ENUMX
   5291          1.1  christos   BFD_RELOC_390_TLS_GD32
   5292          1.1  christos ENUMX
   5293          1.1  christos   BFD_RELOC_390_TLS_GD64
   5294          1.1  christos ENUMX
   5295          1.1  christos   BFD_RELOC_390_TLS_GOTIE12
   5296          1.1  christos ENUMX
   5297          1.1  christos   BFD_RELOC_390_TLS_GOTIE32
   5298          1.1  christos ENUMX
   5299          1.1  christos   BFD_RELOC_390_TLS_GOTIE64
   5300          1.1  christos ENUMX
   5301          1.1  christos   BFD_RELOC_390_TLS_LDM32
   5302          1.1  christos ENUMX
   5303          1.1  christos   BFD_RELOC_390_TLS_LDM64
   5304          1.1  christos ENUMX
   5305          1.1  christos   BFD_RELOC_390_TLS_IE32
   5306          1.1  christos ENUMX
   5307          1.1  christos   BFD_RELOC_390_TLS_IE64
   5308          1.1  christos ENUMX
   5309          1.1  christos   BFD_RELOC_390_TLS_IEENT
   5310          1.1  christos ENUMX
   5311          1.1  christos   BFD_RELOC_390_TLS_LE32
   5312          1.1  christos ENUMX
   5313          1.1  christos   BFD_RELOC_390_TLS_LE64
   5314          1.1  christos ENUMX
   5315          1.1  christos   BFD_RELOC_390_TLS_LDO32
   5316          1.1  christos ENUMX
   5317          1.1  christos   BFD_RELOC_390_TLS_LDO64
   5318          1.1  christos ENUMX
   5319          1.1  christos   BFD_RELOC_390_TLS_DTPMOD
   5320          1.1  christos ENUMX
   5321          1.1  christos   BFD_RELOC_390_TLS_DTPOFF
   5322          1.1  christos ENUMX
   5323          1.1  christos   BFD_RELOC_390_TLS_TPOFF
   5324          1.1  christos ENUMDOC
   5325          1.1  christos   s390 tls relocations.
   5326          1.1  christos 
   5327          1.1  christos ENUM
   5328          1.1  christos   BFD_RELOC_390_20
   5329          1.1  christos ENUMX
   5330          1.1  christos   BFD_RELOC_390_GOT20
   5331          1.1  christos ENUMX
   5332          1.1  christos   BFD_RELOC_390_GOTPLT20
   5333          1.1  christos ENUMX
   5334          1.1  christos   BFD_RELOC_390_TLS_GOTIE20
   5335          1.1  christos ENUMDOC
   5336          1.1  christos   Long displacement extension.
   5337          1.1  christos 
   5338          1.1  christos ENUM
   5339          1.1  christos   BFD_RELOC_390_IRELATIVE
   5340          1.1  christos ENUMDOC
   5341          1.1  christos   STT_GNU_IFUNC relocation.
   5342          1.1  christos 
   5343          1.1  christos ENUM
   5344          1.1  christos   BFD_RELOC_SCORE_GPREL15
   5345          1.1  christos ENUMDOC
   5346          1.1  christos   Score relocations
   5347  1.1.1.1.2.1  pgoyette   Low 16 bit for load/store
   5348          1.1  christos ENUM
   5349          1.1  christos   BFD_RELOC_SCORE_DUMMY2
   5350          1.1  christos ENUMX
   5351          1.1  christos   BFD_RELOC_SCORE_JMP
   5352          1.1  christos ENUMDOC
   5353          1.1  christos   This is a 24-bit reloc with the right 1 bit assumed to be 0
   5354          1.1  christos ENUM
   5355          1.1  christos   BFD_RELOC_SCORE_BRANCH
   5356          1.1  christos ENUMDOC
   5357          1.1  christos   This is a 19-bit reloc with the right 1 bit assumed to be 0
   5358          1.1  christos ENUM
   5359          1.1  christos   BFD_RELOC_SCORE_IMM30
   5360          1.1  christos ENUMDOC
   5361          1.1  christos   This is a 32-bit reloc for 48-bit instructions.
   5362          1.1  christos ENUM
   5363          1.1  christos   BFD_RELOC_SCORE_IMM32
   5364          1.1  christos ENUMDOC
   5365          1.1  christos   This is a 32-bit reloc for 48-bit instructions.
   5366          1.1  christos ENUM
   5367          1.1  christos   BFD_RELOC_SCORE16_JMP
   5368          1.1  christos ENUMDOC
   5369          1.1  christos   This is a 11-bit reloc with the right 1 bit assumed to be 0
   5370          1.1  christos ENUM
   5371          1.1  christos   BFD_RELOC_SCORE16_BRANCH
   5372          1.1  christos ENUMDOC
   5373          1.1  christos   This is a 8-bit reloc with the right 1 bit assumed to be 0
   5374          1.1  christos ENUM
   5375          1.1  christos   BFD_RELOC_SCORE_BCMP
   5376          1.1  christos ENUMDOC
   5377          1.1  christos    This is a 9-bit reloc with the right 1 bit assumed to be 0
   5378          1.1  christos ENUM
   5379          1.1  christos   BFD_RELOC_SCORE_GOT15
   5380          1.1  christos ENUMX
   5381          1.1  christos   BFD_RELOC_SCORE_GOT_LO16
   5382          1.1  christos ENUMX
   5383          1.1  christos   BFD_RELOC_SCORE_CALL15
   5384          1.1  christos ENUMX
   5385          1.1  christos   BFD_RELOC_SCORE_DUMMY_HI16
   5386          1.1  christos ENUMDOC
   5387          1.1  christos   Undocumented Score relocs
   5388  1.1.1.1.2.1  pgoyette 
   5389          1.1  christos ENUM
   5390          1.1  christos   BFD_RELOC_IP2K_FR9
   5391          1.1  christos ENUMDOC
   5392          1.1  christos   Scenix IP2K - 9-bit register number / data address
   5393          1.1  christos ENUM
   5394          1.1  christos   BFD_RELOC_IP2K_BANK
   5395          1.1  christos ENUMDOC
   5396          1.1  christos   Scenix IP2K - 4-bit register/data bank number
   5397          1.1  christos ENUM
   5398          1.1  christos   BFD_RELOC_IP2K_ADDR16CJP
   5399          1.1  christos ENUMDOC
   5400          1.1  christos   Scenix IP2K - low 13 bits of instruction word address
   5401          1.1  christos ENUM
   5402          1.1  christos   BFD_RELOC_IP2K_PAGE3
   5403          1.1  christos ENUMDOC
   5404          1.1  christos   Scenix IP2K - high 3 bits of instruction word address
   5405          1.1  christos ENUM
   5406          1.1  christos   BFD_RELOC_IP2K_LO8DATA
   5407          1.1  christos ENUMX
   5408          1.1  christos   BFD_RELOC_IP2K_HI8DATA
   5409          1.1  christos ENUMX
   5410          1.1  christos   BFD_RELOC_IP2K_EX8DATA
   5411          1.1  christos ENUMDOC
   5412          1.1  christos   Scenix IP2K - ext/low/high 8 bits of data address
   5413          1.1  christos ENUM
   5414          1.1  christos   BFD_RELOC_IP2K_LO8INSN
   5415          1.1  christos ENUMX
   5416          1.1  christos   BFD_RELOC_IP2K_HI8INSN
   5417          1.1  christos ENUMDOC
   5418          1.1  christos   Scenix IP2K - low/high 8 bits of instruction word address
   5419          1.1  christos ENUM
   5420          1.1  christos   BFD_RELOC_IP2K_PC_SKIP
   5421          1.1  christos ENUMDOC
   5422          1.1  christos   Scenix IP2K - even/odd PC modifier to modify snb pcl.0
   5423          1.1  christos ENUM
   5424          1.1  christos   BFD_RELOC_IP2K_TEXT
   5425          1.1  christos ENUMDOC
   5426          1.1  christos   Scenix IP2K - 16 bit word address in text section.
   5427          1.1  christos ENUM
   5428          1.1  christos   BFD_RELOC_IP2K_FR_OFFSET
   5429          1.1  christos ENUMDOC
   5430          1.1  christos   Scenix IP2K - 7-bit sp or dp offset
   5431          1.1  christos ENUM
   5432          1.1  christos   BFD_RELOC_VPE4KMATH_DATA
   5433          1.1  christos ENUMX
   5434          1.1  christos   BFD_RELOC_VPE4KMATH_INSN
   5435          1.1  christos ENUMDOC
   5436          1.1  christos   Scenix VPE4K coprocessor - data/insn-space addressing
   5437          1.1  christos 
   5438          1.1  christos ENUM
   5439          1.1  christos   BFD_RELOC_VTABLE_INHERIT
   5440          1.1  christos ENUMX
   5441          1.1  christos   BFD_RELOC_VTABLE_ENTRY
   5442          1.1  christos ENUMDOC
   5443          1.1  christos   These two relocations are used by the linker to determine which of
   5444          1.1  christos   the entries in a C++ virtual function table are actually used.  When
   5445          1.1  christos   the --gc-sections option is given, the linker will zero out the entries
   5446          1.1  christos   that are not used, so that the code for those functions need not be
   5447          1.1  christos   included in the output.
   5448          1.1  christos 
   5449          1.1  christos   VTABLE_INHERIT is a zero-space relocation used to describe to the
   5450          1.1  christos   linker the inheritance tree of a C++ virtual function table.  The
   5451          1.1  christos   relocation's symbol should be the parent class' vtable, and the
   5452          1.1  christos   relocation should be located at the child vtable.
   5453          1.1  christos 
   5454          1.1  christos   VTABLE_ENTRY is a zero-space relocation that describes the use of a
   5455          1.1  christos   virtual function table entry.  The reloc's symbol should refer to the
   5456          1.1  christos   table of the class mentioned in the code.  Off of that base, an offset
   5457          1.1  christos   describes the entry that is being used.  For Rela hosts, this offset
   5458          1.1  christos   is stored in the reloc's addend.  For Rel hosts, we are forced to put
   5459          1.1  christos   this offset in the reloc's section offset.
   5460          1.1  christos 
   5461          1.1  christos ENUM
   5462          1.1  christos   BFD_RELOC_IA64_IMM14
   5463          1.1  christos ENUMX
   5464          1.1  christos   BFD_RELOC_IA64_IMM22
   5465          1.1  christos ENUMX
   5466          1.1  christos   BFD_RELOC_IA64_IMM64
   5467          1.1  christos ENUMX
   5468          1.1  christos   BFD_RELOC_IA64_DIR32MSB
   5469          1.1  christos ENUMX
   5470          1.1  christos   BFD_RELOC_IA64_DIR32LSB
   5471          1.1  christos ENUMX
   5472          1.1  christos   BFD_RELOC_IA64_DIR64MSB
   5473          1.1  christos ENUMX
   5474          1.1  christos   BFD_RELOC_IA64_DIR64LSB
   5475          1.1  christos ENUMX
   5476          1.1  christos   BFD_RELOC_IA64_GPREL22
   5477          1.1  christos ENUMX
   5478          1.1  christos   BFD_RELOC_IA64_GPREL64I
   5479          1.1  christos ENUMX
   5480          1.1  christos   BFD_RELOC_IA64_GPREL32MSB
   5481          1.1  christos ENUMX
   5482          1.1  christos   BFD_RELOC_IA64_GPREL32LSB
   5483          1.1  christos ENUMX
   5484          1.1  christos   BFD_RELOC_IA64_GPREL64MSB
   5485          1.1  christos ENUMX
   5486          1.1  christos   BFD_RELOC_IA64_GPREL64LSB
   5487          1.1  christos ENUMX
   5488          1.1  christos   BFD_RELOC_IA64_LTOFF22
   5489          1.1  christos ENUMX
   5490          1.1  christos   BFD_RELOC_IA64_LTOFF64I
   5491          1.1  christos ENUMX
   5492          1.1  christos   BFD_RELOC_IA64_PLTOFF22
   5493          1.1  christos ENUMX
   5494          1.1  christos   BFD_RELOC_IA64_PLTOFF64I
   5495          1.1  christos ENUMX
   5496          1.1  christos   BFD_RELOC_IA64_PLTOFF64MSB
   5497          1.1  christos ENUMX
   5498          1.1  christos   BFD_RELOC_IA64_PLTOFF64LSB
   5499          1.1  christos ENUMX
   5500          1.1  christos   BFD_RELOC_IA64_FPTR64I
   5501          1.1  christos ENUMX
   5502          1.1  christos   BFD_RELOC_IA64_FPTR32MSB
   5503          1.1  christos ENUMX
   5504          1.1  christos   BFD_RELOC_IA64_FPTR32LSB
   5505          1.1  christos ENUMX
   5506          1.1  christos   BFD_RELOC_IA64_FPTR64MSB
   5507          1.1  christos ENUMX
   5508          1.1  christos   BFD_RELOC_IA64_FPTR64LSB
   5509          1.1  christos ENUMX
   5510          1.1  christos   BFD_RELOC_IA64_PCREL21B
   5511          1.1  christos ENUMX
   5512          1.1  christos   BFD_RELOC_IA64_PCREL21BI
   5513          1.1  christos ENUMX
   5514          1.1  christos   BFD_RELOC_IA64_PCREL21M
   5515          1.1  christos ENUMX
   5516          1.1  christos   BFD_RELOC_IA64_PCREL21F
   5517          1.1  christos ENUMX
   5518          1.1  christos   BFD_RELOC_IA64_PCREL22
   5519          1.1  christos ENUMX
   5520          1.1  christos   BFD_RELOC_IA64_PCREL60B
   5521          1.1  christos ENUMX
   5522          1.1  christos   BFD_RELOC_IA64_PCREL64I
   5523          1.1  christos ENUMX
   5524          1.1  christos   BFD_RELOC_IA64_PCREL32MSB
   5525          1.1  christos ENUMX
   5526          1.1  christos   BFD_RELOC_IA64_PCREL32LSB
   5527          1.1  christos ENUMX
   5528          1.1  christos   BFD_RELOC_IA64_PCREL64MSB
   5529          1.1  christos ENUMX
   5530          1.1  christos   BFD_RELOC_IA64_PCREL64LSB
   5531          1.1  christos ENUMX
   5532          1.1  christos   BFD_RELOC_IA64_LTOFF_FPTR22
   5533          1.1  christos ENUMX
   5534          1.1  christos   BFD_RELOC_IA64_LTOFF_FPTR64I
   5535          1.1  christos ENUMX
   5536          1.1  christos   BFD_RELOC_IA64_LTOFF_FPTR32MSB
   5537          1.1  christos ENUMX
   5538          1.1  christos   BFD_RELOC_IA64_LTOFF_FPTR32LSB
   5539          1.1  christos ENUMX
   5540          1.1  christos   BFD_RELOC_IA64_LTOFF_FPTR64MSB
   5541          1.1  christos ENUMX
   5542          1.1  christos   BFD_RELOC_IA64_LTOFF_FPTR64LSB
   5543          1.1  christos ENUMX
   5544          1.1  christos   BFD_RELOC_IA64_SEGREL32MSB
   5545          1.1  christos ENUMX
   5546          1.1  christos   BFD_RELOC_IA64_SEGREL32LSB
   5547          1.1  christos ENUMX
   5548          1.1  christos   BFD_RELOC_IA64_SEGREL64MSB
   5549          1.1  christos ENUMX
   5550          1.1  christos   BFD_RELOC_IA64_SEGREL64LSB
   5551          1.1  christos ENUMX
   5552          1.1  christos   BFD_RELOC_IA64_SECREL32MSB
   5553          1.1  christos ENUMX
   5554          1.1  christos   BFD_RELOC_IA64_SECREL32LSB
   5555          1.1  christos ENUMX
   5556          1.1  christos   BFD_RELOC_IA64_SECREL64MSB
   5557          1.1  christos ENUMX
   5558          1.1  christos   BFD_RELOC_IA64_SECREL64LSB
   5559          1.1  christos ENUMX
   5560          1.1  christos   BFD_RELOC_IA64_REL32MSB
   5561          1.1  christos ENUMX
   5562          1.1  christos   BFD_RELOC_IA64_REL32LSB
   5563          1.1  christos ENUMX
   5564          1.1  christos   BFD_RELOC_IA64_REL64MSB
   5565          1.1  christos ENUMX
   5566          1.1  christos   BFD_RELOC_IA64_REL64LSB
   5567          1.1  christos ENUMX
   5568          1.1  christos   BFD_RELOC_IA64_LTV32MSB
   5569          1.1  christos ENUMX
   5570          1.1  christos   BFD_RELOC_IA64_LTV32LSB
   5571          1.1  christos ENUMX
   5572          1.1  christos   BFD_RELOC_IA64_LTV64MSB
   5573          1.1  christos ENUMX
   5574          1.1  christos   BFD_RELOC_IA64_LTV64LSB
   5575          1.1  christos ENUMX
   5576          1.1  christos   BFD_RELOC_IA64_IPLTMSB
   5577          1.1  christos ENUMX
   5578          1.1  christos   BFD_RELOC_IA64_IPLTLSB
   5579          1.1  christos ENUMX
   5580          1.1  christos   BFD_RELOC_IA64_COPY
   5581          1.1  christos ENUMX
   5582          1.1  christos   BFD_RELOC_IA64_LTOFF22X
   5583          1.1  christos ENUMX
   5584          1.1  christos   BFD_RELOC_IA64_LDXMOV
   5585          1.1  christos ENUMX
   5586          1.1  christos   BFD_RELOC_IA64_TPREL14
   5587          1.1  christos ENUMX
   5588          1.1  christos   BFD_RELOC_IA64_TPREL22
   5589          1.1  christos ENUMX
   5590          1.1  christos   BFD_RELOC_IA64_TPREL64I
   5591          1.1  christos ENUMX
   5592          1.1  christos   BFD_RELOC_IA64_TPREL64MSB
   5593          1.1  christos ENUMX
   5594          1.1  christos   BFD_RELOC_IA64_TPREL64LSB
   5595          1.1  christos ENUMX
   5596          1.1  christos   BFD_RELOC_IA64_LTOFF_TPREL22
   5597          1.1  christos ENUMX
   5598          1.1  christos   BFD_RELOC_IA64_DTPMOD64MSB
   5599          1.1  christos ENUMX
   5600          1.1  christos   BFD_RELOC_IA64_DTPMOD64LSB
   5601          1.1  christos ENUMX
   5602          1.1  christos   BFD_RELOC_IA64_LTOFF_DTPMOD22
   5603          1.1  christos ENUMX
   5604          1.1  christos   BFD_RELOC_IA64_DTPREL14
   5605          1.1  christos ENUMX
   5606          1.1  christos   BFD_RELOC_IA64_DTPREL22
   5607          1.1  christos ENUMX
   5608          1.1  christos   BFD_RELOC_IA64_DTPREL64I
   5609          1.1  christos ENUMX
   5610          1.1  christos   BFD_RELOC_IA64_DTPREL32MSB
   5611          1.1  christos ENUMX
   5612          1.1  christos   BFD_RELOC_IA64_DTPREL32LSB
   5613          1.1  christos ENUMX
   5614          1.1  christos   BFD_RELOC_IA64_DTPREL64MSB
   5615          1.1  christos ENUMX
   5616          1.1  christos   BFD_RELOC_IA64_DTPREL64LSB
   5617          1.1  christos ENUMX
   5618          1.1  christos   BFD_RELOC_IA64_LTOFF_DTPREL22
   5619          1.1  christos ENUMDOC
   5620          1.1  christos   Intel IA64 Relocations.
   5621          1.1  christos 
   5622          1.1  christos ENUM
   5623          1.1  christos   BFD_RELOC_M68HC11_HI8
   5624          1.1  christos ENUMDOC
   5625          1.1  christos   Motorola 68HC11 reloc.
   5626          1.1  christos   This is the 8 bit high part of an absolute address.
   5627          1.1  christos ENUM
   5628          1.1  christos   BFD_RELOC_M68HC11_LO8
   5629          1.1  christos ENUMDOC
   5630          1.1  christos   Motorola 68HC11 reloc.
   5631          1.1  christos   This is the 8 bit low part of an absolute address.
   5632          1.1  christos ENUM
   5633          1.1  christos   BFD_RELOC_M68HC11_3B
   5634          1.1  christos ENUMDOC
   5635          1.1  christos   Motorola 68HC11 reloc.
   5636          1.1  christos   This is the 3 bit of a value.
   5637          1.1  christos ENUM
   5638          1.1  christos   BFD_RELOC_M68HC11_RL_JUMP
   5639          1.1  christos ENUMDOC
   5640          1.1  christos   Motorola 68HC11 reloc.
   5641          1.1  christos   This reloc marks the beginning of a jump/call instruction.
   5642          1.1  christos   It is used for linker relaxation to correctly identify beginning
   5643          1.1  christos   of instruction and change some branches to use PC-relative
   5644          1.1  christos   addressing mode.
   5645          1.1  christos ENUM
   5646          1.1  christos   BFD_RELOC_M68HC11_RL_GROUP
   5647          1.1  christos ENUMDOC
   5648          1.1  christos   Motorola 68HC11 reloc.
   5649          1.1  christos   This reloc marks a group of several instructions that gcc generates
   5650          1.1  christos   and for which the linker relaxation pass can modify and/or remove
   5651          1.1  christos   some of them.
   5652          1.1  christos ENUM
   5653          1.1  christos   BFD_RELOC_M68HC11_LO16
   5654          1.1  christos ENUMDOC
   5655          1.1  christos   Motorola 68HC11 reloc.
   5656          1.1  christos   This is the 16-bit lower part of an address.  It is used for 'call'
   5657          1.1  christos   instruction to specify the symbol address without any special
   5658          1.1  christos   transformation (due to memory bank window).
   5659          1.1  christos ENUM
   5660          1.1  christos   BFD_RELOC_M68HC11_PAGE
   5661          1.1  christos ENUMDOC
   5662          1.1  christos   Motorola 68HC11 reloc.
   5663          1.1  christos   This is a 8-bit reloc that specifies the page number of an address.
   5664          1.1  christos   It is used by 'call' instruction to specify the page number of
   5665          1.1  christos   the symbol.
   5666          1.1  christos ENUM
   5667          1.1  christos   BFD_RELOC_M68HC11_24
   5668          1.1  christos ENUMDOC
   5669          1.1  christos   Motorola 68HC11 reloc.
   5670          1.1  christos   This is a 24-bit reloc that represents the address with a 16-bit
   5671          1.1  christos   value and a 8-bit page number.  The symbol address is transformed
   5672          1.1  christos   to follow the 16K memory bank of 68HC12 (seen as mapped in the window).
   5673          1.1  christos ENUM
   5674          1.1  christos   BFD_RELOC_M68HC12_5B
   5675          1.1  christos ENUMDOC
   5676          1.1  christos   Motorola 68HC12 reloc.
   5677          1.1  christos   This is the 5 bits of a value.
   5678          1.1  christos ENUM
   5679          1.1  christos   BFD_RELOC_XGATE_RL_JUMP
   5680          1.1  christos ENUMDOC
   5681          1.1  christos   Freescale XGATE reloc.
   5682          1.1  christos   This reloc marks the beginning of a bra/jal instruction.
   5683          1.1  christos ENUM
   5684          1.1  christos   BFD_RELOC_XGATE_RL_GROUP
   5685          1.1  christos ENUMDOC
   5686          1.1  christos   Freescale XGATE reloc.
   5687          1.1  christos   This reloc marks a group of several instructions that gcc generates
   5688          1.1  christos   and for which the linker relaxation pass can modify and/or remove
   5689          1.1  christos   some of them.
   5690          1.1  christos ENUM
   5691          1.1  christos   BFD_RELOC_XGATE_LO16
   5692          1.1  christos ENUMDOC
   5693          1.1  christos   Freescale XGATE reloc.
   5694          1.1  christos   This is the 16-bit lower part of an address.  It is used for the '16-bit'
   5695          1.1  christos   instructions.
   5696          1.1  christos ENUM
   5697          1.1  christos   BFD_RELOC_XGATE_GPAGE
   5698          1.1  christos ENUMDOC
   5699          1.1  christos   Freescale XGATE reloc.
   5700          1.1  christos ENUM
   5701          1.1  christos   BFD_RELOC_XGATE_24
   5702          1.1  christos ENUMDOC
   5703          1.1  christos   Freescale XGATE reloc.
   5704          1.1  christos ENUM
   5705          1.1  christos   BFD_RELOC_XGATE_PCREL_9
   5706          1.1  christos ENUMDOC
   5707          1.1  christos   Freescale XGATE reloc.
   5708          1.1  christos   This is a 9-bit pc-relative reloc.
   5709          1.1  christos ENUM
   5710          1.1  christos   BFD_RELOC_XGATE_PCREL_10
   5711          1.1  christos ENUMDOC
   5712          1.1  christos   Freescale XGATE reloc.
   5713          1.1  christos   This is a 10-bit pc-relative reloc.
   5714          1.1  christos ENUM
   5715          1.1  christos   BFD_RELOC_XGATE_IMM8_LO
   5716          1.1  christos ENUMDOC
   5717          1.1  christos   Freescale XGATE reloc.
   5718          1.1  christos   This is the 16-bit lower part of an address.  It is used for the '16-bit'
   5719          1.1  christos   instructions.
   5720          1.1  christos ENUM
   5721          1.1  christos   BFD_RELOC_XGATE_IMM8_HI
   5722          1.1  christos ENUMDOC
   5723          1.1  christos   Freescale XGATE reloc.
   5724          1.1  christos   This is the 16-bit higher part of an address.  It is used for the '16-bit'
   5725          1.1  christos   instructions.
   5726          1.1  christos ENUM
   5727          1.1  christos   BFD_RELOC_XGATE_IMM3
   5728          1.1  christos ENUMDOC
   5729          1.1  christos   Freescale XGATE reloc.
   5730          1.1  christos   This is a 3-bit pc-relative reloc.
   5731          1.1  christos ENUM
   5732          1.1  christos   BFD_RELOC_XGATE_IMM4
   5733          1.1  christos ENUMDOC
   5734          1.1  christos   Freescale XGATE reloc.
   5735          1.1  christos   This is a 4-bit pc-relative reloc.
   5736          1.1  christos ENUM
   5737          1.1  christos   BFD_RELOC_XGATE_IMM5
   5738          1.1  christos ENUMDOC
   5739          1.1  christos   Freescale XGATE reloc.
   5740          1.1  christos   This is a 5-bit pc-relative reloc.
   5741          1.1  christos ENUM
   5742          1.1  christos   BFD_RELOC_M68HC12_9B
   5743          1.1  christos ENUMDOC
   5744          1.1  christos   Motorola 68HC12 reloc.
   5745          1.1  christos   This is the 9 bits of a value.
   5746          1.1  christos ENUM
   5747          1.1  christos   BFD_RELOC_M68HC12_16B
   5748          1.1  christos ENUMDOC
   5749          1.1  christos   Motorola 68HC12 reloc.
   5750          1.1  christos   This is the 16 bits of a value.
   5751          1.1  christos ENUM
   5752          1.1  christos   BFD_RELOC_M68HC12_9_PCREL
   5753          1.1  christos ENUMDOC
   5754          1.1  christos   Motorola 68HC12/XGATE reloc.
   5755          1.1  christos   This is a PCREL9 branch.
   5756          1.1  christos ENUM
   5757          1.1  christos   BFD_RELOC_M68HC12_10_PCREL
   5758          1.1  christos ENUMDOC
   5759          1.1  christos   Motorola 68HC12/XGATE reloc.
   5760          1.1  christos   This is a PCREL10 branch.
   5761          1.1  christos ENUM
   5762          1.1  christos   BFD_RELOC_M68HC12_LO8XG
   5763          1.1  christos ENUMDOC
   5764          1.1  christos   Motorola 68HC12/XGATE reloc.
   5765          1.1  christos   This is the 8 bit low part of an absolute address and immediately precedes
   5766          1.1  christos   a matching HI8XG part.
   5767          1.1  christos ENUM
   5768          1.1  christos   BFD_RELOC_M68HC12_HI8XG
   5769          1.1  christos ENUMDOC
   5770          1.1  christos   Motorola 68HC12/XGATE reloc.
   5771          1.1  christos   This is the 8 bit high part of an absolute address and immediately follows
   5772          1.1  christos   a matching LO8XG part.
   5773          1.1  christos ENUM
   5774          1.1  christos   BFD_RELOC_16C_NUM08
   5775          1.1  christos ENUMX
   5776          1.1  christos   BFD_RELOC_16C_NUM08_C
   5777          1.1  christos ENUMX
   5778          1.1  christos   BFD_RELOC_16C_NUM16
   5779          1.1  christos ENUMX
   5780          1.1  christos   BFD_RELOC_16C_NUM16_C
   5781          1.1  christos ENUMX
   5782          1.1  christos   BFD_RELOC_16C_NUM32
   5783          1.1  christos ENUMX
   5784          1.1  christos   BFD_RELOC_16C_NUM32_C
   5785          1.1  christos ENUMX
   5786          1.1  christos   BFD_RELOC_16C_DISP04
   5787          1.1  christos ENUMX
   5788          1.1  christos   BFD_RELOC_16C_DISP04_C
   5789          1.1  christos ENUMX
   5790          1.1  christos   BFD_RELOC_16C_DISP08
   5791          1.1  christos ENUMX
   5792          1.1  christos   BFD_RELOC_16C_DISP08_C
   5793          1.1  christos ENUMX
   5794          1.1  christos   BFD_RELOC_16C_DISP16
   5795          1.1  christos ENUMX
   5796          1.1  christos   BFD_RELOC_16C_DISP16_C
   5797          1.1  christos ENUMX
   5798          1.1  christos   BFD_RELOC_16C_DISP24
   5799          1.1  christos ENUMX
   5800          1.1  christos   BFD_RELOC_16C_DISP24_C
   5801          1.1  christos ENUMX
   5802          1.1  christos   BFD_RELOC_16C_DISP24a
   5803          1.1  christos ENUMX
   5804          1.1  christos   BFD_RELOC_16C_DISP24a_C
   5805          1.1  christos ENUMX
   5806          1.1  christos   BFD_RELOC_16C_REG04
   5807          1.1  christos ENUMX
   5808          1.1  christos   BFD_RELOC_16C_REG04_C
   5809          1.1  christos ENUMX
   5810          1.1  christos   BFD_RELOC_16C_REG04a
   5811          1.1  christos ENUMX
   5812          1.1  christos   BFD_RELOC_16C_REG04a_C
   5813          1.1  christos ENUMX
   5814          1.1  christos   BFD_RELOC_16C_REG14
   5815          1.1  christos ENUMX
   5816          1.1  christos   BFD_RELOC_16C_REG14_C
   5817          1.1  christos ENUMX
   5818          1.1  christos   BFD_RELOC_16C_REG16
   5819          1.1  christos ENUMX
   5820          1.1  christos   BFD_RELOC_16C_REG16_C
   5821          1.1  christos ENUMX
   5822          1.1  christos   BFD_RELOC_16C_REG20
   5823          1.1  christos ENUMX
   5824          1.1  christos   BFD_RELOC_16C_REG20_C
   5825          1.1  christos ENUMX
   5826          1.1  christos   BFD_RELOC_16C_ABS20
   5827          1.1  christos ENUMX
   5828          1.1  christos   BFD_RELOC_16C_ABS20_C
   5829          1.1  christos ENUMX
   5830          1.1  christos   BFD_RELOC_16C_ABS24
   5831          1.1  christos ENUMX
   5832          1.1  christos   BFD_RELOC_16C_ABS24_C
   5833          1.1  christos ENUMX
   5834          1.1  christos   BFD_RELOC_16C_IMM04
   5835          1.1  christos ENUMX
   5836          1.1  christos   BFD_RELOC_16C_IMM04_C
   5837          1.1  christos ENUMX
   5838          1.1  christos   BFD_RELOC_16C_IMM16
   5839          1.1  christos ENUMX
   5840          1.1  christos   BFD_RELOC_16C_IMM16_C
   5841          1.1  christos ENUMX
   5842          1.1  christos   BFD_RELOC_16C_IMM20
   5843          1.1  christos ENUMX
   5844          1.1  christos   BFD_RELOC_16C_IMM20_C
   5845          1.1  christos ENUMX
   5846          1.1  christos   BFD_RELOC_16C_IMM24
   5847          1.1  christos ENUMX
   5848          1.1  christos   BFD_RELOC_16C_IMM24_C
   5849          1.1  christos ENUMX
   5850          1.1  christos   BFD_RELOC_16C_IMM32
   5851          1.1  christos ENUMX
   5852          1.1  christos   BFD_RELOC_16C_IMM32_C
   5853          1.1  christos ENUMDOC
   5854          1.1  christos   NS CR16C Relocations.
   5855          1.1  christos 
   5856          1.1  christos ENUM
   5857          1.1  christos   BFD_RELOC_CR16_NUM8
   5858          1.1  christos ENUMX
   5859          1.1  christos   BFD_RELOC_CR16_NUM16
   5860          1.1  christos ENUMX
   5861          1.1  christos   BFD_RELOC_CR16_NUM32
   5862          1.1  christos ENUMX
   5863          1.1  christos   BFD_RELOC_CR16_NUM32a
   5864          1.1  christos ENUMX
   5865          1.1  christos   BFD_RELOC_CR16_REGREL0
   5866          1.1  christos ENUMX
   5867          1.1  christos   BFD_RELOC_CR16_REGREL4
   5868          1.1  christos ENUMX
   5869          1.1  christos   BFD_RELOC_CR16_REGREL4a
   5870          1.1  christos ENUMX
   5871          1.1  christos   BFD_RELOC_CR16_REGREL14
   5872          1.1  christos ENUMX
   5873          1.1  christos   BFD_RELOC_CR16_REGREL14a
   5874          1.1  christos ENUMX
   5875          1.1  christos   BFD_RELOC_CR16_REGREL16
   5876          1.1  christos ENUMX
   5877          1.1  christos   BFD_RELOC_CR16_REGREL20
   5878          1.1  christos ENUMX
   5879          1.1  christos   BFD_RELOC_CR16_REGREL20a
   5880          1.1  christos ENUMX
   5881          1.1  christos   BFD_RELOC_CR16_ABS20
   5882          1.1  christos ENUMX
   5883          1.1  christos   BFD_RELOC_CR16_ABS24
   5884          1.1  christos ENUMX
   5885          1.1  christos   BFD_RELOC_CR16_IMM4
   5886          1.1  christos ENUMX
   5887          1.1  christos   BFD_RELOC_CR16_IMM8
   5888          1.1  christos ENUMX
   5889          1.1  christos   BFD_RELOC_CR16_IMM16
   5890          1.1  christos ENUMX
   5891          1.1  christos   BFD_RELOC_CR16_IMM20
   5892          1.1  christos ENUMX
   5893          1.1  christos   BFD_RELOC_CR16_IMM24
   5894          1.1  christos ENUMX
   5895          1.1  christos   BFD_RELOC_CR16_IMM32
   5896          1.1  christos ENUMX
   5897          1.1  christos   BFD_RELOC_CR16_IMM32a
   5898          1.1  christos ENUMX
   5899          1.1  christos   BFD_RELOC_CR16_DISP4
   5900          1.1  christos ENUMX
   5901          1.1  christos   BFD_RELOC_CR16_DISP8
   5902          1.1  christos ENUMX
   5903          1.1  christos   BFD_RELOC_CR16_DISP16
   5904          1.1  christos ENUMX
   5905          1.1  christos   BFD_RELOC_CR16_DISP20
   5906          1.1  christos ENUMX
   5907          1.1  christos   BFD_RELOC_CR16_DISP24
   5908          1.1  christos ENUMX
   5909          1.1  christos   BFD_RELOC_CR16_DISP24a
   5910          1.1  christos ENUMX
   5911          1.1  christos   BFD_RELOC_CR16_SWITCH8
   5912          1.1  christos ENUMX
   5913          1.1  christos   BFD_RELOC_CR16_SWITCH16
   5914          1.1  christos ENUMX
   5915          1.1  christos   BFD_RELOC_CR16_SWITCH32
   5916          1.1  christos ENUMX
   5917          1.1  christos   BFD_RELOC_CR16_GOT_REGREL20
   5918          1.1  christos ENUMX
   5919          1.1  christos   BFD_RELOC_CR16_GOTC_REGREL20
   5920          1.1  christos ENUMX
   5921          1.1  christos   BFD_RELOC_CR16_GLOB_DAT
   5922          1.1  christos ENUMDOC
   5923          1.1  christos   NS CR16 Relocations.
   5924          1.1  christos 
   5925          1.1  christos ENUM
   5926          1.1  christos   BFD_RELOC_CRX_REL4
   5927          1.1  christos ENUMX
   5928          1.1  christos   BFD_RELOC_CRX_REL8
   5929          1.1  christos ENUMX
   5930          1.1  christos   BFD_RELOC_CRX_REL8_CMP
   5931          1.1  christos ENUMX
   5932          1.1  christos   BFD_RELOC_CRX_REL16
   5933          1.1  christos ENUMX
   5934          1.1  christos   BFD_RELOC_CRX_REL24
   5935          1.1  christos ENUMX
   5936          1.1  christos   BFD_RELOC_CRX_REL32
   5937          1.1  christos ENUMX
   5938          1.1  christos   BFD_RELOC_CRX_REGREL12
   5939          1.1  christos ENUMX
   5940          1.1  christos   BFD_RELOC_CRX_REGREL22
   5941          1.1  christos ENUMX
   5942          1.1  christos   BFD_RELOC_CRX_REGREL28
   5943          1.1  christos ENUMX
   5944          1.1  christos   BFD_RELOC_CRX_REGREL32
   5945          1.1  christos ENUMX
   5946          1.1  christos   BFD_RELOC_CRX_ABS16
   5947          1.1  christos ENUMX
   5948          1.1  christos   BFD_RELOC_CRX_ABS32
   5949          1.1  christos ENUMX
   5950          1.1  christos   BFD_RELOC_CRX_NUM8
   5951          1.1  christos ENUMX
   5952          1.1  christos   BFD_RELOC_CRX_NUM16
   5953          1.1  christos ENUMX
   5954          1.1  christos   BFD_RELOC_CRX_NUM32
   5955          1.1  christos ENUMX
   5956          1.1  christos   BFD_RELOC_CRX_IMM16
   5957          1.1  christos ENUMX
   5958          1.1  christos   BFD_RELOC_CRX_IMM32
   5959          1.1  christos ENUMX
   5960          1.1  christos   BFD_RELOC_CRX_SWITCH8
   5961          1.1  christos ENUMX
   5962          1.1  christos   BFD_RELOC_CRX_SWITCH16
   5963          1.1  christos ENUMX
   5964          1.1  christos   BFD_RELOC_CRX_SWITCH32
   5965          1.1  christos ENUMDOC
   5966          1.1  christos   NS CRX Relocations.
   5967          1.1  christos 
   5968          1.1  christos ENUM
   5969          1.1  christos   BFD_RELOC_CRIS_BDISP8
   5970          1.1  christos ENUMX
   5971          1.1  christos   BFD_RELOC_CRIS_UNSIGNED_5
   5972          1.1  christos ENUMX
   5973          1.1  christos   BFD_RELOC_CRIS_SIGNED_6
   5974          1.1  christos ENUMX
   5975          1.1  christos   BFD_RELOC_CRIS_UNSIGNED_6
   5976          1.1  christos ENUMX
   5977          1.1  christos   BFD_RELOC_CRIS_SIGNED_8
   5978          1.1  christos ENUMX
   5979          1.1  christos   BFD_RELOC_CRIS_UNSIGNED_8
   5980          1.1  christos ENUMX
   5981          1.1  christos   BFD_RELOC_CRIS_SIGNED_16
   5982          1.1  christos ENUMX
   5983          1.1  christos   BFD_RELOC_CRIS_UNSIGNED_16
   5984          1.1  christos ENUMX
   5985          1.1  christos   BFD_RELOC_CRIS_LAPCQ_OFFSET
   5986          1.1  christos ENUMX
   5987          1.1  christos   BFD_RELOC_CRIS_UNSIGNED_4
   5988          1.1  christos ENUMDOC
   5989          1.1  christos   These relocs are only used within the CRIS assembler.  They are not
   5990          1.1  christos   (at present) written to any object files.
   5991          1.1  christos ENUM
   5992          1.1  christos   BFD_RELOC_CRIS_COPY
   5993          1.1  christos ENUMX
   5994          1.1  christos   BFD_RELOC_CRIS_GLOB_DAT
   5995          1.1  christos ENUMX
   5996          1.1  christos   BFD_RELOC_CRIS_JUMP_SLOT
   5997          1.1  christos ENUMX
   5998          1.1  christos   BFD_RELOC_CRIS_RELATIVE
   5999          1.1  christos ENUMDOC
   6000          1.1  christos   Relocs used in ELF shared libraries for CRIS.
   6001          1.1  christos ENUM
   6002          1.1  christos   BFD_RELOC_CRIS_32_GOT
   6003          1.1  christos ENUMDOC
   6004          1.1  christos   32-bit offset to symbol-entry within GOT.
   6005          1.1  christos ENUM
   6006          1.1  christos   BFD_RELOC_CRIS_16_GOT
   6007          1.1  christos ENUMDOC
   6008          1.1  christos   16-bit offset to symbol-entry within GOT.
   6009          1.1  christos ENUM
   6010          1.1  christos   BFD_RELOC_CRIS_32_GOTPLT
   6011          1.1  christos ENUMDOC
   6012          1.1  christos   32-bit offset to symbol-entry within GOT, with PLT handling.
   6013          1.1  christos ENUM
   6014          1.1  christos   BFD_RELOC_CRIS_16_GOTPLT
   6015          1.1  christos ENUMDOC
   6016          1.1  christos   16-bit offset to symbol-entry within GOT, with PLT handling.
   6017          1.1  christos ENUM
   6018          1.1  christos   BFD_RELOC_CRIS_32_GOTREL
   6019          1.1  christos ENUMDOC
   6020          1.1  christos   32-bit offset to symbol, relative to GOT.
   6021          1.1  christos ENUM
   6022          1.1  christos   BFD_RELOC_CRIS_32_PLT_GOTREL
   6023          1.1  christos ENUMDOC
   6024          1.1  christos   32-bit offset to symbol with PLT entry, relative to GOT.
   6025          1.1  christos ENUM
   6026          1.1  christos   BFD_RELOC_CRIS_32_PLT_PCREL
   6027          1.1  christos ENUMDOC
   6028          1.1  christos   32-bit offset to symbol with PLT entry, relative to this relocation.
   6029          1.1  christos 
   6030          1.1  christos ENUM
   6031          1.1  christos   BFD_RELOC_CRIS_32_GOT_GD
   6032          1.1  christos ENUMX
   6033          1.1  christos   BFD_RELOC_CRIS_16_GOT_GD
   6034          1.1  christos ENUMX
   6035          1.1  christos   BFD_RELOC_CRIS_32_GD
   6036          1.1  christos ENUMX
   6037          1.1  christos   BFD_RELOC_CRIS_DTP
   6038          1.1  christos ENUMX
   6039          1.1  christos   BFD_RELOC_CRIS_32_DTPREL
   6040          1.1  christos ENUMX
   6041          1.1  christos   BFD_RELOC_CRIS_16_DTPREL
   6042          1.1  christos ENUMX
   6043          1.1  christos   BFD_RELOC_CRIS_32_GOT_TPREL
   6044          1.1  christos ENUMX
   6045          1.1  christos   BFD_RELOC_CRIS_16_GOT_TPREL
   6046          1.1  christos ENUMX
   6047          1.1  christos   BFD_RELOC_CRIS_32_TPREL
   6048          1.1  christos ENUMX
   6049          1.1  christos   BFD_RELOC_CRIS_16_TPREL
   6050          1.1  christos ENUMX
   6051          1.1  christos   BFD_RELOC_CRIS_DTPMOD
   6052          1.1  christos ENUMX
   6053          1.1  christos   BFD_RELOC_CRIS_32_IE
   6054          1.1  christos ENUMDOC
   6055          1.1  christos   Relocs used in TLS code for CRIS.
   6056          1.1  christos 
   6057          1.1  christos ENUM
   6058          1.1  christos   BFD_RELOC_860_COPY
   6059          1.1  christos ENUMX
   6060          1.1  christos   BFD_RELOC_860_GLOB_DAT
   6061          1.1  christos ENUMX
   6062          1.1  christos   BFD_RELOC_860_JUMP_SLOT
   6063          1.1  christos ENUMX
   6064          1.1  christos   BFD_RELOC_860_RELATIVE
   6065          1.1  christos ENUMX
   6066          1.1  christos   BFD_RELOC_860_PC26
   6067          1.1  christos ENUMX
   6068          1.1  christos   BFD_RELOC_860_PLT26
   6069          1.1  christos ENUMX
   6070          1.1  christos   BFD_RELOC_860_PC16
   6071          1.1  christos ENUMX
   6072          1.1  christos   BFD_RELOC_860_LOW0
   6073          1.1  christos ENUMX
   6074          1.1  christos   BFD_RELOC_860_SPLIT0
   6075          1.1  christos ENUMX
   6076          1.1  christos   BFD_RELOC_860_LOW1
   6077          1.1  christos ENUMX
   6078          1.1  christos   BFD_RELOC_860_SPLIT1
   6079          1.1  christos ENUMX
   6080          1.1  christos   BFD_RELOC_860_LOW2
   6081          1.1  christos ENUMX
   6082          1.1  christos   BFD_RELOC_860_SPLIT2
   6083          1.1  christos ENUMX
   6084          1.1  christos   BFD_RELOC_860_LOW3
   6085          1.1  christos ENUMX
   6086          1.1  christos   BFD_RELOC_860_LOGOT0
   6087          1.1  christos ENUMX
   6088          1.1  christos   BFD_RELOC_860_SPGOT0
   6089          1.1  christos ENUMX
   6090          1.1  christos   BFD_RELOC_860_LOGOT1
   6091          1.1  christos ENUMX
   6092          1.1  christos   BFD_RELOC_860_SPGOT1
   6093          1.1  christos ENUMX
   6094          1.1  christos   BFD_RELOC_860_LOGOTOFF0
   6095          1.1  christos ENUMX
   6096          1.1  christos   BFD_RELOC_860_SPGOTOFF0
   6097          1.1  christos ENUMX
   6098          1.1  christos   BFD_RELOC_860_LOGOTOFF1
   6099          1.1  christos ENUMX
   6100          1.1  christos   BFD_RELOC_860_SPGOTOFF1
   6101          1.1  christos ENUMX
   6102          1.1  christos   BFD_RELOC_860_LOGOTOFF2
   6103          1.1  christos ENUMX
   6104          1.1  christos   BFD_RELOC_860_LOGOTOFF3
   6105          1.1  christos ENUMX
   6106          1.1  christos   BFD_RELOC_860_LOPC
   6107          1.1  christos ENUMX
   6108          1.1  christos   BFD_RELOC_860_HIGHADJ
   6109          1.1  christos ENUMX
   6110          1.1  christos   BFD_RELOC_860_HAGOT
   6111          1.1  christos ENUMX
   6112          1.1  christos   BFD_RELOC_860_HAGOTOFF
   6113          1.1  christos ENUMX
   6114          1.1  christos   BFD_RELOC_860_HAPC
   6115          1.1  christos ENUMX
   6116          1.1  christos   BFD_RELOC_860_HIGH
   6117          1.1  christos ENUMX
   6118          1.1  christos   BFD_RELOC_860_HIGOT
   6119          1.1  christos ENUMX
   6120          1.1  christos   BFD_RELOC_860_HIGOTOFF
   6121          1.1  christos ENUMDOC
   6122          1.1  christos   Intel i860 Relocations.
   6123          1.1  christos 
   6124          1.1  christos ENUM
   6125  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_REL_26
   6126          1.1  christos ENUMX
   6127  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_GOTPC_HI16
   6128          1.1  christos ENUMX
   6129  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_GOTPC_LO16
   6130          1.1  christos ENUMX
   6131  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_GOT16
   6132          1.1  christos ENUMX
   6133  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_PLT26
   6134          1.1  christos ENUMX
   6135  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_GOTOFF_HI16
   6136          1.1  christos ENUMX
   6137  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_GOTOFF_LO16
   6138          1.1  christos ENUMX
   6139  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_COPY
   6140          1.1  christos ENUMX
   6141  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_GLOB_DAT
   6142  1.1.1.1.2.1  pgoyette ENUMX
   6143  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_JMP_SLOT
   6144  1.1.1.1.2.1  pgoyette ENUMX
   6145  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_RELATIVE
   6146  1.1.1.1.2.1  pgoyette ENUMX
   6147  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_GD_HI16
   6148  1.1.1.1.2.1  pgoyette ENUMX
   6149  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_GD_LO16
   6150  1.1.1.1.2.1  pgoyette ENUMX
   6151  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_LDM_HI16
   6152  1.1.1.1.2.1  pgoyette ENUMX
   6153  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_LDM_LO16
   6154  1.1.1.1.2.1  pgoyette ENUMX
   6155  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_LDO_HI16
   6156  1.1.1.1.2.1  pgoyette ENUMX
   6157  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_LDO_LO16
   6158  1.1.1.1.2.1  pgoyette ENUMX
   6159  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_IE_HI16
   6160  1.1.1.1.2.1  pgoyette ENUMX
   6161  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_IE_LO16
   6162  1.1.1.1.2.1  pgoyette ENUMX
   6163  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_LE_HI16
   6164  1.1.1.1.2.1  pgoyette ENUMX
   6165  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_LE_LO16
   6166  1.1.1.1.2.1  pgoyette ENUMX
   6167  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_TPOFF
   6168  1.1.1.1.2.1  pgoyette ENUMX
   6169  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_DTPOFF
   6170  1.1.1.1.2.1  pgoyette ENUMX
   6171  1.1.1.1.2.1  pgoyette   BFD_RELOC_OR1K_TLS_DTPMOD
   6172  1.1.1.1.2.1  pgoyette ENUMDOC
   6173  1.1.1.1.2.1  pgoyette   OpenRISC 1000 Relocations.
   6174  1.1.1.1.2.1  pgoyette 
   6175  1.1.1.1.2.1  pgoyette ENUM
   6176  1.1.1.1.2.1  pgoyette   BFD_RELOC_H8_DIR16A8
   6177  1.1.1.1.2.1  pgoyette ENUMX
   6178  1.1.1.1.2.1  pgoyette   BFD_RELOC_H8_DIR16R8
   6179  1.1.1.1.2.1  pgoyette ENUMX
   6180  1.1.1.1.2.1  pgoyette   BFD_RELOC_H8_DIR24A8
   6181  1.1.1.1.2.1  pgoyette ENUMX
   6182  1.1.1.1.2.1  pgoyette   BFD_RELOC_H8_DIR24R8
   6183  1.1.1.1.2.1  pgoyette ENUMX
   6184  1.1.1.1.2.1  pgoyette   BFD_RELOC_H8_DIR32A16
   6185  1.1.1.1.2.1  pgoyette ENUMX
   6186  1.1.1.1.2.1  pgoyette   BFD_RELOC_H8_DISP32A16
   6187  1.1.1.1.2.1  pgoyette ENUMDOC
   6188  1.1.1.1.2.1  pgoyette   H8 elf Relocations.
   6189  1.1.1.1.2.1  pgoyette 
   6190  1.1.1.1.2.1  pgoyette ENUM
   6191  1.1.1.1.2.1  pgoyette   BFD_RELOC_XSTORMY16_REL_12
   6192  1.1.1.1.2.1  pgoyette ENUMX
   6193  1.1.1.1.2.1  pgoyette   BFD_RELOC_XSTORMY16_12
   6194  1.1.1.1.2.1  pgoyette ENUMX
   6195  1.1.1.1.2.1  pgoyette   BFD_RELOC_XSTORMY16_24
   6196  1.1.1.1.2.1  pgoyette ENUMX
   6197  1.1.1.1.2.1  pgoyette   BFD_RELOC_XSTORMY16_FPTR16
   6198  1.1.1.1.2.1  pgoyette ENUMDOC
   6199  1.1.1.1.2.1  pgoyette   Sony Xstormy16 Relocations.
   6200  1.1.1.1.2.1  pgoyette 
   6201  1.1.1.1.2.1  pgoyette ENUM
   6202  1.1.1.1.2.1  pgoyette   BFD_RELOC_RELC
   6203          1.1  christos ENUMDOC
   6204          1.1  christos   Self-describing complex relocations.
   6205          1.1  christos COMMENT
   6206          1.1  christos 
   6207          1.1  christos ENUM
   6208          1.1  christos   BFD_RELOC_XC16X_PAG
   6209          1.1  christos ENUMX
   6210          1.1  christos   BFD_RELOC_XC16X_POF
   6211          1.1  christos ENUMX
   6212          1.1  christos   BFD_RELOC_XC16X_SEG
   6213          1.1  christos ENUMX
   6214          1.1  christos   BFD_RELOC_XC16X_SOF
   6215          1.1  christos ENUMDOC
   6216          1.1  christos   Infineon Relocations.
   6217          1.1  christos 
   6218          1.1  christos ENUM
   6219          1.1  christos   BFD_RELOC_VAX_GLOB_DAT
   6220          1.1  christos ENUMX
   6221          1.1  christos   BFD_RELOC_VAX_JMP_SLOT
   6222          1.1  christos ENUMX
   6223          1.1  christos   BFD_RELOC_VAX_RELATIVE
   6224          1.1  christos ENUMDOC
   6225          1.1  christos   Relocations used by VAX ELF.
   6226          1.1  christos 
   6227          1.1  christos ENUM
   6228          1.1  christos   BFD_RELOC_MT_PC16
   6229          1.1  christos ENUMDOC
   6230          1.1  christos   Morpho MT - 16 bit immediate relocation.
   6231          1.1  christos ENUM
   6232          1.1  christos   BFD_RELOC_MT_HI16
   6233          1.1  christos ENUMDOC
   6234          1.1  christos   Morpho MT - Hi 16 bits of an address.
   6235          1.1  christos ENUM
   6236          1.1  christos   BFD_RELOC_MT_LO16
   6237          1.1  christos ENUMDOC
   6238          1.1  christos   Morpho MT - Low 16 bits of an address.
   6239          1.1  christos ENUM
   6240          1.1  christos   BFD_RELOC_MT_GNU_VTINHERIT
   6241          1.1  christos ENUMDOC
   6242          1.1  christos   Morpho MT - Used to tell the linker which vtable entries are used.
   6243          1.1  christos ENUM
   6244          1.1  christos   BFD_RELOC_MT_GNU_VTENTRY
   6245          1.1  christos ENUMDOC
   6246          1.1  christos   Morpho MT - Used to tell the linker which vtable entries are used.
   6247          1.1  christos ENUM
   6248          1.1  christos   BFD_RELOC_MT_PCINSN8
   6249          1.1  christos ENUMDOC
   6250          1.1  christos   Morpho MT - 8 bit immediate relocation.
   6251          1.1  christos 
   6252          1.1  christos ENUM
   6253          1.1  christos   BFD_RELOC_MSP430_10_PCREL
   6254          1.1  christos ENUMX
   6255          1.1  christos   BFD_RELOC_MSP430_16_PCREL
   6256          1.1  christos ENUMX
   6257          1.1  christos   BFD_RELOC_MSP430_16
   6258          1.1  christos ENUMX
   6259          1.1  christos   BFD_RELOC_MSP430_16_PCREL_BYTE
   6260          1.1  christos ENUMX
   6261          1.1  christos   BFD_RELOC_MSP430_16_BYTE
   6262          1.1  christos ENUMX
   6263          1.1  christos   BFD_RELOC_MSP430_2X_PCREL
   6264          1.1  christos ENUMX
   6265          1.1  christos   BFD_RELOC_MSP430_RL_PCREL
   6266  1.1.1.1.2.1  pgoyette ENUMX
   6267  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430_ABS8
   6268  1.1.1.1.2.1  pgoyette ENUMX
   6269  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_PCR20_EXT_SRC
   6270  1.1.1.1.2.1  pgoyette ENUMX
   6271  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_PCR20_EXT_DST
   6272  1.1.1.1.2.1  pgoyette ENUMX
   6273  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_PCR20_EXT_ODST
   6274  1.1.1.1.2.1  pgoyette ENUMX
   6275  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_ABS20_EXT_SRC
   6276  1.1.1.1.2.1  pgoyette ENUMX
   6277  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_ABS20_EXT_DST
   6278  1.1.1.1.2.1  pgoyette ENUMX
   6279  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_ABS20_EXT_ODST
   6280  1.1.1.1.2.1  pgoyette ENUMX
   6281  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_ABS20_ADR_SRC
   6282  1.1.1.1.2.1  pgoyette ENUMX
   6283  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_ABS20_ADR_DST
   6284  1.1.1.1.2.1  pgoyette ENUMX
   6285  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_PCR16
   6286  1.1.1.1.2.1  pgoyette ENUMX
   6287  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_PCR20_CALL
   6288  1.1.1.1.2.1  pgoyette ENUMX
   6289  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430X_ABS16
   6290  1.1.1.1.2.1  pgoyette ENUMX
   6291  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430_ABS_HI16
   6292  1.1.1.1.2.1  pgoyette ENUMX
   6293  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430_PREL31
   6294  1.1.1.1.2.1  pgoyette ENUMX
   6295  1.1.1.1.2.1  pgoyette   BFD_RELOC_MSP430_SYM_DIFF
   6296          1.1  christos ENUMDOC
   6297          1.1  christos   msp430 specific relocation codes
   6298          1.1  christos 
   6299          1.1  christos ENUM
   6300  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_S16
   6301  1.1.1.1.2.1  pgoyette ENUMX
   6302  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_U16
   6303  1.1.1.1.2.1  pgoyette ENUMX
   6304  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_CALL26
   6305  1.1.1.1.2.1  pgoyette ENUMX
   6306  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_IMM5
   6307  1.1.1.1.2.1  pgoyette ENUMX
   6308  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_CACHE_OPX
   6309  1.1.1.1.2.1  pgoyette ENUMX
   6310  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_IMM6
   6311  1.1.1.1.2.1  pgoyette ENUMX
   6312  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_IMM8
   6313  1.1.1.1.2.1  pgoyette ENUMX
   6314  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_HI16
   6315  1.1.1.1.2.1  pgoyette ENUMX
   6316  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_LO16
   6317  1.1.1.1.2.1  pgoyette ENUMX
   6318  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_HIADJ16
   6319  1.1.1.1.2.1  pgoyette ENUMX
   6320  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_GPREL
   6321  1.1.1.1.2.1  pgoyette ENUMX
   6322  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_UJMP
   6323  1.1.1.1.2.1  pgoyette ENUMX
   6324  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_CJMP
   6325  1.1.1.1.2.1  pgoyette ENUMX
   6326  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_CALLR
   6327  1.1.1.1.2.1  pgoyette ENUMX
   6328  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_ALIGN
   6329  1.1.1.1.2.1  pgoyette ENUMX
   6330  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_GOT16
   6331  1.1.1.1.2.1  pgoyette ENUMX
   6332  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_CALL16
   6333  1.1.1.1.2.1  pgoyette ENUMX
   6334  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_GOTOFF_LO
   6335  1.1.1.1.2.1  pgoyette ENUMX
   6336  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_GOTOFF_HA
   6337  1.1.1.1.2.1  pgoyette ENUMX
   6338  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_PCREL_LO
   6339  1.1.1.1.2.1  pgoyette ENUMX
   6340  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_PCREL_HA
   6341  1.1.1.1.2.1  pgoyette ENUMX
   6342  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_TLS_GD16
   6343  1.1.1.1.2.1  pgoyette ENUMX
   6344  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_TLS_LDM16
   6345  1.1.1.1.2.1  pgoyette ENUMX
   6346  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_TLS_LDO16
   6347  1.1.1.1.2.1  pgoyette ENUMX
   6348  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_TLS_IE16
   6349  1.1.1.1.2.1  pgoyette ENUMX
   6350  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_TLS_LE16
   6351  1.1.1.1.2.1  pgoyette ENUMX
   6352  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_TLS_DTPMOD
   6353  1.1.1.1.2.1  pgoyette ENUMX
   6354  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_TLS_DTPREL
   6355  1.1.1.1.2.1  pgoyette ENUMX
   6356  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_TLS_TPREL
   6357  1.1.1.1.2.1  pgoyette ENUMX
   6358  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_COPY
   6359  1.1.1.1.2.1  pgoyette ENUMX
   6360  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_GLOB_DAT
   6361  1.1.1.1.2.1  pgoyette ENUMX
   6362  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_JUMP_SLOT
   6363  1.1.1.1.2.1  pgoyette ENUMX
   6364  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_RELATIVE
   6365  1.1.1.1.2.1  pgoyette ENUMX
   6366  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_GOTOFF
   6367  1.1.1.1.2.1  pgoyette ENUMX
   6368  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_CALL26_NOAT
   6369  1.1.1.1.2.1  pgoyette ENUMX
   6370  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_GOT_LO
   6371  1.1.1.1.2.1  pgoyette ENUMX
   6372  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_GOT_HA
   6373  1.1.1.1.2.1  pgoyette ENUMX
   6374  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_CALL_LO
   6375  1.1.1.1.2.1  pgoyette ENUMX
   6376  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_CALL_HA
   6377  1.1.1.1.2.1  pgoyette ENUMX
   6378  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_S12
   6379  1.1.1.1.2.1  pgoyette ENUMX
   6380  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_I10_1_PCREL
   6381  1.1.1.1.2.1  pgoyette ENUMX
   6382  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_T1I7_1_PCREL
   6383  1.1.1.1.2.1  pgoyette ENUMX
   6384  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_T1I7_2
   6385  1.1.1.1.2.1  pgoyette ENUMX
   6386  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_T2I4
   6387  1.1.1.1.2.1  pgoyette ENUMX
   6388  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_T2I4_1
   6389  1.1.1.1.2.1  pgoyette ENUMX
   6390  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_T2I4_2
   6391  1.1.1.1.2.1  pgoyette ENUMX
   6392  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_X1I7_2
   6393  1.1.1.1.2.1  pgoyette ENUMX
   6394  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_X2L5
   6395  1.1.1.1.2.1  pgoyette ENUMX
   6396  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_F1I5_2
   6397  1.1.1.1.2.1  pgoyette ENUMX
   6398  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_L5I4X1
   6399  1.1.1.1.2.1  pgoyette ENUMX
   6400  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_T1X1I6
   6401  1.1.1.1.2.1  pgoyette ENUMX
   6402  1.1.1.1.2.1  pgoyette   BFD_RELOC_NIOS2_R2_T1X1I6_2
   6403  1.1.1.1.2.1  pgoyette ENUMDOC
   6404  1.1.1.1.2.1  pgoyette   Relocations used by the Altera Nios II core.
   6405  1.1.1.1.2.1  pgoyette 
   6406  1.1.1.1.2.1  pgoyette ENUM
   6407          1.1  christos   BFD_RELOC_IQ2000_OFFSET_16
   6408          1.1  christos ENUMX
   6409          1.1  christos   BFD_RELOC_IQ2000_OFFSET_21
   6410          1.1  christos ENUMX
   6411          1.1  christos   BFD_RELOC_IQ2000_UHI16
   6412          1.1  christos ENUMDOC
   6413          1.1  christos   IQ2000 Relocations.
   6414          1.1  christos 
   6415          1.1  christos ENUM
   6416          1.1  christos   BFD_RELOC_XTENSA_RTLD
   6417          1.1  christos ENUMDOC
   6418          1.1  christos   Special Xtensa relocation used only by PLT entries in ELF shared
   6419          1.1  christos   objects to indicate that the runtime linker should set the value
   6420          1.1  christos   to one of its own internal functions or data structures.
   6421          1.1  christos ENUM
   6422          1.1  christos   BFD_RELOC_XTENSA_GLOB_DAT
   6423          1.1  christos ENUMX
   6424          1.1  christos   BFD_RELOC_XTENSA_JMP_SLOT
   6425          1.1  christos ENUMX
   6426          1.1  christos   BFD_RELOC_XTENSA_RELATIVE
   6427          1.1  christos ENUMDOC
   6428          1.1  christos   Xtensa relocations for ELF shared objects.
   6429          1.1  christos ENUM
   6430          1.1  christos   BFD_RELOC_XTENSA_PLT
   6431          1.1  christos ENUMDOC
   6432          1.1  christos   Xtensa relocation used in ELF object files for symbols that may require
   6433          1.1  christos   PLT entries.  Otherwise, this is just a generic 32-bit relocation.
   6434          1.1  christos ENUM
   6435          1.1  christos   BFD_RELOC_XTENSA_DIFF8
   6436          1.1  christos ENUMX
   6437          1.1  christos   BFD_RELOC_XTENSA_DIFF16
   6438          1.1  christos ENUMX
   6439          1.1  christos   BFD_RELOC_XTENSA_DIFF32
   6440          1.1  christos ENUMDOC
   6441          1.1  christos   Xtensa relocations to mark the difference of two local symbols.
   6442          1.1  christos   These are only needed to support linker relaxation and can be ignored
   6443          1.1  christos   when not relaxing.  The field is set to the value of the difference
   6444          1.1  christos   assuming no relaxation.  The relocation encodes the position of the
   6445          1.1  christos   first symbol so the linker can determine whether to adjust the field
   6446          1.1  christos   value.
   6447          1.1  christos ENUM
   6448          1.1  christos   BFD_RELOC_XTENSA_SLOT0_OP
   6449          1.1  christos ENUMX
   6450          1.1  christos   BFD_RELOC_XTENSA_SLOT1_OP
   6451          1.1  christos ENUMX
   6452          1.1  christos   BFD_RELOC_XTENSA_SLOT2_OP
   6453          1.1  christos ENUMX
   6454          1.1  christos   BFD_RELOC_XTENSA_SLOT3_OP
   6455          1.1  christos ENUMX
   6456          1.1  christos   BFD_RELOC_XTENSA_SLOT4_OP
   6457          1.1  christos ENUMX
   6458          1.1  christos   BFD_RELOC_XTENSA_SLOT5_OP
   6459          1.1  christos ENUMX
   6460          1.1  christos   BFD_RELOC_XTENSA_SLOT6_OP
   6461          1.1  christos ENUMX
   6462          1.1  christos   BFD_RELOC_XTENSA_SLOT7_OP
   6463          1.1  christos ENUMX
   6464          1.1  christos   BFD_RELOC_XTENSA_SLOT8_OP
   6465          1.1  christos ENUMX
   6466          1.1  christos   BFD_RELOC_XTENSA_SLOT9_OP
   6467          1.1  christos ENUMX
   6468          1.1  christos   BFD_RELOC_XTENSA_SLOT10_OP
   6469          1.1  christos ENUMX
   6470          1.1  christos   BFD_RELOC_XTENSA_SLOT11_OP
   6471          1.1  christos ENUMX
   6472          1.1  christos   BFD_RELOC_XTENSA_SLOT12_OP
   6473          1.1  christos ENUMX
   6474          1.1  christos   BFD_RELOC_XTENSA_SLOT13_OP
   6475          1.1  christos ENUMX
   6476          1.1  christos   BFD_RELOC_XTENSA_SLOT14_OP
   6477          1.1  christos ENUMDOC
   6478          1.1  christos   Generic Xtensa relocations for instruction operands.  Only the slot
   6479          1.1  christos   number is encoded in the relocation.  The relocation applies to the
   6480          1.1  christos   last PC-relative immediate operand, or if there are no PC-relative
   6481          1.1  christos   immediates, to the last immediate operand.
   6482          1.1  christos ENUM
   6483          1.1  christos   BFD_RELOC_XTENSA_SLOT0_ALT
   6484          1.1  christos ENUMX
   6485          1.1  christos   BFD_RELOC_XTENSA_SLOT1_ALT
   6486          1.1  christos ENUMX
   6487          1.1  christos   BFD_RELOC_XTENSA_SLOT2_ALT
   6488          1.1  christos ENUMX
   6489          1.1  christos   BFD_RELOC_XTENSA_SLOT3_ALT
   6490          1.1  christos ENUMX
   6491          1.1  christos   BFD_RELOC_XTENSA_SLOT4_ALT
   6492          1.1  christos ENUMX
   6493          1.1  christos   BFD_RELOC_XTENSA_SLOT5_ALT
   6494          1.1  christos ENUMX
   6495          1.1  christos   BFD_RELOC_XTENSA_SLOT6_ALT
   6496          1.1  christos ENUMX
   6497          1.1  christos   BFD_RELOC_XTENSA_SLOT7_ALT
   6498          1.1  christos ENUMX
   6499          1.1  christos   BFD_RELOC_XTENSA_SLOT8_ALT
   6500          1.1  christos ENUMX
   6501          1.1  christos   BFD_RELOC_XTENSA_SLOT9_ALT
   6502          1.1  christos ENUMX
   6503          1.1  christos   BFD_RELOC_XTENSA_SLOT10_ALT
   6504          1.1  christos ENUMX
   6505          1.1  christos   BFD_RELOC_XTENSA_SLOT11_ALT
   6506          1.1  christos ENUMX
   6507          1.1  christos   BFD_RELOC_XTENSA_SLOT12_ALT
   6508          1.1  christos ENUMX
   6509          1.1  christos   BFD_RELOC_XTENSA_SLOT13_ALT
   6510          1.1  christos ENUMX
   6511          1.1  christos   BFD_RELOC_XTENSA_SLOT14_ALT
   6512          1.1  christos ENUMDOC
   6513          1.1  christos   Alternate Xtensa relocations.  Only the slot is encoded in the
   6514          1.1  christos   relocation.  The meaning of these relocations is opcode-specific.
   6515          1.1  christos ENUM
   6516          1.1  christos   BFD_RELOC_XTENSA_OP0
   6517          1.1  christos ENUMX
   6518          1.1  christos   BFD_RELOC_XTENSA_OP1
   6519          1.1  christos ENUMX
   6520          1.1  christos   BFD_RELOC_XTENSA_OP2
   6521          1.1  christos ENUMDOC
   6522          1.1  christos   Xtensa relocations for backward compatibility.  These have all been
   6523          1.1  christos   replaced by BFD_RELOC_XTENSA_SLOT0_OP.
   6524          1.1  christos ENUM
   6525          1.1  christos   BFD_RELOC_XTENSA_ASM_EXPAND
   6526          1.1  christos ENUMDOC
   6527          1.1  christos   Xtensa relocation to mark that the assembler expanded the
   6528          1.1  christos   instructions from an original target.  The expansion size is
   6529          1.1  christos   encoded in the reloc size.
   6530          1.1  christos ENUM
   6531          1.1  christos   BFD_RELOC_XTENSA_ASM_SIMPLIFY
   6532          1.1  christos ENUMDOC
   6533          1.1  christos   Xtensa relocation to mark that the linker should simplify
   6534          1.1  christos   assembler-expanded instructions.  This is commonly used
   6535          1.1  christos   internally by the linker after analysis of a
   6536          1.1  christos   BFD_RELOC_XTENSA_ASM_EXPAND.
   6537          1.1  christos ENUM
   6538          1.1  christos   BFD_RELOC_XTENSA_TLSDESC_FN
   6539          1.1  christos ENUMX
   6540          1.1  christos   BFD_RELOC_XTENSA_TLSDESC_ARG
   6541          1.1  christos ENUMX
   6542          1.1  christos   BFD_RELOC_XTENSA_TLS_DTPOFF
   6543          1.1  christos ENUMX
   6544          1.1  christos   BFD_RELOC_XTENSA_TLS_TPOFF
   6545          1.1  christos ENUMX
   6546          1.1  christos   BFD_RELOC_XTENSA_TLS_FUNC
   6547          1.1  christos ENUMX
   6548          1.1  christos   BFD_RELOC_XTENSA_TLS_ARG
   6549          1.1  christos ENUMX
   6550          1.1  christos   BFD_RELOC_XTENSA_TLS_CALL
   6551          1.1  christos ENUMDOC
   6552          1.1  christos   Xtensa TLS relocations.
   6553          1.1  christos 
   6554          1.1  christos ENUM
   6555          1.1  christos   BFD_RELOC_Z80_DISP8
   6556          1.1  christos ENUMDOC
   6557          1.1  christos   8 bit signed offset in (ix+d) or (iy+d).
   6558          1.1  christos 
   6559          1.1  christos ENUM
   6560          1.1  christos   BFD_RELOC_Z8K_DISP7
   6561          1.1  christos ENUMDOC
   6562          1.1  christos   DJNZ offset.
   6563          1.1  christos ENUM
   6564          1.1  christos   BFD_RELOC_Z8K_CALLR
   6565          1.1  christos ENUMDOC
   6566          1.1  christos   CALR offset.
   6567          1.1  christos ENUM
   6568          1.1  christos   BFD_RELOC_Z8K_IMM4L
   6569          1.1  christos ENUMDOC
   6570          1.1  christos   4 bit value.
   6571          1.1  christos 
   6572          1.1  christos ENUM
   6573          1.1  christos    BFD_RELOC_LM32_CALL
   6574          1.1  christos ENUMX
   6575          1.1  christos    BFD_RELOC_LM32_BRANCH
   6576          1.1  christos ENUMX
   6577          1.1  christos    BFD_RELOC_LM32_16_GOT
   6578          1.1  christos ENUMX
   6579          1.1  christos    BFD_RELOC_LM32_GOTOFF_HI16
   6580          1.1  christos ENUMX
   6581          1.1  christos    BFD_RELOC_LM32_GOTOFF_LO16
   6582          1.1  christos ENUMX
   6583          1.1  christos    BFD_RELOC_LM32_COPY
   6584          1.1  christos ENUMX
   6585          1.1  christos    BFD_RELOC_LM32_GLOB_DAT
   6586          1.1  christos ENUMX
   6587          1.1  christos    BFD_RELOC_LM32_JMP_SLOT
   6588          1.1  christos ENUMX
   6589          1.1  christos    BFD_RELOC_LM32_RELATIVE
   6590          1.1  christos ENUMDOC
   6591          1.1  christos  Lattice Mico32 relocations.
   6592          1.1  christos 
   6593          1.1  christos ENUM
   6594          1.1  christos   BFD_RELOC_MACH_O_SECTDIFF
   6595          1.1  christos ENUMDOC
   6596          1.1  christos   Difference between two section addreses.  Must be followed by a
   6597          1.1  christos   BFD_RELOC_MACH_O_PAIR.
   6598          1.1  christos ENUM
   6599          1.1  christos   BFD_RELOC_MACH_O_LOCAL_SECTDIFF
   6600          1.1  christos ENUMDOC
   6601          1.1  christos   Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol.
   6602          1.1  christos ENUM
   6603          1.1  christos   BFD_RELOC_MACH_O_PAIR
   6604          1.1  christos ENUMDOC
   6605          1.1  christos   Pair of relocation.  Contains the first symbol.
   6606          1.1  christos 
   6607          1.1  christos ENUM
   6608          1.1  christos   BFD_RELOC_MACH_O_X86_64_BRANCH32
   6609          1.1  christos ENUMX
   6610          1.1  christos   BFD_RELOC_MACH_O_X86_64_BRANCH8
   6611          1.1  christos ENUMDOC
   6612          1.1  christos   PCREL relocations.  They are marked as branch to create PLT entry if
   6613          1.1  christos   required.
   6614          1.1  christos ENUM
   6615          1.1  christos   BFD_RELOC_MACH_O_X86_64_GOT
   6616          1.1  christos ENUMDOC
   6617          1.1  christos   Used when referencing a GOT entry.
   6618          1.1  christos ENUM
   6619          1.1  christos   BFD_RELOC_MACH_O_X86_64_GOT_LOAD
   6620          1.1  christos ENUMDOC
   6621          1.1  christos   Used when loading a GOT entry with movq.  It is specially marked so that
   6622          1.1  christos   the linker could optimize the movq to a leaq if possible.
   6623          1.1  christos ENUM
   6624          1.1  christos   BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32
   6625          1.1  christos ENUMDOC
   6626          1.1  christos   Symbol will be substracted.  Must be followed by a BFD_RELOC_64.
   6627          1.1  christos ENUM
   6628          1.1  christos   BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64
   6629          1.1  christos ENUMDOC
   6630          1.1  christos   Symbol will be substracted.  Must be followed by a BFD_RELOC_64.
   6631          1.1  christos ENUM
   6632          1.1  christos   BFD_RELOC_MACH_O_X86_64_PCREL32_1
   6633          1.1  christos ENUMDOC
   6634          1.1  christos   Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.
   6635          1.1  christos ENUM
   6636          1.1  christos   BFD_RELOC_MACH_O_X86_64_PCREL32_2
   6637          1.1  christos ENUMDOC
   6638          1.1  christos   Same as BFD_RELOC_32_PCREL but with an implicit -2 addend.
   6639          1.1  christos ENUM
   6640          1.1  christos   BFD_RELOC_MACH_O_X86_64_PCREL32_4
   6641          1.1  christos ENUMDOC
   6642          1.1  christos   Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.
   6643          1.1  christos 
   6644          1.1  christos ENUM
   6645          1.1  christos   BFD_RELOC_MICROBLAZE_32_LO
   6646          1.1  christos ENUMDOC
   6647  1.1.1.1.2.1  pgoyette   This is a 32 bit reloc for the microblaze that stores the
   6648          1.1  christos   low 16 bits of a value
   6649          1.1  christos ENUM
   6650          1.1  christos   BFD_RELOC_MICROBLAZE_32_LO_PCREL
   6651          1.1  christos ENUMDOC
   6652  1.1.1.1.2.1  pgoyette   This is a 32 bit pc-relative reloc for the microblaze that
   6653          1.1  christos   stores the low 16 bits of a value
   6654          1.1  christos ENUM
   6655          1.1  christos   BFD_RELOC_MICROBLAZE_32_ROSDA
   6656          1.1  christos ENUMDOC
   6657  1.1.1.1.2.1  pgoyette   This is a 32 bit reloc for the microblaze that stores a
   6658          1.1  christos   value relative to the read-only small data area anchor
   6659          1.1  christos ENUM
   6660          1.1  christos   BFD_RELOC_MICROBLAZE_32_RWSDA
   6661          1.1  christos ENUMDOC
   6662  1.1.1.1.2.1  pgoyette   This is a 32 bit reloc for the microblaze that stores a
   6663          1.1  christos   value relative to the read-write small data area anchor
   6664          1.1  christos ENUM
   6665          1.1  christos   BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM
   6666          1.1  christos ENUMDOC
   6667  1.1.1.1.2.1  pgoyette   This is a 32 bit reloc for the microblaze to handle
   6668          1.1  christos   expressions of the form "Symbol Op Symbol"
   6669          1.1  christos ENUM
   6670          1.1  christos   BFD_RELOC_MICROBLAZE_64_NONE
   6671          1.1  christos ENUMDOC
   6672  1.1.1.1.2.1  pgoyette   This is a 64 bit reloc that stores the 32 bit pc relative
   6673  1.1.1.1.2.1  pgoyette   value in two words (with an imm instruction).  No relocation is
   6674          1.1  christos   done here - only used for relaxing
   6675          1.1  christos ENUM
   6676          1.1  christos   BFD_RELOC_MICROBLAZE_64_GOTPC
   6677          1.1  christos ENUMDOC
   6678  1.1.1.1.2.1  pgoyette   This is a 64 bit reloc that stores the 32 bit pc relative
   6679          1.1  christos   value in two words (with an imm instruction).  The relocation is
   6680          1.1  christos   PC-relative GOT offset
   6681          1.1  christos ENUM
   6682          1.1  christos   BFD_RELOC_MICROBLAZE_64_GOT
   6683          1.1  christos ENUMDOC
   6684  1.1.1.1.2.1  pgoyette   This is a 64 bit reloc that stores the 32 bit pc relative
   6685          1.1  christos   value in two words (with an imm instruction).  The relocation is
   6686          1.1  christos   GOT offset
   6687          1.1  christos ENUM
   6688          1.1  christos   BFD_RELOC_MICROBLAZE_64_PLT
   6689          1.1  christos ENUMDOC
   6690  1.1.1.1.2.1  pgoyette   This is a 64 bit reloc that stores the 32 bit pc relative
   6691          1.1  christos   value in two words (with an imm instruction).  The relocation is
   6692          1.1  christos   PC-relative offset into PLT
   6693          1.1  christos ENUM
   6694          1.1  christos   BFD_RELOC_MICROBLAZE_64_GOTOFF
   6695          1.1  christos ENUMDOC
   6696  1.1.1.1.2.1  pgoyette   This is a 64 bit reloc that stores the 32 bit GOT relative
   6697          1.1  christos   value in two words (with an imm instruction).  The relocation is
   6698          1.1  christos   relative offset from _GLOBAL_OFFSET_TABLE_
   6699          1.1  christos ENUM
   6700          1.1  christos   BFD_RELOC_MICROBLAZE_32_GOTOFF
   6701          1.1  christos ENUMDOC
   6702  1.1.1.1.2.1  pgoyette   This is a 32 bit reloc that stores the 32 bit GOT relative
   6703  1.1.1.1.2.1  pgoyette   value in a word.  The relocation is relative offset from
   6704          1.1  christos   _GLOBAL_OFFSET_TABLE_
   6705          1.1  christos ENUM
   6706          1.1  christos   BFD_RELOC_MICROBLAZE_COPY
   6707          1.1  christos ENUMDOC
   6708          1.1  christos   This is used to tell the dynamic linker to copy the value out of
   6709          1.1  christos   the dynamic object into the runtime process image.
   6710  1.1.1.1.2.1  pgoyette ENUM
   6711  1.1.1.1.2.1  pgoyette   BFD_RELOC_MICROBLAZE_64_TLS
   6712  1.1.1.1.2.1  pgoyette ENUMDOC
   6713  1.1.1.1.2.1  pgoyette   Unused Reloc
   6714  1.1.1.1.2.1  pgoyette ENUM
   6715  1.1.1.1.2.1  pgoyette   BFD_RELOC_MICROBLAZE_64_TLSGD
   6716  1.1.1.1.2.1  pgoyette ENUMDOC
   6717  1.1.1.1.2.1  pgoyette   This is a 64 bit reloc that stores the 32 bit GOT relative value
   6718  1.1.1.1.2.1  pgoyette   of the GOT TLS GD info entry in two words (with an imm instruction). The
   6719  1.1.1.1.2.1  pgoyette   relocation is GOT offset.
   6720  1.1.1.1.2.1  pgoyette ENUM
   6721  1.1.1.1.2.1  pgoyette   BFD_RELOC_MICROBLAZE_64_TLSLD
   6722  1.1.1.1.2.1  pgoyette ENUMDOC
   6723  1.1.1.1.2.1  pgoyette   This is a 64 bit reloc that stores the 32 bit GOT relative value
   6724  1.1.1.1.2.1  pgoyette   of the GOT TLS LD info entry in two words (with an imm instruction). The
   6725  1.1.1.1.2.1  pgoyette   relocation is GOT offset.
   6726  1.1.1.1.2.1  pgoyette ENUM
   6727  1.1.1.1.2.1  pgoyette   BFD_RELOC_MICROBLAZE_32_TLSDTPMOD
   6728  1.1.1.1.2.1  pgoyette ENUMDOC
   6729  1.1.1.1.2.1  pgoyette   This is a 32 bit reloc that stores the Module ID to GOT(n).
   6730  1.1.1.1.2.1  pgoyette ENUM
   6731  1.1.1.1.2.1  pgoyette   BFD_RELOC_MICROBLAZE_32_TLSDTPREL
   6732  1.1.1.1.2.1  pgoyette ENUMDOC
   6733  1.1.1.1.2.1  pgoyette   This is a 32 bit reloc that stores TLS offset to GOT(n+1).
   6734  1.1.1.1.2.1  pgoyette ENUM
   6735  1.1.1.1.2.1  pgoyette   BFD_RELOC_MICROBLAZE_64_TLSDTPREL
   6736  1.1.1.1.2.1  pgoyette ENUMDOC
   6737  1.1.1.1.2.1  pgoyette   This is a 32 bit reloc for storing TLS offset to two words (uses imm
   6738  1.1.1.1.2.1  pgoyette   instruction)
   6739  1.1.1.1.2.1  pgoyette ENUM
   6740  1.1.1.1.2.1  pgoyette   BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL
   6741  1.1.1.1.2.1  pgoyette ENUMDOC
   6742  1.1.1.1.2.1  pgoyette   This is a 64 bit reloc that stores 32-bit thread pointer relative offset
   6743  1.1.1.1.2.1  pgoyette   to two words (uses imm instruction).
   6744  1.1.1.1.2.1  pgoyette ENUM
   6745  1.1.1.1.2.1  pgoyette   BFD_RELOC_MICROBLAZE_64_TLSTPREL
   6746  1.1.1.1.2.1  pgoyette ENUMDOC
   6747  1.1.1.1.2.1  pgoyette   This is a 64 bit reloc that stores 32-bit thread pointer relative offset
   6748  1.1.1.1.2.1  pgoyette   to two words (uses imm instruction).
   6749          1.1  christos 
   6750          1.1  christos ENUM
   6751  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_RELOC_START
   6752          1.1  christos ENUMDOC
   6753  1.1.1.1.2.1  pgoyette   AArch64 pseudo relocation code to mark the start of the AArch64
   6754  1.1.1.1.2.1  pgoyette   relocation enumerators.  N.B. the order of the enumerators is
   6755  1.1.1.1.2.1  pgoyette   important as several tables in the AArch64 bfd backend are indexed
   6756  1.1.1.1.2.1  pgoyette   by these enumerators; make sure they are all synced.
   6757          1.1  christos ENUM
   6758  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_NONE
   6759          1.1  christos ENUMDOC
   6760  1.1.1.1.2.1  pgoyette   AArch64 null relocation code.
   6761          1.1  christos ENUM
   6762  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_64
   6763  1.1.1.1.2.1  pgoyette ENUMX
   6764  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_32
   6765  1.1.1.1.2.1  pgoyette ENUMX
   6766  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_16
   6767          1.1  christos ENUMDOC
   6768  1.1.1.1.2.1  pgoyette   Basic absolute relocations of N bits.  These are equivalent to
   6769  1.1.1.1.2.1  pgoyette BFD_RELOC_N and they were added to assist the indexing of the howto
   6770  1.1.1.1.2.1  pgoyette table.
   6771          1.1  christos ENUM
   6772  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_64_PCREL
   6773  1.1.1.1.2.1  pgoyette ENUMX
   6774  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_32_PCREL
   6775  1.1.1.1.2.1  pgoyette ENUMX
   6776  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_16_PCREL
   6777          1.1  christos ENUMDOC
   6778  1.1.1.1.2.1  pgoyette   PC-relative relocations.  These are equivalent to BFD_RELOC_N_PCREL
   6779  1.1.1.1.2.1  pgoyette and they were added to assist the indexing of the howto table.
   6780          1.1  christos ENUM
   6781  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_G0
   6782          1.1  christos ENUMDOC
   6783  1.1.1.1.2.1  pgoyette   AArch64 MOV[NZK] instruction with most significant bits 0 to 15
   6784  1.1.1.1.2.1  pgoyette   of an unsigned address/value.
   6785          1.1  christos ENUM
   6786  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_G0_NC
   6787          1.1  christos ENUMDOC
   6788  1.1.1.1.2.1  pgoyette   AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of
   6789  1.1.1.1.2.1  pgoyette   an address/value.  No overflow checking.
   6790          1.1  christos ENUM
   6791  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_G1
   6792          1.1  christos ENUMDOC
   6793  1.1.1.1.2.1  pgoyette   AArch64 MOV[NZK] instruction with most significant bits 16 to 31
   6794  1.1.1.1.2.1  pgoyette   of an unsigned address/value.
   6795          1.1  christos ENUM
   6796  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_G1_NC
   6797          1.1  christos ENUMDOC
   6798  1.1.1.1.2.1  pgoyette   AArch64 MOV[NZK] instruction with less significant bits 16 to 31
   6799  1.1.1.1.2.1  pgoyette   of an address/value.  No overflow checking.
   6800          1.1  christos ENUM
   6801  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_G2
   6802          1.1  christos ENUMDOC
   6803  1.1.1.1.2.1  pgoyette   AArch64 MOV[NZK] instruction with most significant bits 32 to 47
   6804  1.1.1.1.2.1  pgoyette   of an unsigned address/value.
   6805  1.1.1.1.2.1  pgoyette ENUM
   6806  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_G2_NC
   6807  1.1.1.1.2.1  pgoyette ENUMDOC
   6808  1.1.1.1.2.1  pgoyette   AArch64 MOV[NZK] instruction with less significant bits 32 to 47
   6809  1.1.1.1.2.1  pgoyette   of an address/value.  No overflow checking.
   6810  1.1.1.1.2.1  pgoyette ENUM
   6811  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_G3
   6812  1.1.1.1.2.1  pgoyette ENUMDOC
   6813  1.1.1.1.2.1  pgoyette   AArch64 MOV[NZK] instruction with most signficant bits 48 to 64
   6814  1.1.1.1.2.1  pgoyette   of a signed or unsigned address/value.
   6815  1.1.1.1.2.1  pgoyette ENUM
   6816  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_G0_S
   6817  1.1.1.1.2.1  pgoyette ENUMDOC
   6818  1.1.1.1.2.1  pgoyette   AArch64 MOV[NZ] instruction with most significant bits 0 to 15
   6819  1.1.1.1.2.1  pgoyette   of a signed value.  Changes instruction to MOVZ or MOVN depending on the
   6820  1.1.1.1.2.1  pgoyette   value's sign.
   6821  1.1.1.1.2.1  pgoyette ENUM
   6822  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_G1_S
   6823  1.1.1.1.2.1  pgoyette ENUMDOC
   6824  1.1.1.1.2.1  pgoyette   AArch64 MOV[NZ] instruction with most significant bits 16 to 31
   6825  1.1.1.1.2.1  pgoyette   of a signed value.  Changes instruction to MOVZ or MOVN depending on the
   6826  1.1.1.1.2.1  pgoyette   value's sign.
   6827  1.1.1.1.2.1  pgoyette ENUM
   6828  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_G2_S
   6829  1.1.1.1.2.1  pgoyette ENUMDOC
   6830  1.1.1.1.2.1  pgoyette   AArch64 MOV[NZ] instruction with most significant bits 32 to 47
   6831  1.1.1.1.2.1  pgoyette   of a signed value.  Changes instruction to MOVZ or MOVN depending on the
   6832  1.1.1.1.2.1  pgoyette   value's sign.
   6833          1.1  christos ENUM
   6834          1.1  christos   BFD_RELOC_AARCH64_LD_LO19_PCREL
   6835          1.1  christos ENUMDOC
   6836          1.1  christos   AArch64 Load Literal instruction, holding a 19 bit pc-relative word
   6837          1.1  christos   offset.  The lowest two bits must be zero and are not stored in the
   6838          1.1  christos   instruction, giving a 21 bit signed byte offset.
   6839          1.1  christos ENUM
   6840  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_ADR_LO21_PCREL
   6841          1.1  christos ENUMDOC
   6842  1.1.1.1.2.1  pgoyette   AArch64 ADR instruction, holding a simple 21 bit pc-relative byte offset.
   6843          1.1  christos ENUM
   6844  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_ADR_HI21_PCREL
   6845          1.1  christos ENUMDOC
   6846  1.1.1.1.2.1  pgoyette   AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
   6847  1.1.1.1.2.1  pgoyette   offset, giving a 4KB aligned page base address.
   6848  1.1.1.1.2.1  pgoyette ENUM
   6849  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL
   6850  1.1.1.1.2.1  pgoyette ENUMDOC
   6851  1.1.1.1.2.1  pgoyette   AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
   6852  1.1.1.1.2.1  pgoyette   offset, giving a 4KB aligned page base address, but with no overflow
   6853  1.1.1.1.2.1  pgoyette   checking.
   6854  1.1.1.1.2.1  pgoyette ENUM
   6855  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_ADD_LO12
   6856  1.1.1.1.2.1  pgoyette ENUMDOC
   6857  1.1.1.1.2.1  pgoyette   AArch64 ADD immediate instruction, holding bits 0 to 11 of the address.
   6858  1.1.1.1.2.1  pgoyette   Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6859          1.1  christos ENUM
   6860          1.1  christos   BFD_RELOC_AARCH64_LDST8_LO12
   6861          1.1  christos ENUMDOC
   6862          1.1  christos   AArch64 8-bit load/store instruction, holding bits 0 to 11 of the
   6863          1.1  christos   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6864          1.1  christos ENUM
   6865  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TSTBR14
   6866  1.1.1.1.2.1  pgoyette ENUMDOC
   6867  1.1.1.1.2.1  pgoyette   AArch64 14 bit pc-relative test bit and branch.
   6868  1.1.1.1.2.1  pgoyette   The lowest two bits must be zero and are not stored in the instruction,
   6869  1.1.1.1.2.1  pgoyette   giving a 16 bit signed byte offset.
   6870  1.1.1.1.2.1  pgoyette ENUM
   6871  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_BRANCH19
   6872  1.1.1.1.2.1  pgoyette ENUMDOC
   6873  1.1.1.1.2.1  pgoyette   AArch64 19 bit pc-relative conditional branch and compare & branch.
   6874  1.1.1.1.2.1  pgoyette   The lowest two bits must be zero and are not stored in the instruction,
   6875  1.1.1.1.2.1  pgoyette   giving a 21 bit signed byte offset.
   6876  1.1.1.1.2.1  pgoyette ENUM
   6877  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_JUMP26
   6878  1.1.1.1.2.1  pgoyette ENUMDOC
   6879  1.1.1.1.2.1  pgoyette   AArch64 26 bit pc-relative unconditional branch.
   6880  1.1.1.1.2.1  pgoyette   The lowest two bits must be zero and are not stored in the instruction,
   6881  1.1.1.1.2.1  pgoyette   giving a 28 bit signed byte offset.
   6882  1.1.1.1.2.1  pgoyette ENUM
   6883  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_CALL26
   6884  1.1.1.1.2.1  pgoyette ENUMDOC
   6885  1.1.1.1.2.1  pgoyette   AArch64 26 bit pc-relative unconditional branch and link.
   6886  1.1.1.1.2.1  pgoyette   The lowest two bits must be zero and are not stored in the instruction,
   6887  1.1.1.1.2.1  pgoyette   giving a 28 bit signed byte offset.
   6888  1.1.1.1.2.1  pgoyette ENUM
   6889          1.1  christos   BFD_RELOC_AARCH64_LDST16_LO12
   6890          1.1  christos ENUMDOC
   6891          1.1  christos   AArch64 16-bit load/store instruction, holding bits 0 to 11 of the
   6892          1.1  christos   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6893          1.1  christos ENUM
   6894          1.1  christos   BFD_RELOC_AARCH64_LDST32_LO12
   6895          1.1  christos ENUMDOC
   6896          1.1  christos   AArch64 32-bit load/store instruction, holding bits 0 to 11 of the
   6897          1.1  christos   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6898          1.1  christos ENUM
   6899          1.1  christos   BFD_RELOC_AARCH64_LDST64_LO12
   6900          1.1  christos ENUMDOC
   6901          1.1  christos   AArch64 64-bit load/store instruction, holding bits 0 to 11 of the
   6902          1.1  christos   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6903          1.1  christos ENUM
   6904          1.1  christos   BFD_RELOC_AARCH64_LDST128_LO12
   6905          1.1  christos ENUMDOC
   6906          1.1  christos   AArch64 128-bit load/store instruction, holding bits 0 to 11 of the
   6907          1.1  christos   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   6908          1.1  christos ENUM
   6909  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_GOT_LD_PREL19
   6910          1.1  christos ENUMDOC
   6911  1.1.1.1.2.1  pgoyette   AArch64 Load Literal instruction, holding a 19 bit PC relative word
   6912  1.1.1.1.2.1  pgoyette   offset of the global offset table entry for a symbol.  The lowest two
   6913  1.1.1.1.2.1  pgoyette   bits must be zero and are not stored in the instruction, giving a 21
   6914  1.1.1.1.2.1  pgoyette   bit signed byte offset.  This relocation type requires signed overflow
   6915  1.1.1.1.2.1  pgoyette   checking.
   6916          1.1  christos ENUM
   6917  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_ADR_GOT_PAGE
   6918          1.1  christos ENUMDOC
   6919  1.1.1.1.2.1  pgoyette   Get to the page base of the global offset table entry for a symbol as
   6920  1.1.1.1.2.1  pgoyette   part of an ADRP instruction using a 21 bit PC relative value.Used in
   6921  1.1.1.1.2.1  pgoyette   conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC.
   6922          1.1  christos ENUM
   6923  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_LD64_GOT_LO12_NC
   6924          1.1  christos ENUMDOC
   6925  1.1.1.1.2.1  pgoyette   Unsigned 12 bit byte offset for 64 bit load/store from the page of
   6926  1.1.1.1.2.1  pgoyette   the GOT entry for this symbol.  Used in conjunction with
   6927  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in LP64 ABI only.
   6928          1.1  christos ENUM
   6929  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
   6930          1.1  christos ENUMDOC
   6931  1.1.1.1.2.1  pgoyette   Unsigned 12 bit byte offset for 32 bit load/store from the page of
   6932  1.1.1.1.2.1  pgoyette   the GOT entry for this symbol.  Used in conjunction with
   6933  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in ILP32 ABI only.
   6934  1.1.1.1.2.1  pgoyette  ENUM
   6935  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
   6936  1.1.1.1.2.1  pgoyette ENUMDOC
   6937  1.1.1.1.2.1  pgoyette   Unsigned 16 bit byte offset for 64 bit load/store from the GOT entry
   6938  1.1.1.1.2.1  pgoyette   for this symbol.  Valid in LP64 ABI only.
   6939          1.1  christos ENUM
   6940  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_MOVW_GOTOFF_G1
   6941          1.1  christos ENUMDOC
   6942  1.1.1.1.2.1  pgoyette   Unsigned 16 bit byte higher offset for 64 bit load/store from the GOT entry
   6943  1.1.1.1.2.1  pgoyette   for this symbol.  Valid in LP64 ABI only.
   6944          1.1  christos ENUM
   6945  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_LD64_GOTOFF_LO15
   6946          1.1  christos ENUMDOC
   6947  1.1.1.1.2.1  pgoyette   Unsigned 15 bit byte offset for 64 bit load/store from the page of
   6948  1.1.1.1.2.1  pgoyette   the GOT entry for this symbol.  Valid in LP64 ABI only.
   6949          1.1  christos ENUM
   6950  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14
   6951          1.1  christos ENUMDOC
   6952  1.1.1.1.2.1  pgoyette   Scaled 14 bit byte offset to the page base of the global offset table.
   6953          1.1  christos ENUM
   6954  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15
   6955          1.1  christos ENUMDOC
   6956  1.1.1.1.2.1  pgoyette   Scaled 15 bit byte offset to the page base of the global offset table.
   6957          1.1  christos ENUM
   6958  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21
   6959          1.1  christos ENUMDOC
   6960  1.1.1.1.2.1  pgoyette   Get to the page base of the global offset table entry for a symbols
   6961  1.1.1.1.2.1  pgoyette   tls_index structure as part of an adrp instruction using a 21 bit PC
   6962  1.1.1.1.2.1  pgoyette   relative value.  Used in conjunction with
   6963  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC.
   6964          1.1  christos ENUM
   6965  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSGD_ADR_PREL21
   6966          1.1  christos ENUMDOC
   6967  1.1.1.1.2.1  pgoyette   AArch64 TLS General Dynamic
   6968          1.1  christos ENUM
   6969  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC
   6970          1.1  christos ENUMDOC
   6971  1.1.1.1.2.1  pgoyette   Unsigned 12 bit byte offset to global offset table entry for a symbols
   6972  1.1.1.1.2.1  pgoyette   tls_index structure.  Used in conjunction with
   6973  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.
   6974          1.1  christos ENUM
   6975  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC
   6976          1.1  christos ENUMDOC
   6977  1.1.1.1.2.1  pgoyette   AArch64 TLS General Dynamic relocation.
   6978          1.1  christos ENUM
   6979  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSGD_MOVW_G1
   6980          1.1  christos ENUMDOC
   6981  1.1.1.1.2.1  pgoyette   AArch64 TLS General Dynamic relocation.
   6982          1.1  christos ENUM
   6983  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
   6984          1.1  christos ENUMDOC
   6985  1.1.1.1.2.1  pgoyette   AArch64 TLS INITIAL EXEC relocation.
   6986          1.1  christos ENUM
   6987  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
   6988          1.1  christos ENUMDOC
   6989  1.1.1.1.2.1  pgoyette   AArch64 TLS INITIAL EXEC relocation.
   6990          1.1  christos ENUM
   6991  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC
   6992          1.1  christos ENUMDOC
   6993  1.1.1.1.2.1  pgoyette   AArch64 TLS INITIAL EXEC relocation.
   6994          1.1  christos ENUM
   6995  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19
   6996          1.1  christos ENUMDOC
   6997  1.1.1.1.2.1  pgoyette   AArch64 TLS INITIAL EXEC relocation.
   6998          1.1  christos ENUM
   6999  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
   7000          1.1  christos ENUMDOC
   7001  1.1.1.1.2.1  pgoyette   AArch64 TLS INITIAL EXEC relocation.
   7002          1.1  christos ENUM
   7003  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1
   7004          1.1  christos ENUMDOC
   7005  1.1.1.1.2.1  pgoyette   AArch64 TLS INITIAL EXEC relocation.
   7006          1.1  christos ENUM
   7007  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12
   7008          1.1  christos ENUMDOC
   7009  1.1.1.1.2.1  pgoyette   bit[23:12] of byte offset to module TLS base address.
   7010          1.1  christos ENUM
   7011  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12
   7012          1.1  christos ENUMDOC
   7013  1.1.1.1.2.1  pgoyette   Unsigned 12 bit byte offset to module TLS base address.
   7014          1.1  christos ENUM
   7015  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
   7016  1.1.1.1.2.1  pgoyette ENUMDOC
   7017  1.1.1.1.2.1  pgoyette   No overflow check version of BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.
   7018  1.1.1.1.2.1  pgoyette ENUM
   7019  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC
   7020          1.1  christos ENUMDOC
   7021          1.1  christos   Unsigned 12 bit byte offset to global offset table entry for a symbols
   7022          1.1  christos   tls_index structure.  Used in conjunction with
   7023  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.
   7024          1.1  christos ENUM
   7025  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21
   7026          1.1  christos ENUMDOC
   7027  1.1.1.1.2.1  pgoyette   GOT entry page address for AArch64 TLS Local Dynamic, used with ADRP
   7028  1.1.1.1.2.1  pgoyette   instruction.
   7029          1.1  christos ENUM
   7030  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_ADR_PREL21
   7031          1.1  christos ENUMDOC
   7032  1.1.1.1.2.1  pgoyette   GOT entry address for AArch64 TLS Local Dynamic, used with ADR instruction.
   7033          1.1  christos ENUM
   7034  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12
   7035          1.1  christos ENUMDOC
   7036  1.1.1.1.2.1  pgoyette   bit[11:1] of byte offset to module TLS base address, encoded in ldst
   7037  1.1.1.1.2.1  pgoyette   instructions.
   7038          1.1  christos ENUM
   7039  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC
   7040          1.1  christos ENUMDOC
   7041  1.1.1.1.2.1  pgoyette   Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no overflow check.
   7042          1.1  christos ENUM
   7043  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12
   7044          1.1  christos ENUMDOC
   7045  1.1.1.1.2.1  pgoyette   bit[11:2] of byte offset to module TLS base address, encoded in ldst
   7046  1.1.1.1.2.1  pgoyette   instructions.
   7047          1.1  christos ENUM
   7048  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC
   7049          1.1  christos ENUMDOC
   7050  1.1.1.1.2.1  pgoyette   Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no overflow check.
   7051          1.1  christos ENUM
   7052  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12
   7053  1.1.1.1.2.1  pgoyette ENUMDOC
   7054  1.1.1.1.2.1  pgoyette   bit[11:3] of byte offset to module TLS base address, encoded in ldst
   7055  1.1.1.1.2.1  pgoyette   instructions.
   7056  1.1.1.1.2.1  pgoyette ENUM
   7057  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC
   7058  1.1.1.1.2.1  pgoyette ENUMDOC
   7059  1.1.1.1.2.1  pgoyette   Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no overflow check.
   7060  1.1.1.1.2.1  pgoyette ENUM
   7061  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12
   7062  1.1.1.1.2.1  pgoyette ENUMDOC
   7063  1.1.1.1.2.1  pgoyette   bit[11:0] of byte offset to module TLS base address, encoded in ldst
   7064  1.1.1.1.2.1  pgoyette   instructions.
   7065  1.1.1.1.2.1  pgoyette ENUM
   7066  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC
   7067  1.1.1.1.2.1  pgoyette ENUMDOC
   7068  1.1.1.1.2.1  pgoyette   Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no overflow check.
   7069  1.1.1.1.2.1  pgoyette ENUM
   7070  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
   7071  1.1.1.1.2.1  pgoyette ENUMDOC
   7072  1.1.1.1.2.1  pgoyette   bit[15:0] of byte offset to module TLS base address.
   7073  1.1.1.1.2.1  pgoyette ENUM
   7074  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC
   7075  1.1.1.1.2.1  pgoyette ENUMDOC
   7076  1.1.1.1.2.1  pgoyette   No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
   7077  1.1.1.1.2.1  pgoyette ENUM
   7078  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
   7079  1.1.1.1.2.1  pgoyette ENUMDOC
   7080  1.1.1.1.2.1  pgoyette   bit[31:16] of byte offset to module TLS base address.
   7081  1.1.1.1.2.1  pgoyette ENUM
   7082  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC
   7083  1.1.1.1.2.1  pgoyette ENUMDOC
   7084  1.1.1.1.2.1  pgoyette   No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
   7085  1.1.1.1.2.1  pgoyette ENUM
   7086  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2
   7087  1.1.1.1.2.1  pgoyette ENUMDOC
   7088  1.1.1.1.2.1  pgoyette   bit[47:32] of byte offset to module TLS base address.
   7089  1.1.1.1.2.1  pgoyette ENUM
   7090  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
   7091          1.1  christos ENUMDOC
   7092          1.1  christos   AArch64 TLS LOCAL EXEC relocation.
   7093          1.1  christos ENUM
   7094  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1
   7095          1.1  christos ENUMDOC
   7096          1.1  christos   AArch64 TLS LOCAL EXEC relocation.
   7097          1.1  christos ENUM
   7098  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC
   7099          1.1  christos ENUMDOC
   7100          1.1  christos   AArch64 TLS LOCAL EXEC relocation.
   7101          1.1  christos ENUM
   7102          1.1  christos   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0
   7103          1.1  christos ENUMDOC
   7104          1.1  christos   AArch64 TLS LOCAL EXEC relocation.
   7105          1.1  christos ENUM
   7106          1.1  christos   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC
   7107          1.1  christos ENUMDOC
   7108          1.1  christos   AArch64 TLS LOCAL EXEC relocation.
   7109          1.1  christos ENUM
   7110  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12
   7111          1.1  christos ENUMDOC
   7112          1.1  christos   AArch64 TLS LOCAL EXEC relocation.
   7113          1.1  christos ENUM
   7114  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12
   7115          1.1  christos ENUMDOC
   7116          1.1  christos   AArch64 TLS LOCAL EXEC relocation.
   7117          1.1  christos ENUM
   7118  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC
   7119          1.1  christos ENUMDOC
   7120          1.1  christos   AArch64 TLS LOCAL EXEC relocation.
   7121          1.1  christos ENUM
   7122  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_LD_PREL19
   7123  1.1.1.1.2.1  pgoyette ENUMDOC
   7124  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7125  1.1.1.1.2.1  pgoyette ENUM
   7126  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21
   7127  1.1.1.1.2.1  pgoyette ENUMDOC
   7128  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7129  1.1.1.1.2.1  pgoyette ENUM
   7130  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21
   7131  1.1.1.1.2.1  pgoyette ENUMDOC
   7132  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7133  1.1.1.1.2.1  pgoyette ENUM
   7134  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC
   7135  1.1.1.1.2.1  pgoyette ENUMDOC
   7136  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7137  1.1.1.1.2.1  pgoyette ENUM
   7138  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC
   7139  1.1.1.1.2.1  pgoyette ENUMDOC
   7140  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7141  1.1.1.1.2.1  pgoyette ENUM
   7142  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC
   7143  1.1.1.1.2.1  pgoyette ENUMDOC
   7144  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7145  1.1.1.1.2.1  pgoyette ENUM
   7146  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_OFF_G1
   7147  1.1.1.1.2.1  pgoyette ENUMDOC
   7148  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7149  1.1.1.1.2.1  pgoyette ENUM
   7150  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC
   7151  1.1.1.1.2.1  pgoyette ENUMDOC
   7152  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7153  1.1.1.1.2.1  pgoyette ENUM
   7154  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_LDR
   7155  1.1.1.1.2.1  pgoyette ENUMDOC
   7156  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7157  1.1.1.1.2.1  pgoyette ENUM
   7158  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_ADD
   7159  1.1.1.1.2.1  pgoyette ENUMDOC
   7160  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7161  1.1.1.1.2.1  pgoyette ENUM
   7162  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_CALL
   7163  1.1.1.1.2.1  pgoyette ENUMDOC
   7164  1.1.1.1.2.1  pgoyette   AArch64 TLS DESC relocation.
   7165  1.1.1.1.2.1  pgoyette ENUM
   7166  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_COPY
   7167          1.1  christos ENUMDOC
   7168          1.1  christos   AArch64 TLS relocation.
   7169          1.1  christos ENUM
   7170  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_GLOB_DAT
   7171          1.1  christos ENUMDOC
   7172          1.1  christos   AArch64 TLS relocation.
   7173          1.1  christos ENUM
   7174  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_JUMP_SLOT
   7175          1.1  christos ENUMDOC
   7176          1.1  christos   AArch64 TLS relocation.
   7177          1.1  christos ENUM
   7178  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_RELATIVE
   7179          1.1  christos ENUMDOC
   7180  1.1.1.1.2.1  pgoyette   AArch64 TLS relocation.
   7181  1.1.1.1.2.1  pgoyette ENUM
   7182  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLS_DTPMOD
   7183  1.1.1.1.2.1  pgoyette ENUMDOC
   7184  1.1.1.1.2.1  pgoyette   AArch64 TLS relocation.
   7185  1.1.1.1.2.1  pgoyette ENUM
   7186  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLS_DTPREL
   7187  1.1.1.1.2.1  pgoyette ENUMDOC
   7188  1.1.1.1.2.1  pgoyette   AArch64 TLS relocation.
   7189  1.1.1.1.2.1  pgoyette ENUM
   7190  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLS_TPREL
   7191  1.1.1.1.2.1  pgoyette ENUMDOC
   7192  1.1.1.1.2.1  pgoyette   AArch64 TLS relocation.
   7193  1.1.1.1.2.1  pgoyette ENUM
   7194  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC
   7195  1.1.1.1.2.1  pgoyette ENUMDOC
   7196  1.1.1.1.2.1  pgoyette   AArch64 TLS relocation.
   7197  1.1.1.1.2.1  pgoyette ENUM
   7198  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_IRELATIVE
   7199  1.1.1.1.2.1  pgoyette ENUMDOC
   7200  1.1.1.1.2.1  pgoyette   AArch64 support for STT_GNU_IFUNC.
   7201  1.1.1.1.2.1  pgoyette ENUM
   7202  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_RELOC_END
   7203  1.1.1.1.2.1  pgoyette ENUMDOC
   7204  1.1.1.1.2.1  pgoyette   AArch64 pseudo relocation code to mark the end of the AArch64
   7205  1.1.1.1.2.1  pgoyette   relocation enumerators that have direct mapping to ELF reloc codes.
   7206  1.1.1.1.2.1  pgoyette   There are a few more enumerators after this one; those are mainly
   7207  1.1.1.1.2.1  pgoyette   used by the AArch64 assembler for the internal fixup or to select
   7208  1.1.1.1.2.1  pgoyette   one of the above enumerators.
   7209  1.1.1.1.2.1  pgoyette ENUM
   7210  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP
   7211  1.1.1.1.2.1  pgoyette ENUMDOC
   7212  1.1.1.1.2.1  pgoyette   AArch64 pseudo relocation code to be used internally by the AArch64
   7213  1.1.1.1.2.1  pgoyette   assembler and not (currently) written to any object files.
   7214  1.1.1.1.2.1  pgoyette ENUM
   7215  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_LDST_LO12
   7216  1.1.1.1.2.1  pgoyette ENUMDOC
   7217  1.1.1.1.2.1  pgoyette   AArch64 unspecified load/store instruction, holding bits 0 to 11 of the
   7218  1.1.1.1.2.1  pgoyette   address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
   7219  1.1.1.1.2.1  pgoyette ENUM
   7220  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12
   7221  1.1.1.1.2.1  pgoyette ENUMDOC
   7222  1.1.1.1.2.1  pgoyette   AArch64 pseudo relocation code for TLS local dynamic mode.  It's to be
   7223  1.1.1.1.2.1  pgoyette   used internally by the AArch64 assembler and not (currently) written to
   7224  1.1.1.1.2.1  pgoyette   any object files.
   7225  1.1.1.1.2.1  pgoyette ENUM
   7226  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC
   7227  1.1.1.1.2.1  pgoyette ENUMDOC
   7228  1.1.1.1.2.1  pgoyette   Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check.
   7229  1.1.1.1.2.1  pgoyette ENUM
   7230  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_LD_GOT_LO12_NC
   7231  1.1.1.1.2.1  pgoyette ENUMDOC
   7232  1.1.1.1.2.1  pgoyette   AArch64 pseudo relocation code to be used internally by the AArch64
   7233  1.1.1.1.2.1  pgoyette   assembler and not (currently) written to any object files.
   7234  1.1.1.1.2.1  pgoyette ENUM
   7235  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC
   7236  1.1.1.1.2.1  pgoyette ENUMDOC
   7237  1.1.1.1.2.1  pgoyette   AArch64 pseudo relocation code to be used internally by the AArch64
   7238  1.1.1.1.2.1  pgoyette   assembler and not (currently) written to any object files.
   7239  1.1.1.1.2.1  pgoyette ENUM
   7240  1.1.1.1.2.1  pgoyette   BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC
   7241  1.1.1.1.2.1  pgoyette ENUMDOC
   7242  1.1.1.1.2.1  pgoyette   AArch64 pseudo relocation code to be used internally by the AArch64
   7243  1.1.1.1.2.1  pgoyette   assembler and not (currently) written to any object files.
   7244          1.1  christos ENUM
   7245          1.1  christos   BFD_RELOC_TILEPRO_COPY
   7246          1.1  christos ENUMX
   7247          1.1  christos   BFD_RELOC_TILEPRO_GLOB_DAT
   7248          1.1  christos ENUMX
   7249          1.1  christos   BFD_RELOC_TILEPRO_JMP_SLOT
   7250          1.1  christos ENUMX
   7251          1.1  christos   BFD_RELOC_TILEPRO_RELATIVE
   7252          1.1  christos ENUMX
   7253          1.1  christos   BFD_RELOC_TILEPRO_BROFF_X1
   7254          1.1  christos ENUMX
   7255          1.1  christos   BFD_RELOC_TILEPRO_JOFFLONG_X1
   7256          1.1  christos ENUMX
   7257          1.1  christos   BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT
   7258          1.1  christos ENUMX
   7259          1.1  christos   BFD_RELOC_TILEPRO_IMM8_X0
   7260          1.1  christos ENUMX
   7261          1.1  christos   BFD_RELOC_TILEPRO_IMM8_Y0
   7262          1.1  christos ENUMX
   7263          1.1  christos   BFD_RELOC_TILEPRO_IMM8_X1
   7264          1.1  christos ENUMX
   7265          1.1  christos   BFD_RELOC_TILEPRO_IMM8_Y1
   7266          1.1  christos ENUMX
   7267          1.1  christos   BFD_RELOC_TILEPRO_DEST_IMM8_X1
   7268          1.1  christos ENUMX
   7269          1.1  christos   BFD_RELOC_TILEPRO_MT_IMM15_X1
   7270          1.1  christos ENUMX
   7271          1.1  christos   BFD_RELOC_TILEPRO_MF_IMM15_X1
   7272          1.1  christos ENUMX
   7273          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0
   7274          1.1  christos ENUMX
   7275          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1
   7276          1.1  christos ENUMX
   7277          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_LO
   7278          1.1  christos ENUMX
   7279          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_LO
   7280          1.1  christos ENUMX
   7281          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_HI
   7282          1.1  christos ENUMX
   7283          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_HI
   7284          1.1  christos ENUMX
   7285          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_HA
   7286          1.1  christos ENUMX
   7287          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_HA
   7288          1.1  christos ENUMX
   7289          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_PCREL
   7290          1.1  christos ENUMX
   7291          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_PCREL
   7292          1.1  christos ENUMX
   7293          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL
   7294          1.1  christos ENUMX
   7295          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL
   7296          1.1  christos ENUMX
   7297          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL
   7298          1.1  christos ENUMX
   7299          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL
   7300          1.1  christos ENUMX
   7301          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL
   7302          1.1  christos ENUMX
   7303          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL
   7304          1.1  christos ENUMX
   7305          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_GOT
   7306          1.1  christos ENUMX
   7307          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_GOT
   7308          1.1  christos ENUMX
   7309          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO
   7310          1.1  christos ENUMX
   7311          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO
   7312          1.1  christos ENUMX
   7313          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI
   7314          1.1  christos ENUMX
   7315          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI
   7316          1.1  christos ENUMX
   7317          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA
   7318          1.1  christos ENUMX
   7319          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA
   7320          1.1  christos ENUMX
   7321          1.1  christos   BFD_RELOC_TILEPRO_MMSTART_X0
   7322          1.1  christos ENUMX
   7323          1.1  christos   BFD_RELOC_TILEPRO_MMEND_X0
   7324          1.1  christos ENUMX
   7325          1.1  christos   BFD_RELOC_TILEPRO_MMSTART_X1
   7326          1.1  christos ENUMX
   7327          1.1  christos   BFD_RELOC_TILEPRO_MMEND_X1
   7328          1.1  christos ENUMX
   7329          1.1  christos   BFD_RELOC_TILEPRO_SHAMT_X0
   7330          1.1  christos ENUMX
   7331          1.1  christos   BFD_RELOC_TILEPRO_SHAMT_X1
   7332          1.1  christos ENUMX
   7333          1.1  christos   BFD_RELOC_TILEPRO_SHAMT_Y0
   7334          1.1  christos ENUMX
   7335          1.1  christos   BFD_RELOC_TILEPRO_SHAMT_Y1
   7336          1.1  christos ENUMX
   7337          1.1  christos   BFD_RELOC_TILEPRO_TLS_GD_CALL
   7338          1.1  christos ENUMX
   7339          1.1  christos   BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD
   7340          1.1  christos ENUMX
   7341          1.1  christos   BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD
   7342          1.1  christos ENUMX
   7343          1.1  christos   BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD
   7344          1.1  christos ENUMX
   7345          1.1  christos   BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD
   7346          1.1  christos ENUMX
   7347          1.1  christos   BFD_RELOC_TILEPRO_TLS_IE_LOAD
   7348          1.1  christos ENUMX
   7349          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
   7350          1.1  christos ENUMX
   7351          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
   7352          1.1  christos ENUMX
   7353          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO
   7354          1.1  christos ENUMX
   7355          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO
   7356          1.1  christos ENUMX
   7357          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI
   7358          1.1  christos ENUMX
   7359          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI
   7360          1.1  christos ENUMX
   7361          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA
   7362          1.1  christos ENUMX
   7363          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA
   7364          1.1  christos ENUMX
   7365          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE
   7366          1.1  christos ENUMX
   7367          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE
   7368          1.1  christos ENUMX
   7369          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO
   7370          1.1  christos ENUMX
   7371          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO
   7372          1.1  christos ENUMX
   7373          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI
   7374          1.1  christos ENUMX
   7375          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI
   7376          1.1  christos ENUMX
   7377          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA
   7378          1.1  christos ENUMX
   7379          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA
   7380          1.1  christos ENUMX
   7381          1.1  christos   BFD_RELOC_TILEPRO_TLS_DTPMOD32
   7382          1.1  christos ENUMX
   7383          1.1  christos   BFD_RELOC_TILEPRO_TLS_DTPOFF32
   7384          1.1  christos ENUMX
   7385          1.1  christos   BFD_RELOC_TILEPRO_TLS_TPOFF32
   7386          1.1  christos ENUMX
   7387          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE
   7388          1.1  christos ENUMX
   7389          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE
   7390          1.1  christos ENUMX
   7391          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO
   7392          1.1  christos ENUMX
   7393          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO
   7394          1.1  christos ENUMX
   7395          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI
   7396          1.1  christos ENUMX
   7397          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI
   7398          1.1  christos ENUMX
   7399          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA
   7400          1.1  christos ENUMX
   7401          1.1  christos   BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA
   7402          1.1  christos ENUMDOC
   7403          1.1  christos   Tilera TILEPro Relocations.
   7404          1.1  christos ENUM
   7405          1.1  christos   BFD_RELOC_TILEGX_HW0
   7406          1.1  christos ENUMX
   7407          1.1  christos   BFD_RELOC_TILEGX_HW1
   7408          1.1  christos ENUMX
   7409          1.1  christos   BFD_RELOC_TILEGX_HW2
   7410          1.1  christos ENUMX
   7411          1.1  christos   BFD_RELOC_TILEGX_HW3
   7412          1.1  christos ENUMX
   7413          1.1  christos   BFD_RELOC_TILEGX_HW0_LAST
   7414          1.1  christos ENUMX
   7415          1.1  christos   BFD_RELOC_TILEGX_HW1_LAST
   7416          1.1  christos ENUMX
   7417          1.1  christos   BFD_RELOC_TILEGX_HW2_LAST
   7418          1.1  christos ENUMX
   7419          1.1  christos   BFD_RELOC_TILEGX_COPY
   7420          1.1  christos ENUMX
   7421          1.1  christos   BFD_RELOC_TILEGX_GLOB_DAT
   7422          1.1  christos ENUMX
   7423          1.1  christos   BFD_RELOC_TILEGX_JMP_SLOT
   7424          1.1  christos ENUMX
   7425          1.1  christos   BFD_RELOC_TILEGX_RELATIVE
   7426          1.1  christos ENUMX
   7427          1.1  christos   BFD_RELOC_TILEGX_BROFF_X1
   7428          1.1  christos ENUMX
   7429          1.1  christos   BFD_RELOC_TILEGX_JUMPOFF_X1
   7430          1.1  christos ENUMX
   7431          1.1  christos   BFD_RELOC_TILEGX_JUMPOFF_X1_PLT
   7432          1.1  christos ENUMX
   7433          1.1  christos   BFD_RELOC_TILEGX_IMM8_X0
   7434          1.1  christos ENUMX
   7435          1.1  christos   BFD_RELOC_TILEGX_IMM8_Y0
   7436          1.1  christos ENUMX
   7437          1.1  christos   BFD_RELOC_TILEGX_IMM8_X1
   7438          1.1  christos ENUMX
   7439          1.1  christos   BFD_RELOC_TILEGX_IMM8_Y1
   7440          1.1  christos ENUMX
   7441          1.1  christos   BFD_RELOC_TILEGX_DEST_IMM8_X1
   7442          1.1  christos ENUMX
   7443          1.1  christos   BFD_RELOC_TILEGX_MT_IMM14_X1
   7444          1.1  christos ENUMX
   7445          1.1  christos   BFD_RELOC_TILEGX_MF_IMM14_X1
   7446          1.1  christos ENUMX
   7447          1.1  christos   BFD_RELOC_TILEGX_MMSTART_X0
   7448          1.1  christos ENUMX
   7449          1.1  christos   BFD_RELOC_TILEGX_MMEND_X0
   7450          1.1  christos ENUMX
   7451          1.1  christos   BFD_RELOC_TILEGX_SHAMT_X0
   7452          1.1  christos ENUMX
   7453          1.1  christos   BFD_RELOC_TILEGX_SHAMT_X1
   7454          1.1  christos ENUMX
   7455          1.1  christos   BFD_RELOC_TILEGX_SHAMT_Y0
   7456          1.1  christos ENUMX
   7457          1.1  christos   BFD_RELOC_TILEGX_SHAMT_Y1
   7458          1.1  christos ENUMX
   7459          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0
   7460          1.1  christos ENUMX
   7461          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0
   7462          1.1  christos ENUMX
   7463          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW1
   7464          1.1  christos ENUMX
   7465          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW1
   7466          1.1  christos ENUMX
   7467          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW2
   7468          1.1  christos ENUMX
   7469          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW2
   7470          1.1  christos ENUMX
   7471          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW3
   7472          1.1  christos ENUMX
   7473          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW3
   7474          1.1  christos ENUMX
   7475          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST
   7476          1.1  christos ENUMX
   7477          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST
   7478          1.1  christos ENUMX
   7479          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST
   7480          1.1  christos ENUMX
   7481          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST
   7482          1.1  christos ENUMX
   7483          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST
   7484          1.1  christos ENUMX
   7485          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST
   7486          1.1  christos ENUMX
   7487          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL
   7488          1.1  christos ENUMX
   7489          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL
   7490          1.1  christos ENUMX
   7491          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL
   7492          1.1  christos ENUMX
   7493          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL
   7494          1.1  christos ENUMX
   7495          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL
   7496          1.1  christos ENUMX
   7497          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL
   7498          1.1  christos ENUMX
   7499          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL
   7500          1.1  christos ENUMX
   7501          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL
   7502          1.1  christos ENUMX
   7503          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL
   7504          1.1  christos ENUMX
   7505          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL
   7506          1.1  christos ENUMX
   7507          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL
   7508          1.1  christos ENUMX
   7509          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL
   7510          1.1  christos ENUMX
   7511          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL
   7512          1.1  christos ENUMX
   7513          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL
   7514          1.1  christos ENUMX
   7515          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
   7516          1.1  christos ENUMX
   7517          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
   7518          1.1  christos ENUMX
   7519  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL
   7520  1.1.1.1.2.1  pgoyette ENUMX
   7521  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL
   7522  1.1.1.1.2.1  pgoyette ENUMX
   7523  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL
   7524  1.1.1.1.2.1  pgoyette ENUMX
   7525  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL
   7526  1.1.1.1.2.1  pgoyette ENUMX
   7527  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL
   7528  1.1.1.1.2.1  pgoyette ENUMX
   7529  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL
   7530  1.1.1.1.2.1  pgoyette ENUMX
   7531          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
   7532          1.1  christos ENUMX
   7533          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
   7534          1.1  christos ENUMX
   7535          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT
   7536          1.1  christos ENUMX
   7537          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
   7538          1.1  christos ENUMX
   7539  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL
   7540  1.1.1.1.2.1  pgoyette ENUMX
   7541  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL
   7542  1.1.1.1.2.1  pgoyette ENUMX
   7543          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
   7544          1.1  christos ENUMX
   7545          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
   7546          1.1  christos ENUMX
   7547          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE
   7548          1.1  christos ENUMX
   7549          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE
   7550          1.1  christos ENUMX
   7551          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE
   7552          1.1  christos ENUMX
   7553          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE
   7554          1.1  christos ENUMX
   7555          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE
   7556          1.1  christos ENUMX
   7557          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE
   7558          1.1  christos ENUMX
   7559          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
   7560          1.1  christos ENUMX
   7561          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD
   7562          1.1  christos ENUMX
   7563          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
   7564          1.1  christos ENUMX
   7565          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
   7566          1.1  christos ENUMX
   7567          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
   7568          1.1  christos ENUMX
   7569          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
   7570          1.1  christos ENUMX
   7571  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL
   7572  1.1.1.1.2.1  pgoyette ENUMX
   7573  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL
   7574  1.1.1.1.2.1  pgoyette ENUMX
   7575  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL
   7576  1.1.1.1.2.1  pgoyette ENUMX
   7577  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL
   7578  1.1.1.1.2.1  pgoyette ENUMX
   7579  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL
   7580  1.1.1.1.2.1  pgoyette ENUMX
   7581  1.1.1.1.2.1  pgoyette   BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL
   7582  1.1.1.1.2.1  pgoyette ENUMX
   7583          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
   7584          1.1  christos ENUMX
   7585          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
   7586          1.1  christos ENUMX
   7587          1.1  christos   BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE
   7588          1.1  christos ENUMX
   7589          1.1  christos   BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
   7590          1.1  christos ENUMX
   7591          1.1  christos   BFD_RELOC_TILEGX_TLS_DTPMOD64
   7592          1.1  christos ENUMX
   7593          1.1  christos   BFD_RELOC_TILEGX_TLS_DTPOFF64
   7594          1.1  christos ENUMX
   7595          1.1  christos   BFD_RELOC_TILEGX_TLS_TPOFF64
   7596          1.1  christos ENUMX
   7597          1.1  christos   BFD_RELOC_TILEGX_TLS_DTPMOD32
   7598          1.1  christos ENUMX
   7599          1.1  christos   BFD_RELOC_TILEGX_TLS_DTPOFF32
   7600          1.1  christos ENUMX
   7601          1.1  christos   BFD_RELOC_TILEGX_TLS_TPOFF32
   7602          1.1  christos ENUMX
   7603          1.1  christos   BFD_RELOC_TILEGX_TLS_GD_CALL
   7604          1.1  christos ENUMX
   7605          1.1  christos   BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD
   7606          1.1  christos ENUMX
   7607          1.1  christos   BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD
   7608          1.1  christos ENUMX
   7609          1.1  christos   BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD
   7610          1.1  christos ENUMX
   7611          1.1  christos   BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD
   7612          1.1  christos ENUMX
   7613          1.1  christos   BFD_RELOC_TILEGX_TLS_IE_LOAD
   7614          1.1  christos ENUMX
   7615          1.1  christos   BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD
   7616          1.1  christos ENUMX
   7617          1.1  christos   BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD
   7618          1.1  christos ENUMX
   7619          1.1  christos   BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD
   7620          1.1  christos ENUMX
   7621          1.1  christos   BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD
   7622          1.1  christos ENUMDOC
   7623          1.1  christos   Tilera TILE-Gx Relocations.
   7624  1.1.1.1.2.1  pgoyette 
   7625          1.1  christos ENUM
   7626          1.1  christos   BFD_RELOC_EPIPHANY_SIMM8
   7627          1.1  christos ENUMDOC
   7628          1.1  christos   Adapteva EPIPHANY - 8 bit signed pc-relative displacement
   7629          1.1  christos ENUM
   7630          1.1  christos   BFD_RELOC_EPIPHANY_SIMM24
   7631          1.1  christos ENUMDOC
   7632          1.1  christos   Adapteva EPIPHANY - 24 bit signed pc-relative displacement
   7633          1.1  christos ENUM
   7634          1.1  christos   BFD_RELOC_EPIPHANY_HIGH
   7635          1.1  christos ENUMDOC
   7636          1.1  christos   Adapteva EPIPHANY - 16 most-significant bits of absolute address
   7637          1.1  christos ENUM
   7638          1.1  christos   BFD_RELOC_EPIPHANY_LOW
   7639          1.1  christos ENUMDOC
   7640          1.1  christos   Adapteva EPIPHANY - 16 least-significant bits of absolute address
   7641          1.1  christos ENUM
   7642          1.1  christos   BFD_RELOC_EPIPHANY_SIMM11
   7643          1.1  christos ENUMDOC
   7644          1.1  christos   Adapteva EPIPHANY - 11 bit signed number - add/sub immediate
   7645          1.1  christos ENUM
   7646          1.1  christos   BFD_RELOC_EPIPHANY_IMM11
   7647          1.1  christos ENUMDOC
   7648          1.1  christos   Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st displacement)
   7649          1.1  christos ENUM
   7650          1.1  christos   BFD_RELOC_EPIPHANY_IMM8
   7651          1.1  christos ENUMDOC
   7652          1.1  christos   Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction.
   7653          1.1  christos 
   7654  1.1.1.1.2.1  pgoyette ENUM
   7655  1.1.1.1.2.1  pgoyette   BFD_RELOC_VISIUM_HI16
   7656  1.1.1.1.2.1  pgoyette ENUMX
   7657  1.1.1.1.2.1  pgoyette   BFD_RELOC_VISIUM_LO16
   7658  1.1.1.1.2.1  pgoyette ENUMX
   7659  1.1.1.1.2.1  pgoyette   BFD_RELOC_VISIUM_IM16
   7660  1.1.1.1.2.1  pgoyette ENUMX
   7661  1.1.1.1.2.1  pgoyette   BFD_RELOC_VISIUM_REL16
   7662  1.1.1.1.2.1  pgoyette ENUMX
   7663  1.1.1.1.2.1  pgoyette   BFD_RELOC_VISIUM_HI16_PCREL
   7664  1.1.1.1.2.1  pgoyette ENUMX
   7665  1.1.1.1.2.1  pgoyette   BFD_RELOC_VISIUM_LO16_PCREL
   7666  1.1.1.1.2.1  pgoyette ENUMX
   7667  1.1.1.1.2.1  pgoyette   BFD_RELOC_VISIUM_IM16_PCREL
   7668  1.1.1.1.2.1  pgoyette ENUMDOC
   7669  1.1.1.1.2.1  pgoyette   Visium Relocations.
   7670          1.1  christos 
   7671          1.1  christos ENDSENUM
   7672          1.1  christos   BFD_RELOC_UNUSED
   7673          1.1  christos CODE_FRAGMENT
   7674          1.1  christos .
   7675          1.1  christos .typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
   7676          1.1  christos */
   7677          1.1  christos 
   7678          1.1  christos /*
   7679          1.1  christos FUNCTION
   7680          1.1  christos 	bfd_reloc_type_lookup
   7681          1.1  christos 	bfd_reloc_name_lookup
   7682          1.1  christos 
   7683          1.1  christos SYNOPSIS
   7684          1.1  christos 	reloc_howto_type *bfd_reloc_type_lookup
   7685          1.1  christos 	  (bfd *abfd, bfd_reloc_code_real_type code);
   7686          1.1  christos 	reloc_howto_type *bfd_reloc_name_lookup
   7687          1.1  christos 	  (bfd *abfd, const char *reloc_name);
   7688          1.1  christos 
   7689          1.1  christos DESCRIPTION
   7690          1.1  christos 	Return a pointer to a howto structure which, when
   7691          1.1  christos 	invoked, will perform the relocation @var{code} on data from the
   7692          1.1  christos 	architecture noted.
   7693          1.1  christos 
   7694          1.1  christos */
   7695          1.1  christos 
   7696          1.1  christos reloc_howto_type *
   7697          1.1  christos bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
   7698          1.1  christos {
   7699          1.1  christos   return BFD_SEND (abfd, reloc_type_lookup, (abfd, code));
   7700          1.1  christos }
   7701          1.1  christos 
   7702          1.1  christos reloc_howto_type *
   7703          1.1  christos bfd_reloc_name_lookup (bfd *abfd, const char *reloc_name)
   7704          1.1  christos {
   7705          1.1  christos   return BFD_SEND (abfd, reloc_name_lookup, (abfd, reloc_name));
   7706          1.1  christos }
   7707          1.1  christos 
   7708          1.1  christos static reloc_howto_type bfd_howto_32 =
   7709          1.1  christos HOWTO (0, 00, 2, 32, FALSE, 0, complain_overflow_dont, 0, "VRT32", FALSE, 0xffffffff, 0xffffffff, TRUE);
   7710          1.1  christos 
   7711          1.1  christos /*
   7712          1.1  christos INTERNAL_FUNCTION
   7713          1.1  christos 	bfd_default_reloc_type_lookup
   7714          1.1  christos 
   7715          1.1  christos SYNOPSIS
   7716          1.1  christos 	reloc_howto_type *bfd_default_reloc_type_lookup
   7717          1.1  christos 	  (bfd *abfd, bfd_reloc_code_real_type  code);
   7718          1.1  christos 
   7719          1.1  christos DESCRIPTION
   7720          1.1  christos 	Provides a default relocation lookup routine for any architecture.
   7721          1.1  christos 
   7722          1.1  christos */
   7723          1.1  christos 
   7724          1.1  christos reloc_howto_type *
   7725          1.1  christos bfd_default_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
   7726          1.1  christos {
   7727          1.1  christos   switch (code)
   7728          1.1  christos     {
   7729          1.1  christos     case BFD_RELOC_CTOR:
   7730          1.1  christos       /* The type of reloc used in a ctor, which will be as wide as the
   7731          1.1  christos 	 address - so either a 64, 32, or 16 bitter.  */
   7732          1.1  christos       switch (bfd_arch_bits_per_address (abfd))
   7733          1.1  christos 	{
   7734          1.1  christos 	case 64:
   7735          1.1  christos 	  BFD_FAIL ();
   7736          1.1  christos 	case 32:
   7737          1.1  christos 	  return &bfd_howto_32;
   7738          1.1  christos 	case 16:
   7739          1.1  christos 	  BFD_FAIL ();
   7740          1.1  christos 	default:
   7741          1.1  christos 	  BFD_FAIL ();
   7742          1.1  christos 	}
   7743          1.1  christos     default:
   7744          1.1  christos       BFD_FAIL ();
   7745          1.1  christos     }
   7746          1.1  christos   return NULL;
   7747          1.1  christos }
   7748          1.1  christos 
   7749          1.1  christos /*
   7750          1.1  christos FUNCTION
   7751          1.1  christos 	bfd_get_reloc_code_name
   7752          1.1  christos 
   7753          1.1  christos SYNOPSIS
   7754          1.1  christos 	const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
   7755          1.1  christos 
   7756          1.1  christos DESCRIPTION
   7757          1.1  christos 	Provides a printable name for the supplied relocation code.
   7758          1.1  christos 	Useful mainly for printing error messages.
   7759          1.1  christos */
   7760          1.1  christos 
   7761          1.1  christos const char *
   7762          1.1  christos bfd_get_reloc_code_name (bfd_reloc_code_real_type code)
   7763          1.1  christos {
   7764          1.1  christos   if (code > BFD_RELOC_UNUSED)
   7765          1.1  christos     return 0;
   7766          1.1  christos   return bfd_reloc_code_real_names[code];
   7767          1.1  christos }
   7768          1.1  christos 
   7769          1.1  christos /*
   7770          1.1  christos INTERNAL_FUNCTION
   7771          1.1  christos 	bfd_generic_relax_section
   7772          1.1  christos 
   7773          1.1  christos SYNOPSIS
   7774          1.1  christos 	bfd_boolean bfd_generic_relax_section
   7775          1.1  christos 	  (bfd *abfd,
   7776          1.1  christos 	   asection *section,
   7777          1.1  christos 	   struct bfd_link_info *,
   7778          1.1  christos 	   bfd_boolean *);
   7779          1.1  christos 
   7780          1.1  christos DESCRIPTION
   7781          1.1  christos 	Provides default handling for relaxing for back ends which
   7782          1.1  christos 	don't do relaxing.
   7783          1.1  christos */
   7784          1.1  christos 
   7785          1.1  christos bfd_boolean
   7786          1.1  christos bfd_generic_relax_section (bfd *abfd ATTRIBUTE_UNUSED,
   7787          1.1  christos 			   asection *section ATTRIBUTE_UNUSED,
   7788          1.1  christos 			   struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
   7789          1.1  christos 			   bfd_boolean *again)
   7790          1.1  christos {
   7791  1.1.1.1.2.1  pgoyette   if (bfd_link_relocatable (link_info))
   7792          1.1  christos     (*link_info->callbacks->einfo)
   7793          1.1  christos       (_("%P%F: --relax and -r may not be used together\n"));
   7794          1.1  christos 
   7795          1.1  christos   *again = FALSE;
   7796          1.1  christos   return TRUE;
   7797          1.1  christos }
   7798          1.1  christos 
   7799          1.1  christos /*
   7800          1.1  christos INTERNAL_FUNCTION
   7801          1.1  christos 	bfd_generic_gc_sections
   7802          1.1  christos 
   7803          1.1  christos SYNOPSIS
   7804          1.1  christos 	bfd_boolean bfd_generic_gc_sections
   7805          1.1  christos 	  (bfd *, struct bfd_link_info *);
   7806          1.1  christos 
   7807          1.1  christos DESCRIPTION
   7808          1.1  christos 	Provides default handling for relaxing for back ends which
   7809          1.1  christos 	don't do section gc -- i.e., does nothing.
   7810          1.1  christos */
   7811          1.1  christos 
   7812          1.1  christos bfd_boolean
   7813          1.1  christos bfd_generic_gc_sections (bfd *abfd ATTRIBUTE_UNUSED,
   7814          1.1  christos 			 struct bfd_link_info *info ATTRIBUTE_UNUSED)
   7815          1.1  christos {
   7816          1.1  christos   return TRUE;
   7817          1.1  christos }
   7818          1.1  christos 
   7819          1.1  christos /*
   7820          1.1  christos INTERNAL_FUNCTION
   7821          1.1  christos 	bfd_generic_lookup_section_flags
   7822          1.1  christos 
   7823          1.1  christos SYNOPSIS
   7824          1.1  christos 	bfd_boolean bfd_generic_lookup_section_flags
   7825          1.1  christos 	  (struct bfd_link_info *, struct flag_info *, asection *);
   7826          1.1  christos 
   7827          1.1  christos DESCRIPTION
   7828          1.1  christos 	Provides default handling for section flags lookup
   7829          1.1  christos 	-- i.e., does nothing.
   7830          1.1  christos 	Returns FALSE if the section should be omitted, otherwise TRUE.
   7831          1.1  christos */
   7832          1.1  christos 
   7833          1.1  christos bfd_boolean
   7834          1.1  christos bfd_generic_lookup_section_flags (struct bfd_link_info *info ATTRIBUTE_UNUSED,
   7835          1.1  christos 				  struct flag_info *flaginfo,
   7836          1.1  christos 				  asection *section ATTRIBUTE_UNUSED)
   7837          1.1  christos {
   7838          1.1  christos   if (flaginfo != NULL)
   7839          1.1  christos     {
   7840          1.1  christos       (*_bfd_error_handler) (_("INPUT_SECTION_FLAGS are not supported.\n"));
   7841          1.1  christos       return FALSE;
   7842          1.1  christos     }
   7843          1.1  christos   return TRUE;
   7844          1.1  christos }
   7845          1.1  christos 
   7846          1.1  christos /*
   7847          1.1  christos INTERNAL_FUNCTION
   7848          1.1  christos 	bfd_generic_merge_sections
   7849          1.1  christos 
   7850          1.1  christos SYNOPSIS
   7851          1.1  christos 	bfd_boolean bfd_generic_merge_sections
   7852          1.1  christos 	  (bfd *, struct bfd_link_info *);
   7853          1.1  christos 
   7854          1.1  christos DESCRIPTION
   7855          1.1  christos 	Provides default handling for SEC_MERGE section merging for back ends
   7856          1.1  christos 	which don't have SEC_MERGE support -- i.e., does nothing.
   7857          1.1  christos */
   7858          1.1  christos 
   7859          1.1  christos bfd_boolean
   7860          1.1  christos bfd_generic_merge_sections (bfd *abfd ATTRIBUTE_UNUSED,
   7861          1.1  christos 			    struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
   7862          1.1  christos {
   7863          1.1  christos   return TRUE;
   7864          1.1  christos }
   7865          1.1  christos 
   7866          1.1  christos /*
   7867          1.1  christos INTERNAL_FUNCTION
   7868          1.1  christos 	bfd_generic_get_relocated_section_contents
   7869          1.1  christos 
   7870          1.1  christos SYNOPSIS
   7871          1.1  christos 	bfd_byte *bfd_generic_get_relocated_section_contents
   7872          1.1  christos 	  (bfd *abfd,
   7873          1.1  christos 	   struct bfd_link_info *link_info,
   7874          1.1  christos 	   struct bfd_link_order *link_order,
   7875          1.1  christos 	   bfd_byte *data,
   7876          1.1  christos 	   bfd_boolean relocatable,
   7877          1.1  christos 	   asymbol **symbols);
   7878          1.1  christos 
   7879          1.1  christos DESCRIPTION
   7880          1.1  christos 	Provides default handling of relocation effort for back ends
   7881          1.1  christos 	which can't be bothered to do it efficiently.
   7882          1.1  christos 
   7883          1.1  christos */
   7884          1.1  christos 
   7885          1.1  christos bfd_byte *
   7886          1.1  christos bfd_generic_get_relocated_section_contents (bfd *abfd,
   7887          1.1  christos 					    struct bfd_link_info *link_info,
   7888          1.1  christos 					    struct bfd_link_order *link_order,
   7889          1.1  christos 					    bfd_byte *data,
   7890          1.1  christos 					    bfd_boolean relocatable,
   7891          1.1  christos 					    asymbol **symbols)
   7892          1.1  christos {
   7893          1.1  christos   bfd *input_bfd = link_order->u.indirect.section->owner;
   7894          1.1  christos   asection *input_section = link_order->u.indirect.section;
   7895          1.1  christos   long reloc_size;
   7896          1.1  christos   arelent **reloc_vector;
   7897          1.1  christos   long reloc_count;
   7898          1.1  christos 
   7899          1.1  christos   reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section);
   7900          1.1  christos   if (reloc_size < 0)
   7901          1.1  christos     return NULL;
   7902          1.1  christos 
   7903          1.1  christos   /* Read in the section.  */
   7904          1.1  christos   if (!bfd_get_full_section_contents (input_bfd, input_section, &data))
   7905          1.1  christos     return NULL;
   7906          1.1  christos 
   7907          1.1  christos   if (reloc_size == 0)
   7908          1.1  christos     return data;
   7909          1.1  christos 
   7910          1.1  christos   reloc_vector = (arelent **) bfd_malloc (reloc_size);
   7911          1.1  christos   if (reloc_vector == NULL)
   7912          1.1  christos     return NULL;
   7913          1.1  christos 
   7914          1.1  christos   reloc_count = bfd_canonicalize_reloc (input_bfd,
   7915          1.1  christos 					input_section,
   7916          1.1  christos 					reloc_vector,
   7917          1.1  christos 					symbols);
   7918          1.1  christos   if (reloc_count < 0)
   7919          1.1  christos     goto error_return;
   7920          1.1  christos 
   7921          1.1  christos   if (reloc_count > 0)
   7922          1.1  christos     {
   7923          1.1  christos       arelent **parent;
   7924          1.1  christos       for (parent = reloc_vector; *parent != NULL; parent++)
   7925          1.1  christos 	{
   7926          1.1  christos 	  char *error_message = NULL;
   7927          1.1  christos 	  asymbol *symbol;
   7928          1.1  christos 	  bfd_reloc_status_type r;
   7929          1.1  christos 
   7930          1.1  christos 	  symbol = *(*parent)->sym_ptr_ptr;
   7931          1.1  christos 	  if (symbol->section && discarded_section (symbol->section))
   7932          1.1  christos 	    {
   7933          1.1  christos 	      bfd_byte *p;
   7934          1.1  christos 	      static reloc_howto_type none_howto
   7935          1.1  christos 		= HOWTO (0, 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL,
   7936          1.1  christos 			 "unused", FALSE, 0, 0, FALSE);
   7937          1.1  christos 
   7938          1.1  christos 	      p = data + (*parent)->address * bfd_octets_per_byte (input_bfd);
   7939          1.1  christos 	      _bfd_clear_contents ((*parent)->howto, input_bfd, input_section,
   7940          1.1  christos 				   p);
   7941          1.1  christos 	      (*parent)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
   7942          1.1  christos 	      (*parent)->addend = 0;
   7943          1.1  christos 	      (*parent)->howto = &none_howto;
   7944          1.1  christos 	      r = bfd_reloc_ok;
   7945          1.1  christos 	    }
   7946          1.1  christos 	  else
   7947          1.1  christos 	    r = bfd_perform_relocation (input_bfd,
   7948          1.1  christos 					*parent,
   7949          1.1  christos 					data,
   7950          1.1  christos 					input_section,
   7951          1.1  christos 					relocatable ? abfd : NULL,
   7952          1.1  christos 					&error_message);
   7953          1.1  christos 
   7954          1.1  christos 	  if (relocatable)
   7955          1.1  christos 	    {
   7956          1.1  christos 	      asection *os = input_section->output_section;
   7957          1.1  christos 
   7958          1.1  christos 	      /* A partial link, so keep the relocs.  */
   7959          1.1  christos 	      os->orelocation[os->reloc_count] = *parent;
   7960          1.1  christos 	      os->reloc_count++;
   7961          1.1  christos 	    }
   7962          1.1  christos 
   7963          1.1  christos 	  if (r != bfd_reloc_ok)
   7964          1.1  christos 	    {
   7965          1.1  christos 	      switch (r)
   7966          1.1  christos 		{
   7967          1.1  christos 		case bfd_reloc_undefined:
   7968          1.1  christos 		  if (!((*link_info->callbacks->undefined_symbol)
   7969          1.1  christos 			(link_info, bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
   7970          1.1  christos 			 input_bfd, input_section, (*parent)->address,
   7971          1.1  christos 			 TRUE)))
   7972          1.1  christos 		    goto error_return;
   7973          1.1  christos 		  break;
   7974          1.1  christos 		case bfd_reloc_dangerous:
   7975          1.1  christos 		  BFD_ASSERT (error_message != NULL);
   7976          1.1  christos 		  if (!((*link_info->callbacks->reloc_dangerous)
   7977          1.1  christos 			(link_info, error_message, input_bfd, input_section,
   7978          1.1  christos 			 (*parent)->address)))
   7979          1.1  christos 		    goto error_return;
   7980          1.1  christos 		  break;
   7981          1.1  christos 		case bfd_reloc_overflow:
   7982          1.1  christos 		  if (!((*link_info->callbacks->reloc_overflow)
   7983          1.1  christos 			(link_info, NULL,
   7984          1.1  christos 			 bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
   7985          1.1  christos 			 (*parent)->howto->name, (*parent)->addend,
   7986          1.1  christos 			 input_bfd, input_section, (*parent)->address)))
   7987          1.1  christos 		    goto error_return;
   7988          1.1  christos 		  break;
   7989          1.1  christos 		case bfd_reloc_outofrange:
   7990          1.1  christos 		  /* PR ld/13730:
   7991          1.1  christos 		     This error can result when processing some partially
   7992          1.1  christos 		     complete binaries.  Do not abort, but issue an error
   7993          1.1  christos 		     message instead.  */
   7994          1.1  christos 		  link_info->callbacks->einfo
   7995          1.1  christos 		    (_("%X%P: %B(%A): relocation \"%R\" goes out of range\n"),
   7996          1.1  christos 		     abfd, input_section, * parent);
   7997          1.1  christos 		  goto error_return;
   7998          1.1  christos 
   7999  1.1.1.1.2.1  pgoyette 		case bfd_reloc_notsupported:
   8000  1.1.1.1.2.1  pgoyette 		  /* PR ld/17512
   8001  1.1.1.1.2.1  pgoyette 		     This error can result when processing a corrupt binary.
   8002  1.1.1.1.2.1  pgoyette 		     Do not abort.  Issue an error message instead.  */
   8003  1.1.1.1.2.1  pgoyette 		  link_info->callbacks->einfo
   8004  1.1.1.1.2.1  pgoyette 		    (_("%X%P: %B(%A): relocation \"%R\" is not supported\n"),
   8005  1.1.1.1.2.1  pgoyette 		     abfd, input_section, * parent);
   8006  1.1.1.1.2.1  pgoyette 		  goto error_return;
   8007  1.1.1.1.2.1  pgoyette 
   8008          1.1  christos 		default:
   8009  1.1.1.1.2.1  pgoyette 		  /* PR 17512; file: 90c2a92e.
   8010  1.1.1.1.2.1  pgoyette 		     Report unexpected results, without aborting.  */
   8011  1.1.1.1.2.1  pgoyette 		  link_info->callbacks->einfo
   8012  1.1.1.1.2.1  pgoyette 		    (_("%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n"),
   8013  1.1.1.1.2.1  pgoyette 		     abfd, input_section, * parent, r);
   8014          1.1  christos 		  break;
   8015          1.1  christos 		}
   8016          1.1  christos 
   8017          1.1  christos 	    }
   8018          1.1  christos 	}
   8019          1.1  christos     }
   8020          1.1  christos 
   8021          1.1  christos   free (reloc_vector);
   8022          1.1  christos   return data;
   8023          1.1  christos 
   8024          1.1  christos error_return:
   8025          1.1  christos   free (reloc_vector);
   8026          1.1  christos   return NULL;
   8027          1.1  christos }
   8028