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