]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - bfd/reloc.c
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / bfd / reloc.c
1 /* BFD support for handling relocation entries.
2 Copyright (C) 1990-2024 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 #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 {
451 bfd_vma fieldmask, addrmask, signmask, ss, a;
452 bfd_reloc_status_type flag = bfd_reloc_ok;
453
454 if (bitsize == 0)
455 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 fieldmask = N_ONES (bitsize);
462 signmask = ~fieldmask;
463 addrmask = N_ONES (addrsize) | (fieldmask << rightshift);
464 a = (relocation & addrmask) >> rightshift;
465
466 switch (how)
467 {
468 case complain_overflow_dont:
469 break;
470
471 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 signmask = ~ (fieldmask >> 1);
475 /* Fall thru */
476
477 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 ss = a & signmask;
484 if (ss != 0 && ss != ((addrmask >> rightshift) & signmask))
485 flag = bfd_reloc_overflow;
486 break;
487
488 case complain_overflow_unsigned:
489 /* We have an overflow if the address does not fit in the field. */
490 if ((a & signmask) != 0)
491 flag = bfd_reloc_overflow;
492 break;
493
494 default:
495 abort ();
496 }
497
498 return flag;
499 }
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 {
527 bfd_size_type octet_end = bfd_get_section_limit_octets (abfd, section);
528 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 return octet <= octet_end && reloc_size <= octet_end - octet;
534 }
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 {
542 switch (bfd_get_reloc_size (howto))
543 {
544 case 0:
545 break;
546
547 case 1:
548 return bfd_get_8 (abfd, data);
549
550 case 2:
551 return bfd_get_16 (abfd, data);
552
553 case 3:
554 return bfd_get_24 (abfd, data);
555
556 case 4:
557 return bfd_get_32 (abfd, data);
558
559 #ifdef BFD64
560 case 8:
561 return bfd_get_64 (abfd, data);
562 #endif
563
564 default:
565 abort ();
566 }
567 return 0;
568 }
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 {
576 switch (bfd_get_reloc_size (howto))
577 {
578 case 0:
579 break;
580
581 case 1:
582 bfd_put_8 (abfd, val, data);
583 break;
584
585 case 2:
586 bfd_put_16 (abfd, val, data);
587 break;
588
589 case 3:
590 bfd_put_24 (abfd, val, data);
591 break;
592
593 case 4:
594 bfd_put_32 (abfd, val, data);
595 break;
596
597 #ifdef BFD64
598 case 8:
599 bfd_put_64 (abfd, val, data);
600 break;
601 #endif
602
603 default:
604 abort ();
605 }
606 }
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 {
615 bfd_vma val = read_reloc (abfd, data, howto);
616
617 if (howto->negate)
618 relocation = -relocation;
619
620 val = ((val & ~howto->dst_mask)
621 | (((val & howto->src_mask) + relocation) & howto->dst_mask));
622
623 write_reloc (abfd, val, data, howto);
624 }
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 {
665 bfd_vma relocation;
666 bfd_reloc_status_type flag = bfd_reloc_ok;
667 bfd_size_type octets;
668 bfd_vma output_base = 0;
669 reloc_howto_type *howto = reloc_entry->howto;
670 asection *reloc_target_output_section;
671 asymbol *symbol;
672
673 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 if (bfd_is_und_section (symbol->section)
679 && (symbol->flags & BSF_WEAK) == 0
680 && output_bfd == NULL)
681 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 if (howto && howto->special_function)
687 {
688 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 cont = howto->special_function (abfd, reloc_entry, symbol, data,
695 input_section, output_bfd,
696 error_message);
697 if (cont != bfd_reloc_continue)
698 return cont;
699 }
700
701 if (bfd_is_abs_section (symbol->section)
702 && output_bfd != NULL)
703 {
704 reloc_entry->address += input_section->output_offset;
705 return bfd_reloc_ok;
706 }
707
708 /* PR 17512: file: 0f67f69d. */
709 if (howto == NULL)
710 return bfd_reloc_undefined;
711
712 /* Is the address of the relocation really within the section? */
713 octets = reloc_entry->address * bfd_octets_per_byte (abfd, input_section);
714 if (!bfd_reloc_offset_in_range (howto, abfd, input_section, octets))
715 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 if (bfd_is_com_section (symbol->section))
722 relocation = 0;
723 else
724 relocation = symbol->value;
725
726 reloc_target_output_section = symbol->section->output_section;
727
728 /* Convert input-section-relative symbol value to absolute. */
729 if ((output_bfd && ! howto->partial_inplace)
730 || reloc_target_output_section == NULL)
731 output_base = 0;
732 else
733 output_base = reloc_target_output_section->vma;
734
735 output_base += symbol->section->output_offset;
736
737 /* If symbol addresses are in octets, convert to bytes. */
738 if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
739 && (symbol->section->flags & SEC_ELF_OCTETS))
740 output_base *= bfd_octets_per_byte (abfd, input_section);
741
742 relocation += output_base;
743
744 /* Add in supplied addend. */
745 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 if (howto->pc_relative)
751 {
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 relocation -=
781 input_section->output_section->vma + input_section->output_offset;
782
783 if (howto->pcrel_offset)
784 relocation -= reloc_entry->address;
785 }
786
787 if (output_bfd != NULL)
788 {
789 if (! howto->partial_inplace)
790 {
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 reloc_entry->addend = relocation;
795 reloc_entry->address += input_section->output_offset;
796 return flag;
797 }
798 else
799 {
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 reloc_entry->address += input_section->output_offset;
807
808 /* WTF?? */
809 if (abfd->xvec->flavour == bfd_target_coff_flavour)
810 {
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 relocation -= reloc_entry->addend;
881 reloc_entry->addend = 0;
882 }
883 else
884 {
885 reloc_entry->addend = relocation;
886 }
887 }
888 }
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 if (howto->complain_on_overflow != complain_overflow_dont
898 && flag == bfd_reloc_ok)
899 flag = bfd_check_overflow (howto->complain_on_overflow,
900 howto->bitsize,
901 howto->rightshift,
902 bfd_arch_bits_per_address (abfd),
903 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 relocation >>= (bfd_vma) howto->rightshift;
933
934 /* Shift everything up to where it's going to be used. */
935 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 data = (bfd_byte *) data + octets;
971 apply_reloc (abfd, data, howto, relocation);
972 return flag;
973 }
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 {
1005 bfd_vma relocation;
1006 bfd_reloc_status_type flag = bfd_reloc_ok;
1007 bfd_size_type octets;
1008 bfd_vma output_base = 0;
1009 reloc_howto_type *howto = reloc_entry->howto;
1010 asection *reloc_target_output_section;
1011 asymbol *symbol;
1012 bfd_byte *data;
1013
1014 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 if (howto && howto->special_function)
1020 {
1021 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 cont = howto->special_function (abfd, reloc_entry, symbol,
1028 /* XXX - Non-portable! */
1029 ((bfd_byte *) data_start
1030 - data_start_offset),
1031 input_section, abfd, error_message);
1032 if (cont != bfd_reloc_continue)
1033 return cont;
1034 }
1035
1036 if (howto->install_addend)
1037 relocation = reloc_entry->addend;
1038 else
1039 {
1040 if (bfd_is_abs_section (symbol->section))
1041 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 if (bfd_is_com_section (symbol->section))
1048 relocation = 0;
1049 else
1050 relocation = symbol->value;
1051
1052 reloc_target_output_section = symbol->section;
1053
1054 /* Convert input-section-relative symbol value to absolute. */
1055 if (! howto->partial_inplace)
1056 output_base = 0;
1057 else
1058 output_base = reloc_target_output_section->vma;
1059
1060 /* If symbol addresses are in octets, convert to bytes. */
1061 if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
1062 && (symbol->section->flags & SEC_ELF_OCTETS))
1063 output_base *= bfd_octets_per_byte (abfd, input_section);
1064
1065 relocation += output_base;
1066
1067 /* Add in supplied addend. */
1068 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 if (howto->pc_relative)
1074 {
1075 relocation -= input_section->vma;
1076
1077 if (howto->pcrel_offset && howto->partial_inplace)
1078 relocation -= reloc_entry->address;
1079 }
1080 }
1081
1082 if (!howto->partial_inplace)
1083 {
1084 reloc_entry->addend = relocation;
1085 return flag;
1086 }
1087
1088 if (!howto->install_addend
1089 && abfd->xvec->flavour == bfd_target_coff_flavour)
1090 {
1091 /* This is just weird. We're subtracting out the original
1092 addend, so that for COFF the addend is ignored??? */
1093 relocation -= reloc_entry->addend;
1094 /* FIXME: There should be no target specific code here... */
1095 if (strcmp (abfd->xvec->name, "coff-z8k") != 0)
1096 reloc_entry->addend = 0;
1097 }
1098 else
1099 reloc_entry->addend = relocation;
1100
1101 /* Is the address of the relocation really within the section? */
1102 octets = reloc_entry->address * bfd_octets_per_byte (abfd, input_section);
1103 if (!bfd_reloc_offset_in_range (howto, abfd, input_section, octets))
1104 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 if (howto->complain_on_overflow != complain_overflow_dont)
1112 flag = bfd_check_overflow (howto->complain_on_overflow,
1113 howto->bitsize,
1114 howto->rightshift,
1115 bfd_arch_bits_per_address (abfd),
1116 relocation);
1117
1118 relocation >>= (bfd_vma) howto->rightshift;
1119
1120 /* Shift everything up to where it's going to be used. */
1121 relocation <<= (bfd_vma) howto->bitpos;
1122
1123 data = (bfd_byte *) data_start + (octets - data_start_offset);
1124 apply_reloc (abfd, data, howto, relocation);
1125 return flag;
1126 }
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 {
1159 bfd_vma relocation;
1160 bfd_size_type octets = (address
1161 * bfd_octets_per_byte (input_bfd, input_section));
1162
1163 /* Sanity check the address. */
1164 if (!bfd_reloc_offset_in_range (howto, input_bfd, input_section, octets))
1165 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 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 if (howto->pc_relative)
1184 {
1185 relocation -= (input_section->output_section->vma
1186 + input_section->output_offset);
1187 if (howto->pcrel_offset)
1188 relocation -= address;
1189 }
1190
1191 return _bfd_relocate_contents (howto, input_bfd, relocation,
1192 contents + octets);
1193 }
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 {
1203 bfd_vma x;
1204 bfd_reloc_status_type flag;
1205 unsigned int rightshift = howto->rightshift;
1206 unsigned int bitpos = howto->bitpos;
1207
1208 if (howto->negate)
1209 relocation = -relocation;
1210
1211 /* Get the value we are going to relocate. */
1212 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 flag = bfd_reloc_ok;
1219 if (howto->complain_on_overflow != complain_overflow_dont)
1220 {
1221 bfd_vma addrmask, fieldmask, signmask, ss;
1222 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 fieldmask = N_ONES (howto->bitsize);
1229 signmask = ~fieldmask;
1230 addrmask = (N_ONES (bfd_arch_bits_per_address (input_bfd))
1231 | (fieldmask << rightshift));
1232 a = (relocation & addrmask) >> rightshift;
1233 b = (x & howto->src_mask & addrmask) >> bitpos;
1234 addrmask >>= rightshift;
1235
1236 switch (howto->complain_on_overflow)
1237 {
1238 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 signmask = ~(fieldmask >> 1);
1243 /* Fall thru */
1244
1245 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 ss = a & signmask;
1252 if (ss != 0 && ss != (addrmask & signmask))
1253 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 ss = ((~howto->src_mask) >> 1) & howto->src_mask;
1262 ss >>= bitpos;
1263
1264 /* Set all the bits above the sign bit. */
1265 b = (b ^ ss) - ss;
1266
1267 /* Now we can do the addition. */
1268 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 if (((~(a ^ b)) & (a ^ sum)) & signmask & addrmask)
1284 flag = bfd_reloc_overflow;
1285 break;
1286
1287 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 sum = (a + b) & addrmask;
1300 if ((a | b | sum) & signmask)
1301 flag = bfd_reloc_overflow;
1302 break;
1303
1304 default:
1305 abort ();
1306 }
1307 }
1308
1309 /* Put RELOCATION in the right bits. */
1310 relocation >>= (bfd_vma) rightshift;
1311 relocation <<= (bfd_vma) bitpos;
1312
1313 /* Add RELOCATION to the right bits of X. */
1314 x = ((x & ~howto->dst_mask)
1315 | (((x & howto->src_mask) + relocation) & howto->dst_mask));
1316
1317 /* Put the relocated value back in the object file. */
1318 write_reloc (input_bfd, x, location, howto);
1319 return flag;
1320 }
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 {
1334 bfd_vma x;
1335 bfd_byte *location;
1336
1337 if (!bfd_reloc_offset_in_range (howto, input_bfd, input_section, off))
1338 return bfd_reloc_outofrange;
1339
1340 /* Get the value we are going to relocate. */
1341 location = buf + off;
1342 x = read_reloc (input_bfd, location, howto);
1343
1344 /* Zero out the unwanted bits of X. */
1345 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 if (strcmp (bfd_section_name (input_section), ".debug_ranges") == 0
1350 && (howto->dst_mask & 1) != 0)
1351 x |= 1;
1352
1353 /* Put the relocated value back in the object file. */
1354 write_reloc (input_bfd, x, location, howto);
1355 return bfd_reloc_ok;
1356 }
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 ENUMDOC
2485 x86-64/elf relocations.
2486
2487 ENUM
2488 BFD_RELOC_NS32K_IMM_8
2489 ENUMX
2490 BFD_RELOC_NS32K_IMM_16
2491 ENUMX
2492 BFD_RELOC_NS32K_IMM_32
2493 ENUMX
2494 BFD_RELOC_NS32K_IMM_8_PCREL
2495 ENUMX
2496 BFD_RELOC_NS32K_IMM_16_PCREL
2497 ENUMX
2498 BFD_RELOC_NS32K_IMM_32_PCREL
2499 ENUMX
2500 BFD_RELOC_NS32K_DISP_8
2501 ENUMX
2502 BFD_RELOC_NS32K_DISP_16
2503 ENUMX
2504 BFD_RELOC_NS32K_DISP_32
2505 ENUMX
2506 BFD_RELOC_NS32K_DISP_8_PCREL
2507 ENUMX
2508 BFD_RELOC_NS32K_DISP_16_PCREL
2509 ENUMX
2510 BFD_RELOC_NS32K_DISP_32_PCREL
2511 ENUMDOC
2512 ns32k relocations.
2513
2514 ENUM
2515 BFD_RELOC_PDP11_DISP_8_PCREL
2516 ENUMX
2517 BFD_RELOC_PDP11_DISP_6_PCREL
2518 ENUMDOC
2519 PDP11 relocations.
2520
2521 ENUM
2522 BFD_RELOC_PJ_CODE_HI16
2523 ENUMX
2524 BFD_RELOC_PJ_CODE_LO16
2525 ENUMX
2526 BFD_RELOC_PJ_CODE_DIR16
2527 ENUMX
2528 BFD_RELOC_PJ_CODE_DIR32
2529 ENUMX
2530 BFD_RELOC_PJ_CODE_REL16
2531 ENUMX
2532 BFD_RELOC_PJ_CODE_REL32
2533 ENUMDOC
2534 Picojava relocs. Not all of these appear in object files.
2535
2536 ENUM
2537 BFD_RELOC_PPC_B26
2538 ENUMX
2539 BFD_RELOC_PPC_BA26
2540 ENUMX
2541 BFD_RELOC_PPC_TOC16
2542 ENUMX
2543 BFD_RELOC_PPC_TOC16_LO
2544 ENUMX
2545 BFD_RELOC_PPC_TOC16_HI
2546 ENUMX
2547 BFD_RELOC_PPC_B16
2548 ENUMX
2549 BFD_RELOC_PPC_B16_BRTAKEN
2550 ENUMX
2551 BFD_RELOC_PPC_B16_BRNTAKEN
2552 ENUMX
2553 BFD_RELOC_PPC_BA16
2554 ENUMX
2555 BFD_RELOC_PPC_BA16_BRTAKEN
2556 ENUMX
2557 BFD_RELOC_PPC_BA16_BRNTAKEN
2558 ENUMX
2559 BFD_RELOC_PPC_COPY
2560 ENUMX
2561 BFD_RELOC_PPC_GLOB_DAT
2562 ENUMX
2563 BFD_RELOC_PPC_JMP_SLOT
2564 ENUMX
2565 BFD_RELOC_PPC_RELATIVE
2566 ENUMX
2567 BFD_RELOC_PPC_LOCAL24PC
2568 ENUMX
2569 BFD_RELOC_PPC_EMB_NADDR32
2570 ENUMX
2571 BFD_RELOC_PPC_EMB_NADDR16
2572 ENUMX
2573 BFD_RELOC_PPC_EMB_NADDR16_LO
2574 ENUMX
2575 BFD_RELOC_PPC_EMB_NADDR16_HI
2576 ENUMX
2577 BFD_RELOC_PPC_EMB_NADDR16_HA
2578 ENUMX
2579 BFD_RELOC_PPC_EMB_SDAI16
2580 ENUMX
2581 BFD_RELOC_PPC_EMB_SDA2I16
2582 ENUMX
2583 BFD_RELOC_PPC_EMB_SDA2REL
2584 ENUMX
2585 BFD_RELOC_PPC_EMB_SDA21
2586 ENUMX
2587 BFD_RELOC_PPC_EMB_MRKREF
2588 ENUMX
2589 BFD_RELOC_PPC_EMB_RELSEC16
2590 ENUMX
2591 BFD_RELOC_PPC_EMB_RELST_LO
2592 ENUMX
2593 BFD_RELOC_PPC_EMB_RELST_HI
2594 ENUMX
2595 BFD_RELOC_PPC_EMB_RELST_HA
2596 ENUMX
2597 BFD_RELOC_PPC_EMB_BIT_FLD
2598 ENUMX
2599 BFD_RELOC_PPC_EMB_RELSDA
2600 ENUMX
2601 BFD_RELOC_PPC_VLE_REL8
2602 ENUMX
2603 BFD_RELOC_PPC_VLE_REL15
2604 ENUMX
2605 BFD_RELOC_PPC_VLE_REL24
2606 ENUMX
2607 BFD_RELOC_PPC_VLE_LO16A
2608 ENUMX
2609 BFD_RELOC_PPC_VLE_LO16D
2610 ENUMX
2611 BFD_RELOC_PPC_VLE_HI16A
2612 ENUMX
2613 BFD_RELOC_PPC_VLE_HI16D
2614 ENUMX
2615 BFD_RELOC_PPC_VLE_HA16A
2616 ENUMX
2617 BFD_RELOC_PPC_VLE_HA16D
2618 ENUMX
2619 BFD_RELOC_PPC_VLE_SDA21
2620 ENUMX
2621 BFD_RELOC_PPC_VLE_SDA21_LO
2622 ENUMX
2623 BFD_RELOC_PPC_VLE_SDAREL_LO16A
2624 ENUMX
2625 BFD_RELOC_PPC_VLE_SDAREL_LO16D
2626 ENUMX
2627 BFD_RELOC_PPC_VLE_SDAREL_HI16A
2628 ENUMX
2629 BFD_RELOC_PPC_VLE_SDAREL_HI16D
2630 ENUMX
2631 BFD_RELOC_PPC_VLE_SDAREL_HA16A
2632 ENUMX
2633 BFD_RELOC_PPC_VLE_SDAREL_HA16D
2634 ENUMX
2635 BFD_RELOC_PPC_16DX_HA
2636 ENUMX
2637 BFD_RELOC_PPC_REL16DX_HA
2638 ENUMX
2639 BFD_RELOC_PPC_NEG
2640 ENUMX
2641 BFD_RELOC_PPC64_HIGHER
2642 ENUMX
2643 BFD_RELOC_PPC64_HIGHER_S
2644 ENUMX
2645 BFD_RELOC_PPC64_HIGHEST
2646 ENUMX
2647 BFD_RELOC_PPC64_HIGHEST_S
2648 ENUMX
2649 BFD_RELOC_PPC64_TOC16_LO
2650 ENUMX
2651 BFD_RELOC_PPC64_TOC16_HI
2652 ENUMX
2653 BFD_RELOC_PPC64_TOC16_HA
2654 ENUMX
2655 BFD_RELOC_PPC64_TOC
2656 ENUMX
2657 BFD_RELOC_PPC64_PLTGOT16
2658 ENUMX
2659 BFD_RELOC_PPC64_PLTGOT16_LO
2660 ENUMX
2661 BFD_RELOC_PPC64_PLTGOT16_HI
2662 ENUMX
2663 BFD_RELOC_PPC64_PLTGOT16_HA
2664 ENUMX
2665 BFD_RELOC_PPC64_ADDR16_DS
2666 ENUMX
2667 BFD_RELOC_PPC64_ADDR16_LO_DS
2668 ENUMX
2669 BFD_RELOC_PPC64_GOT16_DS
2670 ENUMX
2671 BFD_RELOC_PPC64_GOT16_LO_DS
2672 ENUMX
2673 BFD_RELOC_PPC64_PLT16_LO_DS
2674 ENUMX
2675 BFD_RELOC_PPC64_SECTOFF_DS
2676 ENUMX
2677 BFD_RELOC_PPC64_SECTOFF_LO_DS
2678 ENUMX
2679 BFD_RELOC_PPC64_TOC16_DS
2680 ENUMX
2681 BFD_RELOC_PPC64_TOC16_LO_DS
2682 ENUMX
2683 BFD_RELOC_PPC64_PLTGOT16_DS
2684 ENUMX
2685 BFD_RELOC_PPC64_PLTGOT16_LO_DS
2686 ENUMX
2687 BFD_RELOC_PPC64_ADDR16_HIGH
2688 ENUMX
2689 BFD_RELOC_PPC64_ADDR16_HIGHA
2690 ENUMX
2691 BFD_RELOC_PPC64_REL16_HIGH
2692 ENUMX
2693 BFD_RELOC_PPC64_REL16_HIGHA
2694 ENUMX
2695 BFD_RELOC_PPC64_REL16_HIGHER
2696 ENUMX
2697 BFD_RELOC_PPC64_REL16_HIGHERA
2698 ENUMX
2699 BFD_RELOC_PPC64_REL16_HIGHEST
2700 ENUMX
2701 BFD_RELOC_PPC64_REL16_HIGHESTA
2702 ENUMX
2703 BFD_RELOC_PPC64_ADDR64_LOCAL
2704 ENUMX
2705 BFD_RELOC_PPC64_ENTRY
2706 ENUMX
2707 BFD_RELOC_PPC64_REL24_NOTOC
2708 ENUMX
2709 BFD_RELOC_PPC64_REL24_P9NOTOC
2710 ENUMX
2711 BFD_RELOC_PPC64_D34
2712 ENUMX
2713 BFD_RELOC_PPC64_D34_LO
2714 ENUMX
2715 BFD_RELOC_PPC64_D34_HI30
2716 ENUMX
2717 BFD_RELOC_PPC64_D34_HA30
2718 ENUMX
2719 BFD_RELOC_PPC64_PCREL34
2720 ENUMX
2721 BFD_RELOC_PPC64_GOT_PCREL34
2722 ENUMX
2723 BFD_RELOC_PPC64_PLT_PCREL34
2724 ENUMX
2725 BFD_RELOC_PPC64_ADDR16_HIGHER34
2726 ENUMX
2727 BFD_RELOC_PPC64_ADDR16_HIGHERA34
2728 ENUMX
2729 BFD_RELOC_PPC64_ADDR16_HIGHEST34
2730 ENUMX
2731 BFD_RELOC_PPC64_ADDR16_HIGHESTA34
2732 ENUMX
2733 BFD_RELOC_PPC64_REL16_HIGHER34
2734 ENUMX
2735 BFD_RELOC_PPC64_REL16_HIGHERA34
2736 ENUMX
2737 BFD_RELOC_PPC64_REL16_HIGHEST34
2738 ENUMX
2739 BFD_RELOC_PPC64_REL16_HIGHESTA34
2740 ENUMX
2741 BFD_RELOC_PPC64_D28
2742 ENUMX
2743 BFD_RELOC_PPC64_PCREL28
2744 ENUMDOC
2745 Power(rs6000) and PowerPC relocations.
2746
2747 ENUM
2748 BFD_RELOC_PPC_TLS
2749 ENUMX
2750 BFD_RELOC_PPC_TLSGD
2751 ENUMX
2752 BFD_RELOC_PPC_TLSLD
2753 ENUMX
2754 BFD_RELOC_PPC_TLSLE
2755 ENUMX
2756 BFD_RELOC_PPC_TLSIE
2757 ENUMX
2758 BFD_RELOC_PPC_TLSM
2759 ENUMX
2760 BFD_RELOC_PPC_TLSML
2761 ENUMX
2762 BFD_RELOC_PPC_DTPMOD
2763 ENUMX
2764 BFD_RELOC_PPC_TPREL16
2765 ENUMX
2766 BFD_RELOC_PPC_TPREL16_LO
2767 ENUMX
2768 BFD_RELOC_PPC_TPREL16_HI
2769 ENUMX
2770 BFD_RELOC_PPC_TPREL16_HA
2771 ENUMX
2772 BFD_RELOC_PPC_TPREL
2773 ENUMX
2774 BFD_RELOC_PPC_DTPREL16
2775 ENUMX
2776 BFD_RELOC_PPC_DTPREL16_LO
2777 ENUMX
2778 BFD_RELOC_PPC_DTPREL16_HI
2779 ENUMX
2780 BFD_RELOC_PPC_DTPREL16_HA
2781 ENUMX
2782 BFD_RELOC_PPC_DTPREL
2783 ENUMX
2784 BFD_RELOC_PPC_GOT_TLSGD16
2785 ENUMX
2786 BFD_RELOC_PPC_GOT_TLSGD16_LO
2787 ENUMX
2788 BFD_RELOC_PPC_GOT_TLSGD16_HI
2789 ENUMX
2790 BFD_RELOC_PPC_GOT_TLSGD16_HA
2791 ENUMX
2792 BFD_RELOC_PPC_GOT_TLSLD16
2793 ENUMX
2794 BFD_RELOC_PPC_GOT_TLSLD16_LO
2795 ENUMX
2796 BFD_RELOC_PPC_GOT_TLSLD16_HI
2797 ENUMX
2798 BFD_RELOC_PPC_GOT_TLSLD16_HA
2799 ENUMX
2800 BFD_RELOC_PPC_GOT_TPREL16
2801 ENUMX
2802 BFD_RELOC_PPC_GOT_TPREL16_LO
2803 ENUMX
2804 BFD_RELOC_PPC_GOT_TPREL16_HI
2805 ENUMX
2806 BFD_RELOC_PPC_GOT_TPREL16_HA
2807 ENUMX
2808 BFD_RELOC_PPC_GOT_DTPREL16
2809 ENUMX
2810 BFD_RELOC_PPC_GOT_DTPREL16_LO
2811 ENUMX
2812 BFD_RELOC_PPC_GOT_DTPREL16_HI
2813 ENUMX
2814 BFD_RELOC_PPC_GOT_DTPREL16_HA
2815 ENUMX
2816 BFD_RELOC_PPC64_TLSGD
2817 ENUMX
2818 BFD_RELOC_PPC64_TLSLD
2819 ENUMX
2820 BFD_RELOC_PPC64_TLSLE
2821 ENUMX
2822 BFD_RELOC_PPC64_TLSIE
2823 ENUMX
2824 BFD_RELOC_PPC64_TLSM
2825 ENUMX
2826 BFD_RELOC_PPC64_TLSML
2827 ENUMX
2828 BFD_RELOC_PPC64_TPREL16_DS
2829 ENUMX
2830 BFD_RELOC_PPC64_TPREL16_LO_DS
2831 ENUMX
2832 BFD_RELOC_PPC64_TPREL16_HIGH
2833 ENUMX
2834 BFD_RELOC_PPC64_TPREL16_HIGHA
2835 ENUMX
2836 BFD_RELOC_PPC64_TPREL16_HIGHER
2837 ENUMX
2838 BFD_RELOC_PPC64_TPREL16_HIGHERA
2839 ENUMX
2840 BFD_RELOC_PPC64_TPREL16_HIGHEST
2841 ENUMX
2842 BFD_RELOC_PPC64_TPREL16_HIGHESTA
2843 ENUMX
2844 BFD_RELOC_PPC64_DTPREL16_DS
2845 ENUMX
2846 BFD_RELOC_PPC64_DTPREL16_LO_DS
2847 ENUMX
2848 BFD_RELOC_PPC64_DTPREL16_HIGH
2849 ENUMX
2850 BFD_RELOC_PPC64_DTPREL16_HIGHA
2851 ENUMX
2852 BFD_RELOC_PPC64_DTPREL16_HIGHER
2853 ENUMX
2854 BFD_RELOC_PPC64_DTPREL16_HIGHERA
2855 ENUMX
2856 BFD_RELOC_PPC64_DTPREL16_HIGHEST
2857 ENUMX
2858 BFD_RELOC_PPC64_DTPREL16_HIGHESTA
2859 ENUMX
2860 BFD_RELOC_PPC64_TPREL34
2861 ENUMX
2862 BFD_RELOC_PPC64_DTPREL34
2863 ENUMX
2864 BFD_RELOC_PPC64_GOT_TLSGD_PCREL34
2865 ENUMX
2866 BFD_RELOC_PPC64_GOT_TLSLD_PCREL34
2867 ENUMX
2868 BFD_RELOC_PPC64_GOT_TPREL_PCREL34
2869 ENUMX
2870 BFD_RELOC_PPC64_GOT_DTPREL_PCREL34
2871 ENUMX
2872 BFD_RELOC_PPC64_TLS_PCREL
2873 ENUMDOC
2874 PowerPC and PowerPC64 thread-local storage relocations.
2875
2876 ENUM
2877 BFD_RELOC_I370_D12
2878 ENUMDOC
2879 IBM 370/390 relocations.
2880
2881 ENUM
2882 BFD_RELOC_CTOR
2883 ENUMDOC
2884 The type of reloc used to build a constructor table - at the moment
2885 probably a 32 bit wide absolute relocation, but the target can choose.
2886 It generally does map to one of the other relocation types.
2887
2888 ENUM
2889 BFD_RELOC_ARM_PCREL_BRANCH
2890 ENUMDOC
2891 ARM 26 bit pc-relative branch. The lowest two bits must be zero and
2892 are not stored in the instruction.
2893 ENUM
2894 BFD_RELOC_ARM_PCREL_BLX
2895 ENUMDOC
2896 ARM 26 bit pc-relative branch. The lowest bit must be zero and is
2897 not stored in the instruction. The 2nd lowest bit comes from a 1 bit
2898 field in the instruction.
2899 ENUM
2900 BFD_RELOC_THUMB_PCREL_BLX
2901 ENUMDOC
2902 Thumb 22 bit pc-relative branch. The lowest bit must be zero and is
2903 not stored in the instruction. The 2nd lowest bit comes from a 1 bit
2904 field in the instruction.
2905 ENUM
2906 BFD_RELOC_ARM_PCREL_CALL
2907 ENUMDOC
2908 ARM 26-bit pc-relative branch for an unconditional BL or BLX
2909 instruction.
2910 ENUM
2911 BFD_RELOC_ARM_PCREL_JUMP
2912 ENUMDOC
2913 ARM 26-bit pc-relative branch for B or conditional BL instruction.
2914
2915 ENUM
2916 BFD_RELOC_THUMB_PCREL_BRANCH5
2917 ENUMDOC
2918 ARM 5-bit pc-relative branch for Branch Future instructions.
2919
2920 ENUM
2921 BFD_RELOC_THUMB_PCREL_BFCSEL
2922 ENUMDOC
2923 ARM 6-bit pc-relative branch for BFCSEL instruction.
2924
2925 ENUM
2926 BFD_RELOC_ARM_THUMB_BF17
2927 ENUMDOC
2928 ARM 17-bit pc-relative branch for Branch Future instructions.
2929
2930 ENUM
2931 BFD_RELOC_ARM_THUMB_BF13
2932 ENUMDOC
2933 ARM 13-bit pc-relative branch for BFCSEL instruction.
2934
2935 ENUM
2936 BFD_RELOC_ARM_THUMB_BF19
2937 ENUMDOC
2938 ARM 19-bit pc-relative branch for Branch Future Link instruction.
2939
2940 ENUM
2941 BFD_RELOC_ARM_THUMB_LOOP12
2942 ENUMDOC
2943 ARM 12-bit pc-relative branch for Low Overhead Loop instructions.
2944
2945 ENUM
2946 BFD_RELOC_THUMB_PCREL_BRANCH7
2947 ENUMX
2948 BFD_RELOC_THUMB_PCREL_BRANCH9
2949 ENUMX
2950 BFD_RELOC_THUMB_PCREL_BRANCH12
2951 ENUMX
2952 BFD_RELOC_THUMB_PCREL_BRANCH20
2953 ENUMX
2954 BFD_RELOC_THUMB_PCREL_BRANCH23
2955 ENUMX
2956 BFD_RELOC_THUMB_PCREL_BRANCH25
2957 ENUMDOC
2958 Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
2959 The lowest bit must be zero and is not stored in the instruction.
2960 Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
2961 "nn" one smaller in all cases. Note further that BRANCH23
2962 corresponds to R_ARM_THM_CALL.
2963
2964 ENUM
2965 BFD_RELOC_ARM_OFFSET_IMM
2966 ENUMDOC
2967 12-bit immediate offset, used in ARM-format ldr and str instructions.
2968
2969 ENUM
2970 BFD_RELOC_ARM_THUMB_OFFSET
2971 ENUMDOC
2972 5-bit immediate offset, used in Thumb-format ldr and str instructions.
2973
2974 ENUM
2975 BFD_RELOC_ARM_TARGET1
2976 ENUMDOC
2977 Pc-relative or absolute relocation depending on target. Used for
2978 entries in .init_array sections.
2979 ENUM
2980 BFD_RELOC_ARM_ROSEGREL32
2981 ENUMDOC
2982 Read-only segment base relative address.
2983 ENUM
2984 BFD_RELOC_ARM_SBREL32
2985 ENUMDOC
2986 Data segment base relative address.
2987 ENUM
2988 BFD_RELOC_ARM_TARGET2
2989 ENUMDOC
2990 This reloc is used for references to RTTI data from exception
2991 handling tables. The actual definition depends on the target. It
2992 may be a pc-relative or some form of GOT-indirect relocation.
2993 ENUM
2994 BFD_RELOC_ARM_PREL31
2995 ENUMDOC
2996 31-bit PC relative address.
2997 ENUM
2998 BFD_RELOC_ARM_MOVW
2999 ENUMX
3000 BFD_RELOC_ARM_MOVT
3001 ENUMX
3002 BFD_RELOC_ARM_MOVW_PCREL
3003 ENUMX
3004 BFD_RELOC_ARM_MOVT_PCREL
3005 ENUMX
3006 BFD_RELOC_ARM_THUMB_MOVW
3007 ENUMX
3008 BFD_RELOC_ARM_THUMB_MOVT
3009 ENUMX
3010 BFD_RELOC_ARM_THUMB_MOVW_PCREL
3011 ENUMX
3012 BFD_RELOC_ARM_THUMB_MOVT_PCREL
3013 ENUMDOC
3014 Low and High halfword relocations for MOVW and MOVT instructions.
3015
3016 ENUM
3017 BFD_RELOC_ARM_GOTFUNCDESC
3018 ENUMX
3019 BFD_RELOC_ARM_GOTOFFFUNCDESC
3020 ENUMX
3021 BFD_RELOC_ARM_FUNCDESC
3022 ENUMX
3023 BFD_RELOC_ARM_FUNCDESC_VALUE
3024 ENUMX
3025 BFD_RELOC_ARM_TLS_GD32_FDPIC
3026 ENUMX
3027 BFD_RELOC_ARM_TLS_LDM32_FDPIC
3028 ENUMX
3029 BFD_RELOC_ARM_TLS_IE32_FDPIC
3030 ENUMDOC
3031 ARM FDPIC specific relocations.
3032
3033 ENUM
3034 BFD_RELOC_ARM_JUMP_SLOT
3035 ENUMX
3036 BFD_RELOC_ARM_GLOB_DAT
3037 ENUMX
3038 BFD_RELOC_ARM_GOT32
3039 ENUMX
3040 BFD_RELOC_ARM_PLT32
3041 ENUMX
3042 BFD_RELOC_ARM_RELATIVE
3043 ENUMX
3044 BFD_RELOC_ARM_GOTOFF
3045 ENUMX
3046 BFD_RELOC_ARM_GOTPC
3047 ENUMX
3048 BFD_RELOC_ARM_GOT_PREL
3049 ENUMDOC
3050 Relocations for setting up GOTs and PLTs for shared libraries.
3051
3052 ENUM
3053 BFD_RELOC_ARM_TLS_GD32
3054 ENUMX
3055 BFD_RELOC_ARM_TLS_LDO32
3056 ENUMX
3057 BFD_RELOC_ARM_TLS_LDM32
3058 ENUMX
3059 BFD_RELOC_ARM_TLS_DTPOFF32
3060 ENUMX
3061 BFD_RELOC_ARM_TLS_DTPMOD32
3062 ENUMX
3063 BFD_RELOC_ARM_TLS_TPOFF32
3064 ENUMX
3065 BFD_RELOC_ARM_TLS_IE32
3066 ENUMX
3067 BFD_RELOC_ARM_TLS_LE32
3068 ENUMX
3069 BFD_RELOC_ARM_TLS_GOTDESC
3070 ENUMX
3071 BFD_RELOC_ARM_TLS_CALL
3072 ENUMX
3073 BFD_RELOC_ARM_THM_TLS_CALL
3074 ENUMX
3075 BFD_RELOC_ARM_TLS_DESCSEQ
3076 ENUMX
3077 BFD_RELOC_ARM_THM_TLS_DESCSEQ
3078 ENUMX
3079 BFD_RELOC_ARM_TLS_DESC
3080 ENUMDOC
3081 ARM thread-local storage relocations.
3082
3083 ENUM
3084 BFD_RELOC_ARM_ALU_PC_G0_NC
3085 ENUMX
3086 BFD_RELOC_ARM_ALU_PC_G0
3087 ENUMX
3088 BFD_RELOC_ARM_ALU_PC_G1_NC
3089 ENUMX
3090 BFD_RELOC_ARM_ALU_PC_G1
3091 ENUMX
3092 BFD_RELOC_ARM_ALU_PC_G2
3093 ENUMX
3094 BFD_RELOC_ARM_LDR_PC_G0
3095 ENUMX
3096 BFD_RELOC_ARM_LDR_PC_G1
3097 ENUMX
3098 BFD_RELOC_ARM_LDR_PC_G2
3099 ENUMX
3100 BFD_RELOC_ARM_LDRS_PC_G0
3101 ENUMX
3102 BFD_RELOC_ARM_LDRS_PC_G1
3103 ENUMX
3104 BFD_RELOC_ARM_LDRS_PC_G2
3105 ENUMX
3106 BFD_RELOC_ARM_LDC_PC_G0
3107 ENUMX
3108 BFD_RELOC_ARM_LDC_PC_G1
3109 ENUMX
3110 BFD_RELOC_ARM_LDC_PC_G2
3111 ENUMX
3112 BFD_RELOC_ARM_ALU_SB_G0_NC
3113 ENUMX
3114 BFD_RELOC_ARM_ALU_SB_G0
3115 ENUMX
3116 BFD_RELOC_ARM_ALU_SB_G1_NC
3117 ENUMX
3118 BFD_RELOC_ARM_ALU_SB_G1
3119 ENUMX
3120 BFD_RELOC_ARM_ALU_SB_G2
3121 ENUMX
3122 BFD_RELOC_ARM_LDR_SB_G0
3123 ENUMX
3124 BFD_RELOC_ARM_LDR_SB_G1
3125 ENUMX
3126 BFD_RELOC_ARM_LDR_SB_G2
3127 ENUMX
3128 BFD_RELOC_ARM_LDRS_SB_G0
3129 ENUMX
3130 BFD_RELOC_ARM_LDRS_SB_G1
3131 ENUMX
3132 BFD_RELOC_ARM_LDRS_SB_G2
3133 ENUMX
3134 BFD_RELOC_ARM_LDC_SB_G0
3135 ENUMX
3136 BFD_RELOC_ARM_LDC_SB_G1
3137 ENUMX
3138 BFD_RELOC_ARM_LDC_SB_G2
3139 ENUMDOC
3140 ARM group relocations.
3141
3142 ENUM
3143 BFD_RELOC_ARM_V4BX
3144 ENUMDOC
3145 Annotation of BX instructions.
3146
3147 ENUM
3148 BFD_RELOC_ARM_IRELATIVE
3149 ENUMDOC
3150 ARM support for STT_GNU_IFUNC.
3151
3152 ENUM
3153 BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC
3154 ENUMX
3155 BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC
3156 ENUMX
3157 BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC
3158 ENUMX
3159 BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC
3160 ENUMDOC
3161 Thumb1 relocations to support execute-only code.
3162
3163 ENUM
3164 BFD_RELOC_ARM_IMMEDIATE
3165 ENUMX
3166 BFD_RELOC_ARM_ADRL_IMMEDIATE
3167 ENUMX
3168 BFD_RELOC_ARM_T32_IMMEDIATE
3169 ENUMX
3170 BFD_RELOC_ARM_T32_ADD_IMM
3171 ENUMX
3172 BFD_RELOC_ARM_T32_IMM12
3173 ENUMX
3174 BFD_RELOC_ARM_T32_ADD_PC12
3175 ENUMX
3176 BFD_RELOC_ARM_SHIFT_IMM
3177 ENUMX
3178 BFD_RELOC_ARM_SMC
3179 ENUMX
3180 BFD_RELOC_ARM_HVC
3181 ENUMX
3182 BFD_RELOC_ARM_SWI
3183 ENUMX
3184 BFD_RELOC_ARM_MULTI
3185 ENUMX
3186 BFD_RELOC_ARM_CP_OFF_IMM
3187 ENUMX
3188 BFD_RELOC_ARM_CP_OFF_IMM_S2
3189 ENUMX
3190 BFD_RELOC_ARM_T32_CP_OFF_IMM
3191 ENUMX
3192 BFD_RELOC_ARM_T32_CP_OFF_IMM_S2
3193 ENUMX
3194 BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM
3195 ENUMX
3196 BFD_RELOC_ARM_ADR_IMM
3197 ENUMX
3198 BFD_RELOC_ARM_LDR_IMM
3199 ENUMX
3200 BFD_RELOC_ARM_LITERAL
3201 ENUMX
3202 BFD_RELOC_ARM_IN_POOL
3203 ENUMX
3204 BFD_RELOC_ARM_OFFSET_IMM8
3205 ENUMX
3206 BFD_RELOC_ARM_T32_OFFSET_U8
3207 ENUMX
3208 BFD_RELOC_ARM_T32_OFFSET_IMM
3209 ENUMX
3210 BFD_RELOC_ARM_HWLITERAL
3211 ENUMX
3212 BFD_RELOC_ARM_THUMB_ADD
3213 ENUMX
3214 BFD_RELOC_ARM_THUMB_IMM
3215 ENUMX
3216 BFD_RELOC_ARM_THUMB_SHIFT
3217 ENUMDOC
3218 These relocs are only used within the ARM assembler. They are not
3219 (at present) written to any object files.
3220
3221 ENUM
3222 BFD_RELOC_SH_PCDISP8BY2
3223 ENUMX
3224 BFD_RELOC_SH_PCDISP12BY2
3225 ENUMX
3226 BFD_RELOC_SH_IMM3
3227 ENUMX
3228 BFD_RELOC_SH_IMM3U
3229 ENUMX
3230 BFD_RELOC_SH_DISP12
3231 ENUMX
3232 BFD_RELOC_SH_DISP12BY2
3233 ENUMX
3234 BFD_RELOC_SH_DISP12BY4
3235 ENUMX
3236 BFD_RELOC_SH_DISP12BY8
3237 ENUMX
3238 BFD_RELOC_SH_DISP20
3239 ENUMX
3240 BFD_RELOC_SH_DISP20BY8
3241 ENUMX
3242 BFD_RELOC_SH_IMM4
3243 ENUMX
3244 BFD_RELOC_SH_IMM4BY2
3245 ENUMX
3246 BFD_RELOC_SH_IMM4BY4
3247 ENUMX
3248 BFD_RELOC_SH_IMM8
3249 ENUMX
3250 BFD_RELOC_SH_IMM8BY2
3251 ENUMX
3252 BFD_RELOC_SH_IMM8BY4
3253 ENUMX
3254 BFD_RELOC_SH_PCRELIMM8BY2
3255 ENUMX
3256 BFD_RELOC_SH_PCRELIMM8BY4
3257 ENUMX
3258 BFD_RELOC_SH_SWITCH16
3259 ENUMX
3260 BFD_RELOC_SH_SWITCH32
3261 ENUMX
3262 BFD_RELOC_SH_USES
3263 ENUMX
3264 BFD_RELOC_SH_COUNT
3265 ENUMX
3266 BFD_RELOC_SH_ALIGN
3267 ENUMX
3268 BFD_RELOC_SH_CODE
3269 ENUMX
3270 BFD_RELOC_SH_DATA
3271 ENUMX
3272 BFD_RELOC_SH_LABEL
3273 ENUMX
3274 BFD_RELOC_SH_LOOP_START
3275 ENUMX
3276 BFD_RELOC_SH_LOOP_END
3277 ENUMX
3278 BFD_RELOC_SH_COPY
3279 ENUMX
3280 BFD_RELOC_SH_GLOB_DAT
3281 ENUMX
3282 BFD_RELOC_SH_JMP_SLOT
3283 ENUMX
3284 BFD_RELOC_SH_RELATIVE
3285 ENUMX
3286 BFD_RELOC_SH_GOTPC
3287 ENUMX
3288 BFD_RELOC_SH_GOT_LOW16
3289 ENUMX
3290 BFD_RELOC_SH_GOT_MEDLOW16
3291 ENUMX
3292 BFD_RELOC_SH_GOT_MEDHI16
3293 ENUMX
3294 BFD_RELOC_SH_GOT_HI16
3295 ENUMX
3296 BFD_RELOC_SH_GOTPLT_LOW16
3297 ENUMX
3298 BFD_RELOC_SH_GOTPLT_MEDLOW16
3299 ENUMX
3300 BFD_RELOC_SH_GOTPLT_MEDHI16
3301 ENUMX
3302 BFD_RELOC_SH_GOTPLT_HI16
3303 ENUMX
3304 BFD_RELOC_SH_PLT_LOW16
3305 ENUMX
3306 BFD_RELOC_SH_PLT_MEDLOW16
3307 ENUMX
3308 BFD_RELOC_SH_PLT_MEDHI16
3309 ENUMX
3310 BFD_RELOC_SH_PLT_HI16
3311 ENUMX
3312 BFD_RELOC_SH_GOTOFF_LOW16
3313 ENUMX
3314 BFD_RELOC_SH_GOTOFF_MEDLOW16
3315 ENUMX
3316 BFD_RELOC_SH_GOTOFF_MEDHI16
3317 ENUMX
3318 BFD_RELOC_SH_GOTOFF_HI16
3319 ENUMX
3320 BFD_RELOC_SH_GOTPC_LOW16
3321 ENUMX
3322 BFD_RELOC_SH_GOTPC_MEDLOW16
3323 ENUMX
3324 BFD_RELOC_SH_GOTPC_MEDHI16
3325 ENUMX
3326 BFD_RELOC_SH_GOTPC_HI16
3327 ENUMX
3328 BFD_RELOC_SH_COPY64
3329 ENUMX
3330 BFD_RELOC_SH_GLOB_DAT64
3331 ENUMX
3332 BFD_RELOC_SH_JMP_SLOT64
3333 ENUMX
3334 BFD_RELOC_SH_RELATIVE64
3335 ENUMX
3336 BFD_RELOC_SH_GOT10BY4
3337 ENUMX
3338 BFD_RELOC_SH_GOT10BY8
3339 ENUMX
3340 BFD_RELOC_SH_GOTPLT10BY4
3341 ENUMX
3342 BFD_RELOC_SH_GOTPLT10BY8
3343 ENUMX
3344 BFD_RELOC_SH_GOTPLT32
3345 ENUMX
3346 BFD_RELOC_SH_SHMEDIA_CODE
3347 ENUMX
3348 BFD_RELOC_SH_IMMU5
3349 ENUMX
3350 BFD_RELOC_SH_IMMS6
3351 ENUMX
3352 BFD_RELOC_SH_IMMS6BY32
3353 ENUMX
3354 BFD_RELOC_SH_IMMU6
3355 ENUMX
3356 BFD_RELOC_SH_IMMS10
3357 ENUMX
3358 BFD_RELOC_SH_IMMS10BY2
3359 ENUMX
3360 BFD_RELOC_SH_IMMS10BY4
3361 ENUMX
3362 BFD_RELOC_SH_IMMS10BY8
3363 ENUMX
3364 BFD_RELOC_SH_IMMS16
3365 ENUMX
3366 BFD_RELOC_SH_IMMU16
3367 ENUMX
3368 BFD_RELOC_SH_IMM_LOW16
3369 ENUMX
3370 BFD_RELOC_SH_IMM_LOW16_PCREL
3371 ENUMX
3372 BFD_RELOC_SH_IMM_MEDLOW16
3373 ENUMX
3374 BFD_RELOC_SH_IMM_MEDLOW16_PCREL
3375 ENUMX
3376 BFD_RELOC_SH_IMM_MEDHI16
3377 ENUMX
3378 BFD_RELOC_SH_IMM_MEDHI16_PCREL
3379 ENUMX
3380 BFD_RELOC_SH_IMM_HI16
3381 ENUMX
3382 BFD_RELOC_SH_IMM_HI16_PCREL
3383 ENUMX
3384 BFD_RELOC_SH_PT_16
3385 ENUMX
3386 BFD_RELOC_SH_TLS_GD_32
3387 ENUMX
3388 BFD_RELOC_SH_TLS_LD_32
3389 ENUMX
3390 BFD_RELOC_SH_TLS_LDO_32
3391 ENUMX
3392 BFD_RELOC_SH_TLS_IE_32
3393 ENUMX
3394 BFD_RELOC_SH_TLS_LE_32
3395 ENUMX
3396 BFD_RELOC_SH_TLS_DTPMOD32
3397 ENUMX
3398 BFD_RELOC_SH_TLS_DTPOFF32
3399 ENUMX
3400 BFD_RELOC_SH_TLS_TPOFF32
3401 ENUMX
3402 BFD_RELOC_SH_GOT20
3403 ENUMX
3404 BFD_RELOC_SH_GOTOFF20
3405 ENUMX
3406 BFD_RELOC_SH_GOTFUNCDESC
3407 ENUMX
3408 BFD_RELOC_SH_GOTFUNCDESC20
3409 ENUMX
3410 BFD_RELOC_SH_GOTOFFFUNCDESC
3411 ENUMX
3412 BFD_RELOC_SH_GOTOFFFUNCDESC20
3413 ENUMX
3414 BFD_RELOC_SH_FUNCDESC
3415 ENUMDOC
3416 Renesas / SuperH SH relocs. Not all of these appear in object files.
3417
3418 ENUM
3419 BFD_RELOC_ARC_NONE
3420 ENUMX
3421 BFD_RELOC_ARC_8
3422 ENUMX
3423 BFD_RELOC_ARC_16
3424 ENUMX
3425 BFD_RELOC_ARC_24
3426 ENUMX
3427 BFD_RELOC_ARC_32
3428 ENUMX
3429 BFD_RELOC_ARC_N8
3430 ENUMX
3431 BFD_RELOC_ARC_N16
3432 ENUMX
3433 BFD_RELOC_ARC_N24
3434 ENUMX
3435 BFD_RELOC_ARC_N32
3436 ENUMX
3437 BFD_RELOC_ARC_SDA
3438 ENUMX
3439 BFD_RELOC_ARC_SECTOFF
3440 ENUMX
3441 BFD_RELOC_ARC_S21H_PCREL
3442 ENUMX
3443 BFD_RELOC_ARC_S21W_PCREL
3444 ENUMX
3445 BFD_RELOC_ARC_S25H_PCREL
3446 ENUMX
3447 BFD_RELOC_ARC_S25W_PCREL
3448 ENUMX
3449 BFD_RELOC_ARC_SDA32
3450 ENUMX
3451 BFD_RELOC_ARC_SDA_LDST
3452 ENUMX
3453 BFD_RELOC_ARC_SDA_LDST1
3454 ENUMX
3455 BFD_RELOC_ARC_SDA_LDST2
3456 ENUMX
3457 BFD_RELOC_ARC_SDA16_LD
3458 ENUMX
3459 BFD_RELOC_ARC_SDA16_LD1
3460 ENUMX
3461 BFD_RELOC_ARC_SDA16_LD2
3462 ENUMX
3463 BFD_RELOC_ARC_S13_PCREL
3464 ENUMX
3465 BFD_RELOC_ARC_W
3466 ENUMX
3467 BFD_RELOC_ARC_32_ME
3468 ENUMX
3469 BFD_RELOC_ARC_32_ME_S
3470 ENUMX
3471 BFD_RELOC_ARC_N32_ME
3472 ENUMX
3473 BFD_RELOC_ARC_SECTOFF_ME
3474 ENUMX
3475 BFD_RELOC_ARC_SDA32_ME
3476 ENUMX
3477 BFD_RELOC_ARC_W_ME
3478 ENUMX
3479 BFD_RELOC_AC_SECTOFF_U8
3480 ENUMX
3481 BFD_RELOC_AC_SECTOFF_U8_1
3482 ENUMX
3483 BFD_RELOC_AC_SECTOFF_U8_2
3484 ENUMX
3485 BFD_RELOC_AC_SECTOFF_S9
3486 ENUMX
3487 BFD_RELOC_AC_SECTOFF_S9_1
3488 ENUMX
3489 BFD_RELOC_AC_SECTOFF_S9_2
3490 ENUMX
3491 BFD_RELOC_ARC_SECTOFF_ME_1
3492 ENUMX
3493 BFD_RELOC_ARC_SECTOFF_ME_2
3494 ENUMX
3495 BFD_RELOC_ARC_SECTOFF_1
3496 ENUMX
3497 BFD_RELOC_ARC_SECTOFF_2
3498 ENUMX
3499 BFD_RELOC_ARC_SDA_12
3500 ENUMX
3501 BFD_RELOC_ARC_SDA16_ST2
3502 ENUMX
3503 BFD_RELOC_ARC_32_PCREL
3504 ENUMX
3505 BFD_RELOC_ARC_PC32
3506 ENUMX
3507 BFD_RELOC_ARC_GOT32
3508 ENUMX
3509 BFD_RELOC_ARC_GOTPC32
3510 ENUMX
3511 BFD_RELOC_ARC_PLT32
3512 ENUMX
3513 BFD_RELOC_ARC_COPY
3514 ENUMX
3515 BFD_RELOC_ARC_GLOB_DAT
3516 ENUMX
3517 BFD_RELOC_ARC_JMP_SLOT
3518 ENUMX
3519 BFD_RELOC_ARC_RELATIVE
3520 ENUMX
3521 BFD_RELOC_ARC_GOTOFF
3522 ENUMX
3523 BFD_RELOC_ARC_GOTPC
3524 ENUMX
3525 BFD_RELOC_ARC_S21W_PCREL_PLT
3526 ENUMX
3527 BFD_RELOC_ARC_S25H_PCREL_PLT
3528 ENUMX
3529 BFD_RELOC_ARC_TLS_DTPMOD
3530 ENUMX
3531 BFD_RELOC_ARC_TLS_TPOFF
3532 ENUMX
3533 BFD_RELOC_ARC_TLS_GD_GOT
3534 ENUMX
3535 BFD_RELOC_ARC_TLS_GD_LD
3536 ENUMX
3537 BFD_RELOC_ARC_TLS_GD_CALL
3538 ENUMX
3539 BFD_RELOC_ARC_TLS_IE_GOT
3540 ENUMX
3541 BFD_RELOC_ARC_TLS_DTPOFF
3542 ENUMX
3543 BFD_RELOC_ARC_TLS_DTPOFF_S9
3544 ENUMX
3545 BFD_RELOC_ARC_TLS_LE_S9
3546 ENUMX
3547 BFD_RELOC_ARC_TLS_LE_32
3548 ENUMX
3549 BFD_RELOC_ARC_S25W_PCREL_PLT
3550 ENUMX
3551 BFD_RELOC_ARC_S21H_PCREL_PLT
3552 ENUMX
3553 BFD_RELOC_ARC_NPS_CMEM16
3554 ENUMX
3555 BFD_RELOC_ARC_JLI_SECTOFF
3556 ENUMDOC
3557 ARC relocs.
3558
3559 ENUM
3560 BFD_RELOC_BFIN_16_IMM
3561 ENUMDOC
3562 ADI Blackfin 16 bit immediate absolute reloc.
3563 ENUM
3564 BFD_RELOC_BFIN_16_HIGH
3565 ENUMDOC
3566 ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.
3567 ENUM
3568 BFD_RELOC_BFIN_4_PCREL
3569 ENUMDOC
3570 ADI Blackfin 'a' part of LSETUP.
3571 ENUM
3572 BFD_RELOC_BFIN_5_PCREL
3573 ENUMDOC
3574 ADI Blackfin.
3575 ENUM
3576 BFD_RELOC_BFIN_16_LOW
3577 ENUMDOC
3578 ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.
3579 ENUM
3580 BFD_RELOC_BFIN_10_PCREL
3581 ENUMDOC
3582 ADI Blackfin.
3583 ENUM
3584 BFD_RELOC_BFIN_11_PCREL
3585 ENUMDOC
3586 ADI Blackfin 'b' part of LSETUP.
3587 ENUM
3588 BFD_RELOC_BFIN_12_PCREL_JUMP
3589 ENUMDOC
3590 ADI Blackfin.
3591 ENUM
3592 BFD_RELOC_BFIN_12_PCREL_JUMP_S
3593 ENUMDOC
3594 ADI Blackfin Short jump, pcrel.
3595 ENUM
3596 BFD_RELOC_BFIN_24_PCREL_CALL_X
3597 ENUMDOC
3598 ADI Blackfin Call.x not implemented.
3599 ENUM
3600 BFD_RELOC_BFIN_24_PCREL_JUMP_L
3601 ENUMDOC
3602 ADI Blackfin Long Jump pcrel.
3603 ENUM
3604 BFD_RELOC_BFIN_GOT17M4
3605 ENUMX
3606 BFD_RELOC_BFIN_GOTHI
3607 ENUMX
3608 BFD_RELOC_BFIN_GOTLO
3609 ENUMX
3610 BFD_RELOC_BFIN_FUNCDESC
3611 ENUMX
3612 BFD_RELOC_BFIN_FUNCDESC_GOT17M4
3613 ENUMX
3614 BFD_RELOC_BFIN_FUNCDESC_GOTHI
3615 ENUMX
3616 BFD_RELOC_BFIN_FUNCDESC_GOTLO
3617 ENUMX
3618 BFD_RELOC_BFIN_FUNCDESC_VALUE
3619 ENUMX
3620 BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4
3621 ENUMX
3622 BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI
3623 ENUMX
3624 BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO
3625 ENUMX
3626 BFD_RELOC_BFIN_GOTOFF17M4
3627 ENUMX
3628 BFD_RELOC_BFIN_GOTOFFHI
3629 ENUMX
3630 BFD_RELOC_BFIN_GOTOFFLO
3631 ENUMDOC
3632 ADI Blackfin FD-PIC relocations.
3633 ENUM
3634 BFD_RELOC_BFIN_GOT
3635 ENUMDOC
3636 ADI Blackfin GOT relocation.
3637 ENUM
3638 BFD_RELOC_BFIN_PLTPC
3639 ENUMDOC
3640 ADI Blackfin PLTPC relocation.
3641 ENUM
3642 BFD_ARELOC_BFIN_PUSH
3643 ENUMDOC
3644 ADI Blackfin arithmetic relocation.
3645 ENUM
3646 BFD_ARELOC_BFIN_CONST
3647 ENUMDOC
3648 ADI Blackfin arithmetic relocation.
3649 ENUM
3650 BFD_ARELOC_BFIN_ADD
3651 ENUMDOC
3652 ADI Blackfin arithmetic relocation.
3653 ENUM
3654 BFD_ARELOC_BFIN_SUB
3655 ENUMDOC
3656 ADI Blackfin arithmetic relocation.
3657 ENUM
3658 BFD_ARELOC_BFIN_MULT
3659 ENUMDOC
3660 ADI Blackfin arithmetic relocation.
3661 ENUM
3662 BFD_ARELOC_BFIN_DIV
3663 ENUMDOC
3664 ADI Blackfin arithmetic relocation.
3665 ENUM
3666 BFD_ARELOC_BFIN_MOD
3667 ENUMDOC
3668 ADI Blackfin arithmetic relocation.
3669 ENUM
3670 BFD_ARELOC_BFIN_LSHIFT
3671 ENUMDOC
3672 ADI Blackfin arithmetic relocation.
3673 ENUM
3674 BFD_ARELOC_BFIN_RSHIFT
3675 ENUMDOC
3676 ADI Blackfin arithmetic relocation.
3677 ENUM
3678 BFD_ARELOC_BFIN_AND
3679 ENUMDOC
3680 ADI Blackfin arithmetic relocation.
3681 ENUM
3682 BFD_ARELOC_BFIN_OR
3683 ENUMDOC
3684 ADI Blackfin arithmetic relocation.
3685 ENUM
3686 BFD_ARELOC_BFIN_XOR
3687 ENUMDOC
3688 ADI Blackfin arithmetic relocation.
3689 ENUM
3690 BFD_ARELOC_BFIN_LAND
3691 ENUMDOC
3692 ADI Blackfin arithmetic relocation.
3693 ENUM
3694 BFD_ARELOC_BFIN_LOR
3695 ENUMDOC
3696 ADI Blackfin arithmetic relocation.
3697 ENUM
3698 BFD_ARELOC_BFIN_LEN
3699 ENUMDOC
3700 ADI Blackfin arithmetic relocation.
3701 ENUM
3702 BFD_ARELOC_BFIN_NEG
3703 ENUMDOC
3704 ADI Blackfin arithmetic relocation.
3705 ENUM
3706 BFD_ARELOC_BFIN_COMP
3707 ENUMDOC
3708 ADI Blackfin arithmetic relocation.
3709 ENUM
3710 BFD_ARELOC_BFIN_PAGE
3711 ENUMDOC
3712 ADI Blackfin arithmetic relocation.
3713 ENUM
3714 BFD_ARELOC_BFIN_HWPAGE
3715 ENUMDOC
3716 ADI Blackfin arithmetic relocation.
3717 ENUM
3718 BFD_ARELOC_BFIN_ADDR
3719 ENUMDOC
3720 ADI Blackfin arithmetic relocation.
3721
3722 ENUM
3723 BFD_RELOC_D10V_10_PCREL_R
3724 ENUMDOC
3725 Mitsubishi D10V relocs.
3726 This is a 10-bit reloc with the right 2 bits assumed to be 0.
3727 ENUM
3728 BFD_RELOC_D10V_10_PCREL_L
3729 ENUMDOC
3730 Mitsubishi D10V relocs.
3731 This is a 10-bit reloc with the right 2 bits assumed to be 0. This
3732 is the same as the previous reloc except it is in the left
3733 container, i.e., shifted left 15 bits.
3734 ENUM
3735 BFD_RELOC_D10V_18
3736 ENUMDOC
3737 This is an 18-bit reloc with the right 2 bits assumed to be 0.
3738 ENUM
3739 BFD_RELOC_D10V_18_PCREL
3740 ENUMDOC
3741 This is an 18-bit reloc with the right 2 bits assumed to be 0.
3742
3743 ENUM
3744 BFD_RELOC_D30V_6
3745 ENUMDOC
3746 Mitsubishi D30V relocs.
3747 This is a 6-bit absolute reloc.
3748 ENUM
3749 BFD_RELOC_D30V_9_PCREL
3750 ENUMDOC
3751 This is a 6-bit pc-relative reloc with the right 3 bits assumed to
3752 be 0.
3753 ENUM
3754 BFD_RELOC_D30V_9_PCREL_R
3755 ENUMDOC
3756 This is a 6-bit pc-relative reloc with the right 3 bits assumed to
3757 be 0. Same as the previous reloc but on the right side of the
3758 container.
3759 ENUM
3760 BFD_RELOC_D30V_15
3761 ENUMDOC
3762 This is a 12-bit absolute reloc with the right 3 bitsassumed to
3763 be 0.
3764 ENUM
3765 BFD_RELOC_D30V_15_PCREL
3766 ENUMDOC
3767 This is a 12-bit pc-relative reloc with the right 3 bits assumed to
3768 be 0.
3769 ENUM
3770 BFD_RELOC_D30V_15_PCREL_R
3771 ENUMDOC
3772 This is a 12-bit pc-relative reloc with the right 3 bits assumed to
3773 be 0. Same as the previous reloc but on the right side of the
3774 container.
3775 ENUM
3776 BFD_RELOC_D30V_21
3777 ENUMDOC
3778 This is an 18-bit absolute reloc with the right 3 bits assumed to
3779 be 0.
3780 ENUM
3781 BFD_RELOC_D30V_21_PCREL
3782 ENUMDOC
3783 This is an 18-bit pc-relative reloc with the right 3 bits assumed to
3784 be 0.
3785 ENUM
3786 BFD_RELOC_D30V_21_PCREL_R
3787 ENUMDOC
3788 This is an 18-bit pc-relative reloc with the right 3 bits assumed to
3789 be 0. Same as the previous reloc but on the right side of the
3790 container.
3791 ENUM
3792 BFD_RELOC_D30V_32
3793 ENUMDOC
3794 This is a 32-bit absolute reloc.
3795 ENUM
3796 BFD_RELOC_D30V_32_PCREL
3797 ENUMDOC
3798 This is a 32-bit pc-relative reloc.
3799
3800 ENUM
3801 BFD_RELOC_DLX_HI16_S
3802 ENUMX
3803 BFD_RELOC_DLX_LO16
3804 ENUMX
3805 BFD_RELOC_DLX_JMP26
3806 ENUMDOC
3807 DLX relocs.
3808
3809 ENUM
3810 BFD_RELOC_M32C_HI8
3811 ENUMX
3812 BFD_RELOC_M32C_RL_JUMP
3813 ENUMX
3814 BFD_RELOC_M32C_RL_1ADDR
3815 ENUMX
3816 BFD_RELOC_M32C_RL_2ADDR
3817 ENUMDOC
3818 Renesas M16C/M32C Relocations.
3819
3820 ENUM
3821 BFD_RELOC_M32R_24
3822 ENUMDOC
3823 Renesas M32R (formerly Mitsubishi M32R) relocs.
3824 This is a 24 bit absolute address.
3825 ENUM
3826 BFD_RELOC_M32R_10_PCREL
3827 ENUMDOC
3828 This is a 10-bit pc-relative reloc with the right 2 bits assumed to
3829 be 0.
3830 ENUM
3831 BFD_RELOC_M32R_18_PCREL
3832 ENUMDOC
3833 This is an 18-bit reloc with the right 2 bits assumed to be 0.
3834 ENUM
3835 BFD_RELOC_M32R_26_PCREL
3836 ENUMDOC
3837 This is a 26-bit reloc with the right 2 bits assumed to be 0.
3838 ENUM
3839 BFD_RELOC_M32R_HI16_ULO
3840 ENUMDOC
3841 This is a 16-bit reloc containing the high 16 bits of an address
3842 used when the lower 16 bits are treated as unsigned.
3843 ENUM
3844 BFD_RELOC_M32R_HI16_SLO
3845 ENUMDOC
3846 This is a 16-bit reloc containing the high 16 bits of an address
3847 used when the lower 16 bits are treated as signed.
3848 ENUM
3849 BFD_RELOC_M32R_LO16
3850 ENUMDOC
3851 This is a 16-bit reloc containing the lower 16 bits of an address.
3852 ENUM
3853 BFD_RELOC_M32R_SDA16
3854 ENUMDOC
3855 This is a 16-bit reloc containing the small data area offset for use
3856 in add3, load, and store instructions.
3857 ENUM
3858 BFD_RELOC_M32R_GOT24
3859 ENUMX
3860 BFD_RELOC_M32R_26_PLTREL
3861 ENUMX
3862 BFD_RELOC_M32R_COPY
3863 ENUMX
3864 BFD_RELOC_M32R_GLOB_DAT
3865 ENUMX
3866 BFD_RELOC_M32R_JMP_SLOT
3867 ENUMX
3868 BFD_RELOC_M32R_RELATIVE
3869 ENUMX
3870 BFD_RELOC_M32R_GOTOFF
3871 ENUMX
3872 BFD_RELOC_M32R_GOTOFF_HI_ULO
3873 ENUMX
3874 BFD_RELOC_M32R_GOTOFF_HI_SLO
3875 ENUMX
3876 BFD_RELOC_M32R_GOTOFF_LO
3877 ENUMX
3878 BFD_RELOC_M32R_GOTPC24
3879 ENUMX
3880 BFD_RELOC_M32R_GOT16_HI_ULO
3881 ENUMX
3882 BFD_RELOC_M32R_GOT16_HI_SLO
3883 ENUMX
3884 BFD_RELOC_M32R_GOT16_LO
3885 ENUMX
3886 BFD_RELOC_M32R_GOTPC_HI_ULO
3887 ENUMX
3888 BFD_RELOC_M32R_GOTPC_HI_SLO
3889 ENUMX
3890 BFD_RELOC_M32R_GOTPC_LO
3891 ENUMDOC
3892 For PIC.
3893
3894
3895 ENUM
3896 BFD_RELOC_NDS32_20
3897 ENUMDOC
3898 NDS32 relocs.
3899 This is a 20 bit absolute address.
3900 ENUM
3901 BFD_RELOC_NDS32_9_PCREL
3902 ENUMDOC
3903 This is a 9-bit pc-relative reloc with the right 1 bit assumed to
3904 be 0.
3905 ENUM
3906 BFD_RELOC_NDS32_WORD_9_PCREL
3907 ENUMDOC
3908 This is a 9-bit pc-relative reloc with the right 1 bit assumed to
3909 be 0.
3910 ENUM
3911 BFD_RELOC_NDS32_15_PCREL
3912 ENUMDOC
3913 This is an 15-bit reloc with the right 1 bit assumed to be 0.
3914 ENUM
3915 BFD_RELOC_NDS32_17_PCREL
3916 ENUMDOC
3917 This is an 17-bit reloc with the right 1 bit assumed to be 0.
3918 ENUM
3919 BFD_RELOC_NDS32_25_PCREL
3920 ENUMDOC
3921 This is a 25-bit reloc with the right 1 bit assumed to be 0.
3922 ENUM
3923 BFD_RELOC_NDS32_HI20
3924 ENUMDOC
3925 This is a 20-bit reloc containing the high 20 bits of an address
3926 used with the lower 12 bits.
3927 ENUM
3928 BFD_RELOC_NDS32_LO12S3
3929 ENUMDOC
3930 This is a 12-bit reloc containing the lower 12 bits of an address
3931 then shift right by 3. This is used with ldi,sdi.
3932 ENUM
3933 BFD_RELOC_NDS32_LO12S2
3934 ENUMDOC
3935 This is a 12-bit reloc containing the lower 12 bits of an address
3936 then shift left by 2. This is used with lwi,swi.
3937 ENUM
3938 BFD_RELOC_NDS32_LO12S1
3939 ENUMDOC
3940 This is a 12-bit reloc containing the lower 12 bits of an address
3941 then shift left by 1. This is used with lhi,shi.
3942 ENUM
3943 BFD_RELOC_NDS32_LO12S0
3944 ENUMDOC
3945 This is a 12-bit reloc containing the lower 12 bits of an address
3946 then shift left by 0. This is used with lbisbi.
3947 ENUM
3948 BFD_RELOC_NDS32_LO12S0_ORI
3949 ENUMDOC
3950 This is a 12-bit reloc containing the lower 12 bits of an address
3951 then shift left by 0. This is only used with branch relaxations.
3952 ENUM
3953 BFD_RELOC_NDS32_SDA15S3
3954 ENUMDOC
3955 This is a 15-bit reloc containing the small data area 18-bit signed
3956 offset and shift left by 3 for use in ldi, sdi.
3957 ENUM
3958 BFD_RELOC_NDS32_SDA15S2
3959 ENUMDOC
3960 This is a 15-bit reloc containing the small data area 17-bit signed
3961 offset and shift left by 2 for use in lwi, swi.
3962 ENUM
3963 BFD_RELOC_NDS32_SDA15S1
3964 ENUMDOC
3965 This is a 15-bit reloc containing the small data area 16-bit signed
3966 offset and shift left by 1 for use in lhi, shi.
3967 ENUM
3968 BFD_RELOC_NDS32_SDA15S0
3969 ENUMDOC
3970 This is a 15-bit reloc containing the small data area 15-bit signed
3971 offset and shift left by 0 for use in lbi, sbi.
3972 ENUM
3973 BFD_RELOC_NDS32_SDA16S3
3974 ENUMDOC
3975 This is a 16-bit reloc containing the small data area 16-bit signed
3976 offset and shift left by 3.
3977 ENUM
3978 BFD_RELOC_NDS32_SDA17S2
3979 ENUMDOC
3980 This is a 17-bit reloc containing the small data area 17-bit signed
3981 offset and shift left by 2 for use in lwi.gp, swi.gp.
3982 ENUM
3983 BFD_RELOC_NDS32_SDA18S1
3984 ENUMDOC
3985 This is a 18-bit reloc containing the small data area 18-bit signed
3986 offset and shift left by 1 for use in lhi.gp, shi.gp.
3987 ENUM
3988 BFD_RELOC_NDS32_SDA19S0
3989 ENUMDOC
3990 This is a 19-bit reloc containing the small data area 19-bit signed
3991 offset and shift left by 0 for use in lbi.gp, sbi.gp.
3992 ENUM
3993 BFD_RELOC_NDS32_GOT20
3994 ENUMX
3995 BFD_RELOC_NDS32_9_PLTREL
3996 ENUMX
3997 BFD_RELOC_NDS32_25_PLTREL
3998 ENUMX
3999 BFD_RELOC_NDS32_COPY
4000 ENUMX
4001 BFD_RELOC_NDS32_GLOB_DAT
4002 ENUMX
4003 BFD_RELOC_NDS32_JMP_SLOT
4004 ENUMX
4005 BFD_RELOC_NDS32_RELATIVE
4006 ENUMX
4007 BFD_RELOC_NDS32_GOTOFF
4008 ENUMX
4009 BFD_RELOC_NDS32_GOTOFF_HI20
4010 ENUMX
4011 BFD_RELOC_NDS32_GOTOFF_LO12
4012 ENUMX
4013 BFD_RELOC_NDS32_GOTPC20
4014 ENUMX
4015 BFD_RELOC_NDS32_GOT_HI20
4016 ENUMX
4017 BFD_RELOC_NDS32_GOT_LO12
4018 ENUMX
4019 BFD_RELOC_NDS32_GOTPC_HI20
4020 ENUMX
4021 BFD_RELOC_NDS32_GOTPC_LO12
4022 ENUMDOC
4023 For PIC.
4024 ENUM
4025 BFD_RELOC_NDS32_INSN16
4026 ENUMX
4027 BFD_RELOC_NDS32_LABEL
4028 ENUMX
4029 BFD_RELOC_NDS32_LONGCALL1
4030 ENUMX
4031 BFD_RELOC_NDS32_LONGCALL2
4032 ENUMX
4033 BFD_RELOC_NDS32_LONGCALL3
4034 ENUMX
4035 BFD_RELOC_NDS32_LONGJUMP1
4036 ENUMX
4037 BFD_RELOC_NDS32_LONGJUMP2
4038 ENUMX
4039 BFD_RELOC_NDS32_LONGJUMP3
4040 ENUMX
4041 BFD_RELOC_NDS32_LOADSTORE
4042 ENUMX
4043 BFD_RELOC_NDS32_9_FIXED
4044 ENUMX
4045 BFD_RELOC_NDS32_15_FIXED
4046 ENUMX
4047 BFD_RELOC_NDS32_17_FIXED
4048 ENUMX
4049 BFD_RELOC_NDS32_25_FIXED
4050 ENUMX
4051 BFD_RELOC_NDS32_LONGCALL4
4052 ENUMX
4053 BFD_RELOC_NDS32_LONGCALL5
4054 ENUMX
4055 BFD_RELOC_NDS32_LONGCALL6
4056 ENUMX
4057 BFD_RELOC_NDS32_LONGJUMP4
4058 ENUMX
4059 BFD_RELOC_NDS32_LONGJUMP5
4060 ENUMX
4061 BFD_RELOC_NDS32_LONGJUMP6
4062 ENUMX
4063 BFD_RELOC_NDS32_LONGJUMP7
4064 ENUMDOC
4065 For relax.
4066 ENUM
4067 BFD_RELOC_NDS32_PLTREL_HI20
4068 ENUMX
4069 BFD_RELOC_NDS32_PLTREL_LO12
4070 ENUMX
4071 BFD_RELOC_NDS32_PLT_GOTREL_HI20
4072 ENUMX
4073 BFD_RELOC_NDS32_PLT_GOTREL_LO12
4074 ENUMDOC
4075 For PIC.
4076 ENUM
4077 BFD_RELOC_NDS32_SDA12S2_DP
4078 ENUMX
4079 BFD_RELOC_NDS32_SDA12S2_SP
4080 ENUMX
4081 BFD_RELOC_NDS32_LO12S2_DP
4082 ENUMX
4083 BFD_RELOC_NDS32_LO12S2_SP
4084 ENUMDOC
4085 For floating point.
4086 ENUM
4087 BFD_RELOC_NDS32_DWARF2_OP1
4088 ENUMX
4089 BFD_RELOC_NDS32_DWARF2_OP2
4090 ENUMX
4091 BFD_RELOC_NDS32_DWARF2_LEB
4092 ENUMDOC
4093 For dwarf2 debug_line.
4094 ENUM
4095 BFD_RELOC_NDS32_UPDATE_TA
4096 ENUMDOC
4097 For eliminating 16-bit instructions.
4098 ENUM
4099 BFD_RELOC_NDS32_PLT_GOTREL_LO20
4100 ENUMX
4101 BFD_RELOC_NDS32_PLT_GOTREL_LO15
4102 ENUMX
4103 BFD_RELOC_NDS32_PLT_GOTREL_LO19
4104 ENUMX
4105 BFD_RELOC_NDS32_GOT_LO15
4106 ENUMX
4107 BFD_RELOC_NDS32_GOT_LO19
4108 ENUMX
4109 BFD_RELOC_NDS32_GOTOFF_LO15
4110 ENUMX
4111 BFD_RELOC_NDS32_GOTOFF_LO19
4112 ENUMX
4113 BFD_RELOC_NDS32_GOT15S2
4114 ENUMX
4115 BFD_RELOC_NDS32_GOT17S2
4116 ENUMDOC
4117 For PIC object relaxation.
4118 ENUM
4119 BFD_RELOC_NDS32_5
4120 ENUMDOC
4121 NDS32 relocs.
4122 This is a 5 bit absolute address.
4123 ENUM
4124 BFD_RELOC_NDS32_10_UPCREL
4125 ENUMDOC
4126 This is a 10-bit unsigned pc-relative reloc with the right 1 bit
4127 assumed to be 0.
4128 ENUM
4129 BFD_RELOC_NDS32_SDA_FP7U2_RELA
4130 ENUMDOC
4131 If fp were omitted, fp can used as another gp.
4132 ENUM
4133 BFD_RELOC_NDS32_RELAX_ENTRY
4134 ENUMX
4135 BFD_RELOC_NDS32_GOT_SUFF
4136 ENUMX
4137 BFD_RELOC_NDS32_GOTOFF_SUFF
4138 ENUMX
4139 BFD_RELOC_NDS32_PLT_GOT_SUFF
4140 ENUMX
4141 BFD_RELOC_NDS32_MULCALL_SUFF
4142 ENUMX
4143 BFD_RELOC_NDS32_PTR
4144 ENUMX
4145 BFD_RELOC_NDS32_PTR_COUNT
4146 ENUMX
4147 BFD_RELOC_NDS32_PTR_RESOLVED
4148 ENUMX
4149 BFD_RELOC_NDS32_PLTBLOCK
4150 ENUMX
4151 BFD_RELOC_NDS32_RELAX_REGION_BEGIN
4152 ENUMX
4153 BFD_RELOC_NDS32_RELAX_REGION_END
4154 ENUMX
4155 BFD_RELOC_NDS32_MINUEND
4156 ENUMX
4157 BFD_RELOC_NDS32_SUBTRAHEND
4158 ENUMX
4159 BFD_RELOC_NDS32_DIFF8
4160 ENUMX
4161 BFD_RELOC_NDS32_DIFF16
4162 ENUMX
4163 BFD_RELOC_NDS32_DIFF32
4164 ENUMX
4165 BFD_RELOC_NDS32_DIFF_ULEB128
4166 ENUMX
4167 BFD_RELOC_NDS32_EMPTY
4168 ENUMDOC
4169 Relaxation relative relocation types.
4170 ENUM
4171 BFD_RELOC_NDS32_25_ABS
4172 ENUMDOC
4173 This is a 25 bit absolute address.
4174 ENUM
4175 BFD_RELOC_NDS32_DATA
4176 ENUMX
4177 BFD_RELOC_NDS32_TRAN
4178 ENUMX
4179 BFD_RELOC_NDS32_17IFC_PCREL
4180 ENUMX
4181 BFD_RELOC_NDS32_10IFCU_PCREL
4182 ENUMDOC
4183 For ex9 and ifc using.
4184 ENUM
4185 BFD_RELOC_NDS32_TPOFF
4186 ENUMX
4187 BFD_RELOC_NDS32_GOTTPOFF
4188 ENUMX
4189 BFD_RELOC_NDS32_TLS_LE_HI20
4190 ENUMX
4191 BFD_RELOC_NDS32_TLS_LE_LO12
4192 ENUMX
4193 BFD_RELOC_NDS32_TLS_LE_20
4194 ENUMX
4195 BFD_RELOC_NDS32_TLS_LE_15S0
4196 ENUMX
4197 BFD_RELOC_NDS32_TLS_LE_15S1
4198 ENUMX
4199 BFD_RELOC_NDS32_TLS_LE_15S2
4200 ENUMX
4201 BFD_RELOC_NDS32_TLS_LE_ADD
4202 ENUMX
4203 BFD_RELOC_NDS32_TLS_LE_LS
4204 ENUMX
4205 BFD_RELOC_NDS32_TLS_IE_HI20
4206 ENUMX
4207 BFD_RELOC_NDS32_TLS_IE_LO12
4208 ENUMX
4209 BFD_RELOC_NDS32_TLS_IE_LO12S2
4210 ENUMX
4211 BFD_RELOC_NDS32_TLS_IEGP_HI20
4212 ENUMX
4213 BFD_RELOC_NDS32_TLS_IEGP_LO12
4214 ENUMX
4215 BFD_RELOC_NDS32_TLS_IEGP_LO12S2
4216 ENUMX
4217 BFD_RELOC_NDS32_TLS_IEGP_LW
4218 ENUMX
4219 BFD_RELOC_NDS32_TLS_DESC
4220 ENUMX
4221 BFD_RELOC_NDS32_TLS_DESC_HI20
4222 ENUMX
4223 BFD_RELOC_NDS32_TLS_DESC_LO12
4224 ENUMX
4225 BFD_RELOC_NDS32_TLS_DESC_20
4226 ENUMX
4227 BFD_RELOC_NDS32_TLS_DESC_SDA17S2
4228 ENUMX
4229 BFD_RELOC_NDS32_TLS_DESC_ADD
4230 ENUMX
4231 BFD_RELOC_NDS32_TLS_DESC_FUNC
4232 ENUMX
4233 BFD_RELOC_NDS32_TLS_DESC_CALL
4234 ENUMX
4235 BFD_RELOC_NDS32_TLS_DESC_MEM
4236 ENUMX
4237 BFD_RELOC_NDS32_REMOVE
4238 ENUMX
4239 BFD_RELOC_NDS32_GROUP
4240 ENUMDOC
4241 For TLS.
4242 ENUM
4243 BFD_RELOC_NDS32_LSI
4244 ENUMDOC
4245 For floating load store relaxation.
4246
4247
4248 ENUM
4249 BFD_RELOC_V850_9_PCREL
4250 ENUMDOC
4251 This is a 9-bit reloc.
4252 ENUM
4253 BFD_RELOC_V850_22_PCREL
4254 ENUMDOC
4255 This is a 22-bit reloc.
4256
4257 ENUM
4258 BFD_RELOC_V850_SDA_16_16_OFFSET
4259 ENUMDOC
4260 This is a 16 bit offset from the short data area pointer.
4261 ENUM
4262 BFD_RELOC_V850_SDA_15_16_OFFSET
4263 ENUMDOC
4264 This is a 16 bit offset (of which only 15 bits are used) from the
4265 short data area pointer.
4266 ENUM
4267 BFD_RELOC_V850_ZDA_16_16_OFFSET
4268 ENUMDOC
4269 This is a 16 bit offset from the zero data area pointer.
4270 ENUM
4271 BFD_RELOC_V850_ZDA_15_16_OFFSET
4272 ENUMDOC
4273 This is a 16 bit offset (of which only 15 bits are used) from the
4274 zero data area pointer.
4275 ENUM
4276 BFD_RELOC_V850_TDA_6_8_OFFSET
4277 ENUMDOC
4278 This is an 8 bit offset (of which only 6 bits are used) from the
4279 tiny data area pointer.
4280 ENUM
4281 BFD_RELOC_V850_TDA_7_8_OFFSET
4282 ENUMDOC
4283 This is an 8bit offset (of which only 7 bits are used) from the tiny
4284 data area pointer.
4285 ENUM
4286 BFD_RELOC_V850_TDA_7_7_OFFSET
4287 ENUMDOC
4288 This is a 7 bit offset from the tiny data area pointer.
4289 ENUM
4290 BFD_RELOC_V850_TDA_16_16_OFFSET
4291 ENUMDOC
4292 This is a 16 bit offset from the tiny data area pointer.
4293 ENUM
4294 BFD_RELOC_V850_TDA_4_5_OFFSET
4295 ENUMDOC
4296 This is a 5 bit offset (of which only 4 bits are used) from the tiny
4297 data area pointer.
4298 ENUM
4299 BFD_RELOC_V850_TDA_4_4_OFFSET
4300 ENUMDOC
4301 This is a 4 bit offset from the tiny data area pointer.
4302 ENUM
4303 BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
4304 ENUMDOC
4305 This is a 16 bit offset from the short data area pointer, with the
4306 bits placed non-contiguously in the instruction.
4307 ENUM
4308 BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
4309 ENUMDOC
4310 This is a 16 bit offset from the zero data area pointer, with the
4311 bits placed non-contiguously in the instruction.
4312 ENUM
4313 BFD_RELOC_V850_CALLT_6_7_OFFSET
4314 ENUMDOC
4315 This is a 6 bit offset from the call table base pointer.
4316 ENUM
4317 BFD_RELOC_V850_CALLT_16_16_OFFSET
4318 ENUMDOC
4319 This is a 16 bit offset from the call table base pointer.
4320 ENUM
4321 BFD_RELOC_V850_LONGCALL
4322 ENUMDOC
4323 Used for relaxing indirect function calls.
4324 ENUM
4325 BFD_RELOC_V850_LONGJUMP
4326 ENUMDOC
4327 Used for relaxing indirect jumps.
4328 ENUM
4329 BFD_RELOC_V850_ALIGN
4330 ENUMDOC
4331 Used to maintain alignment whilst relaxing.
4332 ENUM
4333 BFD_RELOC_V850_LO16_SPLIT_OFFSET
4334 ENUMDOC
4335 This is a variation of BFD_RELOC_LO16 that can be used in v850e
4336 ld.bu instructions.
4337 ENUM
4338 BFD_RELOC_V850_16_PCREL
4339 ENUMDOC
4340 This is a 16-bit reloc.
4341 ENUM
4342 BFD_RELOC_V850_17_PCREL
4343 ENUMDOC
4344 This is a 17-bit reloc.
4345 ENUM
4346 BFD_RELOC_V850_23
4347 ENUMDOC
4348 This is a 23-bit reloc.
4349 ENUM
4350 BFD_RELOC_V850_32_PCREL
4351 ENUMDOC
4352 This is a 32-bit reloc.
4353 ENUM
4354 BFD_RELOC_V850_32_ABS
4355 ENUMDOC
4356 This is a 32-bit reloc.
4357 ENUM
4358 BFD_RELOC_V850_16_SPLIT_OFFSET
4359 ENUMDOC
4360 This is a 16-bit reloc.
4361 ENUM
4362 BFD_RELOC_V850_16_S1
4363 ENUMDOC
4364 This is a 16-bit reloc.
4365 ENUM
4366 BFD_RELOC_V850_LO16_S1
4367 ENUMDOC
4368 Low 16 bits. 16 bit shifted by 1.
4369 ENUM
4370 BFD_RELOC_V850_CALLT_15_16_OFFSET
4371 ENUMDOC
4372 This is a 16 bit offset from the call table base pointer.
4373 ENUM
4374 BFD_RELOC_V850_32_GOTPCREL
4375 ENUMX
4376 BFD_RELOC_V850_16_GOT
4377 ENUMX
4378 BFD_RELOC_V850_32_GOT
4379 ENUMX
4380 BFD_RELOC_V850_22_PLT_PCREL
4381 ENUMX
4382 BFD_RELOC_V850_32_PLT_PCREL
4383 ENUMX
4384 BFD_RELOC_V850_COPY
4385 ENUMX
4386 BFD_RELOC_V850_GLOB_DAT
4387 ENUMX
4388 BFD_RELOC_V850_JMP_SLOT
4389 ENUMX
4390 BFD_RELOC_V850_RELATIVE
4391 ENUMX
4392 BFD_RELOC_V850_16_GOTOFF
4393 ENUMX
4394 BFD_RELOC_V850_32_GOTOFF
4395 ENUMDOC
4396 DSO relocations.
4397 ENUM
4398 BFD_RELOC_V850_CODE
4399 ENUMDOC
4400 Start code.
4401 ENUM
4402 BFD_RELOC_V850_DATA
4403 ENUMDOC
4404 Start data in text.
4405
4406 ENUM
4407 BFD_RELOC_TIC30_LDP
4408 ENUMDOC
4409 This is a 8bit DP reloc for the tms320c30, where the most
4410 significant 8 bits of a 24 bit word are placed into the least
4411 significant 8 bits of the opcode.
4412
4413 ENUM
4414 BFD_RELOC_TIC54X_PARTLS7
4415 ENUMDOC
4416 This is a 7bit reloc for the tms320c54x, where the least
4417 significant 7 bits of a 16 bit word are placed into the least
4418 significant 7 bits of the opcode.
4419
4420 ENUM
4421 BFD_RELOC_TIC54X_PARTMS9
4422 ENUMDOC
4423 This is a 9bit DP reloc for the tms320c54x, where the most
4424 significant 9 bits of a 16 bit word are placed into the least
4425 significant 9 bits of the opcode.
4426
4427 ENUM
4428 BFD_RELOC_TIC54X_23
4429 ENUMDOC
4430 This is an extended address 23-bit reloc for the tms320c54x.
4431
4432 ENUM
4433 BFD_RELOC_TIC54X_16_OF_23
4434 ENUMDOC
4435 This is a 16-bit reloc for the tms320c54x, where the least
4436 significant 16 bits of a 23-bit extended address are placed into
4437 the opcode.
4438
4439 ENUM
4440 BFD_RELOC_TIC54X_MS7_OF_23
4441 ENUMDOC
4442 This is a reloc for the tms320c54x, where the most
4443 significant 7 bits of a 23-bit extended address are placed into
4444 the opcode.
4445
4446 ENUM
4447 BFD_RELOC_C6000_PCR_S21
4448 ENUMX
4449 BFD_RELOC_C6000_PCR_S12
4450 ENUMX
4451 BFD_RELOC_C6000_PCR_S10
4452 ENUMX
4453 BFD_RELOC_C6000_PCR_S7
4454 ENUMX
4455 BFD_RELOC_C6000_ABS_S16
4456 ENUMX
4457 BFD_RELOC_C6000_ABS_L16
4458 ENUMX
4459 BFD_RELOC_C6000_ABS_H16
4460 ENUMX
4461 BFD_RELOC_C6000_SBR_U15_B
4462 ENUMX
4463 BFD_RELOC_C6000_SBR_U15_H
4464 ENUMX
4465 BFD_RELOC_C6000_SBR_U15_W
4466 ENUMX
4467 BFD_RELOC_C6000_SBR_S16
4468 ENUMX
4469 BFD_RELOC_C6000_SBR_L16_B
4470 ENUMX
4471 BFD_RELOC_C6000_SBR_L16_H
4472 ENUMX
4473 BFD_RELOC_C6000_SBR_L16_W
4474 ENUMX
4475 BFD_RELOC_C6000_SBR_H16_B
4476 ENUMX
4477 BFD_RELOC_C6000_SBR_H16_H
4478 ENUMX
4479 BFD_RELOC_C6000_SBR_H16_W
4480 ENUMX
4481 BFD_RELOC_C6000_SBR_GOT_U15_W
4482 ENUMX
4483 BFD_RELOC_C6000_SBR_GOT_L16_W
4484 ENUMX
4485 BFD_RELOC_C6000_SBR_GOT_H16_W
4486 ENUMX
4487 BFD_RELOC_C6000_DSBT_INDEX
4488 ENUMX
4489 BFD_RELOC_C6000_PREL31
4490 ENUMX
4491 BFD_RELOC_C6000_COPY
4492 ENUMX
4493 BFD_RELOC_C6000_JUMP_SLOT
4494 ENUMX
4495 BFD_RELOC_C6000_EHTYPE
4496 ENUMX
4497 BFD_RELOC_C6000_PCR_H16
4498 ENUMX
4499 BFD_RELOC_C6000_PCR_L16
4500 ENUMX
4501 BFD_RELOC_C6000_ALIGN
4502 ENUMX
4503 BFD_RELOC_C6000_FPHEAD
4504 ENUMX
4505 BFD_RELOC_C6000_NOCMP
4506 ENUMDOC
4507 TMS320C6000 relocations.
4508
4509 ENUM
4510 BFD_RELOC_FR30_48
4511 ENUMDOC
4512 This is a 48 bit reloc for the FR30 that stores 32 bits.
4513 ENUM
4514 BFD_RELOC_FR30_20
4515 ENUMDOC
4516 This is a 32 bit reloc for the FR30 that stores 20 bits split up
4517 into two sections.
4518 ENUM
4519 BFD_RELOC_FR30_6_IN_4
4520 ENUMDOC
4521 This is a 16 bit reloc for the FR30 that stores a 6 bit word offset
4522 in 4 bits.
4523 ENUM
4524 BFD_RELOC_FR30_8_IN_8
4525 ENUMDOC
4526 This is a 16 bit reloc for the FR30 that stores an 8 bit byte offset
4527 into 8 bits.
4528 ENUM
4529 BFD_RELOC_FR30_9_IN_8
4530 ENUMDOC
4531 This is a 16 bit reloc for the FR30 that stores a 9 bit short offset
4532 into 8 bits.
4533 ENUM
4534 BFD_RELOC_FR30_10_IN_8
4535 ENUMDOC
4536 This is a 16 bit reloc for the FR30 that stores a 10 bit word offset
4537 into 8 bits.
4538 ENUM
4539 BFD_RELOC_FR30_9_PCREL
4540 ENUMDOC
4541 This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
4542 short offset into 8 bits.
4543 ENUM
4544 BFD_RELOC_FR30_12_PCREL
4545 ENUMDOC
4546 This is a 16 bit reloc for the FR30 that stores a 12 bit pc relative
4547 short offset into 11 bits.
4548
4549 ENUM
4550 BFD_RELOC_MCORE_PCREL_IMM8BY4
4551 ENUMX
4552 BFD_RELOC_MCORE_PCREL_IMM11BY2
4553 ENUMX
4554 BFD_RELOC_MCORE_PCREL_IMM4BY2
4555 ENUMX
4556 BFD_RELOC_MCORE_PCREL_32
4557 ENUMX
4558 BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
4559 ENUMX
4560 BFD_RELOC_MCORE_RVA
4561 ENUMDOC
4562 Motorola Mcore relocations.
4563
4564 ENUM
4565 BFD_RELOC_MEP_8
4566 ENUMX
4567 BFD_RELOC_MEP_16
4568 ENUMX
4569 BFD_RELOC_MEP_32
4570 ENUMX
4571 BFD_RELOC_MEP_PCREL8A2
4572 ENUMX
4573 BFD_RELOC_MEP_PCREL12A2
4574 ENUMX
4575 BFD_RELOC_MEP_PCREL17A2
4576 ENUMX
4577 BFD_RELOC_MEP_PCREL24A2
4578 ENUMX
4579 BFD_RELOC_MEP_PCABS24A2
4580 ENUMX
4581 BFD_RELOC_MEP_LOW16
4582 ENUMX
4583 BFD_RELOC_MEP_HI16U
4584 ENUMX
4585 BFD_RELOC_MEP_HI16S
4586 ENUMX
4587 BFD_RELOC_MEP_GPREL
4588 ENUMX
4589 BFD_RELOC_MEP_TPREL
4590 ENUMX
4591 BFD_RELOC_MEP_TPREL7
4592 ENUMX
4593 BFD_RELOC_MEP_TPREL7A2
4594 ENUMX
4595 BFD_RELOC_MEP_TPREL7A4
4596 ENUMX
4597 BFD_RELOC_MEP_UIMM24
4598 ENUMX
4599 BFD_RELOC_MEP_ADDR24A4
4600 ENUMX
4601 BFD_RELOC_MEP_GNU_VTINHERIT
4602 ENUMX
4603 BFD_RELOC_MEP_GNU_VTENTRY
4604 ENUMDOC
4605 Toshiba Media Processor Relocations.
4606
4607 ENUM
4608 BFD_RELOC_METAG_HIADDR16
4609 ENUMX
4610 BFD_RELOC_METAG_LOADDR16
4611 ENUMX
4612 BFD_RELOC_METAG_RELBRANCH
4613 ENUMX
4614 BFD_RELOC_METAG_GETSETOFF
4615 ENUMX
4616 BFD_RELOC_METAG_HIOG
4617 ENUMX
4618 BFD_RELOC_METAG_LOOG
4619 ENUMX
4620 BFD_RELOC_METAG_REL8
4621 ENUMX
4622 BFD_RELOC_METAG_REL16
4623 ENUMX
4624 BFD_RELOC_METAG_HI16_GOTOFF
4625 ENUMX
4626 BFD_RELOC_METAG_LO16_GOTOFF
4627 ENUMX
4628 BFD_RELOC_METAG_GETSET_GOTOFF
4629 ENUMX
4630 BFD_RELOC_METAG_GETSET_GOT
4631 ENUMX
4632 BFD_RELOC_METAG_HI16_GOTPC
4633 ENUMX
4634 BFD_RELOC_METAG_LO16_GOTPC
4635 ENUMX
4636 BFD_RELOC_METAG_HI16_PLT
4637 ENUMX
4638 BFD_RELOC_METAG_LO16_PLT
4639 ENUMX
4640 BFD_RELOC_METAG_RELBRANCH_PLT
4641 ENUMX
4642 BFD_RELOC_METAG_GOTOFF
4643 ENUMX
4644 BFD_RELOC_METAG_PLT
4645 ENUMX
4646 BFD_RELOC_METAG_COPY
4647 ENUMX
4648 BFD_RELOC_METAG_JMP_SLOT
4649 ENUMX
4650 BFD_RELOC_METAG_RELATIVE
4651 ENUMX
4652 BFD_RELOC_METAG_GLOB_DAT
4653 ENUMX
4654 BFD_RELOC_METAG_TLS_GD
4655 ENUMX
4656 BFD_RELOC_METAG_TLS_LDM
4657 ENUMX
4658 BFD_RELOC_METAG_TLS_LDO_HI16
4659 ENUMX
4660 BFD_RELOC_METAG_TLS_LDO_LO16
4661 ENUMX
4662 BFD_RELOC_METAG_TLS_LDO
4663 ENUMX
4664 BFD_RELOC_METAG_TLS_IE
4665 ENUMX
4666 BFD_RELOC_METAG_TLS_IENONPIC
4667 ENUMX
4668 BFD_RELOC_METAG_TLS_IENONPIC_HI16
4669 ENUMX
4670 BFD_RELOC_METAG_TLS_IENONPIC_LO16
4671 ENUMX
4672 BFD_RELOC_METAG_TLS_TPOFF
4673 ENUMX
4674 BFD_RELOC_METAG_TLS_DTPMOD
4675 ENUMX
4676 BFD_RELOC_METAG_TLS_DTPOFF
4677 ENUMX
4678 BFD_RELOC_METAG_TLS_LE
4679 ENUMX
4680 BFD_RELOC_METAG_TLS_LE_HI16
4681 ENUMX
4682 BFD_RELOC_METAG_TLS_LE_LO16
4683 ENUMDOC
4684 Imagination Technologies Meta relocations.
4685
4686 ENUM
4687 BFD_RELOC_MMIX_GETA
4688 ENUMX
4689 BFD_RELOC_MMIX_GETA_1
4690 ENUMX
4691 BFD_RELOC_MMIX_GETA_2
4692 ENUMX
4693 BFD_RELOC_MMIX_GETA_3
4694 ENUMDOC
4695 These are relocations for the GETA instruction.
4696 ENUM
4697 BFD_RELOC_MMIX_CBRANCH
4698 ENUMX
4699 BFD_RELOC_MMIX_CBRANCH_J
4700 ENUMX
4701 BFD_RELOC_MMIX_CBRANCH_1
4702 ENUMX
4703 BFD_RELOC_MMIX_CBRANCH_2
4704 ENUMX
4705 BFD_RELOC_MMIX_CBRANCH_3
4706 ENUMDOC
4707 These are relocations for a conditional branch instruction.
4708 ENUM
4709 BFD_RELOC_MMIX_PUSHJ
4710 ENUMX
4711 BFD_RELOC_MMIX_PUSHJ_1
4712 ENUMX
4713 BFD_RELOC_MMIX_PUSHJ_2
4714 ENUMX
4715 BFD_RELOC_MMIX_PUSHJ_3
4716 ENUMX
4717 BFD_RELOC_MMIX_PUSHJ_STUBBABLE
4718 ENUMDOC
4719 These are relocations for the PUSHJ instruction.
4720 ENUM
4721 BFD_RELOC_MMIX_JMP
4722 ENUMX
4723 BFD_RELOC_MMIX_JMP_1
4724 ENUMX
4725 BFD_RELOC_MMIX_JMP_2
4726 ENUMX
4727 BFD_RELOC_MMIX_JMP_3
4728 ENUMDOC
4729 These are relocations for the JMP instruction.
4730 ENUM
4731 BFD_RELOC_MMIX_ADDR19
4732 ENUMDOC
4733 This is a relocation for a relative address as in a GETA instruction
4734 or a branch.
4735 ENUM
4736 BFD_RELOC_MMIX_ADDR27
4737 ENUMDOC
4738 This is a relocation for a relative address as in a JMP instruction.
4739 ENUM
4740 BFD_RELOC_MMIX_REG_OR_BYTE
4741 ENUMDOC
4742 This is a relocation for an instruction field that may be a general
4743 register or a value 0..255.
4744 ENUM
4745 BFD_RELOC_MMIX_REG
4746 ENUMDOC
4747 This is a relocation for an instruction field that may be a general
4748 register.
4749 ENUM
4750 BFD_RELOC_MMIX_BASE_PLUS_OFFSET
4751 ENUMDOC
4752 This is a relocation for two instruction fields holding a register
4753 and an offset, the equivalent of the relocation.
4754 ENUM
4755 BFD_RELOC_MMIX_LOCAL
4756 ENUMDOC
4757 This relocation is an assertion that the expression is not allocated
4758 as a global register. It does not modify contents.
4759
4760 ENUM
4761 BFD_RELOC_AVR_7_PCREL
4762 ENUMDOC
4763 This is a 16 bit reloc for the AVR that stores 8 bit pc relative
4764 short offset into 7 bits.
4765 ENUM
4766 BFD_RELOC_AVR_13_PCREL
4767 ENUMDOC
4768 This is a 16 bit reloc for the AVR that stores 13 bit pc relative
4769 short offset into 12 bits.
4770 ENUM
4771 BFD_RELOC_AVR_16_PM
4772 ENUMDOC
4773 This is a 16 bit reloc for the AVR that stores 17 bit value (usually
4774 program memory address) into 16 bits.
4775 ENUM
4776 BFD_RELOC_AVR_LO8_LDI
4777 ENUMDOC
4778 This is a 16 bit reloc for the AVR that stores 8 bit value (usually
4779 data memory address) into 8 bit immediate value of LDI insn.
4780 ENUM
4781 BFD_RELOC_AVR_HI8_LDI
4782 ENUMDOC
4783 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
4784 of data memory address) into 8 bit immediate value of LDI insn.
4785 ENUM
4786 BFD_RELOC_AVR_HH8_LDI
4787 ENUMDOC
4788 This is a 16 bit reloc for the AVR that stores 8 bit value (most
4789 high 8 bit of program memory address) into 8 bit immediate value of
4790 LDI insn.
4791 ENUM
4792 BFD_RELOC_AVR_MS8_LDI
4793 ENUMDOC
4794 This is a 16 bit reloc for the AVR that stores 8 bit value (most
4795 high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn.
4796 ENUM
4797 BFD_RELOC_AVR_LO8_LDI_NEG
4798 ENUMDOC
4799 This is a 16 bit reloc for the AVR that stores negated 8 bit value
4800 (usually data memory address) into 8 bit immediate value of SUBI insn.
4801 ENUM
4802 BFD_RELOC_AVR_HI8_LDI_NEG
4803 ENUMDOC
4804 This is a 16 bit reloc for the AVR that stores negated 8 bit value
4805 (high 8 bit of data memory address) into 8 bit immediate value of
4806 SUBI insn.
4807 ENUM
4808 BFD_RELOC_AVR_HH8_LDI_NEG
4809 ENUMDOC
4810 This is a 16 bit reloc for the AVR that stores negated 8 bit value
4811 (most high 8 bit of program memory address) into 8 bit immediate
4812 value of LDI or SUBI insn.
4813 ENUM
4814 BFD_RELOC_AVR_MS8_LDI_NEG
4815 ENUMDOC
4816 This is a 16 bit reloc for the AVR that stores negated 8 bit value
4817 (msb of 32 bit value) into 8 bit immediate value of LDI insn.
4818 ENUM
4819 BFD_RELOC_AVR_LO8_LDI_PM
4820 ENUMDOC
4821 This is a 16 bit reloc for the AVR that stores 8 bit value (usually
4822 command address) into 8 bit immediate value of LDI insn.
4823 ENUM
4824 BFD_RELOC_AVR_LO8_LDI_GS
4825 ENUMDOC
4826 This is a 16 bit reloc for the AVR that stores 8 bit value
4827 (command address) into 8 bit immediate value of LDI insn. If the
4828 address is beyond the 128k boundary, the linker inserts a jump stub
4829 for this reloc in the lower 128k.
4830 ENUM
4831 BFD_RELOC_AVR_HI8_LDI_PM
4832 ENUMDOC
4833 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
4834 of command address) into 8 bit immediate value of LDI insn.
4835 ENUM
4836 BFD_RELOC_AVR_HI8_LDI_GS
4837 ENUMDOC
4838 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit
4839 of 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 below 128k.
4842 ENUM
4843 BFD_RELOC_AVR_HH8_LDI_PM
4844 ENUMDOC
4845 This is a 16 bit reloc for the AVR that stores 8 bit value (most
4846 high 8 bit of command address) into 8 bit immediate value of LDI
4847 insn.
4848 ENUM
4849 BFD_RELOC_AVR_LO8_LDI_PM_NEG
4850 ENUMDOC
4851 This is a 16 bit reloc for the AVR that stores negated 8 bit value
4852 (usually command address) into 8 bit immediate value of SUBI insn.
4853 ENUM
4854 BFD_RELOC_AVR_HI8_LDI_PM_NEG
4855 ENUMDOC
4856 This is a 16 bit reloc for the AVR that stores negated 8 bit value
4857 (high 8 bit of 16 bit command address) into 8 bit immediate value
4858 of SUBI insn.
4859 ENUM
4860 BFD_RELOC_AVR_HH8_LDI_PM_NEG
4861 ENUMDOC
4862 This is a 16 bit reloc for the AVR that stores negated 8 bit value
4863 (high 6 bit of 22 bit command address) into 8 bit immediate
4864 value of SUBI insn.
4865 ENUM
4866 BFD_RELOC_AVR_CALL
4867 ENUMDOC
4868 This is a 32 bit reloc for the AVR that stores 23 bit value
4869 into 22 bits.
4870 ENUM
4871 BFD_RELOC_AVR_LDI
4872 ENUMDOC
4873 This is a 16 bit reloc for the AVR that stores all needed bits
4874 for absolute addressing with ldi with overflow check to linktime.
4875 ENUM
4876 BFD_RELOC_AVR_6
4877 ENUMDOC
4878 This is a 6 bit reloc for the AVR that stores offset for ldd/std
4879 instructions.
4880 ENUM
4881 BFD_RELOC_AVR_6_ADIW
4882 ENUMDOC
4883 This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
4884 instructions.
4885 ENUM
4886 BFD_RELOC_AVR_8_LO
4887 ENUMDOC
4888 This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol
4889 in .byte lo8(symbol).
4890 ENUM
4891 BFD_RELOC_AVR_8_HI
4892 ENUMDOC
4893 This is a 8 bit reloc for the AVR that stores bits 8..15 of a symbol
4894 in .byte hi8(symbol).
4895 ENUM
4896 BFD_RELOC_AVR_8_HLO
4897 ENUMDOC
4898 This is a 8 bit reloc for the AVR that stores bits 16..23 of a symbol
4899 in .byte hlo8(symbol).
4900 ENUM
4901 BFD_RELOC_AVR_DIFF8
4902 ENUMX
4903 BFD_RELOC_AVR_DIFF16
4904 ENUMX
4905 BFD_RELOC_AVR_DIFF32
4906 ENUMDOC
4907 AVR relocations to mark the difference of two local symbols.
4908 These are only needed to support linker relaxation and can be ignored
4909 when not relaxing. The field is set to the value of the difference
4910 assuming no relaxation. The relocation encodes the position of the
4911 second symbol so the linker can determine whether to adjust the field
4912 value.
4913 ENUM
4914 BFD_RELOC_AVR_LDS_STS_16
4915 ENUMDOC
4916 This is a 7 bit reloc for the AVR that stores SRAM address for 16bit
4917 lds and sts instructions supported only tiny core.
4918 ENUM
4919 BFD_RELOC_AVR_PORT6
4920 ENUMDOC
4921 This is a 6 bit reloc for the AVR that stores an I/O register
4922 number for the IN and OUT instructions.
4923 ENUM
4924 BFD_RELOC_AVR_PORT5
4925 ENUMDOC
4926 This is a 5 bit reloc for the AVR that stores an I/O register
4927 number for the SBIC, SBIS, SBI and CBI instructions.
4928
4929 ENUM
4930 BFD_RELOC_RISCV_HI20
4931 ENUMX
4932 BFD_RELOC_RISCV_PCREL_HI20
4933 ENUMX
4934 BFD_RELOC_RISCV_PCREL_LO12_I
4935 ENUMX
4936 BFD_RELOC_RISCV_PCREL_LO12_S
4937 ENUMX
4938 BFD_RELOC_RISCV_LO12_I
4939 ENUMX
4940 BFD_RELOC_RISCV_LO12_S
4941 ENUMX
4942 BFD_RELOC_RISCV_GPREL12_I
4943 ENUMX
4944 BFD_RELOC_RISCV_GPREL12_S
4945 ENUMX
4946 BFD_RELOC_RISCV_TPREL_HI20
4947 ENUMX
4948 BFD_RELOC_RISCV_TPREL_LO12_I
4949 ENUMX
4950 BFD_RELOC_RISCV_TPREL_LO12_S
4951 ENUMX
4952 BFD_RELOC_RISCV_TPREL_ADD
4953 ENUMX
4954 BFD_RELOC_RISCV_CALL
4955 ENUMX
4956 BFD_RELOC_RISCV_CALL_PLT
4957 ENUMX
4958 BFD_RELOC_RISCV_ADD8
4959 ENUMX
4960 BFD_RELOC_RISCV_ADD16
4961 ENUMX
4962 BFD_RELOC_RISCV_ADD32
4963 ENUMX
4964 BFD_RELOC_RISCV_ADD64
4965 ENUMX
4966 BFD_RELOC_RISCV_SUB8
4967 ENUMX
4968 BFD_RELOC_RISCV_SUB16
4969 ENUMX
4970 BFD_RELOC_RISCV_SUB32
4971 ENUMX
4972 BFD_RELOC_RISCV_SUB64
4973 ENUMX
4974 BFD_RELOC_RISCV_GOT_HI20
4975 ENUMX
4976 BFD_RELOC_RISCV_TLS_GOT_HI20
4977 ENUMX
4978 BFD_RELOC_RISCV_TLS_GD_HI20
4979 ENUMX
4980 BFD_RELOC_RISCV_JMP
4981 ENUMX
4982 BFD_RELOC_RISCV_TLS_DTPMOD32
4983 ENUMX
4984 BFD_RELOC_RISCV_TLS_DTPREL32
4985 ENUMX
4986 BFD_RELOC_RISCV_TLS_DTPMOD64
4987 ENUMX
4988 BFD_RELOC_RISCV_TLS_DTPREL64
4989 ENUMX
4990 BFD_RELOC_RISCV_TLS_TPREL32
4991 ENUMX
4992 BFD_RELOC_RISCV_TLS_TPREL64
4993 ENUMX
4994 BFD_RELOC_RISCV_ALIGN
4995 ENUMX
4996 BFD_RELOC_RISCV_RVC_BRANCH
4997 ENUMX
4998 BFD_RELOC_RISCV_RVC_JUMP
4999 ENUMX
5000 BFD_RELOC_RISCV_RELAX
5001 ENUMX
5002 BFD_RELOC_RISCV_CFA
5003 ENUMX
5004 BFD_RELOC_RISCV_SUB6
5005 ENUMX
5006 BFD_RELOC_RISCV_SET6
5007 ENUMX
5008 BFD_RELOC_RISCV_SET8
5009 ENUMX
5010 BFD_RELOC_RISCV_SET16
5011 ENUMX
5012 BFD_RELOC_RISCV_SET32
5013 ENUMX
5014 BFD_RELOC_RISCV_32_PCREL
5015 ENUMX
5016 BFD_RELOC_RISCV_SET_ULEB128
5017 ENUMX
5018 BFD_RELOC_RISCV_SUB_ULEB128
5019 ENUMDOC
5020 RISC-V relocations.
5021
5022 ENUM
5023 BFD_RELOC_RL78_NEG8
5024 ENUMX
5025 BFD_RELOC_RL78_NEG16
5026 ENUMX
5027 BFD_RELOC_RL78_NEG24
5028 ENUMX
5029 BFD_RELOC_RL78_NEG32
5030 ENUMX
5031 BFD_RELOC_RL78_16_OP
5032 ENUMX
5033 BFD_RELOC_RL78_24_OP
5034 ENUMX
5035 BFD_RELOC_RL78_32_OP
5036 ENUMX
5037 BFD_RELOC_RL78_8U
5038 ENUMX
5039 BFD_RELOC_RL78_16U
5040 ENUMX
5041 BFD_RELOC_RL78_24U
5042 ENUMX
5043 BFD_RELOC_RL78_DIR3U_PCREL
5044 ENUMX
5045 BFD_RELOC_RL78_DIFF
5046 ENUMX
5047 BFD_RELOC_RL78_GPRELB
5048 ENUMX
5049 BFD_RELOC_RL78_GPRELW
5050 ENUMX
5051 BFD_RELOC_RL78_GPRELL
5052 ENUMX
5053 BFD_RELOC_RL78_SYM
5054 ENUMX
5055 BFD_RELOC_RL78_OP_SUBTRACT
5056 ENUMX
5057 BFD_RELOC_RL78_OP_NEG
5058 ENUMX
5059 BFD_RELOC_RL78_OP_AND
5060 ENUMX
5061 BFD_RELOC_RL78_OP_SHRA
5062 ENUMX
5063 BFD_RELOC_RL78_ABS8
5064 ENUMX
5065 BFD_RELOC_RL78_ABS16
5066 ENUMX
5067 BFD_RELOC_RL78_ABS16_REV
5068 ENUMX
5069 BFD_RELOC_RL78_ABS32
5070 ENUMX
5071 BFD_RELOC_RL78_ABS32_REV
5072 ENUMX
5073 BFD_RELOC_RL78_ABS16U
5074 ENUMX
5075 BFD_RELOC_RL78_ABS16UW
5076 ENUMX
5077 BFD_RELOC_RL78_ABS16UL
5078 ENUMX
5079 BFD_RELOC_RL78_RELAX
5080 ENUMX
5081 BFD_RELOC_RL78_HI16
5082 ENUMX
5083 BFD_RELOC_RL78_HI8
5084 ENUMX
5085 BFD_RELOC_RL78_LO16
5086 ENUMX
5087 BFD_RELOC_RL78_CODE
5088 ENUMX
5089 BFD_RELOC_RL78_SADDR
5090 ENUMDOC
5091 Renesas RL78 Relocations.
5092
5093 ENUM
5094 BFD_RELOC_RX_NEG8
5095 ENUMX
5096 BFD_RELOC_RX_NEG16
5097 ENUMX
5098 BFD_RELOC_RX_NEG24
5099 ENUMX
5100 BFD_RELOC_RX_NEG32
5101 ENUMX
5102 BFD_RELOC_RX_16_OP
5103 ENUMX
5104 BFD_RELOC_RX_24_OP
5105 ENUMX
5106 BFD_RELOC_RX_32_OP
5107 ENUMX
5108 BFD_RELOC_RX_8U
5109 ENUMX
5110 BFD_RELOC_RX_16U
5111 ENUMX
5112 BFD_RELOC_RX_24U
5113 ENUMX
5114 BFD_RELOC_RX_DIR3U_PCREL
5115 ENUMX
5116 BFD_RELOC_RX_DIFF
5117 ENUMX
5118 BFD_RELOC_RX_GPRELB
5119 ENUMX
5120 BFD_RELOC_RX_GPRELW
5121 ENUMX
5122 BFD_RELOC_RX_GPRELL
5123 ENUMX
5124 BFD_RELOC_RX_SYM
5125 ENUMX
5126 BFD_RELOC_RX_OP_SUBTRACT
5127 ENUMX
5128 BFD_RELOC_RX_OP_NEG
5129 ENUMX
5130 BFD_RELOC_RX_ABS8
5131 ENUMX
5132 BFD_RELOC_RX_ABS16
5133 ENUMX
5134 BFD_RELOC_RX_ABS16_REV
5135 ENUMX
5136 BFD_RELOC_RX_ABS32
5137 ENUMX
5138 BFD_RELOC_RX_ABS32_REV
5139 ENUMX
5140 BFD_RELOC_RX_ABS16U
5141 ENUMX
5142 BFD_RELOC_RX_ABS16UW
5143 ENUMX
5144 BFD_RELOC_RX_ABS16UL
5145 ENUMX
5146 BFD_RELOC_RX_RELAX
5147 ENUMDOC
5148 Renesas RX Relocations.
5149
5150 ENUM
5151 BFD_RELOC_390_12
5152 ENUMDOC
5153 Direct 12 bit.
5154 ENUM
5155 BFD_RELOC_390_GOT12
5156 ENUMDOC
5157 12 bit GOT offset.
5158 ENUM
5159 BFD_RELOC_390_PLT32
5160 ENUMDOC
5161 32 bit PC relative PLT address.
5162 ENUM
5163 BFD_RELOC_390_COPY
5164 ENUMDOC
5165 Copy symbol at runtime.
5166 ENUM
5167 BFD_RELOC_390_GLOB_DAT
5168 ENUMDOC
5169 Create GOT entry.
5170 ENUM
5171 BFD_RELOC_390_JMP_SLOT
5172 ENUMDOC
5173 Create PLT entry.
5174 ENUM
5175 BFD_RELOC_390_RELATIVE
5176 ENUMDOC
5177 Adjust by program base.
5178 ENUM
5179 BFD_RELOC_390_GOTPC
5180 ENUMDOC
5181 32 bit PC relative offset to GOT.
5182 ENUM
5183 BFD_RELOC_390_GOT16
5184 ENUMDOC
5185 16 bit GOT offset.
5186 ENUM
5187 BFD_RELOC_390_PC12DBL
5188 ENUMDOC
5189 PC relative 12 bit shifted by 1.
5190 ENUM
5191 BFD_RELOC_390_PLT12DBL
5192 ENUMDOC
5193 12 bit PC rel. PLT shifted by 1.
5194 ENUM
5195 BFD_RELOC_390_PC16DBL
5196 ENUMDOC
5197 PC relative 16 bit shifted by 1.
5198 ENUM
5199 BFD_RELOC_390_PLT16DBL
5200 ENUMDOC
5201 16 bit PC rel. PLT shifted by 1.
5202 ENUM
5203 BFD_RELOC_390_PC24DBL
5204 ENUMDOC
5205 PC relative 24 bit shifted by 1.
5206 ENUM
5207 BFD_RELOC_390_PLT24DBL
5208 ENUMDOC
5209 24 bit PC rel. PLT shifted by 1.
5210 ENUM
5211 BFD_RELOC_390_PC32DBL
5212 ENUMDOC
5213 PC relative 32 bit shifted by 1.
5214 ENUM
5215 BFD_RELOC_390_PLT32DBL
5216 ENUMDOC
5217 32 bit PC rel. PLT shifted by 1.
5218 ENUM
5219 BFD_RELOC_390_GOTPCDBL
5220 ENUMDOC
5221 32 bit PC rel. GOT shifted by 1.
5222 ENUM
5223 BFD_RELOC_390_GOT64
5224 ENUMDOC
5225 64 bit GOT offset.
5226 ENUM
5227 BFD_RELOC_390_PLT64
5228 ENUMDOC
5229 64 bit PC relative PLT address.
5230 ENUM
5231 BFD_RELOC_390_GOTENT
5232 ENUMDOC
5233 32 bit rel. offset to GOT entry.
5234 ENUM
5235 BFD_RELOC_390_GOTOFF64
5236 ENUMDOC
5237 64 bit offset to GOT.
5238 ENUM
5239 BFD_RELOC_390_GOTPLT12
5240 ENUMDOC
5241 12-bit offset to symbol-entry within GOT, with PLT handling.
5242 ENUM
5243 BFD_RELOC_390_GOTPLT16
5244 ENUMDOC
5245 16-bit offset to symbol-entry within GOT, with PLT handling.
5246 ENUM
5247 BFD_RELOC_390_GOTPLT32
5248 ENUMDOC
5249 32-bit offset to symbol-entry within GOT, with PLT handling.
5250 ENUM
5251 BFD_RELOC_390_GOTPLT64
5252 ENUMDOC
5253 64-bit offset to symbol-entry within GOT, with PLT handling.
5254 ENUM
5255 BFD_RELOC_390_GOTPLTENT
5256 ENUMDOC
5257 32-bit rel. offset to symbol-entry within GOT, with PLT handling.
5258 ENUM
5259 BFD_RELOC_390_PLTOFF16
5260 ENUMDOC
5261 16-bit rel. offset from the GOT to a PLT entry.
5262 ENUM
5263 BFD_RELOC_390_PLTOFF32
5264 ENUMDOC
5265 32-bit rel. offset from the GOT to a PLT entry.
5266 ENUM
5267 BFD_RELOC_390_PLTOFF64
5268 ENUMDOC
5269 64-bit rel. offset from the GOT to a PLT entry.
5270
5271 ENUM
5272 BFD_RELOC_390_TLS_LOAD
5273 ENUMX
5274 BFD_RELOC_390_TLS_GDCALL
5275 ENUMX
5276 BFD_RELOC_390_TLS_LDCALL
5277 ENUMX
5278 BFD_RELOC_390_TLS_GD32
5279 ENUMX
5280 BFD_RELOC_390_TLS_GD64
5281 ENUMX
5282 BFD_RELOC_390_TLS_GOTIE12
5283 ENUMX
5284 BFD_RELOC_390_TLS_GOTIE32
5285 ENUMX
5286 BFD_RELOC_390_TLS_GOTIE64
5287 ENUMX
5288 BFD_RELOC_390_TLS_LDM32
5289 ENUMX
5290 BFD_RELOC_390_TLS_LDM64
5291 ENUMX
5292 BFD_RELOC_390_TLS_IE32
5293 ENUMX
5294 BFD_RELOC_390_TLS_IE64
5295 ENUMX
5296 BFD_RELOC_390_TLS_IEENT
5297 ENUMX
5298 BFD_RELOC_390_TLS_LE32
5299 ENUMX
5300 BFD_RELOC_390_TLS_LE64
5301 ENUMX
5302 BFD_RELOC_390_TLS_LDO32
5303 ENUMX
5304 BFD_RELOC_390_TLS_LDO64
5305 ENUMX
5306 BFD_RELOC_390_TLS_DTPMOD
5307 ENUMX
5308 BFD_RELOC_390_TLS_DTPOFF
5309 ENUMX
5310 BFD_RELOC_390_TLS_TPOFF
5311 ENUMDOC
5312 s390 tls relocations.
5313
5314 ENUM
5315 BFD_RELOC_390_20
5316 ENUMX
5317 BFD_RELOC_390_GOT20
5318 ENUMX
5319 BFD_RELOC_390_GOTPLT20
5320 ENUMX
5321 BFD_RELOC_390_TLS_GOTIE20
5322 ENUMDOC
5323 Long displacement extension.
5324
5325 ENUM
5326 BFD_RELOC_390_IRELATIVE
5327 ENUMDOC
5328 STT_GNU_IFUNC relocation.
5329
5330 ENUM
5331 BFD_RELOC_SCORE_GPREL15
5332 ENUMDOC
5333 Score relocations.
5334 Low 16 bit for load/store.
5335 ENUM
5336 BFD_RELOC_SCORE_DUMMY2
5337 ENUMX
5338 BFD_RELOC_SCORE_JMP
5339 ENUMDOC
5340 This is a 24-bit reloc with the right 1 bit assumed to be 0.
5341 ENUM
5342 BFD_RELOC_SCORE_BRANCH
5343 ENUMDOC
5344 This is a 19-bit reloc with the right 1 bit assumed to be 0.
5345 ENUM
5346 BFD_RELOC_SCORE_IMM30
5347 ENUMDOC
5348 This is a 32-bit reloc for 48-bit instructions.
5349 ENUM
5350 BFD_RELOC_SCORE_IMM32
5351 ENUMDOC
5352 This is a 32-bit reloc for 48-bit instructions.
5353 ENUM
5354 BFD_RELOC_SCORE16_JMP
5355 ENUMDOC
5356 This is a 11-bit reloc with the right 1 bit assumed to be 0.
5357 ENUM
5358 BFD_RELOC_SCORE16_BRANCH
5359 ENUMDOC
5360 This is a 8-bit reloc with the right 1 bit assumed to be 0.
5361 ENUM
5362 BFD_RELOC_SCORE_BCMP
5363 ENUMDOC
5364 This is a 9-bit reloc with the right 1 bit assumed to be 0.
5365 ENUM
5366 BFD_RELOC_SCORE_GOT15
5367 ENUMX
5368 BFD_RELOC_SCORE_GOT_LO16
5369 ENUMX
5370 BFD_RELOC_SCORE_CALL15
5371 ENUMX
5372 BFD_RELOC_SCORE_DUMMY_HI16
5373 ENUMDOC
5374 Undocumented Score relocs.
5375
5376 ENUM
5377 BFD_RELOC_IP2K_FR9
5378 ENUMDOC
5379 Scenix IP2K - 9-bit register number / data address.
5380 ENUM
5381 BFD_RELOC_IP2K_BANK
5382 ENUMDOC
5383 Scenix IP2K - 4-bit register/data bank number.
5384 ENUM
5385 BFD_RELOC_IP2K_ADDR16CJP
5386 ENUMDOC
5387 Scenix IP2K - low 13 bits of instruction word address.
5388 ENUM
5389 BFD_RELOC_IP2K_PAGE3
5390 ENUMDOC
5391 Scenix IP2K - high 3 bits of instruction word address.
5392 ENUM
5393 BFD_RELOC_IP2K_LO8DATA
5394 ENUMX
5395 BFD_RELOC_IP2K_HI8DATA
5396 ENUMX
5397 BFD_RELOC_IP2K_EX8DATA
5398 ENUMDOC
5399 Scenix IP2K - ext/low/high 8 bits of data address.
5400 ENUM
5401 BFD_RELOC_IP2K_LO8INSN
5402 ENUMX
5403 BFD_RELOC_IP2K_HI8INSN
5404 ENUMDOC
5405 Scenix IP2K - low/high 8 bits of instruction word address.
5406 ENUM
5407 BFD_RELOC_IP2K_PC_SKIP
5408 ENUMDOC
5409 Scenix IP2K - even/odd PC modifier to modify snb pcl.0.
5410 ENUM
5411 BFD_RELOC_IP2K_TEXT
5412 ENUMDOC
5413 Scenix IP2K - 16 bit word address in text section.
5414 ENUM
5415 BFD_RELOC_IP2K_FR_OFFSET
5416 ENUMDOC
5417 Scenix IP2K - 7-bit sp or dp offset.
5418 ENUM
5419 BFD_RELOC_VPE4KMATH_DATA
5420 ENUMX
5421 BFD_RELOC_VPE4KMATH_INSN
5422 ENUMDOC
5423 Scenix VPE4K coprocessor - data/insn-space addressing.
5424
5425 ENUM
5426 BFD_RELOC_VTABLE_INHERIT
5427 ENUMX
5428 BFD_RELOC_VTABLE_ENTRY
5429 ENUMDOC
5430 These two relocations are used by the linker to determine which of
5431 the entries in a C++ virtual function table are actually used. When
5432 the --gc-sections option is given, the linker will zero out the
5433 entries that are not used, so that the code for those functions need
5434 not be included in the output.
5435
5436 VTABLE_INHERIT is a zero-space relocation used to describe to the
5437 linker the inheritance tree of a C++ virtual function table. The
5438 relocation's symbol should be the parent class' vtable, and the
5439 relocation should be located at the child vtable.
5440
5441 VTABLE_ENTRY is a zero-space relocation that describes the use of a
5442 virtual function table entry. The reloc's symbol should refer to
5443 the table of the class mentioned in the code. Off of that base, an
5444 offset describes the entry that is being used. For Rela hosts, this
5445 offset is stored in the reloc's addend. For Rel hosts, we are
5446 forced to put this offset in the reloc's section offset.
5447
5448 ENUM
5449 BFD_RELOC_IA64_IMM14
5450 ENUMX
5451 BFD_RELOC_IA64_IMM22
5452 ENUMX
5453 BFD_RELOC_IA64_IMM64
5454 ENUMX
5455 BFD_RELOC_IA64_DIR32MSB
5456 ENUMX
5457 BFD_RELOC_IA64_DIR32LSB
5458 ENUMX
5459 BFD_RELOC_IA64_DIR64MSB
5460 ENUMX
5461 BFD_RELOC_IA64_DIR64LSB
5462 ENUMX
5463 BFD_RELOC_IA64_GPREL22
5464 ENUMX
5465 BFD_RELOC_IA64_GPREL64I
5466 ENUMX
5467 BFD_RELOC_IA64_GPREL32MSB
5468 ENUMX
5469 BFD_RELOC_IA64_GPREL32LSB
5470 ENUMX
5471 BFD_RELOC_IA64_GPREL64MSB
5472 ENUMX
5473 BFD_RELOC_IA64_GPREL64LSB
5474 ENUMX
5475 BFD_RELOC_IA64_LTOFF22
5476 ENUMX
5477 BFD_RELOC_IA64_LTOFF64I
5478 ENUMX
5479 BFD_RELOC_IA64_PLTOFF22
5480 ENUMX
5481 BFD_RELOC_IA64_PLTOFF64I
5482 ENUMX
5483 BFD_RELOC_IA64_PLTOFF64MSB
5484 ENUMX
5485 BFD_RELOC_IA64_PLTOFF64LSB
5486 ENUMX
5487 BFD_RELOC_IA64_FPTR64I
5488 ENUMX
5489 BFD_RELOC_IA64_FPTR32MSB
5490 ENUMX
5491 BFD_RELOC_IA64_FPTR32LSB
5492 ENUMX
5493 BFD_RELOC_IA64_FPTR64MSB
5494 ENUMX
5495 BFD_RELOC_IA64_FPTR64LSB
5496 ENUMX
5497 BFD_RELOC_IA64_PCREL21B
5498 ENUMX
5499 BFD_RELOC_IA64_PCREL21BI
5500 ENUMX
5501 BFD_RELOC_IA64_PCREL21M
5502 ENUMX
5503 BFD_RELOC_IA64_PCREL21F
5504 ENUMX
5505 BFD_RELOC_IA64_PCREL22
5506 ENUMX
5507 BFD_RELOC_IA64_PCREL60B
5508 ENUMX
5509 BFD_RELOC_IA64_PCREL64I
5510 ENUMX
5511 BFD_RELOC_IA64_PCREL32MSB
5512 ENUMX
5513 BFD_RELOC_IA64_PCREL32LSB
5514 ENUMX
5515 BFD_RELOC_IA64_PCREL64MSB
5516 ENUMX
5517 BFD_RELOC_IA64_PCREL64LSB
5518 ENUMX
5519 BFD_RELOC_IA64_LTOFF_FPTR22
5520 ENUMX
5521 BFD_RELOC_IA64_LTOFF_FPTR64I
5522 ENUMX
5523 BFD_RELOC_IA64_LTOFF_FPTR32MSB
5524 ENUMX
5525 BFD_RELOC_IA64_LTOFF_FPTR32LSB
5526 ENUMX
5527 BFD_RELOC_IA64_LTOFF_FPTR64MSB
5528 ENUMX
5529 BFD_RELOC_IA64_LTOFF_FPTR64LSB
5530 ENUMX
5531 BFD_RELOC_IA64_SEGREL32MSB
5532 ENUMX
5533 BFD_RELOC_IA64_SEGREL32LSB
5534 ENUMX
5535 BFD_RELOC_IA64_SEGREL64MSB
5536 ENUMX
5537 BFD_RELOC_IA64_SEGREL64LSB
5538 ENUMX
5539 BFD_RELOC_IA64_SECREL32MSB
5540 ENUMX
5541 BFD_RELOC_IA64_SECREL32LSB
5542 ENUMX
5543 BFD_RELOC_IA64_SECREL64MSB
5544 ENUMX
5545 BFD_RELOC_IA64_SECREL64LSB
5546 ENUMX
5547 BFD_RELOC_IA64_REL32MSB
5548 ENUMX
5549 BFD_RELOC_IA64_REL32LSB
5550 ENUMX
5551 BFD_RELOC_IA64_REL64MSB
5552 ENUMX
5553 BFD_RELOC_IA64_REL64LSB
5554 ENUMX
5555 BFD_RELOC_IA64_LTV32MSB
5556 ENUMX
5557 BFD_RELOC_IA64_LTV32LSB
5558 ENUMX
5559 BFD_RELOC_IA64_LTV64MSB
5560 ENUMX
5561 BFD_RELOC_IA64_LTV64LSB
5562 ENUMX
5563 BFD_RELOC_IA64_IPLTMSB
5564 ENUMX
5565 BFD_RELOC_IA64_IPLTLSB
5566 ENUMX
5567 BFD_RELOC_IA64_COPY
5568 ENUMX
5569 BFD_RELOC_IA64_LTOFF22X
5570 ENUMX
5571 BFD_RELOC_IA64_LDXMOV
5572 ENUMX
5573 BFD_RELOC_IA64_TPREL14
5574 ENUMX
5575 BFD_RELOC_IA64_TPREL22
5576 ENUMX
5577 BFD_RELOC_IA64_TPREL64I
5578 ENUMX
5579 BFD_RELOC_IA64_TPREL64MSB
5580 ENUMX
5581 BFD_RELOC_IA64_TPREL64LSB
5582 ENUMX
5583 BFD_RELOC_IA64_LTOFF_TPREL22
5584 ENUMX
5585 BFD_RELOC_IA64_DTPMOD64MSB
5586 ENUMX
5587 BFD_RELOC_IA64_DTPMOD64LSB
5588 ENUMX
5589 BFD_RELOC_IA64_LTOFF_DTPMOD22
5590 ENUMX
5591 BFD_RELOC_IA64_DTPREL14
5592 ENUMX
5593 BFD_RELOC_IA64_DTPREL22
5594 ENUMX
5595 BFD_RELOC_IA64_DTPREL64I
5596 ENUMX
5597 BFD_RELOC_IA64_DTPREL32MSB
5598 ENUMX
5599 BFD_RELOC_IA64_DTPREL32LSB
5600 ENUMX
5601 BFD_RELOC_IA64_DTPREL64MSB
5602 ENUMX
5603 BFD_RELOC_IA64_DTPREL64LSB
5604 ENUMX
5605 BFD_RELOC_IA64_LTOFF_DTPREL22
5606 ENUMDOC
5607 Intel IA64 Relocations.
5608
5609 ENUM
5610 BFD_RELOC_M68HC11_HI8
5611 ENUMDOC
5612 Motorola 68HC11 reloc.
5613 This is the 8 bit high part of an absolute address.
5614 ENUM
5615 BFD_RELOC_M68HC11_LO8
5616 ENUMDOC
5617 Motorola 68HC11 reloc.
5618 This is the 8 bit low part of an absolute address.
5619 ENUM
5620 BFD_RELOC_M68HC11_3B
5621 ENUMDOC
5622 Motorola 68HC11 reloc.
5623 This is the 3 bit of a value.
5624 ENUM
5625 BFD_RELOC_M68HC11_RL_JUMP
5626 ENUMDOC
5627 Motorola 68HC11 reloc.
5628 This reloc marks the beginning of a jump/call instruction.
5629 It is used for linker relaxation to correctly identify beginning
5630 of instruction and change some branches to use PC-relative
5631 addressing mode.
5632 ENUM
5633 BFD_RELOC_M68HC11_RL_GROUP
5634 ENUMDOC
5635 Motorola 68HC11 reloc.
5636 This reloc marks a group of several instructions that gcc generates
5637 and for which the linker relaxation pass can modify and/or remove
5638 some of them.
5639 ENUM
5640 BFD_RELOC_M68HC11_LO16
5641 ENUMDOC
5642 Motorola 68HC11 reloc.
5643 This is the 16-bit lower part of an address. It is used for 'call'
5644 instruction to specify the symbol address without any special
5645 transformation (due to memory bank window).
5646 ENUM
5647 BFD_RELOC_M68HC11_PAGE
5648 ENUMDOC
5649 Motorola 68HC11 reloc.
5650 This is a 8-bit reloc that specifies the page number of an address.
5651 It is used by 'call' instruction to specify the page number of
5652 the symbol.
5653 ENUM
5654 BFD_RELOC_M68HC11_24
5655 ENUMDOC
5656 Motorola 68HC11 reloc.
5657 This is a 24-bit reloc that represents the address with a 16-bit
5658 value and a 8-bit page number. The symbol address is transformed
5659 to follow the 16K memory bank of 68HC12 (seen as mapped in the
5660 window).
5661 ENUM
5662 BFD_RELOC_M68HC12_5B
5663 ENUMDOC
5664 Motorola 68HC12 reloc.
5665 This is the 5 bits of a value.
5666 ENUM
5667 BFD_RELOC_XGATE_RL_JUMP
5668 ENUMDOC
5669 Freescale XGATE reloc.
5670 This reloc marks the beginning of a bra/jal instruction.
5671 ENUM
5672 BFD_RELOC_XGATE_RL_GROUP
5673 ENUMDOC
5674 Freescale XGATE reloc.
5675 This reloc marks a group of several instructions that gcc generates
5676 and for which the linker relaxation pass can modify and/or remove
5677 some of them.
5678 ENUM
5679 BFD_RELOC_XGATE_LO16
5680 ENUMDOC
5681 Freescale XGATE reloc.
5682 This is the 16-bit lower part of an address. It is used for the
5683 '16-bit' instructions.
5684 ENUM
5685 BFD_RELOC_XGATE_GPAGE
5686 ENUMDOC
5687 Freescale XGATE reloc.
5688 ENUM
5689 BFD_RELOC_XGATE_24
5690 ENUMDOC
5691 Freescale XGATE reloc.
5692 ENUM
5693 BFD_RELOC_XGATE_PCREL_9
5694 ENUMDOC
5695 Freescale XGATE reloc.
5696 This is a 9-bit pc-relative reloc.
5697 ENUM
5698 BFD_RELOC_XGATE_PCREL_10
5699 ENUMDOC
5700 Freescale XGATE reloc.
5701 This is a 10-bit pc-relative reloc.
5702 ENUM
5703 BFD_RELOC_XGATE_IMM8_LO
5704 ENUMDOC
5705 Freescale XGATE reloc.
5706 This is the 16-bit lower part of an address. It is used for the
5707 '16-bit' instructions.
5708 ENUM
5709 BFD_RELOC_XGATE_IMM8_HI
5710 ENUMDOC
5711 Freescale XGATE reloc.
5712 This is the 16-bit higher part of an address. It is used for the
5713 '16-bit' instructions.
5714 ENUM
5715 BFD_RELOC_XGATE_IMM3
5716 ENUMDOC
5717 Freescale XGATE reloc.
5718 This is a 3-bit pc-relative reloc.
5719 ENUM
5720 BFD_RELOC_XGATE_IMM4
5721 ENUMDOC
5722 Freescale XGATE reloc.
5723 This is a 4-bit pc-relative reloc.
5724 ENUM
5725 BFD_RELOC_XGATE_IMM5
5726 ENUMDOC
5727 Freescale XGATE reloc.
5728 This is a 5-bit pc-relative reloc.
5729 ENUM
5730 BFD_RELOC_M68HC12_9B
5731 ENUMDOC
5732 Motorola 68HC12 reloc.
5733 This is the 9 bits of a value.
5734 ENUM
5735 BFD_RELOC_M68HC12_16B
5736 ENUMDOC
5737 Motorola 68HC12 reloc.
5738 This is the 16 bits of a value.
5739 ENUM
5740 BFD_RELOC_M68HC12_9_PCREL
5741 ENUMDOC
5742 Motorola 68HC12/XGATE reloc.
5743 This is a PCREL9 branch.
5744 ENUM
5745 BFD_RELOC_M68HC12_10_PCREL
5746 ENUMDOC
5747 Motorola 68HC12/XGATE reloc.
5748 This is a PCREL10 branch.
5749 ENUM
5750 BFD_RELOC_M68HC12_LO8XG
5751 ENUMDOC
5752 Motorola 68HC12/XGATE reloc.
5753 This is the 8 bit low part of an absolute address and immediately
5754 precedes a matching HI8XG part.
5755 ENUM
5756 BFD_RELOC_M68HC12_HI8XG
5757 ENUMDOC
5758 Motorola 68HC12/XGATE reloc.
5759 This is the 8 bit high part of an absolute address and immediately
5760 follows a matching LO8XG part.
5761 ENUM
5762 BFD_RELOC_S12Z_15_PCREL
5763 ENUMDOC
5764 Freescale S12Z reloc.
5765 This is a 15 bit relative address. If the most significant bits are
5766 all zero then it may be truncated to 8 bits.
5767
5768 ENUM
5769 BFD_RELOC_CR16_NUM8
5770 ENUMX
5771 BFD_RELOC_CR16_NUM16
5772 ENUMX
5773 BFD_RELOC_CR16_NUM32
5774 ENUMX
5775 BFD_RELOC_CR16_NUM32a
5776 ENUMX
5777 BFD_RELOC_CR16_REGREL0
5778 ENUMX
5779 BFD_RELOC_CR16_REGREL4
5780 ENUMX
5781 BFD_RELOC_CR16_REGREL4a
5782 ENUMX
5783 BFD_RELOC_CR16_REGREL14
5784 ENUMX
5785 BFD_RELOC_CR16_REGREL14a
5786 ENUMX
5787 BFD_RELOC_CR16_REGREL16
5788 ENUMX
5789 BFD_RELOC_CR16_REGREL20
5790 ENUMX
5791 BFD_RELOC_CR16_REGREL20a
5792 ENUMX
5793 BFD_RELOC_CR16_ABS20
5794 ENUMX
5795 BFD_RELOC_CR16_ABS24
5796 ENUMX
5797 BFD_RELOC_CR16_IMM4
5798 ENUMX
5799 BFD_RELOC_CR16_IMM8
5800 ENUMX
5801 BFD_RELOC_CR16_IMM16
5802 ENUMX
5803 BFD_RELOC_CR16_IMM20
5804 ENUMX
5805 BFD_RELOC_CR16_IMM24
5806 ENUMX
5807 BFD_RELOC_CR16_IMM32
5808 ENUMX
5809 BFD_RELOC_CR16_IMM32a
5810 ENUMX
5811 BFD_RELOC_CR16_DISP4
5812 ENUMX
5813 BFD_RELOC_CR16_DISP8
5814 ENUMX
5815 BFD_RELOC_CR16_DISP16
5816 ENUMX
5817 BFD_RELOC_CR16_DISP20
5818 ENUMX
5819 BFD_RELOC_CR16_DISP24
5820 ENUMX
5821 BFD_RELOC_CR16_DISP24a
5822 ENUMX
5823 BFD_RELOC_CR16_SWITCH8
5824 ENUMX
5825 BFD_RELOC_CR16_SWITCH16
5826 ENUMX
5827 BFD_RELOC_CR16_SWITCH32
5828 ENUMX
5829 BFD_RELOC_CR16_GOT_REGREL20
5830 ENUMX
5831 BFD_RELOC_CR16_GOTC_REGREL20
5832 ENUMX
5833 BFD_RELOC_CR16_GLOB_DAT
5834 ENUMDOC
5835 NS CR16 Relocations.
5836
5837 ENUM
5838 BFD_RELOC_CRX_REL4
5839 ENUMX
5840 BFD_RELOC_CRX_REL8
5841 ENUMX
5842 BFD_RELOC_CRX_REL8_CMP
5843 ENUMX
5844 BFD_RELOC_CRX_REL16
5845 ENUMX
5846 BFD_RELOC_CRX_REL24
5847 ENUMX
5848 BFD_RELOC_CRX_REL32
5849 ENUMX
5850 BFD_RELOC_CRX_REGREL12
5851 ENUMX
5852 BFD_RELOC_CRX_REGREL22
5853 ENUMX
5854 BFD_RELOC_CRX_REGREL28
5855 ENUMX
5856 BFD_RELOC_CRX_REGREL32
5857 ENUMX
5858 BFD_RELOC_CRX_ABS16
5859 ENUMX
5860 BFD_RELOC_CRX_ABS32
5861 ENUMX
5862 BFD_RELOC_CRX_NUM8
5863 ENUMX
5864 BFD_RELOC_CRX_NUM16
5865 ENUMX
5866 BFD_RELOC_CRX_NUM32
5867 ENUMX
5868 BFD_RELOC_CRX_IMM16
5869 ENUMX
5870 BFD_RELOC_CRX_IMM32
5871 ENUMX
5872 BFD_RELOC_CRX_SWITCH8
5873 ENUMX
5874 BFD_RELOC_CRX_SWITCH16
5875 ENUMX
5876 BFD_RELOC_CRX_SWITCH32
5877 ENUMDOC
5878 NS CRX Relocations.
5879
5880 ENUM
5881 BFD_RELOC_CRIS_BDISP8
5882 ENUMX
5883 BFD_RELOC_CRIS_UNSIGNED_5
5884 ENUMX
5885 BFD_RELOC_CRIS_SIGNED_6
5886 ENUMX
5887 BFD_RELOC_CRIS_UNSIGNED_6
5888 ENUMX
5889 BFD_RELOC_CRIS_SIGNED_8
5890 ENUMX
5891 BFD_RELOC_CRIS_UNSIGNED_8
5892 ENUMX
5893 BFD_RELOC_CRIS_SIGNED_16
5894 ENUMX
5895 BFD_RELOC_CRIS_UNSIGNED_16
5896 ENUMX
5897 BFD_RELOC_CRIS_LAPCQ_OFFSET
5898 ENUMX
5899 BFD_RELOC_CRIS_UNSIGNED_4
5900 ENUMDOC
5901 These relocs are only used within the CRIS assembler. They are not
5902 (at present) written to any object files.
5903 ENUM
5904 BFD_RELOC_CRIS_COPY
5905 ENUMX
5906 BFD_RELOC_CRIS_GLOB_DAT
5907 ENUMX
5908 BFD_RELOC_CRIS_JUMP_SLOT
5909 ENUMX
5910 BFD_RELOC_CRIS_RELATIVE
5911 ENUMDOC
5912 Relocs used in ELF shared libraries for CRIS.
5913 ENUM
5914 BFD_RELOC_CRIS_32_GOT
5915 ENUMDOC
5916 32-bit offset to symbol-entry within GOT.
5917 ENUM
5918 BFD_RELOC_CRIS_16_GOT
5919 ENUMDOC
5920 16-bit offset to symbol-entry within GOT.
5921 ENUM
5922 BFD_RELOC_CRIS_32_GOTPLT
5923 ENUMDOC
5924 32-bit offset to symbol-entry within GOT, with PLT handling.
5925 ENUM
5926 BFD_RELOC_CRIS_16_GOTPLT
5927 ENUMDOC
5928 16-bit offset to symbol-entry within GOT, with PLT handling.
5929 ENUM
5930 BFD_RELOC_CRIS_32_GOTREL
5931 ENUMDOC
5932 32-bit offset to symbol, relative to GOT.
5933 ENUM
5934 BFD_RELOC_CRIS_32_PLT_GOTREL
5935 ENUMDOC
5936 32-bit offset to symbol with PLT entry, relative to GOT.
5937 ENUM
5938 BFD_RELOC_CRIS_32_PLT_PCREL
5939 ENUMDOC
5940 32-bit offset to symbol with PLT entry, relative to this
5941 relocation.
5942
5943 ENUM
5944 BFD_RELOC_CRIS_32_GOT_GD
5945 ENUMX
5946 BFD_RELOC_CRIS_16_GOT_GD
5947 ENUMX
5948 BFD_RELOC_CRIS_32_GD
5949 ENUMX
5950 BFD_RELOC_CRIS_DTP
5951 ENUMX
5952 BFD_RELOC_CRIS_32_DTPREL
5953 ENUMX
5954 BFD_RELOC_CRIS_16_DTPREL
5955 ENUMX
5956 BFD_RELOC_CRIS_32_GOT_TPREL
5957 ENUMX
5958 BFD_RELOC_CRIS_16_GOT_TPREL
5959 ENUMX
5960 BFD_RELOC_CRIS_32_TPREL
5961 ENUMX
5962 BFD_RELOC_CRIS_16_TPREL
5963 ENUMX
5964 BFD_RELOC_CRIS_DTPMOD
5965 ENUMX
5966 BFD_RELOC_CRIS_32_IE
5967 ENUMDOC
5968 Relocs used in TLS code for CRIS.
5969
5970 ENUM
5971 BFD_RELOC_OR1K_REL_26
5972 ENUMX
5973 BFD_RELOC_OR1K_SLO16
5974 ENUMX
5975 BFD_RELOC_OR1K_PCREL_PG21
5976 ENUMX
5977 BFD_RELOC_OR1K_LO13
5978 ENUMX
5979 BFD_RELOC_OR1K_SLO13
5980 ENUMX
5981 BFD_RELOC_OR1K_GOTPC_HI16
5982 ENUMX
5983 BFD_RELOC_OR1K_GOTPC_LO16
5984 ENUMX
5985 BFD_RELOC_OR1K_GOT_AHI16
5986 ENUMX
5987 BFD_RELOC_OR1K_GOT16
5988 ENUMX
5989 BFD_RELOC_OR1K_GOT_PG21
5990 ENUMX
5991 BFD_RELOC_OR1K_GOT_LO13
5992 ENUMX
5993 BFD_RELOC_OR1K_PLT26
5994 ENUMX
5995 BFD_RELOC_OR1K_PLTA26
5996 ENUMX
5997 BFD_RELOC_OR1K_GOTOFF_SLO16
5998 ENUMX
5999 BFD_RELOC_OR1K_COPY
6000 ENUMX
6001 BFD_RELOC_OR1K_GLOB_DAT
6002 ENUMX
6003 BFD_RELOC_OR1K_JMP_SLOT
6004 ENUMX
6005 BFD_RELOC_OR1K_RELATIVE
6006 ENUMX
6007 BFD_RELOC_OR1K_TLS_GD_HI16
6008 ENUMX
6009 BFD_RELOC_OR1K_TLS_GD_LO16
6010 ENUMX
6011 BFD_RELOC_OR1K_TLS_GD_PG21
6012 ENUMX
6013 BFD_RELOC_OR1K_TLS_GD_LO13
6014 ENUMX
6015 BFD_RELOC_OR1K_TLS_LDM_HI16
6016 ENUMX
6017 BFD_RELOC_OR1K_TLS_LDM_LO16
6018 ENUMX
6019 BFD_RELOC_OR1K_TLS_LDM_PG21
6020 ENUMX
6021 BFD_RELOC_OR1K_TLS_LDM_LO13
6022 ENUMX
6023 BFD_RELOC_OR1K_TLS_LDO_HI16
6024 ENUMX
6025 BFD_RELOC_OR1K_TLS_LDO_LO16
6026 ENUMX
6027 BFD_RELOC_OR1K_TLS_IE_HI16
6028 ENUMX
6029 BFD_RELOC_OR1K_TLS_IE_AHI16
6030 ENUMX
6031 BFD_RELOC_OR1K_TLS_IE_LO16
6032 ENUMX
6033 BFD_RELOC_OR1K_TLS_IE_PG21
6034 ENUMX
6035 BFD_RELOC_OR1K_TLS_IE_LO13
6036 ENUMX
6037 BFD_RELOC_OR1K_TLS_LE_HI16
6038 ENUMX
6039 BFD_RELOC_OR1K_TLS_LE_AHI16
6040 ENUMX
6041 BFD_RELOC_OR1K_TLS_LE_LO16
6042 ENUMX
6043 BFD_RELOC_OR1K_TLS_LE_SLO16
6044 ENUMX
6045 BFD_RELOC_OR1K_TLS_TPOFF
6046 ENUMX
6047 BFD_RELOC_OR1K_TLS_DTPOFF
6048 ENUMX
6049 BFD_RELOC_OR1K_TLS_DTPMOD
6050 ENUMDOC
6051 OpenRISC 1000 Relocations.
6052
6053 ENUM
6054 BFD_RELOC_H8_DIR16A8
6055 ENUMX
6056 BFD_RELOC_H8_DIR16R8
6057 ENUMX
6058 BFD_RELOC_H8_DIR24A8
6059 ENUMX
6060 BFD_RELOC_H8_DIR24R8
6061 ENUMX
6062 BFD_RELOC_H8_DIR32A16
6063 ENUMX
6064 BFD_RELOC_H8_DISP32A16
6065 ENUMDOC
6066 H8 elf Relocations.
6067
6068 ENUM
6069 BFD_RELOC_XSTORMY16_REL_12
6070 ENUMX
6071 BFD_RELOC_XSTORMY16_12
6072 ENUMX
6073 BFD_RELOC_XSTORMY16_24
6074 ENUMX
6075 BFD_RELOC_XSTORMY16_FPTR16
6076 ENUMDOC
6077 Sony Xstormy16 Relocations.
6078
6079 ENUM
6080 BFD_RELOC_RELC
6081 ENUMDOC
6082 Self-describing complex relocations.
6083
6084 ENUM
6085 BFD_RELOC_VAX_GLOB_DAT
6086 ENUMX
6087 BFD_RELOC_VAX_JMP_SLOT
6088 ENUMX
6089 BFD_RELOC_VAX_RELATIVE
6090 ENUMDOC
6091 Relocations used by VAX ELF.
6092
6093 ENUM
6094 BFD_RELOC_MT_PC16
6095 ENUMDOC
6096 Morpho MT - 16 bit immediate relocation.
6097 ENUM
6098 BFD_RELOC_MT_HI16
6099 ENUMDOC
6100 Morpho MT - Hi 16 bits of an address.
6101 ENUM
6102 BFD_RELOC_MT_LO16
6103 ENUMDOC
6104 Morpho MT - Low 16 bits of an address.
6105 ENUM
6106 BFD_RELOC_MT_GNU_VTINHERIT
6107 ENUMDOC
6108 Morpho MT - Used to tell the linker which vtable entries are used.
6109 ENUM
6110 BFD_RELOC_MT_GNU_VTENTRY
6111 ENUMDOC
6112 Morpho MT - Used to tell the linker which vtable entries are used.
6113 ENUM
6114 BFD_RELOC_MT_PCINSN8
6115 ENUMDOC
6116 Morpho MT - 8 bit immediate relocation.
6117
6118 ENUM
6119 BFD_RELOC_MSP430_10_PCREL
6120 ENUMX
6121 BFD_RELOC_MSP430_16_PCREL
6122 ENUMX
6123 BFD_RELOC_MSP430_16
6124 ENUMX
6125 BFD_RELOC_MSP430_16_PCREL_BYTE
6126 ENUMX
6127 BFD_RELOC_MSP430_16_BYTE
6128 ENUMX
6129 BFD_RELOC_MSP430_2X_PCREL
6130 ENUMX
6131 BFD_RELOC_MSP430_RL_PCREL
6132 ENUMX
6133 BFD_RELOC_MSP430_ABS8
6134 ENUMX
6135 BFD_RELOC_MSP430X_PCR20_EXT_SRC
6136 ENUMX
6137 BFD_RELOC_MSP430X_PCR20_EXT_DST
6138 ENUMX
6139 BFD_RELOC_MSP430X_PCR20_EXT_ODST
6140 ENUMX
6141 BFD_RELOC_MSP430X_ABS20_EXT_SRC
6142 ENUMX
6143 BFD_RELOC_MSP430X_ABS20_EXT_DST
6144 ENUMX
6145 BFD_RELOC_MSP430X_ABS20_EXT_ODST
6146 ENUMX
6147 BFD_RELOC_MSP430X_ABS20_ADR_SRC
6148 ENUMX
6149 BFD_RELOC_MSP430X_ABS20_ADR_DST
6150 ENUMX
6151 BFD_RELOC_MSP430X_PCR16
6152 ENUMX
6153 BFD_RELOC_MSP430X_PCR20_CALL
6154 ENUMX
6155 BFD_RELOC_MSP430X_ABS16
6156 ENUMX
6157 BFD_RELOC_MSP430_ABS_HI16
6158 ENUMX
6159 BFD_RELOC_MSP430_PREL31
6160 ENUMX
6161 BFD_RELOC_MSP430_SYM_DIFF
6162 ENUMX
6163 BFD_RELOC_MSP430_SET_ULEB128
6164 ENUMX
6165 BFD_RELOC_MSP430_SUB_ULEB128
6166 ENUMDOC
6167 msp430 specific relocation codes.
6168
6169 ENUM
6170 BFD_RELOC_NIOS2_S16
6171 ENUMX
6172 BFD_RELOC_NIOS2_U16
6173 ENUMX
6174 BFD_RELOC_NIOS2_CALL26
6175 ENUMX
6176 BFD_RELOC_NIOS2_IMM5
6177 ENUMX
6178 BFD_RELOC_NIOS2_CACHE_OPX
6179 ENUMX
6180 BFD_RELOC_NIOS2_IMM6
6181 ENUMX
6182 BFD_RELOC_NIOS2_IMM8
6183 ENUMX
6184 BFD_RELOC_NIOS2_HI16
6185 ENUMX
6186 BFD_RELOC_NIOS2_LO16
6187 ENUMX
6188 BFD_RELOC_NIOS2_HIADJ16
6189 ENUMX
6190 BFD_RELOC_NIOS2_GPREL
6191 ENUMX
6192 BFD_RELOC_NIOS2_UJMP
6193 ENUMX
6194 BFD_RELOC_NIOS2_CJMP
6195 ENUMX
6196 BFD_RELOC_NIOS2_CALLR
6197 ENUMX
6198 BFD_RELOC_NIOS2_ALIGN
6199 ENUMX
6200 BFD_RELOC_NIOS2_GOT16
6201 ENUMX
6202 BFD_RELOC_NIOS2_CALL16
6203 ENUMX
6204 BFD_RELOC_NIOS2_GOTOFF_LO
6205 ENUMX
6206 BFD_RELOC_NIOS2_GOTOFF_HA
6207 ENUMX
6208 BFD_RELOC_NIOS2_PCREL_LO
6209 ENUMX
6210 BFD_RELOC_NIOS2_PCREL_HA
6211 ENUMX
6212 BFD_RELOC_NIOS2_TLS_GD16
6213 ENUMX
6214 BFD_RELOC_NIOS2_TLS_LDM16
6215 ENUMX
6216 BFD_RELOC_NIOS2_TLS_LDO16
6217 ENUMX
6218 BFD_RELOC_NIOS2_TLS_IE16
6219 ENUMX
6220 BFD_RELOC_NIOS2_TLS_LE16
6221 ENUMX
6222 BFD_RELOC_NIOS2_TLS_DTPMOD
6223 ENUMX
6224 BFD_RELOC_NIOS2_TLS_DTPREL
6225 ENUMX
6226 BFD_RELOC_NIOS2_TLS_TPREL
6227 ENUMX
6228 BFD_RELOC_NIOS2_COPY
6229 ENUMX
6230 BFD_RELOC_NIOS2_GLOB_DAT
6231 ENUMX
6232 BFD_RELOC_NIOS2_JUMP_SLOT
6233 ENUMX
6234 BFD_RELOC_NIOS2_RELATIVE
6235 ENUMX
6236 BFD_RELOC_NIOS2_GOTOFF
6237 ENUMX
6238 BFD_RELOC_NIOS2_CALL26_NOAT
6239 ENUMX
6240 BFD_RELOC_NIOS2_GOT_LO
6241 ENUMX
6242 BFD_RELOC_NIOS2_GOT_HA
6243 ENUMX
6244 BFD_RELOC_NIOS2_CALL_LO
6245 ENUMX
6246 BFD_RELOC_NIOS2_CALL_HA
6247 ENUMX
6248 BFD_RELOC_NIOS2_R2_S12
6249 ENUMX
6250 BFD_RELOC_NIOS2_R2_I10_1_PCREL
6251 ENUMX
6252 BFD_RELOC_NIOS2_R2_T1I7_1_PCREL
6253 ENUMX
6254 BFD_RELOC_NIOS2_R2_T1I7_2
6255 ENUMX
6256 BFD_RELOC_NIOS2_R2_T2I4
6257 ENUMX
6258 BFD_RELOC_NIOS2_R2_T2I4_1
6259 ENUMX
6260 BFD_RELOC_NIOS2_R2_T2I4_2
6261 ENUMX
6262 BFD_RELOC_NIOS2_R2_X1I7_2
6263 ENUMX
6264 BFD_RELOC_NIOS2_R2_X2L5
6265 ENUMX
6266 BFD_RELOC_NIOS2_R2_F1I5_2
6267 ENUMX
6268 BFD_RELOC_NIOS2_R2_L5I4X1
6269 ENUMX
6270 BFD_RELOC_NIOS2_R2_T1X1I6
6271 ENUMX
6272 BFD_RELOC_NIOS2_R2_T1X1I6_2
6273 ENUMDOC
6274 Relocations used by the Altera Nios II core.
6275
6276 ENUM
6277 BFD_RELOC_PRU_U16
6278 ENUMDOC
6279 PRU LDI 16-bit unsigned data-memory relocation.
6280 ENUM
6281 BFD_RELOC_PRU_U16_PMEMIMM
6282 ENUMDOC
6283 PRU LDI 16-bit unsigned instruction-memory relocation.
6284 ENUM
6285 BFD_RELOC_PRU_LDI32
6286 ENUMDOC
6287 PRU relocation for two consecutive LDI load instructions that load a
6288 32 bit value into a register. If the higher bits are all zero, then
6289 the second instruction may be relaxed.
6290 ENUM
6291 BFD_RELOC_PRU_S10_PCREL
6292 ENUMDOC
6293 PRU QBBx 10-bit signed PC-relative relocation.
6294 ENUM
6295 BFD_RELOC_PRU_U8_PCREL
6296 ENUMDOC
6297 PRU 8-bit unsigned relocation used for the LOOP instruction.
6298 ENUM
6299 BFD_RELOC_PRU_32_PMEM
6300 ENUMX
6301 BFD_RELOC_PRU_16_PMEM
6302 ENUMDOC
6303 PRU Program Memory relocations. Used to convert from byte
6304 addressing to 32-bit word addressing.
6305 ENUM
6306 BFD_RELOC_PRU_GNU_DIFF8
6307 ENUMX
6308 BFD_RELOC_PRU_GNU_DIFF16
6309 ENUMX
6310 BFD_RELOC_PRU_GNU_DIFF32
6311 ENUMX
6312 BFD_RELOC_PRU_GNU_DIFF16_PMEM
6313 ENUMX
6314 BFD_RELOC_PRU_GNU_DIFF32_PMEM
6315 ENUMDOC
6316 PRU relocations to mark the difference of two local symbols.
6317 These are only needed to support linker relaxation and can be
6318 ignored when not relaxing. The field is set to the value of the
6319 difference assuming no relaxation. The relocation encodes the
6320 position of the second symbol so the linker can determine whether to
6321 adjust the field value. The PMEM variants encode the word
6322 difference, instead of byte difference between symbols.
6323
6324 ENUM
6325 BFD_RELOC_IQ2000_OFFSET_16
6326 ENUMX
6327 BFD_RELOC_IQ2000_OFFSET_21
6328 ENUMX
6329 BFD_RELOC_IQ2000_UHI16
6330 ENUMDOC
6331 IQ2000 Relocations.
6332
6333 ENUM
6334 BFD_RELOC_XTENSA_RTLD
6335 ENUMDOC
6336 Special Xtensa relocation used only by PLT entries in ELF shared
6337 objects to indicate that the runtime linker should set the value
6338 to one of its own internal functions or data structures.
6339 ENUM
6340 BFD_RELOC_XTENSA_GLOB_DAT
6341 ENUMX
6342 BFD_RELOC_XTENSA_JMP_SLOT
6343 ENUMX
6344 BFD_RELOC_XTENSA_RELATIVE
6345 ENUMDOC
6346 Xtensa relocations for ELF shared objects.
6347 ENUM
6348 BFD_RELOC_XTENSA_PLT
6349 ENUMDOC
6350 Xtensa relocation used in ELF object files for symbols that may
6351 require PLT entries. Otherwise, this is just a generic 32-bit
6352 relocation.
6353 ENUM
6354 BFD_RELOC_XTENSA_DIFF8
6355 ENUMX
6356 BFD_RELOC_XTENSA_DIFF16
6357 ENUMX
6358 BFD_RELOC_XTENSA_DIFF32
6359 ENUMDOC
6360 Xtensa relocations for backward compatibility. These have been
6361 replaced by BFD_RELOC_XTENSA_PDIFF and BFD_RELOC_XTENSA_NDIFF.
6362 Xtensa relocations to mark the difference of two local symbols.
6363 These are only needed to support linker relaxation and can be
6364 ignored when not relaxing. The field is set to the value of the
6365 difference assuming no relaxation. The relocation encodes the
6366 position of the first symbol so the linker can determine whether to
6367 adjust the field value.
6368 ENUM
6369 BFD_RELOC_XTENSA_SLOT0_OP
6370 ENUMX
6371 BFD_RELOC_XTENSA_SLOT1_OP
6372 ENUMX
6373 BFD_RELOC_XTENSA_SLOT2_OP
6374 ENUMX
6375 BFD_RELOC_XTENSA_SLOT3_OP
6376 ENUMX
6377 BFD_RELOC_XTENSA_SLOT4_OP
6378 ENUMX
6379 BFD_RELOC_XTENSA_SLOT5_OP
6380 ENUMX
6381 BFD_RELOC_XTENSA_SLOT6_OP
6382 ENUMX
6383 BFD_RELOC_XTENSA_SLOT7_OP
6384 ENUMX
6385 BFD_RELOC_XTENSA_SLOT8_OP
6386 ENUMX
6387 BFD_RELOC_XTENSA_SLOT9_OP
6388 ENUMX
6389 BFD_RELOC_XTENSA_SLOT10_OP
6390 ENUMX
6391 BFD_RELOC_XTENSA_SLOT11_OP
6392 ENUMX
6393 BFD_RELOC_XTENSA_SLOT12_OP
6394 ENUMX
6395 BFD_RELOC_XTENSA_SLOT13_OP
6396 ENUMX
6397 BFD_RELOC_XTENSA_SLOT14_OP
6398 ENUMDOC
6399 Generic Xtensa relocations for instruction operands. Only the slot
6400 number is encoded in the relocation. The relocation applies to the
6401 last PC-relative immediate operand, or if there are no PC-relative
6402 immediates, to the last immediate operand.
6403 ENUM
6404 BFD_RELOC_XTENSA_SLOT0_ALT
6405 ENUMX
6406 BFD_RELOC_XTENSA_SLOT1_ALT
6407 ENUMX
6408 BFD_RELOC_XTENSA_SLOT2_ALT
6409 ENUMX
6410 BFD_RELOC_XTENSA_SLOT3_ALT
6411 ENUMX
6412 BFD_RELOC_XTENSA_SLOT4_ALT
6413 ENUMX
6414 BFD_RELOC_XTENSA_SLOT5_ALT
6415 ENUMX
6416 BFD_RELOC_XTENSA_SLOT6_ALT
6417 ENUMX
6418 BFD_RELOC_XTENSA_SLOT7_ALT
6419 ENUMX
6420 BFD_RELOC_XTENSA_SLOT8_ALT
6421 ENUMX
6422 BFD_RELOC_XTENSA_SLOT9_ALT
6423 ENUMX
6424 BFD_RELOC_XTENSA_SLOT10_ALT
6425 ENUMX
6426 BFD_RELOC_XTENSA_SLOT11_ALT
6427 ENUMX
6428 BFD_RELOC_XTENSA_SLOT12_ALT
6429 ENUMX
6430 BFD_RELOC_XTENSA_SLOT13_ALT
6431 ENUMX
6432 BFD_RELOC_XTENSA_SLOT14_ALT
6433 ENUMDOC
6434 Alternate Xtensa relocations. Only the slot is encoded in the
6435 relocation. The meaning of these relocations is opcode-specific.
6436 ENUM
6437 BFD_RELOC_XTENSA_OP0
6438 ENUMX
6439 BFD_RELOC_XTENSA_OP1
6440 ENUMX
6441 BFD_RELOC_XTENSA_OP2
6442 ENUMDOC
6443 Xtensa relocations for backward compatibility. These have all been
6444 replaced by BFD_RELOC_XTENSA_SLOT0_OP.
6445 ENUM
6446 BFD_RELOC_XTENSA_ASM_EXPAND
6447 ENUMDOC
6448 Xtensa relocation to mark that the assembler expanded the
6449 instructions from an original target. The expansion size is
6450 encoded in the reloc size.
6451 ENUM
6452 BFD_RELOC_XTENSA_ASM_SIMPLIFY
6453 ENUMDOC
6454 Xtensa relocation to mark that the linker should simplify
6455 assembler-expanded instructions. This is commonly used
6456 internally by the linker after analysis of a
6457 BFD_RELOC_XTENSA_ASM_EXPAND.
6458 ENUM
6459 BFD_RELOC_XTENSA_TLSDESC_FN
6460 ENUMX
6461 BFD_RELOC_XTENSA_TLSDESC_ARG
6462 ENUMX
6463 BFD_RELOC_XTENSA_TLS_DTPOFF
6464 ENUMX
6465 BFD_RELOC_XTENSA_TLS_TPOFF
6466 ENUMX
6467 BFD_RELOC_XTENSA_TLS_FUNC
6468 ENUMX
6469 BFD_RELOC_XTENSA_TLS_ARG
6470 ENUMX
6471 BFD_RELOC_XTENSA_TLS_CALL
6472 ENUMDOC
6473 Xtensa TLS relocations.
6474 ENUM
6475 BFD_RELOC_XTENSA_PDIFF8
6476 ENUMX
6477 BFD_RELOC_XTENSA_PDIFF16
6478 ENUMX
6479 BFD_RELOC_XTENSA_PDIFF32
6480 ENUMX
6481 BFD_RELOC_XTENSA_NDIFF8
6482 ENUMX
6483 BFD_RELOC_XTENSA_NDIFF16
6484 ENUMX
6485 BFD_RELOC_XTENSA_NDIFF32
6486 ENUMDOC
6487 Xtensa relocations to mark the difference of two local symbols.
6488 These are only needed to support linker relaxation and can be
6489 ignored when not relaxing. The field is set to the value of the
6490 difference assuming no relaxation. The relocation encodes the
6491 position of the subtracted symbol so the linker can determine
6492 whether to adjust the field value. PDIFF relocations are used for
6493 positive differences, NDIFF relocations are used for negative
6494 differences. The difference value is treated as unsigned with these
6495 relocation types, giving full 8/16 value ranges.
6496
6497 ENUM
6498 BFD_RELOC_Z80_DISP8
6499 ENUMDOC
6500 8 bit signed offset in (ix+d) or (iy+d).
6501 ENUM
6502 BFD_RELOC_Z80_BYTE0
6503 ENUMDOC
6504 First 8 bits of multibyte (32, 24 or 16 bit) value.
6505 ENUM
6506 BFD_RELOC_Z80_BYTE1
6507 ENUMDOC
6508 Second 8 bits of multibyte (32, 24 or 16 bit) value.
6509 ENUM
6510 BFD_RELOC_Z80_BYTE2
6511 ENUMDOC
6512 Third 8 bits of multibyte (32 or 24 bit) value.
6513 ENUM
6514 BFD_RELOC_Z80_BYTE3
6515 ENUMDOC
6516 Fourth 8 bits of multibyte (32 bit) value.
6517 ENUM
6518 BFD_RELOC_Z80_WORD0
6519 ENUMDOC
6520 Lowest 16 bits of multibyte (32 or 24 bit) value.
6521 ENUM
6522 BFD_RELOC_Z80_WORD1
6523 ENUMDOC
6524 Highest 16 bits of multibyte (32 or 24 bit) value.
6525 ENUM
6526 BFD_RELOC_Z80_16_BE
6527 ENUMDOC
6528 Like BFD_RELOC_16 but big-endian.
6529
6530 ENUM
6531 BFD_RELOC_Z8K_DISP7
6532 ENUMDOC
6533 DJNZ offset.
6534 ENUM
6535 BFD_RELOC_Z8K_CALLR
6536 ENUMDOC
6537 CALR offset.
6538 ENUM
6539 BFD_RELOC_Z8K_IMM4L
6540 ENUMDOC
6541 4 bit value.
6542
6543 ENUM
6544 BFD_RELOC_LM32_CALL
6545 ENUMX
6546 BFD_RELOC_LM32_BRANCH
6547 ENUMX
6548 BFD_RELOC_LM32_16_GOT
6549 ENUMX
6550 BFD_RELOC_LM32_GOTOFF_HI16
6551 ENUMX
6552 BFD_RELOC_LM32_GOTOFF_LO16
6553 ENUMX
6554 BFD_RELOC_LM32_COPY
6555 ENUMX
6556 BFD_RELOC_LM32_GLOB_DAT
6557 ENUMX
6558 BFD_RELOC_LM32_JMP_SLOT
6559 ENUMX
6560 BFD_RELOC_LM32_RELATIVE
6561 ENUMDOC
6562 Lattice Mico32 relocations.
6563
6564 ENUM
6565 BFD_RELOC_MACH_O_SECTDIFF
6566 ENUMDOC
6567 Difference between two section addreses. Must be followed by a
6568 BFD_RELOC_MACH_O_PAIR.
6569 ENUM
6570 BFD_RELOC_MACH_O_LOCAL_SECTDIFF
6571 ENUMDOC
6572 Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol.
6573 ENUM
6574 BFD_RELOC_MACH_O_PAIR
6575 ENUMDOC
6576 Pair of relocation. Contains the first symbol.
6577 ENUM
6578 BFD_RELOC_MACH_O_SUBTRACTOR32
6579 ENUMDOC
6580 Symbol will be substracted. Must be followed by a BFD_RELOC_32.
6581 ENUM
6582 BFD_RELOC_MACH_O_SUBTRACTOR64
6583 ENUMDOC
6584 Symbol will be substracted. Must be followed by a BFD_RELOC_64.
6585
6586 ENUM
6587 BFD_RELOC_MACH_O_X86_64_BRANCH32
6588 ENUMX
6589 BFD_RELOC_MACH_O_X86_64_BRANCH8
6590 ENUMDOC
6591 PCREL relocations. They are marked as branch to create PLT entry if
6592 required.
6593 ENUM
6594 BFD_RELOC_MACH_O_X86_64_GOT
6595 ENUMDOC
6596 Used when referencing a GOT entry.
6597 ENUM
6598 BFD_RELOC_MACH_O_X86_64_GOT_LOAD
6599 ENUMDOC
6600 Used when loading a GOT entry with movq. It is specially marked so
6601 that the linker could optimize the movq to a leaq if possible.
6602 ENUM
6603 BFD_RELOC_MACH_O_X86_64_PCREL32_1
6604 ENUMDOC
6605 Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.
6606 ENUM
6607 BFD_RELOC_MACH_O_X86_64_PCREL32_2
6608 ENUMDOC
6609 Same as BFD_RELOC_32_PCREL but with an implicit -2 addend.
6610 ENUM
6611 BFD_RELOC_MACH_O_X86_64_PCREL32_4
6612 ENUMDOC
6613 Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.
6614 ENUM
6615 BFD_RELOC_MACH_O_X86_64_TLV
6616 ENUMDOC
6617 Used when referencing a TLV entry.
6618
6619
6620 ENUM
6621 BFD_RELOC_MACH_O_ARM64_ADDEND
6622 ENUMDOC
6623 Addend for PAGE or PAGEOFF.
6624 ENUM
6625 BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21
6626 ENUMDOC
6627 Relative offset to page of GOT slot.
6628 ENUM
6629 BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12
6630 ENUMDOC
6631 Relative offset within page of GOT slot.
6632 ENUM
6633 BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT
6634 ENUMDOC
6635 Address of a GOT entry.
6636
6637 ENUM
6638 BFD_RELOC_MICROBLAZE_32_LO
6639 ENUMDOC
6640 This is a 32 bit reloc for the microblaze that stores the low 16
6641 bits of a value.
6642 ENUM
6643 BFD_RELOC_MICROBLAZE_32_LO_PCREL
6644 ENUMDOC
6645 This is a 32 bit pc-relative reloc for the microblaze that stores
6646 the low 16 bits of a value.
6647 ENUM
6648 BFD_RELOC_MICROBLAZE_32_ROSDA
6649 ENUMDOC
6650 This is a 32 bit reloc for the microblaze that stores a value
6651 relative to the read-only small data area anchor.
6652 ENUM
6653 BFD_RELOC_MICROBLAZE_32_RWSDA
6654 ENUMDOC
6655 This is a 32 bit reloc for the microblaze that stores a value
6656 relative to the read-write small data area anchor.
6657 ENUM
6658 BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM
6659 ENUMDOC
6660 This is a 32 bit reloc for the microblaze to handle expressions of
6661 the form "Symbol Op Symbol".
6662 ENUM
6663 BFD_RELOC_MICROBLAZE_32_NONE
6664 ENUMDOC
6665 This is a 32 bit reloc that stores the 32 bit pc relative value in
6666 two words (with an imm instruction). No relocation is done here -
6667 only used for relaxing.
6668 ENUM
6669 BFD_RELOC_MICROBLAZE_64_NONE
6670 ENUMDOC
6671 This is a 64 bit reloc that stores the 32 bit pc relative value in
6672 two words (with an imm instruction). No relocation is done here -
6673 only used for relaxing.
6674 ENUM
6675 BFD_RELOC_MICROBLAZE_64_GOTPC
6676 ENUMDOC
6677 This is a 64 bit reloc that stores the 32 bit pc relative value in
6678 two words (with an imm instruction). The relocation is PC-relative
6679 GOT offset.
6680 ENUM
6681 BFD_RELOC_MICROBLAZE_64_GOT
6682 ENUMDOC
6683 This is a 64 bit reloc that stores the 32 bit pc relative value in
6684 two words (with an imm instruction). The relocation is GOT offset.
6685 ENUM
6686 BFD_RELOC_MICROBLAZE_64_PLT
6687 ENUMDOC
6688 This is a 64 bit reloc that stores the 32 bit pc relative value in
6689 two words (with an imm instruction). The relocation is PC-relative
6690 offset into PLT.
6691 ENUM
6692 BFD_RELOC_MICROBLAZE_64_GOTOFF
6693 ENUMDOC
6694 This is a 64 bit reloc that stores the 32 bit GOT relative value in
6695 two words (with an imm instruction). The relocation is relative
6696 offset from _GLOBAL_OFFSET_TABLE_.
6697 ENUM
6698 BFD_RELOC_MICROBLAZE_32_GOTOFF
6699 ENUMDOC
6700 This is a 32 bit reloc that stores the 32 bit GOT relative value in
6701 a word. The relocation is relative offset from
6702 _GLOBAL_OFFSET_TABLE_.
6703 ENUM
6704 BFD_RELOC_MICROBLAZE_COPY
6705 ENUMDOC
6706 This is used to tell the dynamic linker to copy the value out of
6707 the dynamic object into the runtime process image.
6708 ENUM
6709 BFD_RELOC_MICROBLAZE_64_TLS
6710 ENUMDOC
6711 Unused Reloc.
6712 ENUM
6713 BFD_RELOC_MICROBLAZE_64_TLSGD
6714 ENUMDOC
6715 This is a 64 bit reloc that stores the 32 bit GOT relative value
6716 of the GOT TLS GD info entry in two words (with an imm instruction).
6717 The relocation is GOT offset.
6718 ENUM
6719 BFD_RELOC_MICROBLAZE_64_TLSLD
6720 ENUMDOC
6721 This is a 64 bit reloc that stores the 32 bit GOT relative value
6722 of the GOT TLS LD info entry in two words (with an imm instruction).
6723 The relocation is GOT offset.
6724 ENUM
6725 BFD_RELOC_MICROBLAZE_32_TLSDTPMOD
6726 ENUMDOC
6727 This is a 32 bit reloc that stores the Module ID to GOT(n).
6728 ENUM
6729 BFD_RELOC_MICROBLAZE_32_TLSDTPREL
6730 ENUMDOC
6731 This is a 32 bit reloc that stores TLS offset to GOT(n+1).
6732 ENUM
6733 BFD_RELOC_MICROBLAZE_64_TLSDTPREL
6734 ENUMDOC
6735 This is a 32 bit reloc for storing TLS offset to two words (uses imm
6736 instruction).
6737 ENUM
6738 BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL
6739 ENUMDOC
6740 This is a 64 bit reloc that stores 32-bit thread pointer relative
6741 offset to two words (uses imm instruction).
6742 ENUM
6743 BFD_RELOC_MICROBLAZE_64_TLSTPREL
6744 ENUMDOC
6745 This is a 64 bit reloc that stores 32-bit thread pointer relative
6746 offset to two words (uses imm instruction).
6747 ENUM
6748 BFD_RELOC_MICROBLAZE_64_TEXTPCREL
6749 ENUMDOC
6750 This is a 64 bit reloc that stores the 32 bit pc relative value in
6751 two words (with an imm instruction). The relocation is PC-relative
6752 offset from start of TEXT.
6753 ENUM
6754 BFD_RELOC_MICROBLAZE_64_TEXTREL
6755 ENUMDOC
6756 This is a 64 bit reloc that stores the 32 bit offset value in two
6757 words (with an imm instruction). The relocation is relative offset
6758 from start of TEXT.
6759 ENUM
6760 BFD_RELOC_KVX_RELOC_START
6761 ENUMDOC
6762 KVX pseudo relocation code to mark the start of the KVX relocation
6763 enumerators. N.B. the order of the enumerators is important as
6764 several tables in the KVX bfd backend are indexed by these
6765 enumerators; make sure they are all synced.
6766 ENUM
6767 BFD_RELOC_KVX_NONE
6768 ENUMDOC
6769 KVX null relocation code.
6770 ENUM
6771 BFD_RELOC_KVX_16
6772 ENUMX
6773 BFD_RELOC_KVX_32
6774 ENUMX
6775 BFD_RELOC_KVX_64
6776 ENUMX
6777 BFD_RELOC_KVX_S16_PCREL
6778 ENUMX
6779 BFD_RELOC_KVX_PCREL17
6780 ENUMX
6781 BFD_RELOC_KVX_PCREL27
6782 ENUMX
6783 BFD_RELOC_KVX_32_PCREL
6784 ENUMX
6785 BFD_RELOC_KVX_S37_PCREL_LO10
6786 ENUMX
6787 BFD_RELOC_KVX_S37_PCREL_UP27
6788 ENUMX
6789 BFD_RELOC_KVX_S43_PCREL_LO10
6790 ENUMX
6791 BFD_RELOC_KVX_S43_PCREL_UP27
6792 ENUMX
6793 BFD_RELOC_KVX_S43_PCREL_EX6
6794 ENUMX
6795 BFD_RELOC_KVX_S64_PCREL_LO10
6796 ENUMX
6797 BFD_RELOC_KVX_S64_PCREL_UP27
6798 ENUMX
6799 BFD_RELOC_KVX_S64_PCREL_EX27
6800 ENUMX
6801 BFD_RELOC_KVX_64_PCREL
6802 ENUMX
6803 BFD_RELOC_KVX_S16
6804 ENUMX
6805 BFD_RELOC_KVX_S32_LO5
6806 ENUMX
6807 BFD_RELOC_KVX_S32_UP27
6808 ENUMX
6809 BFD_RELOC_KVX_S37_LO10
6810 ENUMX
6811 BFD_RELOC_KVX_S37_UP27
6812 ENUMX
6813 BFD_RELOC_KVX_S37_GOTOFF_LO10
6814 ENUMX
6815 BFD_RELOC_KVX_S37_GOTOFF_UP27
6816 ENUMX
6817 BFD_RELOC_KVX_S43_GOTOFF_LO10
6818 ENUMX
6819 BFD_RELOC_KVX_S43_GOTOFF_UP27
6820 ENUMX
6821 BFD_RELOC_KVX_S43_GOTOFF_EX6
6822 ENUMX
6823 BFD_RELOC_KVX_32_GOTOFF
6824 ENUMX
6825 BFD_RELOC_KVX_64_GOTOFF
6826 ENUMX
6827 BFD_RELOC_KVX_32_GOT
6828 ENUMX
6829 BFD_RELOC_KVX_S37_GOT_LO10
6830 ENUMX
6831 BFD_RELOC_KVX_S37_GOT_UP27
6832 ENUMX
6833 BFD_RELOC_KVX_S43_GOT_LO10
6834 ENUMX
6835 BFD_RELOC_KVX_S43_GOT_UP27
6836 ENUMX
6837 BFD_RELOC_KVX_S43_GOT_EX6
6838 ENUMX
6839 BFD_RELOC_KVX_64_GOT
6840 ENUMX
6841 BFD_RELOC_KVX_GLOB_DAT
6842 ENUMX
6843 BFD_RELOC_KVX_COPY
6844 ENUMX
6845 BFD_RELOC_KVX_JMP_SLOT
6846 ENUMX
6847 BFD_RELOC_KVX_RELATIVE
6848 ENUMX
6849 BFD_RELOC_KVX_S43_LO10
6850 ENUMX
6851 BFD_RELOC_KVX_S43_UP27
6852 ENUMX
6853 BFD_RELOC_KVX_S43_EX6
6854 ENUMX
6855 BFD_RELOC_KVX_S64_LO10
6856 ENUMX
6857 BFD_RELOC_KVX_S64_UP27
6858 ENUMX
6859 BFD_RELOC_KVX_S64_EX27
6860 ENUMX
6861 BFD_RELOC_KVX_S37_GOTADDR_LO10
6862 ENUMX
6863 BFD_RELOC_KVX_S37_GOTADDR_UP27
6864 ENUMX
6865 BFD_RELOC_KVX_S43_GOTADDR_LO10
6866 ENUMX
6867 BFD_RELOC_KVX_S43_GOTADDR_UP27
6868 ENUMX
6869 BFD_RELOC_KVX_S43_GOTADDR_EX6
6870 ENUMX
6871 BFD_RELOC_KVX_S64_GOTADDR_LO10
6872 ENUMX
6873 BFD_RELOC_KVX_S64_GOTADDR_UP27
6874 ENUMX
6875 BFD_RELOC_KVX_S64_GOTADDR_EX27
6876 ENUMX
6877 BFD_RELOC_KVX_64_DTPMOD
6878 ENUMX
6879 BFD_RELOC_KVX_64_DTPOFF
6880 ENUMX
6881 BFD_RELOC_KVX_S37_TLS_DTPOFF_LO10
6882 ENUMX
6883 BFD_RELOC_KVX_S37_TLS_DTPOFF_UP27
6884 ENUMX
6885 BFD_RELOC_KVX_S43_TLS_DTPOFF_LO10
6886 ENUMX
6887 BFD_RELOC_KVX_S43_TLS_DTPOFF_UP27
6888 ENUMX
6889 BFD_RELOC_KVX_S43_TLS_DTPOFF_EX6
6890 ENUMX
6891 BFD_RELOC_KVX_S37_TLS_GD_LO10
6892 ENUMX
6893 BFD_RELOC_KVX_S37_TLS_GD_UP27
6894 ENUMX
6895 BFD_RELOC_KVX_S43_TLS_GD_LO10
6896 ENUMX
6897 BFD_RELOC_KVX_S43_TLS_GD_UP27
6898 ENUMX
6899 BFD_RELOC_KVX_S43_TLS_GD_EX6
6900 ENUMX
6901 BFD_RELOC_KVX_S37_TLS_LD_LO10
6902 ENUMX
6903 BFD_RELOC_KVX_S37_TLS_LD_UP27
6904 ENUMX
6905 BFD_RELOC_KVX_S43_TLS_LD_LO10
6906 ENUMX
6907 BFD_RELOC_KVX_S43_TLS_LD_UP27
6908 ENUMX
6909 BFD_RELOC_KVX_S43_TLS_LD_EX6
6910 ENUMX
6911 BFD_RELOC_KVX_64_TPOFF
6912 ENUMX
6913 BFD_RELOC_KVX_S37_TLS_IE_LO10
6914 ENUMX
6915 BFD_RELOC_KVX_S37_TLS_IE_UP27
6916 ENUMX
6917 BFD_RELOC_KVX_S43_TLS_IE_LO10
6918 ENUMX
6919 BFD_RELOC_KVX_S43_TLS_IE_UP27
6920 ENUMX
6921 BFD_RELOC_KVX_S43_TLS_IE_EX6
6922 ENUMX
6923 BFD_RELOC_KVX_S37_TLS_LE_LO10
6924 ENUMX
6925 BFD_RELOC_KVX_S37_TLS_LE_UP27
6926 ENUMX
6927 BFD_RELOC_KVX_S43_TLS_LE_LO10
6928 ENUMX
6929 BFD_RELOC_KVX_S43_TLS_LE_UP27
6930 ENUMX
6931 BFD_RELOC_KVX_S43_TLS_LE_EX6
6932 ENUMX
6933 BFD_RELOC_KVX_8
6934 ENUMDOC
6935 KVX Relocations.
6936 ENUM
6937 BFD_RELOC_KVX_RELOC_END
6938 ENUMDOC
6939 KVX pseudo relocation code to mark the end of the KVX relocation
6940 enumerators that have direct mapping to ELF reloc codes. There are
6941 a few more enumerators after this one; those are mainly used by the
6942 KVX assembler for the internal fixup or to select one of the above
6943 enumerators.
6944 ENUM
6945 BFD_RELOC_AARCH64_RELOC_START
6946 ENUMDOC
6947 AArch64 pseudo relocation code to mark the start of the AArch64
6948 relocation enumerators. N.B. the order of the enumerators is
6949 important as several tables in the AArch64 bfd backend are indexed
6950 by these enumerators; make sure they are all synced.
6951 ENUM
6952 BFD_RELOC_AARCH64_NULL
6953 ENUMDOC
6954 Deprecated AArch64 null relocation code.
6955 ENUM
6956 BFD_RELOC_AARCH64_NONE
6957 ENUMDOC
6958 AArch64 null relocation code.
6959 ENUM
6960 BFD_RELOC_AARCH64_64
6961 ENUMX
6962 BFD_RELOC_AARCH64_32
6963 ENUMX
6964 BFD_RELOC_AARCH64_16
6965 ENUMDOC
6966 Basic absolute relocations of N bits. These are equivalent to
6967 BFD_RELOC_N and they were added to assist the indexing of the howto
6968 table.
6969 ENUM
6970 BFD_RELOC_AARCH64_64_PCREL
6971 ENUMX
6972 BFD_RELOC_AARCH64_32_PCREL
6973 ENUMX
6974 BFD_RELOC_AARCH64_16_PCREL
6975 ENUMDOC
6976 PC-relative relocations. These are equivalent to BFD_RELOC_N_PCREL
6977 and they were added to assist the indexing of the howto table.
6978 ENUM
6979 BFD_RELOC_AARCH64_MOVW_G0
6980 ENUMDOC
6981 AArch64 MOV[NZK] instruction with most significant bits 0 to 15 of
6982 an unsigned address/value.
6983 ENUM
6984 BFD_RELOC_AARCH64_MOVW_G0_NC
6985 ENUMDOC
6986 AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of
6987 an address/value. No overflow checking.
6988 ENUM
6989 BFD_RELOC_AARCH64_MOVW_G1
6990 ENUMDOC
6991 AArch64 MOV[NZK] instruction with most significant bits 16 to 31 of
6992 an unsigned address/value.
6993 ENUM
6994 BFD_RELOC_AARCH64_MOVW_G1_NC
6995 ENUMDOC
6996 AArch64 MOV[NZK] instruction with less significant bits 16 to 31 of
6997 an address/value. No overflow checking.
6998 ENUM
6999 BFD_RELOC_AARCH64_MOVW_G2
7000 ENUMDOC
7001 AArch64 MOV[NZK] instruction with most significant bits 32 to 47 of
7002 an unsigned address/value.
7003 ENUM
7004 BFD_RELOC_AARCH64_MOVW_G2_NC
7005 ENUMDOC
7006 AArch64 MOV[NZK] instruction with less significant bits 32 to 47 of
7007 an address/value. No overflow checking.
7008 ENUM
7009 BFD_RELOC_AARCH64_MOVW_G3
7010 ENUMDOC
7011 AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 of a
7012 signed or unsigned address/value.
7013 ENUM
7014 BFD_RELOC_AARCH64_MOVW_G0_S
7015 ENUMDOC
7016 AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of a
7017 signed value. Changes instruction to MOVZ or MOVN depending on the
7018 value's sign.
7019 ENUM
7020 BFD_RELOC_AARCH64_MOVW_G1_S
7021 ENUMDOC
7022 AArch64 MOV[NZ] instruction with most significant bits 16 to 31 of a
7023 signed value. Changes instruction to MOVZ or MOVN depending on the
7024 value's sign.
7025 ENUM
7026 BFD_RELOC_AARCH64_MOVW_G2_S
7027 ENUMDOC
7028 AArch64 MOV[NZ] instruction with most significant bits 32 to 47 of a
7029 signed value. Changes instruction to MOVZ or MOVN depending on the
7030 value's sign.
7031 ENUM
7032 BFD_RELOC_AARCH64_MOVW_PREL_G0
7033 ENUMDOC
7034 AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of a
7035 signed value. Changes instruction to MOVZ or MOVN depending on the
7036 value's sign.
7037 ENUM
7038 BFD_RELOC_AARCH64_MOVW_PREL_G0_NC
7039 ENUMDOC
7040 AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of a
7041 signed value. Changes instruction to MOVZ or MOVN depending on the
7042 value's sign.
7043 ENUM
7044 BFD_RELOC_AARCH64_MOVW_PREL_G1
7045 ENUMDOC
7046 AArch64 MOVK instruction with most significant bits 16 to 31 of a
7047 signed value.
7048 ENUM
7049 BFD_RELOC_AARCH64_MOVW_PREL_G1_NC
7050 ENUMDOC
7051 AArch64 MOVK instruction with most significant bits 16 to 31 of a
7052 signed value.
7053 ENUM
7054 BFD_RELOC_AARCH64_MOVW_PREL_G2
7055 ENUMDOC
7056 AArch64 MOVK instruction with most significant bits 32 to 47 of a
7057 signed value.
7058 ENUM
7059 BFD_RELOC_AARCH64_MOVW_PREL_G2_NC
7060 ENUMDOC
7061 AArch64 MOVK instruction with most significant bits 32 to 47 of a
7062 signed value.
7063 ENUM
7064 BFD_RELOC_AARCH64_MOVW_PREL_G3
7065 ENUMDOC
7066 AArch64 MOVK instruction with most significant bits 47 to 63 of a
7067 signed value.
7068 ENUM
7069 BFD_RELOC_AARCH64_LD_LO19_PCREL
7070 ENUMDOC
7071 AArch64 Load Literal instruction, holding a 19 bit pc-relative word
7072 offset. The lowest two bits must be zero and are not stored in the
7073 instruction, giving a 21 bit signed byte offset.
7074 ENUM
7075 BFD_RELOC_AARCH64_ADR_LO21_PCREL
7076 ENUMDOC
7077 AArch64 ADR instruction, holding a simple 21 bit pc-relative byte
7078 offset.
7079 ENUM
7080 BFD_RELOC_AARCH64_ADR_HI21_PCREL
7081 ENUMDOC
7082 AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
7083 offset, giving a 4KB aligned page base address.
7084 ENUM
7085 BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL
7086 ENUMDOC
7087 AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page
7088 offset, giving a 4KB aligned page base address, but with no overflow
7089 checking.
7090 ENUM
7091 BFD_RELOC_AARCH64_ADD_LO12
7092 ENUMDOC
7093 AArch64 ADD immediate instruction, holding bits 0 to 11 of the
7094 address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7095 ENUM
7096 BFD_RELOC_AARCH64_LDST8_LO12
7097 ENUMDOC
7098 AArch64 8-bit load/store instruction, holding bits 0 to 11 of the
7099 address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7100 ENUM
7101 BFD_RELOC_AARCH64_TSTBR14
7102 ENUMDOC
7103 AArch64 14 bit pc-relative test bit and branch.
7104 The lowest two bits must be zero and are not stored in the
7105 instruction, giving a 16 bit signed byte offset.
7106 ENUM
7107 BFD_RELOC_AARCH64_BRANCH19
7108 ENUMDOC
7109 AArch64 19 bit pc-relative conditional branch and compare & branch.
7110 The lowest two bits must be zero and are not stored in the
7111 instruction, giving a 21 bit signed byte offset.
7112 ENUM
7113 BFD_RELOC_AARCH64_JUMP26
7114 ENUMDOC
7115 AArch64 26 bit pc-relative unconditional branch.
7116 The lowest two bits must be zero and are not stored in the
7117 instruction, giving a 28 bit signed byte offset.
7118 ENUM
7119 BFD_RELOC_AARCH64_CALL26
7120 ENUMDOC
7121 AArch64 26 bit pc-relative unconditional branch and link.
7122 The lowest two bits must be zero and are not stored in the
7123 instruction, giving a 28 bit signed byte offset.
7124 ENUM
7125 BFD_RELOC_AARCH64_LDST16_LO12
7126 ENUMDOC
7127 AArch64 16-bit load/store instruction, holding bits 0 to 11 of the
7128 address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7129 ENUM
7130 BFD_RELOC_AARCH64_LDST32_LO12
7131 ENUMDOC
7132 AArch64 32-bit load/store instruction, holding bits 0 to 11 of the
7133 address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7134 ENUM
7135 BFD_RELOC_AARCH64_LDST64_LO12
7136 ENUMDOC
7137 AArch64 64-bit load/store instruction, holding bits 0 to 11 of the
7138 address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7139 ENUM
7140 BFD_RELOC_AARCH64_LDST128_LO12
7141 ENUMDOC
7142 AArch64 128-bit load/store instruction, holding bits 0 to 11 of the
7143 address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7144 ENUM
7145 BFD_RELOC_AARCH64_GOT_LD_PREL19
7146 ENUMDOC
7147 AArch64 Load Literal instruction, holding a 19 bit PC relative word
7148 offset of the global offset table entry for a symbol. The lowest
7149 two bits must be zero and are not stored in the instruction, giving
7150 a 21 bit signed byte offset. This relocation type requires signed
7151 overflow checking.
7152 ENUM
7153 BFD_RELOC_AARCH64_ADR_GOT_PAGE
7154 ENUMDOC
7155 Get to the page base of the global offset table entry for a symbol
7156 as part of an ADRP instruction using a 21 bit PC relative value.
7157 Used in conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC.
7158 ENUM
7159 BFD_RELOC_AARCH64_LD64_GOT_LO12_NC
7160 ENUMDOC
7161 Unsigned 12 bit byte offset for 64 bit load/store from the page of
7162 the GOT entry for this symbol. Used in conjunction with
7163 BFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in LP64 ABI only.
7164 ENUM
7165 BFD_RELOC_AARCH64_LD32_GOT_LO12_NC
7166 ENUMDOC
7167 Unsigned 12 bit byte offset for 32 bit load/store from the page of
7168 the GOT entry for this symbol. Used in conjunction with
7169 BFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in ILP32 ABI only.
7170 ENUM
7171 BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC
7172 ENUMDOC
7173 Unsigned 16 bit byte offset for 64 bit load/store from the GOT entry
7174 for this symbol. Valid in LP64 ABI only.
7175 ENUM
7176 BFD_RELOC_AARCH64_MOVW_GOTOFF_G1
7177 ENUMDOC
7178 Unsigned 16 bit byte higher offset for 64 bit load/store from the
7179 GOT entry for this symbol. Valid in LP64 ABI only.
7180 ENUM
7181 BFD_RELOC_AARCH64_LD64_GOTOFF_LO15
7182 ENUMDOC
7183 Unsigned 15 bit byte offset for 64 bit load/store from the page of
7184 the GOT entry for this symbol. Valid in LP64 ABI only.
7185 ENUM
7186 BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14
7187 ENUMDOC
7188 Scaled 14 bit byte offset to the page base of the global offset
7189 table.
7190 ENUM
7191 BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15
7192 ENUMDOC
7193 Scaled 15 bit byte offset to the page base of the global offset
7194 table.
7195 ENUM
7196 BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21
7197 ENUMDOC
7198 Get to the page base of the global offset table entry for a symbols
7199 tls_index structure as part of an adrp instruction using a 21 bit PC
7200 relative value. Used in conjunction with
7201 BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC.
7202 ENUM
7203 BFD_RELOC_AARCH64_TLSGD_ADR_PREL21
7204 ENUMDOC
7205 AArch64 TLS General Dynamic.
7206 ENUM
7207 BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC
7208 ENUMDOC
7209 Unsigned 12 bit byte offset to global offset table entry for a
7210 symbol's tls_index structure. Used in conjunction with
7211 BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.
7212 ENUM
7213 BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC
7214 ENUMDOC
7215 AArch64 TLS General Dynamic relocation.
7216 ENUM
7217 BFD_RELOC_AARCH64_TLSGD_MOVW_G1
7218 ENUMDOC
7219 AArch64 TLS General Dynamic relocation.
7220 ENUM
7221 BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21
7222 ENUMDOC
7223 AArch64 TLS INITIAL EXEC relocation.
7224 ENUM
7225 BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC
7226 ENUMDOC
7227 AArch64 TLS INITIAL EXEC relocation.
7228 ENUM
7229 BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC
7230 ENUMDOC
7231 AArch64 TLS INITIAL EXEC relocation.
7232 ENUM
7233 BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19
7234 ENUMDOC
7235 AArch64 TLS INITIAL EXEC relocation.
7236 ENUM
7237 BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC
7238 ENUMDOC
7239 AArch64 TLS INITIAL EXEC relocation.
7240 ENUM
7241 BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1
7242 ENUMDOC
7243 AArch64 TLS INITIAL EXEC relocation.
7244 ENUM
7245 BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12
7246 ENUMDOC
7247 bit[23:12] of byte offset to module TLS base address.
7248 ENUM
7249 BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12
7250 ENUMDOC
7251 Unsigned 12 bit byte offset to module TLS base address.
7252 ENUM
7253 BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC
7254 ENUMDOC
7255 No overflow check version of
7256 BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.
7257 ENUM
7258 BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC
7259 ENUMDOC
7260 Unsigned 12 bit byte offset to global offset table entry for a
7261 symbol's tls_index structure. Used in conjunction with
7262 BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.
7263 ENUM
7264 BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21
7265 ENUMDOC
7266 GOT entry page address for AArch64 TLS Local Dynamic, used with ADRP
7267 instruction.
7268 ENUM
7269 BFD_RELOC_AARCH64_TLSLD_ADR_PREL21
7270 ENUMDOC
7271 GOT entry address for AArch64 TLS Local Dynamic, used with ADR
7272 instruction.
7273 ENUM
7274 BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12
7275 ENUMDOC
7276 bit[11:1] of byte offset to module TLS base address, encoded in ldst
7277 instructions.
7278 ENUM
7279 BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC
7280 ENUMDOC
7281 Similar to BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no
7282 overflow check.
7283 ENUM
7284 BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12
7285 ENUMDOC
7286 bit[11:2] of byte offset to module TLS base address, encoded in ldst
7287 instructions.
7288 ENUM
7289 BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC
7290 ENUMDOC
7291 Similar to BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no
7292 overflow check.
7293 ENUM
7294 BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12
7295 ENUMDOC
7296 bit[11:3] of byte offset to module TLS base address, encoded in ldst
7297 instructions.
7298 ENUM
7299 BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC
7300 ENUMDOC
7301 Similar to BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no
7302 overflow check.
7303 ENUM
7304 BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12
7305 ENUMDOC
7306 bit[11:0] of byte offset to module TLS base address, encoded in ldst
7307 instructions.
7308 ENUM
7309 BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC
7310 ENUMDOC
7311 Similar to BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no
7312 overflow check.
7313 ENUM
7314 BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0
7315 ENUMDOC
7316 bit[15:0] of byte offset to module TLS base address.
7317 ENUM
7318 BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC
7319 ENUMDOC
7320 No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0.
7321 ENUM
7322 BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1
7323 ENUMDOC
7324 bit[31:16] of byte offset to module TLS base address.
7325 ENUM
7326 BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC
7327 ENUMDOC
7328 No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1.
7329 ENUM
7330 BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2
7331 ENUMDOC
7332 bit[47:32] of byte offset to module TLS base address.
7333 ENUM
7334 BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2
7335 ENUMDOC
7336 AArch64 TLS LOCAL EXEC relocation.
7337 ENUM
7338 BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1
7339 ENUMDOC
7340 AArch64 TLS LOCAL EXEC relocation.
7341 ENUM
7342 BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC
7343 ENUMDOC
7344 AArch64 TLS LOCAL EXEC relocation.
7345 ENUM
7346 BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0
7347 ENUMDOC
7348 AArch64 TLS LOCAL EXEC relocation.
7349 ENUM
7350 BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC
7351 ENUMDOC
7352 AArch64 TLS LOCAL EXEC relocation.
7353 ENUM
7354 BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12
7355 ENUMDOC
7356 AArch64 TLS LOCAL EXEC relocation.
7357 ENUM
7358 BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12
7359 ENUMDOC
7360 AArch64 TLS LOCAL EXEC relocation.
7361 ENUM
7362 BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC
7363 ENUMDOC
7364 AArch64 TLS LOCAL EXEC relocation.
7365 ENUM
7366 BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12
7367 ENUMDOC
7368 bit[11:1] of byte offset to module TLS base address, encoded in ldst
7369 instructions.
7370 ENUM
7371 BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC
7372 ENUMDOC
7373 Similar to BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no
7374 overflow check.
7375 ENUM
7376 BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12
7377 ENUMDOC
7378 bit[11:2] of byte offset to module TLS base address, encoded in ldst
7379 instructions.
7380 ENUM
7381 BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC
7382 ENUMDOC
7383 Similar to BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no
7384 overflow check.
7385 ENUM
7386 BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12
7387 ENUMDOC
7388 bit[11:3] of byte offset to module TLS base address, encoded in ldst
7389 instructions.
7390 ENUM
7391 BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC
7392 ENUMDOC
7393 Similar to BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no
7394 overflow check.
7395 ENUM
7396 BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12
7397 ENUMDOC
7398 bit[11:0] of byte offset to module TLS base address, encoded in ldst
7399 instructions.
7400 ENUM
7401 BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC
7402 ENUMDOC
7403 Similar to BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no overflow
7404 check.
7405 ENUM
7406 BFD_RELOC_AARCH64_TLSDESC_LD_PREL19
7407 ENUMX
7408 BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21
7409 ENUMX
7410 BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21
7411 ENUMX
7412 BFD_RELOC_AARCH64_TLSDESC_LD64_LO12
7413 ENUMX
7414 BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC
7415 ENUMX
7416 BFD_RELOC_AARCH64_TLSDESC_ADD_LO12
7417 ENUMX
7418 BFD_RELOC_AARCH64_TLSDESC_OFF_G1
7419 ENUMX
7420 BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC
7421 ENUMX
7422 BFD_RELOC_AARCH64_TLSDESC_LDR
7423 ENUMX
7424 BFD_RELOC_AARCH64_TLSDESC_ADD
7425 ENUMX
7426 BFD_RELOC_AARCH64_TLSDESC_CALL
7427 ENUMDOC
7428 AArch64 TLS DESC relocations.
7429 ENUM
7430 BFD_RELOC_AARCH64_COPY
7431 ENUMX
7432 BFD_RELOC_AARCH64_GLOB_DAT
7433 ENUMX
7434 BFD_RELOC_AARCH64_JUMP_SLOT
7435 ENUMX
7436 BFD_RELOC_AARCH64_RELATIVE
7437 ENUMDOC
7438 AArch64 DSO relocations.
7439 ENUM
7440 BFD_RELOC_AARCH64_TLS_DTPMOD
7441 ENUMX
7442 BFD_RELOC_AARCH64_TLS_DTPREL
7443 ENUMX
7444 BFD_RELOC_AARCH64_TLS_TPREL
7445 ENUMX
7446 BFD_RELOC_AARCH64_TLSDESC
7447 ENUMDOC
7448 AArch64 TLS relocations.
7449 ENUM
7450 BFD_RELOC_AARCH64_IRELATIVE
7451 ENUMDOC
7452 AArch64 support for STT_GNU_IFUNC.
7453 ENUM
7454 BFD_RELOC_AARCH64_RELOC_END
7455 ENUMDOC
7456 AArch64 pseudo relocation code to mark the end of the AArch64
7457 relocation enumerators that have direct mapping to ELF reloc codes.
7458 There are a few more enumerators after this one; those are mainly
7459 used by the AArch64 assembler for the internal fixup or to select
7460 one of the above enumerators.
7461 ENUM
7462 BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP
7463 ENUMDOC
7464 AArch64 pseudo relocation code to be used internally by the AArch64
7465 assembler and not (currently) written to any object files.
7466 ENUM
7467 BFD_RELOC_AARCH64_LDST_LO12
7468 ENUMDOC
7469 AArch64 unspecified load/store instruction, holding bits 0 to 11 of the
7470 address. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.
7471 ENUM
7472 BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12
7473 ENUMDOC
7474 AArch64 pseudo relocation code for TLS local dynamic mode. It's to
7475 be used internally by the AArch64 assembler and not (currently)
7476 written to any object files.
7477 ENUM
7478 BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC
7479 ENUMDOC
7480 Similar to BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow
7481 check.
7482 ENUM
7483 BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12
7484 ENUMDOC
7485 AArch64 pseudo relocation code for TLS local exec mode. It's to be
7486 used internally by the AArch64 assembler and not (currently) written
7487 to any object files.
7488 ENUM
7489 BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC
7490 ENUMDOC
7491 Similar to BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no overflow
7492 check.
7493 ENUM
7494 BFD_RELOC_AARCH64_LD_GOT_LO12_NC
7495 ENUMDOC
7496 AArch64 pseudo relocation code to be used internally by the AArch64
7497 assembler and not (currently) written to any object files.
7498 ENUM
7499 BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC
7500 ENUMDOC
7501 AArch64 pseudo relocation code to be used internally by the AArch64
7502 assembler and not (currently) written to any object files.
7503 ENUM
7504 BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC
7505 ENUMDOC
7506 AArch64 pseudo relocation code to be used internally by the AArch64
7507 assembler and not (currently) written to any object files.
7508 ENUM
7509 BFD_RELOC_TILEPRO_COPY
7510 ENUMX
7511 BFD_RELOC_TILEPRO_GLOB_DAT
7512 ENUMX
7513 BFD_RELOC_TILEPRO_JMP_SLOT
7514 ENUMX
7515 BFD_RELOC_TILEPRO_RELATIVE
7516 ENUMX
7517 BFD_RELOC_TILEPRO_BROFF_X1
7518 ENUMX
7519 BFD_RELOC_TILEPRO_JOFFLONG_X1
7520 ENUMX
7521 BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT
7522 ENUMX
7523 BFD_RELOC_TILEPRO_IMM8_X0
7524 ENUMX
7525 BFD_RELOC_TILEPRO_IMM8_Y0
7526 ENUMX
7527 BFD_RELOC_TILEPRO_IMM8_X1
7528 ENUMX
7529 BFD_RELOC_TILEPRO_IMM8_Y1
7530 ENUMX
7531 BFD_RELOC_TILEPRO_DEST_IMM8_X1
7532 ENUMX
7533 BFD_RELOC_TILEPRO_MT_IMM15_X1
7534 ENUMX
7535 BFD_RELOC_TILEPRO_MF_IMM15_X1
7536 ENUMX
7537 BFD_RELOC_TILEPRO_IMM16_X0
7538 ENUMX
7539 BFD_RELOC_TILEPRO_IMM16_X1
7540 ENUMX
7541 BFD_RELOC_TILEPRO_IMM16_X0_LO
7542 ENUMX
7543 BFD_RELOC_TILEPRO_IMM16_X1_LO
7544 ENUMX
7545 BFD_RELOC_TILEPRO_IMM16_X0_HI
7546 ENUMX
7547 BFD_RELOC_TILEPRO_IMM16_X1_HI
7548 ENUMX
7549 BFD_RELOC_TILEPRO_IMM16_X0_HA
7550 ENUMX
7551 BFD_RELOC_TILEPRO_IMM16_X1_HA
7552 ENUMX
7553 BFD_RELOC_TILEPRO_IMM16_X0_PCREL
7554 ENUMX
7555 BFD_RELOC_TILEPRO_IMM16_X1_PCREL
7556 ENUMX
7557 BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL
7558 ENUMX
7559 BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL
7560 ENUMX
7561 BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL
7562 ENUMX
7563 BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL
7564 ENUMX
7565 BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL
7566 ENUMX
7567 BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL
7568 ENUMX
7569 BFD_RELOC_TILEPRO_IMM16_X0_GOT
7570 ENUMX
7571 BFD_RELOC_TILEPRO_IMM16_X1_GOT
7572 ENUMX
7573 BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO
7574 ENUMX
7575 BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO
7576 ENUMX
7577 BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI
7578 ENUMX
7579 BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI
7580 ENUMX
7581 BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA
7582 ENUMX
7583 BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA
7584 ENUMX
7585 BFD_RELOC_TILEPRO_MMSTART_X0
7586 ENUMX
7587 BFD_RELOC_TILEPRO_MMEND_X0
7588 ENUMX
7589 BFD_RELOC_TILEPRO_MMSTART_X1
7590 ENUMX
7591 BFD_RELOC_TILEPRO_MMEND_X1
7592 ENUMX
7593 BFD_RELOC_TILEPRO_SHAMT_X0
7594 ENUMX
7595 BFD_RELOC_TILEPRO_SHAMT_X1
7596 ENUMX
7597 BFD_RELOC_TILEPRO_SHAMT_Y0
7598 ENUMX
7599 BFD_RELOC_TILEPRO_SHAMT_Y1
7600 ENUMX
7601 BFD_RELOC_TILEPRO_TLS_GD_CALL
7602 ENUMX
7603 BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD
7604 ENUMX
7605 BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD
7606 ENUMX
7607 BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD
7608 ENUMX
7609 BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD
7610 ENUMX
7611 BFD_RELOC_TILEPRO_TLS_IE_LOAD
7612 ENUMX
7613 BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
7614 ENUMX
7615 BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
7616 ENUMX
7617 BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO
7618 ENUMX
7619 BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO
7620 ENUMX
7621 BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI
7622 ENUMX
7623 BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI
7624 ENUMX
7625 BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA
7626 ENUMX
7627 BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA
7628 ENUMX
7629 BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE
7630 ENUMX
7631 BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE
7632 ENUMX
7633 BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO
7634 ENUMX
7635 BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO
7636 ENUMX
7637 BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI
7638 ENUMX
7639 BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI
7640 ENUMX
7641 BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA
7642 ENUMX
7643 BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA
7644 ENUMX
7645 BFD_RELOC_TILEPRO_TLS_DTPMOD32
7646 ENUMX
7647 BFD_RELOC_TILEPRO_TLS_DTPOFF32
7648 ENUMX
7649 BFD_RELOC_TILEPRO_TLS_TPOFF32
7650 ENUMX
7651 BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE
7652 ENUMX
7653 BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE
7654 ENUMX
7655 BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO
7656 ENUMX
7657 BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO
7658 ENUMX
7659 BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI
7660 ENUMX
7661 BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI
7662 ENUMX
7663 BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA
7664 ENUMX
7665 BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA
7666 ENUMDOC
7667 Tilera TILEPro Relocations.
7668 ENUM
7669 BFD_RELOC_TILEGX_HW0
7670 ENUMX
7671 BFD_RELOC_TILEGX_HW1
7672 ENUMX
7673 BFD_RELOC_TILEGX_HW2
7674 ENUMX
7675 BFD_RELOC_TILEGX_HW3
7676 ENUMX
7677 BFD_RELOC_TILEGX_HW0_LAST
7678 ENUMX
7679 BFD_RELOC_TILEGX_HW1_LAST
7680 ENUMX
7681 BFD_RELOC_TILEGX_HW2_LAST
7682 ENUMX
7683 BFD_RELOC_TILEGX_COPY
7684 ENUMX
7685 BFD_RELOC_TILEGX_GLOB_DAT
7686 ENUMX
7687 BFD_RELOC_TILEGX_JMP_SLOT
7688 ENUMX
7689 BFD_RELOC_TILEGX_RELATIVE
7690 ENUMX
7691 BFD_RELOC_TILEGX_BROFF_X1
7692 ENUMX
7693 BFD_RELOC_TILEGX_JUMPOFF_X1
7694 ENUMX
7695 BFD_RELOC_TILEGX_JUMPOFF_X1_PLT
7696 ENUMX
7697 BFD_RELOC_TILEGX_IMM8_X0
7698 ENUMX
7699 BFD_RELOC_TILEGX_IMM8_Y0
7700 ENUMX
7701 BFD_RELOC_TILEGX_IMM8_X1
7702 ENUMX
7703 BFD_RELOC_TILEGX_IMM8_Y1
7704 ENUMX
7705 BFD_RELOC_TILEGX_DEST_IMM8_X1
7706 ENUMX
7707 BFD_RELOC_TILEGX_MT_IMM14_X1
7708 ENUMX
7709 BFD_RELOC_TILEGX_MF_IMM14_X1
7710 ENUMX
7711 BFD_RELOC_TILEGX_MMSTART_X0
7712 ENUMX
7713 BFD_RELOC_TILEGX_MMEND_X0
7714 ENUMX
7715 BFD_RELOC_TILEGX_SHAMT_X0
7716 ENUMX
7717 BFD_RELOC_TILEGX_SHAMT_X1
7718 ENUMX
7719 BFD_RELOC_TILEGX_SHAMT_Y0
7720 ENUMX
7721 BFD_RELOC_TILEGX_SHAMT_Y1
7722 ENUMX
7723 BFD_RELOC_TILEGX_IMM16_X0_HW0
7724 ENUMX
7725 BFD_RELOC_TILEGX_IMM16_X1_HW0
7726 ENUMX
7727 BFD_RELOC_TILEGX_IMM16_X0_HW1
7728 ENUMX
7729 BFD_RELOC_TILEGX_IMM16_X1_HW1
7730 ENUMX
7731 BFD_RELOC_TILEGX_IMM16_X0_HW2
7732 ENUMX
7733 BFD_RELOC_TILEGX_IMM16_X1_HW2
7734 ENUMX
7735 BFD_RELOC_TILEGX_IMM16_X0_HW3
7736 ENUMX
7737 BFD_RELOC_TILEGX_IMM16_X1_HW3
7738 ENUMX
7739 BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST
7740 ENUMX
7741 BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST
7742 ENUMX
7743 BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST
7744 ENUMX
7745 BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST
7746 ENUMX
7747 BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST
7748 ENUMX
7749 BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST
7750 ENUMX
7751 BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL
7752 ENUMX
7753 BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL
7754 ENUMX
7755 BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL
7756 ENUMX
7757 BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL
7758 ENUMX
7759 BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL
7760 ENUMX
7761 BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL
7762 ENUMX
7763 BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL
7764 ENUMX
7765 BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL
7766 ENUMX
7767 BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL
7768 ENUMX
7769 BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL
7770 ENUMX
7771 BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL
7772 ENUMX
7773 BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL
7774 ENUMX
7775 BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL
7776 ENUMX
7777 BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL
7778 ENUMX
7779 BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
7780 ENUMX
7781 BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
7782 ENUMX
7783 BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL
7784 ENUMX
7785 BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL
7786 ENUMX
7787 BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL
7788 ENUMX
7789 BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL
7790 ENUMX
7791 BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL
7792 ENUMX
7793 BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL
7794 ENUMX
7795 BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
7796 ENUMX
7797 BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
7798 ENUMX
7799 BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT
7800 ENUMX
7801 BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
7802 ENUMX
7803 BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL
7804 ENUMX
7805 BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL
7806 ENUMX
7807 BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
7808 ENUMX
7809 BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
7810 ENUMX
7811 BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE
7812 ENUMX
7813 BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE
7814 ENUMX
7815 BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE
7816 ENUMX
7817 BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE
7818 ENUMX
7819 BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE
7820 ENUMX
7821 BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE
7822 ENUMX
7823 BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
7824 ENUMX
7825 BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD
7826 ENUMX
7827 BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
7828 ENUMX
7829 BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
7830 ENUMX
7831 BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
7832 ENUMX
7833 BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
7834 ENUMX
7835 BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL
7836 ENUMX
7837 BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL
7838 ENUMX
7839 BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL
7840 ENUMX
7841 BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL
7842 ENUMX
7843 BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL
7844 ENUMX
7845 BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL
7846 ENUMX
7847 BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
7848 ENUMX
7849 BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
7850 ENUMX
7851 BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE
7852 ENUMX
7853 BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
7854 ENUMX
7855 BFD_RELOC_TILEGX_TLS_DTPMOD64
7856 ENUMX
7857 BFD_RELOC_TILEGX_TLS_DTPOFF64
7858 ENUMX
7859 BFD_RELOC_TILEGX_TLS_TPOFF64
7860 ENUMX
7861 BFD_RELOC_TILEGX_TLS_DTPMOD32
7862 ENUMX
7863 BFD_RELOC_TILEGX_TLS_DTPOFF32
7864 ENUMX
7865 BFD_RELOC_TILEGX_TLS_TPOFF32
7866 ENUMX
7867 BFD_RELOC_TILEGX_TLS_GD_CALL
7868 ENUMX
7869 BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD
7870 ENUMX
7871 BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD
7872 ENUMX
7873 BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD
7874 ENUMX
7875 BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD
7876 ENUMX
7877 BFD_RELOC_TILEGX_TLS_IE_LOAD
7878 ENUMX
7879 BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD
7880 ENUMX
7881 BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD
7882 ENUMX
7883 BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD
7884 ENUMX
7885 BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD
7886 ENUMDOC
7887 Tilera TILE-Gx Relocations.
7888
7889 ENUM
7890 BFD_RELOC_BPF_64
7891 ENUMX
7892 BFD_RELOC_BPF_DISP32
7893 ENUMX
7894 BFD_RELOC_BPF_DISPCALL32
7895 ENUMX
7896 BFD_RELOC_BPF_DISP16
7897 ENUMDOC
7898 Linux eBPF relocations.
7899
7900 ENUM
7901 BFD_RELOC_EPIPHANY_SIMM8
7902 ENUMDOC
7903 Adapteva EPIPHANY - 8 bit signed pc-relative displacement.
7904 ENUM
7905 BFD_RELOC_EPIPHANY_SIMM24
7906 ENUMDOC
7907 Adapteva EPIPHANY - 24 bit signed pc-relative displacement.
7908 ENUM
7909 BFD_RELOC_EPIPHANY_HIGH
7910 ENUMDOC
7911 Adapteva EPIPHANY - 16 most-significant bits of absolute address.
7912 ENUM
7913 BFD_RELOC_EPIPHANY_LOW
7914 ENUMDOC
7915 Adapteva EPIPHANY - 16 least-significant bits of absolute address.
7916 ENUM
7917 BFD_RELOC_EPIPHANY_SIMM11
7918 ENUMDOC
7919 Adapteva EPIPHANY - 11 bit signed number - add/sub immediate.
7920 ENUM
7921 BFD_RELOC_EPIPHANY_IMM11
7922 ENUMDOC
7923 Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st
7924 displacement).
7925 ENUM
7926 BFD_RELOC_EPIPHANY_IMM8
7927 ENUMDOC
7928 Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction.
7929
7930 ENUM
7931 BFD_RELOC_VISIUM_HI16
7932 ENUMX
7933 BFD_RELOC_VISIUM_LO16
7934 ENUMX
7935 BFD_RELOC_VISIUM_IM16
7936 ENUMX
7937 BFD_RELOC_VISIUM_REL16
7938 ENUMX
7939 BFD_RELOC_VISIUM_HI16_PCREL
7940 ENUMX
7941 BFD_RELOC_VISIUM_LO16_PCREL
7942 ENUMX
7943 BFD_RELOC_VISIUM_IM16_PCREL
7944 ENUMDOC
7945 Visium Relocations.
7946
7947 ENUM
7948 BFD_RELOC_WASM32_LEB128
7949 ENUMX
7950 BFD_RELOC_WASM32_LEB128_GOT
7951 ENUMX
7952 BFD_RELOC_WASM32_LEB128_GOT_CODE
7953 ENUMX
7954 BFD_RELOC_WASM32_LEB128_PLT
7955 ENUMX
7956 BFD_RELOC_WASM32_PLT_INDEX
7957 ENUMX
7958 BFD_RELOC_WASM32_ABS32_CODE
7959 ENUMX
7960 BFD_RELOC_WASM32_COPY
7961 ENUMX
7962 BFD_RELOC_WASM32_CODE_POINTER
7963 ENUMX
7964 BFD_RELOC_WASM32_INDEX
7965 ENUMX
7966 BFD_RELOC_WASM32_PLT_SIG
7967 ENUMDOC
7968 WebAssembly relocations.
7969
7970 ENUM
7971 BFD_RELOC_CKCORE_NONE
7972 ENUMX
7973 BFD_RELOC_CKCORE_ADDR32
7974 ENUMX
7975 BFD_RELOC_CKCORE_PCREL_IMM8BY4
7976 ENUMX
7977 BFD_RELOC_CKCORE_PCREL_IMM11BY2
7978 ENUMX
7979 BFD_RELOC_CKCORE_PCREL_IMM4BY2
7980 ENUMX
7981 BFD_RELOC_CKCORE_PCREL32
7982 ENUMX
7983 BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2
7984 ENUMX
7985 BFD_RELOC_CKCORE_GNU_VTINHERIT
7986 ENUMX
7987 BFD_RELOC_CKCORE_GNU_VTENTRY
7988 ENUMX
7989 BFD_RELOC_CKCORE_RELATIVE
7990 ENUMX
7991 BFD_RELOC_CKCORE_COPY
7992 ENUMX
7993 BFD_RELOC_CKCORE_GLOB_DAT
7994 ENUMX
7995 BFD_RELOC_CKCORE_JUMP_SLOT
7996 ENUMX
7997 BFD_RELOC_CKCORE_GOTOFF
7998 ENUMX
7999 BFD_RELOC_CKCORE_GOTPC
8000 ENUMX
8001 BFD_RELOC_CKCORE_GOT32
8002 ENUMX
8003 BFD_RELOC_CKCORE_PLT32
8004 ENUMX
8005 BFD_RELOC_CKCORE_ADDRGOT
8006 ENUMX
8007 BFD_RELOC_CKCORE_ADDRPLT
8008 ENUMX
8009 BFD_RELOC_CKCORE_PCREL_IMM26BY2
8010 ENUMX
8011 BFD_RELOC_CKCORE_PCREL_IMM16BY2
8012 ENUMX
8013 BFD_RELOC_CKCORE_PCREL_IMM16BY4
8014 ENUMX
8015 BFD_RELOC_CKCORE_PCREL_IMM10BY2
8016 ENUMX
8017 BFD_RELOC_CKCORE_PCREL_IMM10BY4
8018 ENUMX
8019 BFD_RELOC_CKCORE_ADDR_HI16
8020 ENUMX
8021 BFD_RELOC_CKCORE_ADDR_LO16
8022 ENUMX
8023 BFD_RELOC_CKCORE_GOTPC_HI16
8024 ENUMX
8025 BFD_RELOC_CKCORE_GOTPC_LO16
8026 ENUMX
8027 BFD_RELOC_CKCORE_GOTOFF_HI16
8028 ENUMX
8029 BFD_RELOC_CKCORE_GOTOFF_LO16
8030 ENUMX
8031 BFD_RELOC_CKCORE_GOT12
8032 ENUMX
8033 BFD_RELOC_CKCORE_GOT_HI16
8034 ENUMX
8035 BFD_RELOC_CKCORE_GOT_LO16
8036 ENUMX
8037 BFD_RELOC_CKCORE_PLT12
8038 ENUMX
8039 BFD_RELOC_CKCORE_PLT_HI16
8040 ENUMX
8041 BFD_RELOC_CKCORE_PLT_LO16
8042 ENUMX
8043 BFD_RELOC_CKCORE_ADDRGOT_HI16
8044 ENUMX
8045 BFD_RELOC_CKCORE_ADDRGOT_LO16
8046 ENUMX
8047 BFD_RELOC_CKCORE_ADDRPLT_HI16
8048 ENUMX
8049 BFD_RELOC_CKCORE_ADDRPLT_LO16
8050 ENUMX
8051 BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2
8052 ENUMX
8053 BFD_RELOC_CKCORE_TOFFSET_LO16
8054 ENUMX
8055 BFD_RELOC_CKCORE_DOFFSET_LO16
8056 ENUMX
8057 BFD_RELOC_CKCORE_PCREL_IMM18BY2
8058 ENUMX
8059 BFD_RELOC_CKCORE_DOFFSET_IMM18
8060 ENUMX
8061 BFD_RELOC_CKCORE_DOFFSET_IMM18BY2
8062 ENUMX
8063 BFD_RELOC_CKCORE_DOFFSET_IMM18BY4
8064 ENUMX
8065 BFD_RELOC_CKCORE_GOTOFF_IMM18
8066 ENUMX
8067 BFD_RELOC_CKCORE_GOT_IMM18BY4
8068 ENUMX
8069 BFD_RELOC_CKCORE_PLT_IMM18BY4
8070 ENUMX
8071 BFD_RELOC_CKCORE_PCREL_IMM7BY4
8072 ENUMX
8073 BFD_RELOC_CKCORE_TLS_LE32
8074 ENUMX
8075 BFD_RELOC_CKCORE_TLS_IE32
8076 ENUMX
8077 BFD_RELOC_CKCORE_TLS_GD32
8078 ENUMX
8079 BFD_RELOC_CKCORE_TLS_LDM32
8080 ENUMX
8081 BFD_RELOC_CKCORE_TLS_LDO32
8082 ENUMX
8083 BFD_RELOC_CKCORE_TLS_DTPMOD32
8084 ENUMX
8085 BFD_RELOC_CKCORE_TLS_DTPOFF32
8086 ENUMX
8087 BFD_RELOC_CKCORE_TLS_TPOFF32
8088 ENUMX
8089 BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4
8090 ENUMX
8091 BFD_RELOC_CKCORE_NOJSRI
8092 ENUMX
8093 BFD_RELOC_CKCORE_CALLGRAPH
8094 ENUMX
8095 BFD_RELOC_CKCORE_IRELATIVE
8096 ENUMX
8097 BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4
8098 ENUMX
8099 BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4
8100 ENUMDOC
8101 C-SKY relocations.
8102
8103 ENUM
8104 BFD_RELOC_S12Z_OPR
8105 ENUMDOC
8106 S12Z relocations.
8107
8108 ENUM
8109 BFD_RELOC_LARCH_TLS_DTPMOD32
8110 ENUMX
8111 BFD_RELOC_LARCH_TLS_DTPREL32
8112 ENUMX
8113 BFD_RELOC_LARCH_TLS_DTPMOD64
8114 ENUMX
8115 BFD_RELOC_LARCH_TLS_DTPREL64
8116 ENUMX
8117 BFD_RELOC_LARCH_TLS_TPREL32
8118 ENUMX
8119 BFD_RELOC_LARCH_TLS_TPREL64
8120 ENUMX
8121 BFD_RELOC_LARCH_TLS_DESC32
8122 ENUMX
8123 BFD_RELOC_LARCH_TLS_DESC64
8124 ENUMX
8125 BFD_RELOC_LARCH_MARK_LA
8126 ENUMX
8127 BFD_RELOC_LARCH_MARK_PCREL
8128 ENUMX
8129 BFD_RELOC_LARCH_SOP_PUSH_PCREL
8130 ENUMX
8131 BFD_RELOC_LARCH_SOP_PUSH_ABSOLUTE
8132 ENUMX
8133 BFD_RELOC_LARCH_SOP_PUSH_DUP
8134 ENUMX
8135 BFD_RELOC_LARCH_SOP_PUSH_GPREL
8136 ENUMX
8137 BFD_RELOC_LARCH_SOP_PUSH_TLS_TPREL
8138 ENUMX
8139 BFD_RELOC_LARCH_SOP_PUSH_TLS_GOT
8140 ENUMX
8141 BFD_RELOC_LARCH_SOP_PUSH_TLS_GD
8142 ENUMX
8143 BFD_RELOC_LARCH_SOP_PUSH_PLT_PCREL
8144 ENUMX
8145 BFD_RELOC_LARCH_SOP_ASSERT
8146 ENUMX
8147 BFD_RELOC_LARCH_SOP_NOT
8148 ENUMX
8149 BFD_RELOC_LARCH_SOP_SUB
8150 ENUMX
8151 BFD_RELOC_LARCH_SOP_SL
8152 ENUMX
8153 BFD_RELOC_LARCH_SOP_SR
8154 ENUMX
8155 BFD_RELOC_LARCH_SOP_ADD
8156 ENUMX
8157 BFD_RELOC_LARCH_SOP_AND
8158 ENUMX
8159 BFD_RELOC_LARCH_SOP_IF_ELSE
8160 ENUMX
8161 BFD_RELOC_LARCH_SOP_POP_32_S_10_5
8162 ENUMX
8163 BFD_RELOC_LARCH_SOP_POP_32_U_10_12
8164 ENUMX
8165 BFD_RELOC_LARCH_SOP_POP_32_S_10_12
8166 ENUMX
8167 BFD_RELOC_LARCH_SOP_POP_32_S_10_16
8168 ENUMX
8169 BFD_RELOC_LARCH_SOP_POP_32_S_10_16_S2
8170 ENUMX
8171 BFD_RELOC_LARCH_SOP_POP_32_S_5_20
8172 ENUMX
8173 BFD_RELOC_LARCH_SOP_POP_32_S_0_5_10_16_S2
8174 ENUMX
8175 BFD_RELOC_LARCH_SOP_POP_32_S_0_10_10_16_S2
8176 ENUMX
8177 BFD_RELOC_LARCH_SOP_POP_32_U
8178 ENUMX
8179 BFD_RELOC_LARCH_ADD8
8180 ENUMX
8181 BFD_RELOC_LARCH_ADD16
8182 ENUMX
8183 BFD_RELOC_LARCH_ADD24
8184 ENUMX
8185 BFD_RELOC_LARCH_ADD32
8186 ENUMX
8187 BFD_RELOC_LARCH_ADD64
8188 ENUMX
8189 BFD_RELOC_LARCH_SUB8
8190 ENUMX
8191 BFD_RELOC_LARCH_SUB16
8192 ENUMX
8193 BFD_RELOC_LARCH_SUB24
8194 ENUMX
8195 BFD_RELOC_LARCH_SUB32
8196 ENUMX
8197 BFD_RELOC_LARCH_SUB64
8198
8199 ENUMX
8200 BFD_RELOC_LARCH_B16
8201 ENUMX
8202 BFD_RELOC_LARCH_B21
8203 ENUMX
8204 BFD_RELOC_LARCH_B26
8205
8206 ENUMX
8207 BFD_RELOC_LARCH_ABS_HI20
8208 ENUMX
8209 BFD_RELOC_LARCH_ABS_LO12
8210 ENUMX
8211 BFD_RELOC_LARCH_ABS64_LO20
8212 ENUMX
8213 BFD_RELOC_LARCH_ABS64_HI12
8214
8215 ENUMX
8216 BFD_RELOC_LARCH_PCALA_HI20
8217 ENUMX
8218 BFD_RELOC_LARCH_PCALA_LO12
8219 ENUMX
8220 BFD_RELOC_LARCH_PCALA64_LO20
8221 ENUMX
8222 BFD_RELOC_LARCH_PCALA64_HI12
8223
8224 ENUMX
8225 BFD_RELOC_LARCH_GOT_PC_HI20
8226 ENUMX
8227 BFD_RELOC_LARCH_GOT_PC_LO12
8228 ENUMX
8229 BFD_RELOC_LARCH_GOT64_PC_LO20
8230 ENUMX
8231 BFD_RELOC_LARCH_GOT64_PC_HI12
8232 ENUMX
8233 BFD_RELOC_LARCH_GOT_HI20
8234 ENUMX
8235 BFD_RELOC_LARCH_GOT_LO12
8236 ENUMX
8237 BFD_RELOC_LARCH_GOT64_LO20
8238 ENUMX
8239 BFD_RELOC_LARCH_GOT64_HI12
8240
8241 ENUMX
8242 BFD_RELOC_LARCH_TLS_LE_HI20
8243 ENUMX
8244 BFD_RELOC_LARCH_TLS_LE_LO12
8245 ENUMX
8246 BFD_RELOC_LARCH_TLS_LE64_LO20
8247 ENUMX
8248 BFD_RELOC_LARCH_TLS_LE64_HI12
8249 ENUMX
8250 BFD_RELOC_LARCH_TLS_IE_PC_HI20
8251 ENUMX
8252 BFD_RELOC_LARCH_TLS_IE_PC_LO12
8253 ENUMX
8254 BFD_RELOC_LARCH_TLS_IE64_PC_LO20
8255 ENUMX
8256 BFD_RELOC_LARCH_TLS_IE64_PC_HI12
8257 ENUMX
8258 BFD_RELOC_LARCH_TLS_IE_HI20
8259 ENUMX
8260 BFD_RELOC_LARCH_TLS_IE_LO12
8261 ENUMX
8262 BFD_RELOC_LARCH_TLS_IE64_LO20
8263 ENUMX
8264 BFD_RELOC_LARCH_TLS_IE64_HI12
8265 ENUMX
8266 BFD_RELOC_LARCH_TLS_LD_PC_HI20
8267 ENUMX
8268 BFD_RELOC_LARCH_TLS_LD_HI20
8269 ENUMX
8270 BFD_RELOC_LARCH_TLS_GD_PC_HI20
8271 ENUMX
8272 BFD_RELOC_LARCH_TLS_GD_HI20
8273
8274 ENUMX
8275 BFD_RELOC_LARCH_32_PCREL
8276
8277 ENUMX
8278 BFD_RELOC_LARCH_RELAX
8279
8280 ENUMX
8281 BFD_RELOC_LARCH_DELETE
8282
8283 ENUMX
8284 BFD_RELOC_LARCH_ALIGN
8285
8286 ENUMX
8287 BFD_RELOC_LARCH_PCREL20_S2
8288
8289 ENUMX
8290 BFD_RELOC_LARCH_CFA
8291
8292 ENUMX
8293 BFD_RELOC_LARCH_ADD6
8294 ENUMX
8295 BFD_RELOC_LARCH_SUB6
8296
8297 ENUMX
8298 BFD_RELOC_LARCH_ADD_ULEB128
8299 ENUMX
8300 BFD_RELOC_LARCH_SUB_ULEB128
8301
8302 ENUMX
8303 BFD_RELOC_LARCH_64_PCREL
8304
8305 ENUMX
8306 BFD_RELOC_LARCH_CALL36
8307
8308 ENUMX
8309 BFD_RELOC_LARCH_TLS_DESC_PC_HI20
8310 ENUMX
8311 BFD_RELOC_LARCH_TLS_DESC_PC_LO12
8312
8313 ENUMX
8314 BFD_RELOC_LARCH_TLS_DESC64_PC_LO20
8315 ENUMX
8316 BFD_RELOC_LARCH_TLS_DESC64_PC_HI12
8317
8318 ENUMX
8319 BFD_RELOC_LARCH_TLS_DESC_HI20
8320 ENUMX
8321 BFD_RELOC_LARCH_TLS_DESC_LO12
8322
8323 ENUMX
8324 BFD_RELOC_LARCH_TLS_DESC64_LO20
8325 ENUMX
8326 BFD_RELOC_LARCH_TLS_DESC64_HI12
8327
8328 ENUMX
8329 BFD_RELOC_LARCH_TLS_DESC_LD
8330 ENUMX
8331 BFD_RELOC_LARCH_TLS_DESC_CALL
8332
8333 ENUMX
8334 BFD_RELOC_LARCH_TLS_LE_HI20_R
8335 ENUMX
8336 BFD_RELOC_LARCH_TLS_LE_ADD_R
8337 ENUMX
8338 BFD_RELOC_LARCH_TLS_LE_LO12_R
8339
8340 ENUMX
8341 BFD_RELOC_LARCH_TLS_LD_PCREL20_S2
8342 ENUMX
8343 BFD_RELOC_LARCH_TLS_GD_PCREL20_S2
8344 ENUMX
8345 BFD_RELOC_LARCH_TLS_DESC_PCREL20_S2
8346
8347 ENUMDOC
8348 LARCH relocations.
8349
8350 ENDSENUM
8351 BFD_RELOC_UNUSED
8352
8353 CODE_FRAGMENT
8354 .typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
8355 .
8356 */
8357
8358 /*
8359 FUNCTION
8360 bfd_reloc_type_lookup
8361 bfd_reloc_name_lookup
8362
8363 SYNOPSIS
8364 reloc_howto_type *bfd_reloc_type_lookup
8365 (bfd *abfd, bfd_reloc_code_real_type code);
8366 reloc_howto_type *bfd_reloc_name_lookup
8367 (bfd *abfd, const char *reloc_name);
8368
8369 DESCRIPTION
8370 Return a pointer to a howto structure which, when
8371 invoked, will perform the relocation @var{code} on data from the
8372 architecture noted.
8373 */
8374
8375 reloc_howto_type *
8376 bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
8377 {
8378 return BFD_SEND (abfd, reloc_type_lookup, (abfd, code));
8379 }
8380
8381 reloc_howto_type *
8382 bfd_reloc_name_lookup (bfd *abfd, const char *reloc_name)
8383 {
8384 return BFD_SEND (abfd, reloc_name_lookup, (abfd, reloc_name));
8385 }
8386
8387 static reloc_howto_type bfd_howto_32 =
8388 HOWTO (0, 00, 4, 32, false, 0, complain_overflow_dont, 0, "VRT32", false, 0xffffffff, 0xffffffff, true);
8389
8390 /*
8391 INTERNAL_FUNCTION
8392 bfd_default_reloc_type_lookup
8393
8394 SYNOPSIS
8395 reloc_howto_type *bfd_default_reloc_type_lookup
8396 (bfd *abfd, bfd_reloc_code_real_type code);
8397
8398 DESCRIPTION
8399 Provides a default relocation lookup routine for any architecture.
8400 */
8401
8402 reloc_howto_type *
8403 bfd_default_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
8404 {
8405 /* Very limited support is provided for relocs in generic targets
8406 such as elf32-little. FIXME: Should we always return NULL? */
8407 if (code == BFD_RELOC_CTOR
8408 && bfd_arch_bits_per_address (abfd) == 32)
8409 return &bfd_howto_32;
8410 return NULL;
8411 }
8412
8413 /*
8414 FUNCTION
8415 bfd_get_reloc_code_name
8416
8417 SYNOPSIS
8418 const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
8419
8420 DESCRIPTION
8421 Provides a printable name for the supplied relocation code.
8422 Useful mainly for printing error messages.
8423 */
8424
8425 const char *
8426 bfd_get_reloc_code_name (bfd_reloc_code_real_type code)
8427 {
8428 if (code > BFD_RELOC_UNUSED)
8429 return 0;
8430 return bfd_reloc_code_real_names[code];
8431 }
8432
8433 /*
8434 INTERNAL_FUNCTION
8435 bfd_generic_relax_section
8436
8437 SYNOPSIS
8438 bool bfd_generic_relax_section
8439 (bfd *abfd,
8440 asection *section,
8441 struct bfd_link_info *,
8442 bool *);
8443
8444 DESCRIPTION
8445 Provides default handling for relaxing for back ends which
8446 don't do relaxing.
8447 */
8448
8449 bool
8450 bfd_generic_relax_section (bfd *abfd ATTRIBUTE_UNUSED,
8451 asection *section ATTRIBUTE_UNUSED,
8452 struct bfd_link_info *link_info ATTRIBUTE_UNUSED,
8453 bool *again)
8454 {
8455 if (bfd_link_relocatable (link_info))
8456 (*link_info->callbacks->einfo)
8457 (_("%P%F: --relax and -r may not be used together\n"));
8458
8459 *again = false;
8460 return true;
8461 }
8462
8463 /*
8464 INTERNAL_FUNCTION
8465 bfd_generic_gc_sections
8466
8467 SYNOPSIS
8468 bool bfd_generic_gc_sections
8469 (bfd *, struct bfd_link_info *);
8470
8471 DESCRIPTION
8472 Provides default handling for relaxing for back ends which
8473 don't do section gc -- i.e., does nothing.
8474 */
8475
8476 bool
8477 bfd_generic_gc_sections (bfd *abfd ATTRIBUTE_UNUSED,
8478 struct bfd_link_info *info ATTRIBUTE_UNUSED)
8479 {
8480 return true;
8481 }
8482
8483 /*
8484 INTERNAL_FUNCTION
8485 bfd_generic_lookup_section_flags
8486
8487 SYNOPSIS
8488 bool bfd_generic_lookup_section_flags
8489 (struct bfd_link_info *, struct flag_info *, asection *);
8490
8491 DESCRIPTION
8492 Provides default handling for section flags lookup
8493 -- i.e., does nothing.
8494 Returns FALSE if the section should be omitted, otherwise TRUE.
8495 */
8496
8497 bool
8498 bfd_generic_lookup_section_flags (struct bfd_link_info *info ATTRIBUTE_UNUSED,
8499 struct flag_info *flaginfo,
8500 asection *section ATTRIBUTE_UNUSED)
8501 {
8502 if (flaginfo != NULL)
8503 {
8504 _bfd_error_handler (_("INPUT_SECTION_FLAGS are not supported"));
8505 return false;
8506 }
8507 return true;
8508 }
8509
8510 /*
8511 INTERNAL_FUNCTION
8512 bfd_generic_merge_sections
8513
8514 SYNOPSIS
8515 bool bfd_generic_merge_sections
8516 (bfd *, struct bfd_link_info *);
8517
8518 DESCRIPTION
8519 Provides default handling for SEC_MERGE section merging for back ends
8520 which don't have SEC_MERGE support -- i.e., does nothing.
8521 */
8522
8523 bool
8524 bfd_generic_merge_sections (bfd *abfd ATTRIBUTE_UNUSED,
8525 struct bfd_link_info *link_info ATTRIBUTE_UNUSED)
8526 {
8527 return true;
8528 }
8529
8530 /*
8531 INTERNAL_FUNCTION
8532 bfd_generic_get_relocated_section_contents
8533
8534 SYNOPSIS
8535 bfd_byte *bfd_generic_get_relocated_section_contents
8536 (bfd *abfd,
8537 struct bfd_link_info *link_info,
8538 struct bfd_link_order *link_order,
8539 bfd_byte *data,
8540 bool relocatable,
8541 asymbol **symbols);
8542
8543 DESCRIPTION
8544 Provides default handling of relocation effort for back ends
8545 which can't be bothered to do it efficiently.
8546 */
8547
8548 bfd_byte *
8549 bfd_generic_get_relocated_section_contents (bfd *abfd,
8550 struct bfd_link_info *link_info,
8551 struct bfd_link_order *link_order,
8552 bfd_byte *data,
8553 bool relocatable,
8554 asymbol **symbols)
8555 {
8556 bfd *input_bfd = link_order->u.indirect.section->owner;
8557 asection *input_section = link_order->u.indirect.section;
8558 long reloc_size;
8559 arelent **reloc_vector;
8560 long reloc_count;
8561
8562 reloc_size = bfd_get_reloc_upper_bound (input_bfd, input_section);
8563 if (reloc_size < 0)
8564 return NULL;
8565
8566 /* Read in the section. */
8567 bfd_byte *orig_data = data;
8568 if (!bfd_get_full_section_contents (input_bfd, input_section, &data))
8569 return NULL;
8570
8571 if (data == NULL)
8572 return NULL;
8573
8574 if (reloc_size == 0)
8575 return data;
8576
8577 reloc_vector = (arelent **) bfd_malloc (reloc_size);
8578 if (reloc_vector == NULL)
8579 goto error_return;
8580
8581 reloc_count = bfd_canonicalize_reloc (input_bfd,
8582 input_section,
8583 reloc_vector,
8584 symbols);
8585 if (reloc_count < 0)
8586 goto error_return;
8587
8588 if (reloc_count > 0)
8589 {
8590 arelent **parent;
8591
8592 for (parent = reloc_vector; *parent != NULL; parent++)
8593 {
8594 char *error_message = NULL;
8595 asymbol *symbol;
8596 bfd_reloc_status_type r;
8597
8598 symbol = *(*parent)->sym_ptr_ptr;
8599 /* PR ld/19628: A specially crafted input file
8600 can result in a NULL symbol pointer here. */
8601 if (symbol == NULL)
8602 {
8603 link_info->callbacks->einfo
8604 /* xgettext:c-format */
8605 (_("%X%P: %pB(%pA): error: relocation for offset %V has no value\n"),
8606 abfd, input_section, (* parent)->address);
8607 goto error_return;
8608 }
8609
8610 /* Zap reloc field when the symbol is from a discarded
8611 section, ignoring any addend. Do the same when called
8612 from bfd_simple_get_relocated_section_contents for
8613 undefined symbols in debug sections. This is to keep
8614 debug info reasonably sane, in particular so that
8615 DW_FORM_ref_addr to another file's .debug_info isn't
8616 confused with an offset into the current file's
8617 .debug_info. */
8618 if ((symbol->section != NULL && discarded_section (symbol->section))
8619 || (symbol->section == bfd_und_section_ptr
8620 && (input_section->flags & SEC_DEBUGGING) != 0
8621 && link_info->input_bfds == link_info->output_bfd))
8622 {
8623 bfd_vma off;
8624 static reloc_howto_type none_howto
8625 = HOWTO (0, 0, 0, 0, false, 0, complain_overflow_dont, NULL,
8626 "unused", false, 0, 0, false);
8627
8628 off = ((*parent)->address
8629 * bfd_octets_per_byte (input_bfd, input_section));
8630 _bfd_clear_contents ((*parent)->howto, input_bfd,
8631 input_section, data, off);
8632 (*parent)->sym_ptr_ptr = bfd_abs_section_ptr->symbol_ptr_ptr;
8633 (*parent)->addend = 0;
8634 (*parent)->howto = &none_howto;
8635 r = bfd_reloc_ok;
8636 }
8637 else
8638 r = bfd_perform_relocation (input_bfd,
8639 *parent,
8640 data,
8641 input_section,
8642 relocatable ? abfd : NULL,
8643 &error_message);
8644
8645 if (relocatable)
8646 {
8647 asection *os = input_section->output_section;
8648
8649 /* A partial link, so keep the relocs. */
8650 os->orelocation[os->reloc_count] = *parent;
8651 os->reloc_count++;
8652 }
8653
8654 if (r != bfd_reloc_ok)
8655 {
8656 switch (r)
8657 {
8658 case bfd_reloc_undefined:
8659 (*link_info->callbacks->undefined_symbol)
8660 (link_info, bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
8661 input_bfd, input_section, (*parent)->address, true);
8662 break;
8663 case bfd_reloc_dangerous:
8664 BFD_ASSERT (error_message != NULL);
8665 (*link_info->callbacks->reloc_dangerous)
8666 (link_info, error_message,
8667 input_bfd, input_section, (*parent)->address);
8668 break;
8669 case bfd_reloc_overflow:
8670 (*link_info->callbacks->reloc_overflow)
8671 (link_info, NULL,
8672 bfd_asymbol_name (*(*parent)->sym_ptr_ptr),
8673 (*parent)->howto->name, (*parent)->addend,
8674 input_bfd, input_section, (*parent)->address);
8675 break;
8676 case bfd_reloc_outofrange:
8677 /* PR ld/13730:
8678 This error can result when processing some partially
8679 complete binaries. Do not abort, but issue an error
8680 message instead. */
8681 link_info->callbacks->einfo
8682 /* xgettext:c-format */
8683 (_("%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"),
8684 abfd, input_section, * parent);
8685 goto error_return;
8686
8687 case bfd_reloc_notsupported:
8688 /* PR ld/17512
8689 This error can result when processing a corrupt binary.
8690 Do not abort. Issue an error message instead. */
8691 link_info->callbacks->einfo
8692 /* xgettext:c-format */
8693 (_("%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"),
8694 abfd, input_section, * parent);
8695 goto error_return;
8696
8697 default:
8698 /* PR 17512; file: 90c2a92e.
8699 Report unexpected results, without aborting. */
8700 link_info->callbacks->einfo
8701 /* xgettext:c-format */
8702 (_("%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"),
8703 abfd, input_section, * parent, r);
8704 break;
8705 }
8706
8707 }
8708 }
8709 }
8710
8711 free (reloc_vector);
8712 return data;
8713
8714 error_return:
8715 free (reloc_vector);
8716 if (orig_data == NULL)
8717 free (data);
8718 return NULL;
8719 }
8720
8721 /*
8722 INTERNAL_FUNCTION
8723 _bfd_generic_set_reloc
8724
8725 SYNOPSIS
8726 void _bfd_generic_set_reloc
8727 (bfd *abfd,
8728 sec_ptr section,
8729 arelent **relptr,
8730 unsigned int count);
8731
8732 DESCRIPTION
8733 Installs a new set of internal relocations in SECTION.
8734 */
8735
8736 void
8737 _bfd_generic_set_reloc (bfd *abfd ATTRIBUTE_UNUSED,
8738 sec_ptr section,
8739 arelent **relptr,
8740 unsigned int count)
8741 {
8742 section->orelocation = relptr;
8743 section->reloc_count = count;
8744 if (count != 0)
8745 section->flags |= SEC_RELOC;
8746 else
8747 section->flags &= ~SEC_RELOC;
8748 }
8749
8750 /*
8751 INTERNAL_FUNCTION
8752 _bfd_unrecognized_reloc
8753
8754 SYNOPSIS
8755 bool _bfd_unrecognized_reloc
8756 (bfd * abfd,
8757 sec_ptr section,
8758 unsigned int r_type);
8759
8760 DESCRIPTION
8761 Reports an unrecognized reloc.
8762 Written as a function in order to reduce code duplication.
8763 Returns FALSE so that it can be called from a return statement.
8764 */
8765
8766 bool
8767 _bfd_unrecognized_reloc (bfd * abfd, sec_ptr section, unsigned int r_type)
8768 {
8769 /* xgettext:c-format */
8770 _bfd_error_handler (_("%pB: unrecognized relocation type %#x in section `%pA'"),
8771 abfd, r_type, section);
8772
8773 /* PR 21803: Suggest the most likely cause of this error. */
8774 _bfd_error_handler (_("is this version of the linker - %s - out of date ?"),
8775 BFD_VERSION_STRING);
8776
8777 bfd_set_error (bfd_error_bad_value);
8778 return false;
8779 }
8780
8781 reloc_howto_type *
8782 _bfd_norelocs_bfd_reloc_type_lookup
8783 (bfd *abfd,
8784 bfd_reloc_code_real_type code ATTRIBUTE_UNUSED)
8785 {
8786 return (reloc_howto_type *) _bfd_ptr_bfd_null_error (abfd);
8787 }
8788
8789 reloc_howto_type *
8790 _bfd_norelocs_bfd_reloc_name_lookup (bfd *abfd,
8791 const char *reloc_name ATTRIBUTE_UNUSED)
8792 {
8793 return (reloc_howto_type *) _bfd_ptr_bfd_null_error (abfd);
8794 }
8795
8796 long
8797 _bfd_nodynamic_canonicalize_dynamic_reloc (bfd *abfd,
8798 arelent **relp ATTRIBUTE_UNUSED,
8799 asymbol **symp ATTRIBUTE_UNUSED)
8800 {
8801 return _bfd_long_bfd_n1_error (abfd);
8802 }