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