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