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