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