Coverage Report

Created: 2025-06-24 06:45

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