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