1ed0d50c3Schristos@section Relocations 2ed0d50c3SchristosBFD maintains relocations in much the same way it maintains 3ed0d50c3Schristossymbols: they are left alone until required, then read in 4ed0d50c3Schristosen-masse and translated into an internal form. A common 5ed0d50c3Schristosroutine @code{bfd_perform_relocation} acts upon the 6ed0d50c3Schristoscanonical form to do the fixup. 7ed0d50c3Schristos 8ed0d50c3SchristosRelocations are maintained on a per section basis, 9ed0d50c3Schristoswhile symbols are maintained on a per BFD basis. 10ed0d50c3Schristos 11ed0d50c3SchristosAll that a back end has to do to fit the BFD interface is to create 12ed0d50c3Schristosa @code{struct reloc_cache_entry} for each relocation 13ed0d50c3Schristosin a particular section, and fill in the right bits of the structures. 14ed0d50c3Schristos 15ed0d50c3Schristos@menu 16ed0d50c3Schristos* typedef arelent:: 17ed0d50c3Schristos* howto manager:: 18ed0d50c3Schristos@end menu 19ed0d50c3Schristos 20ed0d50c3Schristos 21ed0d50c3Schristos@node typedef arelent, howto manager, Relocations, Relocations 22ed0d50c3Schristos@subsection typedef arelent 23ed0d50c3SchristosThis is the structure of a relocation entry: 24ed0d50c3Schristos 25ed0d50c3Schristos 26ed0d50c3Schristos@example 27ed0d50c3Schristos 28ed0d50c3Schristostypedef enum bfd_reloc_status 29ed0d50c3Schristos@{ 3006324dcfSchristos /* No errors detected. Note - the value 2 is used so that it 3106324dcfSchristos will not be mistaken for the boolean TRUE or FALSE values. */ 3206324dcfSchristos bfd_reloc_ok = 2, 33ed0d50c3Schristos 34ed0d50c3Schristos /* The relocation was performed, but there was an overflow. */ 35ed0d50c3Schristos bfd_reloc_overflow, 36ed0d50c3Schristos 37ed0d50c3Schristos /* The address to relocate was not within the section supplied. */ 38ed0d50c3Schristos bfd_reloc_outofrange, 39ed0d50c3Schristos 40ed0d50c3Schristos /* Used by special functions. */ 41ed0d50c3Schristos bfd_reloc_continue, 42ed0d50c3Schristos 43ed0d50c3Schristos /* Unsupported relocation size requested. */ 44ed0d50c3Schristos bfd_reloc_notsupported, 45ed0d50c3Schristos 46ed0d50c3Schristos /* Unused. */ 47ed0d50c3Schristos bfd_reloc_other, 48ed0d50c3Schristos 49ed0d50c3Schristos /* The symbol to relocate against was undefined. */ 50ed0d50c3Schristos bfd_reloc_undefined, 51ed0d50c3Schristos 5206324dcfSchristos /* The relocation was performed, but may not be ok. If this type is 5306324dcfSchristos returned, the error_message argument to bfd_perform_relocation 5406324dcfSchristos will be set. */ 55ed0d50c3Schristos bfd_reloc_dangerous 56ed0d50c3Schristos @} 57ed0d50c3Schristos bfd_reloc_status_type; 58ed0d50c3Schristos 59*b88e3e88Schristostypedef const struct reloc_howto_struct reloc_howto_type; 60ed0d50c3Schristos 61ed0d50c3Schristostypedef struct reloc_cache_entry 62ed0d50c3Schristos@{ 63ed0d50c3Schristos /* A pointer into the canonical table of pointers. */ 64ed0d50c3Schristos struct bfd_symbol **sym_ptr_ptr; 65ed0d50c3Schristos 66ed0d50c3Schristos /* offset in section. */ 67ed0d50c3Schristos bfd_size_type address; 68ed0d50c3Schristos 69ed0d50c3Schristos /* addend for relocation value. */ 70ed0d50c3Schristos bfd_vma addend; 71ed0d50c3Schristos 72ed0d50c3Schristos /* Pointer to how to perform the required relocation. */ 73ed0d50c3Schristos reloc_howto_type *howto; 74ed0d50c3Schristos 75ed0d50c3Schristos@} 76ed0d50c3Schristosarelent; 77ed0d50c3Schristos 78ed0d50c3Schristos@end example 79ed0d50c3Schristos@strong{Description}@* 80ed0d50c3SchristosHere is a description of each of the fields within an @code{arelent}: 81ed0d50c3Schristos 82ed0d50c3Schristos@itemize @bullet 83ed0d50c3Schristos 84ed0d50c3Schristos@item 85ed0d50c3Schristos@code{sym_ptr_ptr} 86ed0d50c3Schristos@end itemize 87ed0d50c3SchristosThe symbol table pointer points to a pointer to the symbol 88ed0d50c3Schristosassociated with the relocation request. It is the pointer 89ed0d50c3Schristosinto the table returned by the back end's 90ed0d50c3Schristos@code{canonicalize_symtab} action. @xref{Symbols}. The symbol is 91ed0d50c3Schristosreferenced through a pointer to a pointer so that tools like 92ed0d50c3Schristosthe linker can fix up all the symbols of the same name by 93ed0d50c3Schristosmodifying only one pointer. The relocation routine looks in 94ed0d50c3Schristosthe symbol and uses the base of the section the symbol is 95ed0d50c3Schristosattached to and the value of the symbol as the initial 96ed0d50c3Schristosrelocation offset. If the symbol pointer is zero, then the 97ed0d50c3Schristossection provided is looked up. 98ed0d50c3Schristos 99ed0d50c3Schristos@itemize @bullet 100ed0d50c3Schristos 101ed0d50c3Schristos@item 102ed0d50c3Schristos@code{address} 103ed0d50c3Schristos@end itemize 104ed0d50c3SchristosThe @code{address} field gives the offset in bytes from the base of 105ed0d50c3Schristosthe section data which owns the relocation record to the first 106ed0d50c3Schristosbyte of relocatable information. The actual data relocated 107ed0d50c3Schristoswill be relative to this point; for example, a relocation 108ed0d50c3Schristostype which modifies the bottom two bytes of a four byte word 109ed0d50c3Schristoswould not touch the first byte pointed to in a big endian 110ed0d50c3Schristosworld. 111ed0d50c3Schristos 112ed0d50c3Schristos@itemize @bullet 113ed0d50c3Schristos 114ed0d50c3Schristos@item 115ed0d50c3Schristos@code{addend} 116ed0d50c3Schristos@end itemize 117ed0d50c3SchristosThe @code{addend} is a value provided by the back end to be added (!) 118ed0d50c3Schristosto the relocation offset. Its interpretation is dependent upon 119ed0d50c3Schristosthe howto. For example, on the 68k the code: 120ed0d50c3Schristos 121ed0d50c3Schristos@example 122ed0d50c3Schristos char foo[]; 123ed0d50c3Schristos main() 124ed0d50c3Schristos @{ 125ed0d50c3Schristos return foo[0x12345678]; 126ed0d50c3Schristos @} 127ed0d50c3Schristos@end example 128ed0d50c3Schristos 129ed0d50c3SchristosCould be compiled into: 130ed0d50c3Schristos 131ed0d50c3Schristos@example 132ed0d50c3Schristos linkw fp,#-4 133ed0d50c3Schristos moveb @@#12345678,d0 134ed0d50c3Schristos extbl d0 135ed0d50c3Schristos unlk fp 136ed0d50c3Schristos rts 137ed0d50c3Schristos@end example 138ed0d50c3Schristos 139ed0d50c3SchristosThis could create a reloc pointing to @code{foo}, but leave the 140ed0d50c3Schristosoffset in the data, something like: 141ed0d50c3Schristos 142ed0d50c3Schristos@example 143ed0d50c3SchristosRELOCATION RECORDS FOR [.text]: 144ed0d50c3Schristosoffset type value 145ed0d50c3Schristos00000006 32 _foo 146ed0d50c3Schristos 147ed0d50c3Schristos00000000 4e56 fffc ; linkw fp,#-4 148ed0d50c3Schristos00000004 1039 1234 5678 ; moveb @@#12345678,d0 149ed0d50c3Schristos0000000a 49c0 ; extbl d0 150ed0d50c3Schristos0000000c 4e5e ; unlk fp 151ed0d50c3Schristos0000000e 4e75 ; rts 152ed0d50c3Schristos@end example 153ed0d50c3Schristos 154ed0d50c3SchristosUsing coff and an 88k, some instructions don't have enough 155ed0d50c3Schristosspace in them to represent the full address range, and 156ed0d50c3Schristospointers have to be loaded in two parts. So you'd get something like: 157ed0d50c3Schristos 158ed0d50c3Schristos@example 159ed0d50c3Schristos or.u r13,r0,hi16(_foo+0x12345678) 160ed0d50c3Schristos ld.b r2,r13,lo16(_foo+0x12345678) 161ed0d50c3Schristos jmp r1 162ed0d50c3Schristos@end example 163ed0d50c3Schristos 164ed0d50c3SchristosThis should create two relocs, both pointing to @code{_foo}, and with 165ed0d50c3Schristos0x12340000 in their addend field. The data would consist of: 166ed0d50c3Schristos 167ed0d50c3Schristos@example 168ed0d50c3SchristosRELOCATION RECORDS FOR [.text]: 169ed0d50c3Schristosoffset type value 170ed0d50c3Schristos00000002 HVRT16 _foo+0x12340000 171ed0d50c3Schristos00000006 LVRT16 _foo+0x12340000 172ed0d50c3Schristos 173ed0d50c3Schristos00000000 5da05678 ; or.u r13,r0,0x5678 174ed0d50c3Schristos00000004 1c4d5678 ; ld.b r2,r13,0x5678 175ed0d50c3Schristos00000008 f400c001 ; jmp r1 176ed0d50c3Schristos@end example 177ed0d50c3Schristos 178ed0d50c3SchristosThe relocation routine digs out the value from the data, adds 179ed0d50c3Schristosit to the addend to get the original offset, and then adds the 180ed0d50c3Schristosvalue of @code{_foo}. Note that all 32 bits have to be kept around 181ed0d50c3Schristossomewhere, to cope with carry from bit 15 to bit 16. 182ed0d50c3Schristos 183ed0d50c3SchristosOne further example is the sparc and the a.out format. The 184ed0d50c3Schristossparc has a similar problem to the 88k, in that some 185ed0d50c3Schristosinstructions don't have room for an entire offset, but on the 186ed0d50c3Schristossparc the parts are created in odd sized lumps. The designers of 187ed0d50c3Schristosthe a.out format chose to not use the data within the section 188ed0d50c3Schristosfor storing part of the offset; all the offset is kept within 189ed0d50c3Schristosthe reloc. Anything in the data should be ignored. 190ed0d50c3Schristos 191ed0d50c3Schristos@example 192ed0d50c3Schristos save %sp,-112,%sp 193ed0d50c3Schristos sethi %hi(_foo+0x12345678),%g2 194ed0d50c3Schristos ldsb [%g2+%lo(_foo+0x12345678)],%i0 195ed0d50c3Schristos ret 196ed0d50c3Schristos restore 197ed0d50c3Schristos@end example 198ed0d50c3Schristos 199ed0d50c3SchristosBoth relocs contain a pointer to @code{foo}, and the offsets 200ed0d50c3Schristoscontain junk. 201ed0d50c3Schristos 202ed0d50c3Schristos@example 203ed0d50c3SchristosRELOCATION RECORDS FOR [.text]: 204ed0d50c3Schristosoffset type value 205ed0d50c3Schristos00000004 HI22 _foo+0x12345678 206ed0d50c3Schristos00000008 LO10 _foo+0x12345678 207ed0d50c3Schristos 208ed0d50c3Schristos00000000 9de3bf90 ; save %sp,-112,%sp 209ed0d50c3Schristos00000004 05000000 ; sethi %hi(_foo+0),%g2 210ed0d50c3Schristos00000008 f048a000 ; ldsb [%g2+%lo(_foo+0)],%i0 211ed0d50c3Schristos0000000c 81c7e008 ; ret 212ed0d50c3Schristos00000010 81e80000 ; restore 213ed0d50c3Schristos@end example 214ed0d50c3Schristos 215ed0d50c3Schristos@itemize @bullet 216ed0d50c3Schristos 217ed0d50c3Schristos@item 218ed0d50c3Schristos@code{howto} 219ed0d50c3Schristos@end itemize 220ed0d50c3SchristosThe @code{howto} field can be imagined as a 221ed0d50c3Schristosrelocation instruction. It is a pointer to a structure which 222ed0d50c3Schristoscontains information on what to do with all of the other 223ed0d50c3Schristosinformation in the reloc record and data section. A back end 224ed0d50c3Schristoswould normally have a relocation instruction set and turn 225ed0d50c3Schristosrelocations into pointers to the correct structure on input - 226ed0d50c3Schristosbut it would be possible to create each howto field on demand. 227ed0d50c3Schristos 228ed0d50c3Schristos@subsubsection @code{enum complain_overflow} 229ed0d50c3SchristosIndicates what sort of overflow checking should be done when 230ed0d50c3Schristosperforming a relocation. 231ed0d50c3Schristos 232ed0d50c3Schristos 233ed0d50c3Schristos@example 234ed0d50c3Schristos 235ed0d50c3Schristosenum complain_overflow 236ed0d50c3Schristos@{ 237ed0d50c3Schristos /* Do not complain on overflow. */ 238ed0d50c3Schristos complain_overflow_dont, 239ed0d50c3Schristos 240ed0d50c3Schristos /* Complain if the value overflows when considered as a signed 241ed0d50c3Schristos number one bit larger than the field. ie. A bitfield of N bits 242ed0d50c3Schristos is allowed to represent -2**n to 2**n-1. */ 243ed0d50c3Schristos complain_overflow_bitfield, 244ed0d50c3Schristos 245ed0d50c3Schristos /* Complain if the value overflows when considered as a signed 246ed0d50c3Schristos number. */ 247ed0d50c3Schristos complain_overflow_signed, 248ed0d50c3Schristos 249ed0d50c3Schristos /* Complain if the value overflows when considered as an 250ed0d50c3Schristos unsigned number. */ 251ed0d50c3Schristos complain_overflow_unsigned 252ed0d50c3Schristos@}; 253ed0d50c3Schristos@end example 254ed0d50c3Schristos@subsubsection @code{reloc_howto_type} 255ed0d50c3SchristosThe @code{reloc_howto_type} is a structure which contains all the 256ed0d50c3Schristosinformation that libbfd needs to know to tie up a back end's data. 257ed0d50c3Schristos 258ed0d50c3Schristos 259ed0d50c3Schristos@example 260ed0d50c3Schristosstruct reloc_howto_struct 261ed0d50c3Schristos@{ 262ed0d50c3Schristos /* The type field has mainly a documentary use - the back end can 263*b88e3e88Schristos do what it wants with it, though normally the back end's idea of 264*b88e3e88Schristos an external reloc number is stored in this field. */ 265ed0d50c3Schristos unsigned int type; 266ed0d50c3Schristos 267*b88e3e88Schristos /* The encoded size of the item to be relocated. This is *not* a 268*b88e3e88Schristos power-of-two measure. Use bfd_get_reloc_size to find the size 269*b88e3e88Schristos of the item in bytes. */ 270*b88e3e88Schristos unsigned int size:3; 271*b88e3e88Schristos 272*b88e3e88Schristos /* The number of bits in the field to be relocated. This is used 273*b88e3e88Schristos when doing overflow checking. */ 274*b88e3e88Schristos unsigned int bitsize:7; 275*b88e3e88Schristos 276ed0d50c3Schristos /* The value the final relocation is shifted right by. This drops 277ed0d50c3Schristos unwanted data from the relocation. */ 278*b88e3e88Schristos unsigned int rightshift:6; 279ed0d50c3Schristos 280ed0d50c3Schristos /* The bit position of the reloc value in the destination. 281ed0d50c3Schristos The relocated value is left shifted by this amount. */ 282*b88e3e88Schristos unsigned int bitpos:6; 283ed0d50c3Schristos 284ed0d50c3Schristos /* What type of overflow error should be checked for when 285ed0d50c3Schristos relocating. */ 286*b88e3e88Schristos ENUM_BITFIELD (complain_overflow) complain_on_overflow:2; 287ed0d50c3Schristos 288*b88e3e88Schristos /* The relocation value should be negated before applying. */ 289*b88e3e88Schristos unsigned int negate:1; 290ed0d50c3Schristos 291*b88e3e88Schristos /* The relocation is relative to the item being relocated. */ 292*b88e3e88Schristos unsigned int pc_relative:1; 293ed0d50c3Schristos 294ed0d50c3Schristos /* Some formats record a relocation addend in the section contents 295ed0d50c3Schristos rather than with the relocation. For ELF formats this is the 296ed0d50c3Schristos distinction between USE_REL and USE_RELA (though the code checks 297ed0d50c3Schristos for USE_REL == 1/0). The value of this field is TRUE if the 298ed0d50c3Schristos addend is recorded with the section contents; when performing a 299ed0d50c3Schristos partial link (ld -r) the section contents (the data) will be 300ed0d50c3Schristos modified. The value of this field is FALSE if addends are 301ed0d50c3Schristos recorded with the relocation (in arelent.addend); when performing 302ed0d50c3Schristos a partial link the relocation will be modified. 303ed0d50c3Schristos All relocations for all ELF USE_RELA targets should set this field 304ed0d50c3Schristos to FALSE (values of TRUE should be looked on with suspicion). 305ed0d50c3Schristos However, the converse is not true: not all relocations of all ELF 306ed0d50c3Schristos USE_REL targets set this field to TRUE. Why this is so is peculiar 307ed0d50c3Schristos to each particular target. For relocs that aren't used in partial 308ed0d50c3Schristos links (e.g. GOT stuff) it doesn't matter what this is set to. */ 309*b88e3e88Schristos unsigned int partial_inplace:1; 310ed0d50c3Schristos 311ed0d50c3Schristos /* When some formats create PC relative instructions, they leave 312ed0d50c3Schristos the value of the pc of the place being relocated in the offset 313ed0d50c3Schristos slot of the instruction, so that a PC relative relocation can 314ed0d50c3Schristos be made just by adding in an ordinary offset (e.g., sun3 a.out). 315ed0d50c3Schristos Some formats leave the displacement part of an instruction 31606324dcfSchristos empty (e.g., ELF); this flag signals the fact. */ 317*b88e3e88Schristos unsigned int pcrel_offset:1; 318*b88e3e88Schristos 319*b88e3e88Schristos /* src_mask selects the part of the instruction (or data) to be used 320*b88e3e88Schristos in the relocation sum. If the target relocations don't have an 321*b88e3e88Schristos addend in the reloc, eg. ELF USE_REL, src_mask will normally equal 322*b88e3e88Schristos dst_mask to extract the addend from the section contents. If 323*b88e3e88Schristos relocations do have an addend in the reloc, eg. ELF USE_RELA, this 324*b88e3e88Schristos field should normally be zero. Non-zero values for ELF USE_RELA 325*b88e3e88Schristos targets should be viewed with suspicion as normally the value in 326*b88e3e88Schristos the dst_mask part of the section contents should be ignored. */ 327*b88e3e88Schristos bfd_vma src_mask; 328*b88e3e88Schristos 329*b88e3e88Schristos /* dst_mask selects which parts of the instruction (or data) are 330*b88e3e88Schristos replaced with a relocated value. */ 331*b88e3e88Schristos bfd_vma dst_mask; 332*b88e3e88Schristos 333*b88e3e88Schristos /* If this field is non null, then the supplied function is 334*b88e3e88Schristos called rather than the normal function. This allows really 335*b88e3e88Schristos strange relocation methods to be accommodated. */ 336*b88e3e88Schristos bfd_reloc_status_type (*special_function) 337*b88e3e88Schristos (bfd *, arelent *, struct bfd_symbol *, void *, asection *, 338*b88e3e88Schristos bfd *, char **); 339*b88e3e88Schristos 340*b88e3e88Schristos /* The textual name of the relocation type. */ 341*b88e3e88Schristos const char *name; 342ed0d50c3Schristos@}; 343ed0d50c3Schristos 344ed0d50c3Schristos@end example 345ed0d50c3Schristos@findex The HOWTO Macro 346ed0d50c3Schristos@subsubsection @code{The HOWTO Macro} 347ed0d50c3Schristos@strong{Description}@* 348*b88e3e88SchristosThe HOWTO macro fills in a reloc_howto_type (a typedef for 349*b88e3e88Schristosconst struct reloc_howto_struct). 350ed0d50c3Schristos@example 351*b88e3e88Schristos#define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name, \ 352*b88e3e88Schristos inplace, src_mask, dst_mask, pcrel_off) \ 353*b88e3e88Schristos @{ (unsigned) type, size < 0 ? -size : size, bits, right, left, ovf, \ 354*b88e3e88Schristos size < 0, pcrel, inplace, pcrel_off, src_mask, dst_mask, func, name @} 355ed0d50c3Schristos@end example 356ed0d50c3Schristos 357ed0d50c3Schristos@strong{Description}@* 358ed0d50c3SchristosThis is used to fill in an empty howto entry in an array. 359ed0d50c3Schristos@example 360ed0d50c3Schristos#define EMPTY_HOWTO(C) \ 361ed0d50c3Schristos HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ 362ed0d50c3Schristos NULL, FALSE, 0, 0, FALSE) 363ed0d50c3Schristos 364ed0d50c3Schristos@end example 365ed0d50c3Schristos 366ed0d50c3Schristos@findex bfd_get_reloc_size 367ed0d50c3Schristos@subsubsection @code{bfd_get_reloc_size} 368ed0d50c3Schristos@strong{Synopsis} 369ed0d50c3Schristos@example 370ed0d50c3Schristosunsigned int bfd_get_reloc_size (reloc_howto_type *); 371ed0d50c3Schristos@end example 372ed0d50c3Schristos@strong{Description}@* 373ed0d50c3SchristosFor a reloc_howto_type that operates on a fixed number of bytes, 374ed0d50c3Schristosthis returns the number of bytes operated on. 375ed0d50c3Schristos 376ed0d50c3Schristos@findex arelent_chain 377ed0d50c3Schristos@subsubsection @code{arelent_chain} 378ed0d50c3Schristos@strong{Description}@* 379ed0d50c3SchristosHow relocs are tied together in an @code{asection}: 380ed0d50c3Schristos@example 381ed0d50c3Schristostypedef struct relent_chain 382ed0d50c3Schristos@{ 383ed0d50c3Schristos arelent relent; 384ed0d50c3Schristos struct relent_chain *next; 385ed0d50c3Schristos@} 386ed0d50c3Schristosarelent_chain; 387ed0d50c3Schristos 388ed0d50c3Schristos@end example 389ed0d50c3Schristos 390ed0d50c3Schristos@findex bfd_check_overflow 391ed0d50c3Schristos@subsubsection @code{bfd_check_overflow} 392ed0d50c3Schristos@strong{Synopsis} 393ed0d50c3Schristos@example 394ed0d50c3Schristosbfd_reloc_status_type bfd_check_overflow 395ed0d50c3Schristos (enum complain_overflow how, 396ed0d50c3Schristos unsigned int bitsize, 397ed0d50c3Schristos unsigned int rightshift, 398ed0d50c3Schristos unsigned int addrsize, 399ed0d50c3Schristos bfd_vma relocation); 400ed0d50c3Schristos@end example 401ed0d50c3Schristos@strong{Description}@* 402ed0d50c3SchristosPerform overflow checking on @var{relocation} which has 403ed0d50c3Schristos@var{bitsize} significant bits and will be shifted right by 404ed0d50c3Schristos@var{rightshift} bits, on a machine with addresses containing 405ed0d50c3Schristos@var{addrsize} significant bits. The result is either of 406ed0d50c3Schristos@code{bfd_reloc_ok} or @code{bfd_reloc_overflow}. 407ed0d50c3Schristos 40806324dcfSchristos@findex bfd_reloc_offset_in_range 40906324dcfSchristos@subsubsection @code{bfd_reloc_offset_in_range} 41006324dcfSchristos@strong{Synopsis} 41106324dcfSchristos@example 41206324dcfSchristosbfd_boolean bfd_reloc_offset_in_range 41306324dcfSchristos (reloc_howto_type *howto, 41406324dcfSchristos bfd *abfd, 41506324dcfSchristos asection *section, 41606324dcfSchristos bfd_size_type offset); 41706324dcfSchristos@end example 41806324dcfSchristos@strong{Description}@* 41906324dcfSchristosReturns TRUE if the reloc described by @var{HOWTO} can be 42006324dcfSchristosapplied at @var{OFFSET} octets in @var{SECTION}. 42106324dcfSchristos 422ed0d50c3Schristos@findex bfd_perform_relocation 423ed0d50c3Schristos@subsubsection @code{bfd_perform_relocation} 424ed0d50c3Schristos@strong{Synopsis} 425ed0d50c3Schristos@example 426ed0d50c3Schristosbfd_reloc_status_type bfd_perform_relocation 427ed0d50c3Schristos (bfd *abfd, 428ed0d50c3Schristos arelent *reloc_entry, 429ed0d50c3Schristos void *data, 430ed0d50c3Schristos asection *input_section, 431ed0d50c3Schristos bfd *output_bfd, 432ed0d50c3Schristos char **error_message); 433ed0d50c3Schristos@end example 434ed0d50c3Schristos@strong{Description}@* 435ed0d50c3SchristosIf @var{output_bfd} is supplied to this function, the 436ed0d50c3Schristosgenerated image will be relocatable; the relocations are 437ed0d50c3Schristoscopied to the output file after they have been changed to 438ed0d50c3Schristosreflect the new state of the world. There are two ways of 439ed0d50c3Schristosreflecting the results of partial linkage in an output file: 440ed0d50c3Schristosby modifying the output data in place, and by modifying the 441ed0d50c3Schristosrelocation record. Some native formats (e.g., basic a.out and 442ed0d50c3Schristosbasic coff) have no way of specifying an addend in the 443ed0d50c3Schristosrelocation type, so the addend has to go in the output data. 444ed0d50c3SchristosThis is no big deal since in these formats the output data 445ed0d50c3Schristosslot will always be big enough for the addend. Complex reloc 446ed0d50c3Schristostypes with addends were invented to solve just this problem. 447ed0d50c3SchristosThe @var{error_message} argument is set to an error message if 448ed0d50c3Schristosthis return @code{bfd_reloc_dangerous}. 449ed0d50c3Schristos 450ed0d50c3Schristos@findex bfd_install_relocation 451ed0d50c3Schristos@subsubsection @code{bfd_install_relocation} 452ed0d50c3Schristos@strong{Synopsis} 453ed0d50c3Schristos@example 454ed0d50c3Schristosbfd_reloc_status_type bfd_install_relocation 455ed0d50c3Schristos (bfd *abfd, 456ed0d50c3Schristos arelent *reloc_entry, 457ed0d50c3Schristos void *data, bfd_vma data_start, 458ed0d50c3Schristos asection *input_section, 459ed0d50c3Schristos char **error_message); 460ed0d50c3Schristos@end example 461ed0d50c3Schristos@strong{Description}@* 462ed0d50c3SchristosThis looks remarkably like @code{bfd_perform_relocation}, except it 463ed0d50c3Schristosdoes not expect that the section contents have been filled in. 464ed0d50c3SchristosI.e., it's suitable for use when creating, rather than applying 465ed0d50c3Schristosa relocation. 466ed0d50c3Schristos 467ed0d50c3SchristosFor now, this function should be considered reserved for the 468ed0d50c3Schristosassembler. 469ed0d50c3Schristos 470ed0d50c3Schristos 471ed0d50c3Schristos@node howto manager, , typedef arelent, Relocations 472ed0d50c3Schristos@subsection The howto manager 473ed0d50c3SchristosWhen an application wants to create a relocation, but doesn't 474ed0d50c3Schristosknow what the target machine might call it, it can find out by 475ed0d50c3Schristosusing this bit of code. 476ed0d50c3Schristos 477ed0d50c3Schristos@findex bfd_reloc_code_type 478ed0d50c3Schristos@subsubsection @code{bfd_reloc_code_type} 479ed0d50c3Schristos@strong{Description}@* 480ed0d50c3SchristosThe insides of a reloc code. The idea is that, eventually, there 481ed0d50c3Schristoswill be one enumerator for every type of relocation we ever do. 482ed0d50c3SchristosPass one of these values to @code{bfd_reloc_type_lookup}, and it'll 483ed0d50c3Schristosreturn a howto pointer. 484ed0d50c3Schristos 485ed0d50c3SchristosThis does mean that the application must determine the correct 486ed0d50c3Schristosenumerator value; you can't get a howto pointer from a random set 487ed0d50c3Schristosof attributes. 488ed0d50c3Schristos 489ed0d50c3SchristosHere are the possible values for @code{enum bfd_reloc_code_real}: 490ed0d50c3Schristos 491ed0d50c3Schristos@deffn {} BFD_RELOC_64 492ed0d50c3Schristos@deffnx {} BFD_RELOC_32 493ed0d50c3Schristos@deffnx {} BFD_RELOC_26 494ed0d50c3Schristos@deffnx {} BFD_RELOC_24 495ed0d50c3Schristos@deffnx {} BFD_RELOC_16 496ed0d50c3Schristos@deffnx {} BFD_RELOC_14 497ed0d50c3Schristos@deffnx {} BFD_RELOC_8 498ed0d50c3SchristosBasic absolute relocations of N bits. 499ed0d50c3Schristos@end deffn 500ed0d50c3Schristos@deffn {} BFD_RELOC_64_PCREL 501ed0d50c3Schristos@deffnx {} BFD_RELOC_32_PCREL 502ed0d50c3Schristos@deffnx {} BFD_RELOC_24_PCREL 503ed0d50c3Schristos@deffnx {} BFD_RELOC_16_PCREL 504ed0d50c3Schristos@deffnx {} BFD_RELOC_12_PCREL 505ed0d50c3Schristos@deffnx {} BFD_RELOC_8_PCREL 506ed0d50c3SchristosPC-relative relocations. Sometimes these are relative to the address 507ed0d50c3Schristosof the relocation itself; sometimes they are relative to the start of 508ed0d50c3Schristosthe section containing the relocation. It depends on the specific target. 509ed0d50c3Schristos@end deffn 510ed0d50c3Schristos@deffn {} BFD_RELOC_32_SECREL 511ed0d50c3SchristosSection relative relocations. Some targets need this for DWARF2. 512ed0d50c3Schristos@end deffn 513ed0d50c3Schristos@deffn {} BFD_RELOC_32_GOT_PCREL 514ed0d50c3Schristos@deffnx {} BFD_RELOC_16_GOT_PCREL 515ed0d50c3Schristos@deffnx {} BFD_RELOC_8_GOT_PCREL 516ed0d50c3Schristos@deffnx {} BFD_RELOC_32_GOTOFF 517ed0d50c3Schristos@deffnx {} BFD_RELOC_16_GOTOFF 518ed0d50c3Schristos@deffnx {} BFD_RELOC_LO16_GOTOFF 519ed0d50c3Schristos@deffnx {} BFD_RELOC_HI16_GOTOFF 520ed0d50c3Schristos@deffnx {} BFD_RELOC_HI16_S_GOTOFF 521ed0d50c3Schristos@deffnx {} BFD_RELOC_8_GOTOFF 522ed0d50c3Schristos@deffnx {} BFD_RELOC_64_PLT_PCREL 523ed0d50c3Schristos@deffnx {} BFD_RELOC_32_PLT_PCREL 524ed0d50c3Schristos@deffnx {} BFD_RELOC_24_PLT_PCREL 525ed0d50c3Schristos@deffnx {} BFD_RELOC_16_PLT_PCREL 526ed0d50c3Schristos@deffnx {} BFD_RELOC_8_PLT_PCREL 527ed0d50c3Schristos@deffnx {} BFD_RELOC_64_PLTOFF 528ed0d50c3Schristos@deffnx {} BFD_RELOC_32_PLTOFF 529ed0d50c3Schristos@deffnx {} BFD_RELOC_16_PLTOFF 530ed0d50c3Schristos@deffnx {} BFD_RELOC_LO16_PLTOFF 531ed0d50c3Schristos@deffnx {} BFD_RELOC_HI16_PLTOFF 532ed0d50c3Schristos@deffnx {} BFD_RELOC_HI16_S_PLTOFF 533ed0d50c3Schristos@deffnx {} BFD_RELOC_8_PLTOFF 534ed0d50c3SchristosFor ELF. 535ed0d50c3Schristos@end deffn 536ed0d50c3Schristos@deffn {} BFD_RELOC_SIZE32 537ed0d50c3Schristos@deffnx {} BFD_RELOC_SIZE64 538ed0d50c3SchristosSize relocations. 539ed0d50c3Schristos@end deffn 540ed0d50c3Schristos@deffn {} BFD_RELOC_68K_GLOB_DAT 541ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_JMP_SLOT 542ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_RELATIVE 543ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_GD32 544ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_GD16 545ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_GD8 546ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_LDM32 547ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_LDM16 548ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_LDM8 549ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_LDO32 550ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_LDO16 551ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_LDO8 552ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_IE32 553ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_IE16 554ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_IE8 555ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_LE32 556ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_LE16 557ed0d50c3Schristos@deffnx {} BFD_RELOC_68K_TLS_LE8 558ed0d50c3SchristosRelocations used by 68K ELF. 559ed0d50c3Schristos@end deffn 560ed0d50c3Schristos@deffn {} BFD_RELOC_VAX_GLOB_DAT 561ed0d50c3Schristos@deffnx {} BFD_RELOC_VAX_GLOB_REF 562ed0d50c3Schristos@deffnx {} BFD_RELOC_VAX_JMP_SLOT 563ed0d50c3Schristos@deffnx {} BFD_RELOC_VAX_RELATIVE 564ed0d50c3SchristosRelocations used by VAX ELF. 565ed0d50c3Schristos@end deffn 566ed0d50c3Schristos@deffn {} BFD_RELOC_32_BASEREL 567ed0d50c3Schristos@deffnx {} BFD_RELOC_16_BASEREL 568ed0d50c3Schristos@deffnx {} BFD_RELOC_LO16_BASEREL 569ed0d50c3Schristos@deffnx {} BFD_RELOC_HI16_BASEREL 570ed0d50c3Schristos@deffnx {} BFD_RELOC_HI16_S_BASEREL 571ed0d50c3Schristos@deffnx {} BFD_RELOC_8_BASEREL 572ed0d50c3Schristos@deffnx {} BFD_RELOC_RVA 573ed0d50c3SchristosLinkage-table relative. 574ed0d50c3Schristos@end deffn 575ed0d50c3Schristos@deffn {} BFD_RELOC_8_FFnn 576ed0d50c3SchristosAbsolute 8-bit relocation, but used to form an address like 0xFFnn. 577ed0d50c3Schristos@end deffn 578ed0d50c3Schristos@deffn {} BFD_RELOC_32_PCREL_S2 579ed0d50c3Schristos@deffnx {} BFD_RELOC_16_PCREL_S2 580ed0d50c3Schristos@deffnx {} BFD_RELOC_23_PCREL_S2 581ed0d50c3SchristosThese PC-relative relocations are stored as word displacements -- 582ed0d50c3Schristosi.e., byte displacements shifted right two bits. The 30-bit word 583ed0d50c3Schristosdisplacement (<<32_PCREL_S2>> -- 32 bits, shifted 2) is used on the 584ed0d50c3SchristosSPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The 585ed0d50c3Schristossigned 16-bit displacement is used on the MIPS, and the 23-bit 586ed0d50c3Schristosdisplacement is used on the Alpha. 587ed0d50c3Schristos@end deffn 588ed0d50c3Schristos@deffn {} BFD_RELOC_HI22 589ed0d50c3Schristos@deffnx {} BFD_RELOC_LO10 590ed0d50c3SchristosHigh 22 bits and low 10 bits of 32-bit value, placed into lower bits of 591ed0d50c3Schristosthe target word. These are used on the SPARC. 592ed0d50c3Schristos@end deffn 593ed0d50c3Schristos@deffn {} BFD_RELOC_GPREL16 594ed0d50c3Schristos@deffnx {} BFD_RELOC_GPREL32 595ed0d50c3SchristosFor systems that allocate a Global Pointer register, these are 596ed0d50c3Schristosdisplacements off that register. These relocation types are 597ed0d50c3Schristoshandled specially, because the value the register will have is 598ed0d50c3Schristosdecided relatively late. 599ed0d50c3Schristos@end deffn 600ed0d50c3Schristos@deffn {} BFD_RELOC_NONE 601ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_WDISP22 602ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC22 603ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC13 604ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_GOT10 605ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_GOT13 606ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_GOT22 607ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_PC10 608ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_PC22 609ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_WPLT30 610ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_COPY 611ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_GLOB_DAT 612ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_JMP_SLOT 613ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_RELATIVE 614ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_UA16 615ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_UA32 616ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_UA64 617ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_GOTDATA_HIX22 618ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_GOTDATA_LOX10 619ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_GOTDATA_OP_HIX22 620ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_GOTDATA_OP_LOX10 621ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_GOTDATA_OP 622ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_JMP_IREL 623ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_IRELATIVE 624ed0d50c3SchristosSPARC ELF relocations. There is probably some overlap with other 625ed0d50c3Schristosrelocation types already defined. 626ed0d50c3Schristos@end deffn 627ed0d50c3Schristos@deffn {} BFD_RELOC_SPARC_BASE13 628ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_BASE22 629ed0d50c3SchristosI think these are specific to SPARC a.out (e.g., Sun 4). 630ed0d50c3Schristos@end deffn 631ed0d50c3Schristos@deffn {} BFD_RELOC_SPARC_64 632ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_10 633ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_11 634ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_OLO10 635ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_HH22 636ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_HM10 637ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_LM22 638ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_PC_HH22 639ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_PC_HM10 640ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_PC_LM22 641ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_WDISP16 642ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_WDISP19 643ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_7 644ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_6 645ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_5 646ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_DISP64 647ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_PLT32 648ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_PLT64 649ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_HIX22 650ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_LOX10 651ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_H44 652ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_M44 653ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_L44 654ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_REGISTER 655ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_H34 656ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_SIZE32 657ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_SIZE64 658ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_WDISP10 659ed0d50c3SchristosSPARC64 relocations 660ed0d50c3Schristos@end deffn 661ed0d50c3Schristos@deffn {} BFD_RELOC_SPARC_REV32 662ed0d50c3SchristosSPARC little endian relocation 663ed0d50c3Schristos@end deffn 664ed0d50c3Schristos@deffn {} BFD_RELOC_SPARC_TLS_GD_HI22 665ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_GD_LO10 666ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_GD_ADD 667ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_GD_CALL 668ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_LDM_HI22 669ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_LDM_LO10 670ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_LDM_ADD 671ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_LDM_CALL 672ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_LDO_HIX22 673ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_LDO_LOX10 674ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_LDO_ADD 675ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_IE_HI22 676ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_IE_LO10 677ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_IE_LD 678ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_IE_LDX 679ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_IE_ADD 680ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_LE_HIX22 681ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_LE_LOX10 682ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_DTPMOD32 683ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_DTPMOD64 684ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_DTPOFF32 685ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_DTPOFF64 686ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_TPOFF32 687ed0d50c3Schristos@deffnx {} BFD_RELOC_SPARC_TLS_TPOFF64 688ed0d50c3SchristosSPARC TLS relocations 689ed0d50c3Schristos@end deffn 690ed0d50c3Schristos@deffn {} BFD_RELOC_SPU_IMM7 691ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_IMM8 692ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_IMM10 693ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_IMM10W 694ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_IMM16 695ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_IMM16W 696ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_IMM18 697ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_PCREL9a 698ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_PCREL9b 699ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_PCREL16 700ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_LO16 701ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_HI16 702ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_PPU32 703ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_PPU64 704ed0d50c3Schristos@deffnx {} BFD_RELOC_SPU_ADD_PIC 705ed0d50c3SchristosSPU Relocations. 706ed0d50c3Schristos@end deffn 707ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_GPDISP_HI16 708ed0d50c3SchristosAlpha ECOFF and ELF relocations. Some of these treat the symbol or 709ed0d50c3Schristos"addend" in some special way. 710ed0d50c3SchristosFor GPDISP_HI16 ("gpdisp") relocations, the symbol is ignored when 711ed0d50c3Schristoswriting; when reading, it will be the absolute section symbol. The 712ed0d50c3Schristosaddend is the displacement in bytes of the "lda" instruction from 713ed0d50c3Schristosthe "ldah" instruction (which is at the address of this reloc). 714ed0d50c3Schristos@end deffn 715ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_GPDISP_LO16 716ed0d50c3SchristosFor GPDISP_LO16 ("ignore") relocations, the symbol is handled as 717ed0d50c3Schristoswith GPDISP_HI16 relocs. The addend is ignored when writing the 718ed0d50c3Schristosrelocations out, and is filled in with the file's GP value on 719ed0d50c3Schristosreading, for convenience. 720ed0d50c3Schristos@end deffn 721ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_GPDISP 722ed0d50c3SchristosThe ELF GPDISP relocation is exactly the same as the GPDISP_HI16 723ed0d50c3Schristosrelocation except that there is no accompanying GPDISP_LO16 724ed0d50c3Schristosrelocation. 725ed0d50c3Schristos@end deffn 726ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_LITERAL 727ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_ELF_LITERAL 728ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_LITUSE 729ed0d50c3SchristosThe Alpha LITERAL/LITUSE relocs are produced by a symbol reference; 730ed0d50c3Schristosthe assembler turns it into a LDQ instruction to load the address of 731ed0d50c3Schristosthe symbol, and then fills in a register in the real instruction. 732ed0d50c3Schristos 733ed0d50c3SchristosThe LITERAL reloc, at the LDQ instruction, refers to the .lita 734ed0d50c3Schristossection symbol. The addend is ignored when writing, but is filled 735ed0d50c3Schristosin with the file's GP value on reading, for convenience, as with the 736ed0d50c3SchristosGPDISP_LO16 reloc. 737ed0d50c3Schristos 738ed0d50c3SchristosThe ELF_LITERAL reloc is somewhere between 16_GOTOFF and GPDISP_LO16. 739ed0d50c3SchristosIt should refer to the symbol to be referenced, as with 16_GOTOFF, 740ed0d50c3Schristosbut it generates output not based on the position within the .got 741ed0d50c3Schristossection, but relative to the GP value chosen for the file during the 742ed0d50c3Schristosfinal link stage. 743ed0d50c3Schristos 744ed0d50c3SchristosThe LITUSE reloc, on the instruction using the loaded address, gives 745ed0d50c3Schristosinformation to the linker that it might be able to use to optimize 746ed0d50c3Schristosaway some literal section references. The symbol is ignored (read 747ed0d50c3Schristosas the absolute section symbol), and the "addend" indicates the type 748ed0d50c3Schristosof instruction using the register: 749ed0d50c3Schristos1 - "memory" fmt insn 750ed0d50c3Schristos2 - byte-manipulation (byte offset reg) 751ed0d50c3Schristos3 - jsr (target of branch) 752ed0d50c3Schristos@end deffn 753ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_HINT 754ed0d50c3SchristosThe HINT relocation indicates a value that should be filled into the 755ed0d50c3Schristos"hint" field of a jmp/jsr/ret instruction, for possible branch- 756ed0d50c3Schristosprediction logic which may be provided on some processors. 757ed0d50c3Schristos@end deffn 758ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_LINKAGE 759ed0d50c3SchristosThe LINKAGE relocation outputs a linkage pair in the object file, 760ed0d50c3Schristoswhich is filled by the linker. 761ed0d50c3Schristos@end deffn 762ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_CODEADDR 763ed0d50c3SchristosThe CODEADDR relocation outputs a STO_CA in the object file, 764ed0d50c3Schristoswhich is filled by the linker. 765ed0d50c3Schristos@end deffn 766ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_GPREL_HI16 767ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_GPREL_LO16 768ed0d50c3SchristosThe GPREL_HI/LO relocations together form a 32-bit offset from the 769ed0d50c3SchristosGP register. 770ed0d50c3Schristos@end deffn 771ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_BRSGP 772ed0d50c3SchristosLike BFD_RELOC_23_PCREL_S2, except that the source and target must 773ed0d50c3Schristosshare a common GP, and the target address is adjusted for 774ed0d50c3SchristosSTO_ALPHA_STD_GPLOAD. 775ed0d50c3Schristos@end deffn 776ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_NOP 777ed0d50c3SchristosThe NOP relocation outputs a NOP if the longword displacement 778ed0d50c3Schristosbetween two procedure entry points is < 2^21. 779ed0d50c3Schristos@end deffn 780ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_BSR 781ed0d50c3SchristosThe BSR relocation outputs a BSR if the longword displacement 782ed0d50c3Schristosbetween two procedure entry points is < 2^21. 783ed0d50c3Schristos@end deffn 784ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_LDA 785ed0d50c3SchristosThe LDA relocation outputs a LDA if the longword displacement 786ed0d50c3Schristosbetween two procedure entry points is < 2^16. 787ed0d50c3Schristos@end deffn 788ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_BOH 789ed0d50c3SchristosThe BOH relocation outputs a BSR if the longword displacement 790ed0d50c3Schristosbetween two procedure entry points is < 2^21, or else a hint. 791ed0d50c3Schristos@end deffn 792ed0d50c3Schristos@deffn {} BFD_RELOC_ALPHA_TLSGD 793ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_TLSLDM 794ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_DTPMOD64 795ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_GOTDTPREL16 796ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_DTPREL64 797ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_DTPREL_HI16 798ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_DTPREL_LO16 799ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_DTPREL16 800ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_GOTTPREL16 801ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_TPREL64 802ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_TPREL_HI16 803ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_TPREL_LO16 804ed0d50c3Schristos@deffnx {} BFD_RELOC_ALPHA_TPREL16 805ed0d50c3SchristosAlpha thread-local storage relocations. 806ed0d50c3Schristos@end deffn 807ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS_JMP 808ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_JMP 809ed0d50c3SchristosThe MIPS jump instruction. 810ed0d50c3Schristos@end deffn 811ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS16_JMP 812ed0d50c3SchristosThe MIPS16 jump instruction. 813ed0d50c3Schristos@end deffn 814ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS16_GPREL 815ed0d50c3SchristosMIPS16 GP relative reloc. 816ed0d50c3Schristos@end deffn 817ed0d50c3Schristos@deffn {} BFD_RELOC_HI16 818ed0d50c3SchristosHigh 16 bits of 32-bit value; simple reloc. 819ed0d50c3Schristos@end deffn 820ed0d50c3Schristos@deffn {} BFD_RELOC_HI16_S 821ed0d50c3SchristosHigh 16 bits of 32-bit value but the low 16 bits will be sign 822ed0d50c3Schristosextended and added to form the final result. If the low 16 823ed0d50c3Schristosbits form a negative number, we need to add one to the high value 824ed0d50c3Schristosto compensate for the borrow when the low bits are added. 825ed0d50c3Schristos@end deffn 826ed0d50c3Schristos@deffn {} BFD_RELOC_LO16 827ed0d50c3SchristosLow 16 bits. 828ed0d50c3Schristos@end deffn 829ed0d50c3Schristos@deffn {} BFD_RELOC_HI16_PCREL 830ed0d50c3SchristosHigh 16 bits of 32-bit pc-relative value 831ed0d50c3Schristos@end deffn 832ed0d50c3Schristos@deffn {} BFD_RELOC_HI16_S_PCREL 833ed0d50c3SchristosHigh 16 bits of 32-bit pc-relative value, adjusted 834ed0d50c3Schristos@end deffn 835ed0d50c3Schristos@deffn {} BFD_RELOC_LO16_PCREL 836ed0d50c3SchristosLow 16 bits of pc-relative value 837ed0d50c3Schristos@end deffn 838ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS16_GOT16 839ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS16_CALL16 840ed0d50c3SchristosEquivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of 841ed0d50c3Schristos16-bit immediate fields 842ed0d50c3Schristos@end deffn 843ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS16_HI16 844ed0d50c3SchristosMIPS16 high 16 bits of 32-bit value. 845ed0d50c3Schristos@end deffn 846ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS16_HI16_S 847ed0d50c3SchristosMIPS16 high 16 bits of 32-bit value but the low 16 bits will be sign 848ed0d50c3Schristosextended and added to form the final result. If the low 16 849ed0d50c3Schristosbits form a negative number, we need to add one to the high value 850ed0d50c3Schristosto compensate for the borrow when the low bits are added. 851ed0d50c3Schristos@end deffn 852ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS16_LO16 853ed0d50c3SchristosMIPS16 low 16 bits. 854ed0d50c3Schristos@end deffn 855ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS16_TLS_GD 856ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS16_TLS_LDM 857ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS16_TLS_DTPREL_HI16 858ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS16_TLS_DTPREL_LO16 859ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS16_TLS_GOTTPREL 860ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS16_TLS_TPREL_HI16 861ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS16_TLS_TPREL_LO16 862ed0d50c3SchristosMIPS16 TLS relocations 863ed0d50c3Schristos@end deffn 864ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS_LITERAL 865ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_LITERAL 866ed0d50c3SchristosRelocation against a MIPS literal section. 867ed0d50c3Schristos@end deffn 868ed0d50c3Schristos@deffn {} BFD_RELOC_MICROMIPS_7_PCREL_S1 869ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_10_PCREL_S1 870ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_16_PCREL_S1 871ed0d50c3SchristosmicroMIPS PC-relative relocations. 872ed0d50c3Schristos@end deffn 873ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS16_16_PCREL_S1 874ed0d50c3SchristosMIPS16 PC-relative relocation. 875ed0d50c3Schristos@end deffn 876ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS_21_PCREL_S2 877ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_26_PCREL_S2 878ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_18_PCREL_S3 879ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_19_PCREL_S2 880ed0d50c3SchristosMIPS PC-relative relocations. 881ed0d50c3Schristos@end deffn 882ed0d50c3Schristos@deffn {} BFD_RELOC_MICROMIPS_GPREL16 883ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_HI16 884ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_HI16_S 885ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_LO16 886ed0d50c3SchristosmicroMIPS versions of generic BFD relocs. 887ed0d50c3Schristos@end deffn 888ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS_GOT16 889ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_GOT16 890ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_CALL16 891ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_CALL16 892ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_GOT_HI16 893ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_GOT_HI16 894ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_GOT_LO16 895ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_GOT_LO16 896ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_CALL_HI16 897ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_CALL_HI16 898ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_CALL_LO16 899ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_CALL_LO16 900ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_SUB 901ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_SUB 902ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_GOT_PAGE 903ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_GOT_PAGE 904ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_GOT_OFST 905ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_GOT_OFST 906ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_GOT_DISP 907ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_GOT_DISP 908ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_SHIFT5 909ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_SHIFT6 910ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_INSERT_A 911ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_INSERT_B 912ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_DELETE 913ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_HIGHEST 914ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_HIGHEST 915ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_HIGHER 916ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_HIGHER 917ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_SCN_DISP 918ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_SCN_DISP 919ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_REL16 920ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_RELGOT 921ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_JALR 922ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_JALR 923ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_DTPMOD32 924ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_DTPREL32 925ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_DTPMOD64 926ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_DTPREL64 927ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_GD 928ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_TLS_GD 929ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_LDM 930ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_TLS_LDM 931ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_DTPREL_HI16 932ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16 933ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_DTPREL_LO16 934ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16 935ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_GOTTPREL 936ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_TLS_GOTTPREL 937ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_TPREL32 938ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_TPREL64 939ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_TPREL_HI16 940ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_TLS_TPREL_HI16 941ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_TLS_TPREL_LO16 942ed0d50c3Schristos@deffnx {} BFD_RELOC_MICROMIPS_TLS_TPREL_LO16 943ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_EH 944ed0d50c3SchristosMIPS ELF relocations. 945ed0d50c3Schristos@end deffn 946ed0d50c3Schristos@deffn {} BFD_RELOC_MIPS_COPY 947ed0d50c3Schristos@deffnx {} BFD_RELOC_MIPS_JUMP_SLOT 948ed0d50c3SchristosMIPS ELF relocations (VxWorks and PLT extensions). 949ed0d50c3Schristos@end deffn 950ed0d50c3Schristos@deffn {} BFD_RELOC_MOXIE_10_PCREL 951ed0d50c3SchristosMoxie ELF relocations. 952ed0d50c3Schristos@end deffn 953ed0d50c3Schristos@deffn {} BFD_RELOC_FT32_10 954ed0d50c3Schristos@deffnx {} BFD_RELOC_FT32_20 955ed0d50c3Schristos@deffnx {} BFD_RELOC_FT32_17 956ed0d50c3Schristos@deffnx {} BFD_RELOC_FT32_18 95706324dcfSchristos@deffnx {} BFD_RELOC_FT32_RELAX 95806324dcfSchristos@deffnx {} BFD_RELOC_FT32_SC0 95906324dcfSchristos@deffnx {} BFD_RELOC_FT32_SC1 96006324dcfSchristos@deffnx {} BFD_RELOC_FT32_15 96106324dcfSchristos@deffnx {} BFD_RELOC_FT32_DIFF32 962ed0d50c3SchristosFT32 ELF relocations. 963ed0d50c3Schristos@end deffn 964ed0d50c3Schristos@deffn {} BFD_RELOC_FRV_LABEL16 965ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_LABEL24 966ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_LO16 967ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_HI16 968ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GPREL12 969ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GPRELU12 970ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GPREL32 971ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GPRELHI 972ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GPRELLO 973ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOT12 974ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTHI 975ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTLO 976ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_FUNCDESC 977ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOT12 978ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOTHI 979ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOTLO 980ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_FUNCDESC_VALUE 981ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOTOFF12 982ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOTOFFHI 983ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_FUNCDESC_GOTOFFLO 984ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTOFF12 985ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTOFFHI 986ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTOFFLO 987ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GETTLSOFF 988ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_TLSDESC_VALUE 989ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTTLSDESC12 990ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTTLSDESCHI 991ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTTLSDESCLO 992ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_TLSMOFF12 993ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_TLSMOFFHI 994ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_TLSMOFFLO 995ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTTLSOFF12 996ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTTLSOFFHI 997ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GOTTLSOFFLO 998ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_TLSOFF 999ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_TLSDESC_RELAX 1000ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_GETTLSOFF_RELAX 1001ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_TLSOFF_RELAX 1002ed0d50c3Schristos@deffnx {} BFD_RELOC_FRV_TLSMOFF 1003ed0d50c3SchristosFujitsu Frv Relocations. 1004ed0d50c3Schristos@end deffn 1005ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_GOTOFF24 1006ed0d50c3SchristosThis is a 24bit GOT-relative reloc for the mn10300. 1007ed0d50c3Schristos@end deffn 1008ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_GOT32 1009ed0d50c3SchristosThis is a 32bit GOT-relative reloc for the mn10300, offset by two bytes 1010ed0d50c3Schristosin the instruction. 1011ed0d50c3Schristos@end deffn 1012ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_GOT24 1013ed0d50c3SchristosThis is a 24bit GOT-relative reloc for the mn10300, offset by two bytes 1014ed0d50c3Schristosin the instruction. 1015ed0d50c3Schristos@end deffn 1016ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_GOT16 1017ed0d50c3SchristosThis is a 16bit GOT-relative reloc for the mn10300, offset by two bytes 1018ed0d50c3Schristosin the instruction. 1019ed0d50c3Schristos@end deffn 1020ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_COPY 1021ed0d50c3SchristosCopy symbol at runtime. 1022ed0d50c3Schristos@end deffn 1023ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_GLOB_DAT 1024ed0d50c3SchristosCreate GOT entry. 1025ed0d50c3Schristos@end deffn 1026ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_JMP_SLOT 1027ed0d50c3SchristosCreate PLT entry. 1028ed0d50c3Schristos@end deffn 1029ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_RELATIVE 1030ed0d50c3SchristosAdjust by program base. 1031ed0d50c3Schristos@end deffn 1032ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_SYM_DIFF 1033ed0d50c3SchristosTogether with another reloc targeted at the same location, 1034ed0d50c3Schristosallows for a value that is the difference of two symbols 1035ed0d50c3Schristosin the same section. 1036ed0d50c3Schristos@end deffn 1037ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_ALIGN 1038ed0d50c3SchristosThe addend of this reloc is an alignment power that must 1039ed0d50c3Schristosbe honoured at the offset's location, regardless of linker 1040ed0d50c3Schristosrelaxation. 1041ed0d50c3Schristos@end deffn 1042ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_TLS_GD 1043ed0d50c3Schristos@deffnx {} BFD_RELOC_MN10300_TLS_LD 1044ed0d50c3Schristos@deffnx {} BFD_RELOC_MN10300_TLS_LDO 1045ed0d50c3Schristos@deffnx {} BFD_RELOC_MN10300_TLS_GOTIE 1046ed0d50c3Schristos@deffnx {} BFD_RELOC_MN10300_TLS_IE 1047ed0d50c3Schristos@deffnx {} BFD_RELOC_MN10300_TLS_LE 1048ed0d50c3Schristos@deffnx {} BFD_RELOC_MN10300_TLS_DTPMOD 1049ed0d50c3Schristos@deffnx {} BFD_RELOC_MN10300_TLS_DTPOFF 1050ed0d50c3Schristos@deffnx {} BFD_RELOC_MN10300_TLS_TPOFF 1051ed0d50c3SchristosVarious TLS-related relocations. 1052ed0d50c3Schristos@end deffn 1053ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_32_PCREL 1054ed0d50c3SchristosThis is a 32bit pcrel reloc for the mn10300, offset by two bytes in the 1055ed0d50c3Schristosinstruction. 1056ed0d50c3Schristos@end deffn 1057ed0d50c3Schristos@deffn {} BFD_RELOC_MN10300_16_PCREL 1058ed0d50c3SchristosThis is a 16bit pcrel reloc for the mn10300, offset by two bytes in the 1059ed0d50c3Schristosinstruction. 1060ed0d50c3Schristos@end deffn 1061ed0d50c3Schristos@deffn {} BFD_RELOC_386_GOT32 1062ed0d50c3Schristos@deffnx {} BFD_RELOC_386_PLT32 1063ed0d50c3Schristos@deffnx {} BFD_RELOC_386_COPY 1064ed0d50c3Schristos@deffnx {} BFD_RELOC_386_GLOB_DAT 1065ed0d50c3Schristos@deffnx {} BFD_RELOC_386_JUMP_SLOT 1066ed0d50c3Schristos@deffnx {} BFD_RELOC_386_RELATIVE 1067ed0d50c3Schristos@deffnx {} BFD_RELOC_386_GOTOFF 1068ed0d50c3Schristos@deffnx {} BFD_RELOC_386_GOTPC 1069ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_TPOFF 1070ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_IE 1071ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_GOTIE 1072ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_LE 1073ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_GD 1074ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_LDM 1075ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_LDO_32 1076ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_IE_32 1077ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_LE_32 1078ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_DTPMOD32 1079ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_DTPOFF32 1080ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_TPOFF32 1081ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_GOTDESC 1082ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_DESC_CALL 1083ed0d50c3Schristos@deffnx {} BFD_RELOC_386_TLS_DESC 1084ed0d50c3Schristos@deffnx {} BFD_RELOC_386_IRELATIVE 1085ed0d50c3Schristos@deffnx {} BFD_RELOC_386_GOT32X 1086ed0d50c3Schristosi386/elf relocations 1087ed0d50c3Schristos@end deffn 1088ed0d50c3Schristos@deffn {} BFD_RELOC_X86_64_GOT32 1089ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_PLT32 1090ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_COPY 1091ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GLOB_DAT 1092ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_JUMP_SLOT 1093ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_RELATIVE 1094ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GOTPCREL 1095ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_32S 1096ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_DTPMOD64 1097ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_DTPOFF64 1098ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_TPOFF64 1099ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_TLSGD 1100ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_TLSLD 1101ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_DTPOFF32 1102ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GOTTPOFF 1103ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_TPOFF32 1104ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GOTOFF64 1105ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GOTPC32 1106ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GOT64 1107ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GOTPCREL64 1108ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GOTPC64 1109ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GOTPLT64 1110ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_PLTOFF64 1111ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GOTPC32_TLSDESC 1112ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_TLSDESC_CALL 1113ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_TLSDESC 1114ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_IRELATIVE 1115ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_PC32_BND 1116ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_PLT32_BND 1117ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_GOTPCRELX 1118ed0d50c3Schristos@deffnx {} BFD_RELOC_X86_64_REX_GOTPCRELX 1119ed0d50c3Schristosx86-64/elf relocations 1120ed0d50c3Schristos@end deffn 1121ed0d50c3Schristos@deffn {} BFD_RELOC_NS32K_IMM_8 1122ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_IMM_16 1123ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_IMM_32 1124ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_IMM_8_PCREL 1125ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_IMM_16_PCREL 1126ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_IMM_32_PCREL 1127ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_DISP_8 1128ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_DISP_16 1129ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_DISP_32 1130ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_DISP_8_PCREL 1131ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_DISP_16_PCREL 1132ed0d50c3Schristos@deffnx {} BFD_RELOC_NS32K_DISP_32_PCREL 1133ed0d50c3Schristosns32k relocations 1134ed0d50c3Schristos@end deffn 1135ed0d50c3Schristos@deffn {} BFD_RELOC_PDP11_DISP_8_PCREL 1136ed0d50c3Schristos@deffnx {} BFD_RELOC_PDP11_DISP_6_PCREL 1137ed0d50c3SchristosPDP11 relocations 1138ed0d50c3Schristos@end deffn 1139ed0d50c3Schristos@deffn {} BFD_RELOC_PJ_CODE_HI16 1140ed0d50c3Schristos@deffnx {} BFD_RELOC_PJ_CODE_LO16 1141ed0d50c3Schristos@deffnx {} BFD_RELOC_PJ_CODE_DIR16 1142ed0d50c3Schristos@deffnx {} BFD_RELOC_PJ_CODE_DIR32 1143ed0d50c3Schristos@deffnx {} BFD_RELOC_PJ_CODE_REL16 1144ed0d50c3Schristos@deffnx {} BFD_RELOC_PJ_CODE_REL32 1145ed0d50c3SchristosPicojava relocs. Not all of these appear in object files. 1146ed0d50c3Schristos@end deffn 1147ed0d50c3Schristos@deffn {} BFD_RELOC_PPC_B26 1148ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_BA26 1149ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_TOC16 1150ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_B16 1151ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_B16_BRTAKEN 1152ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_B16_BRNTAKEN 1153ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_BA16 1154ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_BA16_BRTAKEN 1155ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_BA16_BRNTAKEN 1156ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_COPY 1157ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GLOB_DAT 1158ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_JMP_SLOT 1159ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_RELATIVE 1160ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_LOCAL24PC 1161ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_NADDR32 1162ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_NADDR16 1163ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_NADDR16_LO 1164ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_NADDR16_HI 1165ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_NADDR16_HA 1166ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_SDAI16 1167ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_SDA2I16 1168ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_SDA2REL 1169ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_SDA21 1170ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_MRKREF 1171ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_RELSEC16 1172ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_RELST_LO 1173ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_RELST_HI 1174ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_RELST_HA 1175ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_BIT_FLD 1176ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_EMB_RELSDA 1177ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_REL8 1178ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_REL15 1179ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_REL24 1180ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_LO16A 1181ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_LO16D 1182ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_HI16A 1183ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_HI16D 1184ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_HA16A 1185ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_HA16D 1186ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_SDA21 1187ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_SDA21_LO 1188ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_SDAREL_LO16A 1189ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_SDAREL_LO16D 1190ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_SDAREL_HI16A 1191ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_SDAREL_HI16D 1192ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_SDAREL_HA16A 1193ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_VLE_SDAREL_HA16D 119406324dcfSchristos@deffnx {} BFD_RELOC_PPC_16DX_HA 1195ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_REL16DX_HA 1196ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_HIGHER 1197ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_HIGHER_S 1198ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_HIGHEST 1199ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_HIGHEST_S 1200ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TOC16_LO 1201ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TOC16_HI 1202ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TOC16_HA 1203ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TOC 1204ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_PLTGOT16 1205ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_PLTGOT16_LO 1206ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_PLTGOT16_HI 1207ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_PLTGOT16_HA 1208ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_ADDR16_DS 1209ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_ADDR16_LO_DS 1210ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_GOT16_DS 1211ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_GOT16_LO_DS 1212ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_PLT16_LO_DS 1213ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_SECTOFF_DS 1214ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_SECTOFF_LO_DS 1215ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TOC16_DS 1216ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TOC16_LO_DS 1217ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_PLTGOT16_DS 1218ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_PLTGOT16_LO_DS 1219ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_ADDR16_HIGH 1220ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_ADDR16_HIGHA 1221*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL16_HIGH 1222*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL16_HIGHA 1223*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL16_HIGHER 1224*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL16_HIGHERA 1225*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL16_HIGHEST 1226*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL16_HIGHESTA 1227ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_ADDR64_LOCAL 1228ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_ENTRY 1229*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL24_NOTOC 1230*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_D34 1231*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_D34_LO 1232*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_D34_HI30 1233*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_D34_HA30 1234*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_PCREL34 1235*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_GOT_PCREL34 1236*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_PLT_PCREL34 1237*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_ADDR16_HIGHER34 1238*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_ADDR16_HIGHERA34 1239*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_ADDR16_HIGHEST34 1240*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_ADDR16_HIGHESTA34 1241*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL16_HIGHER34 1242*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL16_HIGHERA34 1243*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL16_HIGHEST34 1244*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_REL16_HIGHESTA34 1245*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_D28 1246*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_PCREL28 1247ed0d50c3SchristosPower(rs6000) and PowerPC relocations. 1248ed0d50c3Schristos@end deffn 1249ed0d50c3Schristos@deffn {} BFD_RELOC_PPC_TLS 1250ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_TLSGD 1251ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_TLSLD 1252ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_DTPMOD 1253ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_TPREL16 1254ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_TPREL16_LO 1255ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_TPREL16_HI 1256ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_TPREL16_HA 1257ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_TPREL 1258ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_DTPREL16 1259ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_DTPREL16_LO 1260ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_DTPREL16_HI 1261ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_DTPREL16_HA 1262ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_DTPREL 1263ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TLSGD16 1264ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TLSGD16_LO 1265ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TLSGD16_HI 1266ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TLSGD16_HA 1267ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TLSLD16 1268ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TLSLD16_LO 1269ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TLSLD16_HI 1270ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TLSLD16_HA 1271ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TPREL16 1272ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TPREL16_LO 1273ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TPREL16_HI 1274ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_TPREL16_HA 1275ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_DTPREL16 1276ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_DTPREL16_LO 1277ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_DTPREL16_HI 1278ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC_GOT_DTPREL16_HA 1279ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TPREL16_DS 1280ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TPREL16_LO_DS 1281*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_TPREL16_HIGH 1282*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_TPREL16_HIGHA 1283ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TPREL16_HIGHER 1284ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TPREL16_HIGHERA 1285ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TPREL16_HIGHEST 1286ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_TPREL16_HIGHESTA 1287ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_DTPREL16_DS 1288ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_DTPREL16_LO_DS 1289*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_DTPREL16_HIGH 1290*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_DTPREL16_HIGHA 1291ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_DTPREL16_HIGHER 1292ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_DTPREL16_HIGHERA 1293ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_DTPREL16_HIGHEST 1294ed0d50c3Schristos@deffnx {} BFD_RELOC_PPC64_DTPREL16_HIGHESTA 1295*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_TPREL34 1296*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_DTPREL34 1297*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_GOT_TLSGD34 1298*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_GOT_TLSLD34 1299*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_GOT_TPREL34 1300*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_GOT_DTPREL34 1301*b88e3e88Schristos@deffnx {} BFD_RELOC_PPC64_TLS_PCREL 1302ed0d50c3SchristosPowerPC and PowerPC64 thread-local storage relocations. 1303ed0d50c3Schristos@end deffn 1304ed0d50c3Schristos@deffn {} BFD_RELOC_I370_D12 1305ed0d50c3SchristosIBM 370/390 relocations 1306ed0d50c3Schristos@end deffn 1307ed0d50c3Schristos@deffn {} BFD_RELOC_CTOR 1308ed0d50c3SchristosThe type of reloc used to build a constructor table - at the moment 1309ed0d50c3Schristosprobably a 32 bit wide absolute relocation, but the target can choose. 1310ed0d50c3SchristosIt generally does map to one of the other relocation types. 1311ed0d50c3Schristos@end deffn 1312ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_PCREL_BRANCH 1313ed0d50c3SchristosARM 26 bit pc-relative branch. The lowest two bits must be zero and are 1314ed0d50c3Schristosnot stored in the instruction. 1315ed0d50c3Schristos@end deffn 1316ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_PCREL_BLX 1317ed0d50c3SchristosARM 26 bit pc-relative branch. The lowest bit must be zero and is 1318ed0d50c3Schristosnot stored in the instruction. The 2nd lowest bit comes from a 1 bit 1319ed0d50c3Schristosfield in the instruction. 1320ed0d50c3Schristos@end deffn 1321ed0d50c3Schristos@deffn {} BFD_RELOC_THUMB_PCREL_BLX 1322ed0d50c3SchristosThumb 22 bit pc-relative branch. The lowest bit must be zero and is 1323ed0d50c3Schristosnot stored in the instruction. The 2nd lowest bit comes from a 1 bit 1324ed0d50c3Schristosfield in the instruction. 1325ed0d50c3Schristos@end deffn 1326ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_PCREL_CALL 1327ed0d50c3SchristosARM 26-bit pc-relative branch for an unconditional BL or BLX instruction. 1328ed0d50c3Schristos@end deffn 1329ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_PCREL_JUMP 1330ed0d50c3SchristosARM 26-bit pc-relative branch for B or conditional BL instruction. 1331ed0d50c3Schristos@end deffn 1332*b88e3e88Schristos@deffn {} BFD_RELOC_THUMB_PCREL_BRANCH5 1333*b88e3e88SchristosARM 5-bit pc-relative branch for Branch Future instructions. 1334*b88e3e88Schristos@end deffn 1335*b88e3e88Schristos@deffn {} BFD_RELOC_THUMB_PCREL_BFCSEL 1336*b88e3e88SchristosARM 6-bit pc-relative branch for BFCSEL instruction. 1337*b88e3e88Schristos@end deffn 1338*b88e3e88Schristos@deffn {} BFD_RELOC_ARM_THUMB_BF17 1339*b88e3e88SchristosARM 17-bit pc-relative branch for Branch Future instructions. 1340*b88e3e88Schristos@end deffn 1341*b88e3e88Schristos@deffn {} BFD_RELOC_ARM_THUMB_BF13 1342*b88e3e88SchristosARM 13-bit pc-relative branch for BFCSEL instruction. 1343*b88e3e88Schristos@end deffn 1344*b88e3e88Schristos@deffn {} BFD_RELOC_ARM_THUMB_BF19 1345*b88e3e88SchristosARM 19-bit pc-relative branch for Branch Future Link instruction. 1346*b88e3e88Schristos@end deffn 1347*b88e3e88Schristos@deffn {} BFD_RELOC_ARM_THUMB_LOOP12 1348*b88e3e88SchristosARM 12-bit pc-relative branch for Low Overhead Loop instructions. 1349*b88e3e88Schristos@end deffn 1350ed0d50c3Schristos@deffn {} BFD_RELOC_THUMB_PCREL_BRANCH7 1351ed0d50c3Schristos@deffnx {} BFD_RELOC_THUMB_PCREL_BRANCH9 1352ed0d50c3Schristos@deffnx {} BFD_RELOC_THUMB_PCREL_BRANCH12 1353ed0d50c3Schristos@deffnx {} BFD_RELOC_THUMB_PCREL_BRANCH20 1354ed0d50c3Schristos@deffnx {} BFD_RELOC_THUMB_PCREL_BRANCH23 1355ed0d50c3Schristos@deffnx {} BFD_RELOC_THUMB_PCREL_BRANCH25 1356ed0d50c3SchristosThumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches. 1357ed0d50c3SchristosThe lowest bit must be zero and is not stored in the instruction. 1358ed0d50c3SchristosNote that the corresponding ELF R_ARM_THM_JUMPnn constant has an 1359ed0d50c3Schristos"nn" one smaller in all cases. Note further that BRANCH23 1360ed0d50c3Schristoscorresponds to R_ARM_THM_CALL. 1361ed0d50c3Schristos@end deffn 1362ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_OFFSET_IMM 1363ed0d50c3Schristos12-bit immediate offset, used in ARM-format ldr and str instructions. 1364ed0d50c3Schristos@end deffn 1365ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_THUMB_OFFSET 1366ed0d50c3Schristos5-bit immediate offset, used in Thumb-format ldr and str instructions. 1367ed0d50c3Schristos@end deffn 1368ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_TARGET1 1369ed0d50c3SchristosPc-relative or absolute relocation depending on target. Used for 1370ed0d50c3Schristosentries in .init_array sections. 1371ed0d50c3Schristos@end deffn 1372ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_ROSEGREL32 1373ed0d50c3SchristosRead-only segment base relative address. 1374ed0d50c3Schristos@end deffn 1375ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_SBREL32 1376ed0d50c3SchristosData segment base relative address. 1377ed0d50c3Schristos@end deffn 1378ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_TARGET2 1379ed0d50c3SchristosThis reloc is used for references to RTTI data from exception handling 1380ed0d50c3Schristostables. The actual definition depends on the target. It may be a 1381ed0d50c3Schristospc-relative or some form of GOT-indirect relocation. 1382ed0d50c3Schristos@end deffn 1383ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_PREL31 1384ed0d50c3Schristos31-bit PC relative address. 1385ed0d50c3Schristos@end deffn 1386ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_MOVW 1387ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_MOVT 1388ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_MOVW_PCREL 1389ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_MOVT_PCREL 1390ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THUMB_MOVW 1391ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THUMB_MOVT 1392ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THUMB_MOVW_PCREL 1393ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THUMB_MOVT_PCREL 1394ed0d50c3SchristosLow and High halfword relocations for MOVW and MOVT instructions. 1395ed0d50c3Schristos@end deffn 139606324dcfSchristos@deffn {} BFD_RELOC_ARM_GOTFUNCDESC 139706324dcfSchristos@deffnx {} BFD_RELOC_ARM_GOTOFFFUNCDESC 139806324dcfSchristos@deffnx {} BFD_RELOC_ARM_FUNCDESC 139906324dcfSchristos@deffnx {} BFD_RELOC_ARM_FUNCDESC_VALUE 140006324dcfSchristos@deffnx {} BFD_RELOC_ARM_TLS_GD32_FDPIC 140106324dcfSchristos@deffnx {} BFD_RELOC_ARM_TLS_LDM32_FDPIC 140206324dcfSchristos@deffnx {} BFD_RELOC_ARM_TLS_IE32_FDPIC 140306324dcfSchristosARM FDPIC specific relocations. 140406324dcfSchristos@end deffn 1405ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_JUMP_SLOT 1406ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_GLOB_DAT 1407ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_GOT32 1408ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_PLT32 1409ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_RELATIVE 1410ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_GOTOFF 1411ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_GOTPC 1412ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_GOT_PREL 1413ed0d50c3SchristosRelocations for setting up GOTs and PLTs for shared libraries. 1414ed0d50c3Schristos@end deffn 1415ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_TLS_GD32 1416ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_LDO32 1417ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_LDM32 1418ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_DTPOFF32 1419ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_DTPMOD32 1420ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_TPOFF32 1421ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_IE32 1422ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_LE32 1423ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_GOTDESC 1424ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_CALL 1425ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THM_TLS_CALL 1426ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_DESCSEQ 1427ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THM_TLS_DESCSEQ 1428ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_TLS_DESC 1429ed0d50c3SchristosARM thread-local storage relocations. 1430ed0d50c3Schristos@end deffn 1431ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_ALU_PC_G0_NC 1432ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ALU_PC_G0 1433ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ALU_PC_G1_NC 1434ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ALU_PC_G1 1435ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ALU_PC_G2 1436ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDR_PC_G0 1437ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDR_PC_G1 1438ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDR_PC_G2 1439ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDRS_PC_G0 1440ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDRS_PC_G1 1441ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDRS_PC_G2 1442ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDC_PC_G0 1443ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDC_PC_G1 1444ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDC_PC_G2 1445ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ALU_SB_G0_NC 1446ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ALU_SB_G0 1447ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ALU_SB_G1_NC 1448ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ALU_SB_G1 1449ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ALU_SB_G2 1450ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDR_SB_G0 1451ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDR_SB_G1 1452ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDR_SB_G2 1453ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDRS_SB_G0 1454ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDRS_SB_G1 1455ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDRS_SB_G2 1456ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDC_SB_G0 1457ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDC_SB_G1 1458ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDC_SB_G2 1459ed0d50c3SchristosARM group relocations. 1460ed0d50c3Schristos@end deffn 1461ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_V4BX 1462ed0d50c3SchristosAnnotation of BX instructions. 1463ed0d50c3Schristos@end deffn 1464ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_IRELATIVE 1465ed0d50c3SchristosARM support for STT_GNU_IFUNC. 1466ed0d50c3Schristos@end deffn 1467ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC 1468ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC 1469ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC 1470ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC 1471ed0d50c3SchristosThumb1 relocations to support execute-only code. 1472ed0d50c3Schristos@end deffn 1473ed0d50c3Schristos@deffn {} BFD_RELOC_ARM_IMMEDIATE 1474ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ADRL_IMMEDIATE 1475ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_T32_IMMEDIATE 1476ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_T32_ADD_IMM 1477ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_T32_IMM12 1478ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_T32_ADD_PC12 1479ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_SHIFT_IMM 1480ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_SMC 1481ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_HVC 1482ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_SWI 1483ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_MULTI 1484ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_CP_OFF_IMM 1485ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_CP_OFF_IMM_S2 1486ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_T32_CP_OFF_IMM 1487ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_T32_CP_OFF_IMM_S2 1488*b88e3e88Schristos@deffnx {} BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM 1489ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_ADR_IMM 1490ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LDR_IMM 1491ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_LITERAL 1492ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_IN_POOL 1493ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_OFFSET_IMM8 1494ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_T32_OFFSET_U8 1495ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_T32_OFFSET_IMM 1496ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_HWLITERAL 1497ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THUMB_ADD 1498ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THUMB_IMM 1499ed0d50c3Schristos@deffnx {} BFD_RELOC_ARM_THUMB_SHIFT 1500ed0d50c3SchristosThese relocs are only used within the ARM assembler. They are not 1501ed0d50c3Schristos(at present) written to any object files. 1502ed0d50c3Schristos@end deffn 1503ed0d50c3Schristos@deffn {} BFD_RELOC_SH_PCDISP8BY2 1504ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_PCDISP12BY2 1505ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM3 1506ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM3U 1507ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_DISP12 1508ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_DISP12BY2 1509ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_DISP12BY4 1510ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_DISP12BY8 1511ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_DISP20 1512ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_DISP20BY8 1513ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM4 1514ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM4BY2 1515ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM4BY4 1516ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM8 1517ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM8BY2 1518ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM8BY4 1519ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_PCRELIMM8BY2 1520ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_PCRELIMM8BY4 1521ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_SWITCH16 1522ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_SWITCH32 1523ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_USES 1524ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_COUNT 1525ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_ALIGN 1526ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_CODE 1527ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_DATA 1528ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_LABEL 1529ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_LOOP_START 1530ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_LOOP_END 1531ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_COPY 1532ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GLOB_DAT 1533ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_JMP_SLOT 1534ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_RELATIVE 1535ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPC 1536ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOT_LOW16 1537ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOT_MEDLOW16 1538ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOT_MEDHI16 1539ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOT_HI16 1540ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPLT_LOW16 1541ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPLT_MEDLOW16 1542ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPLT_MEDHI16 1543ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPLT_HI16 1544ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_PLT_LOW16 1545ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_PLT_MEDLOW16 1546ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_PLT_MEDHI16 1547ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_PLT_HI16 1548ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTOFF_LOW16 1549ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTOFF_MEDLOW16 1550ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTOFF_MEDHI16 1551ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTOFF_HI16 1552ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPC_LOW16 1553ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPC_MEDLOW16 1554ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPC_MEDHI16 1555ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPC_HI16 1556ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_COPY64 1557ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GLOB_DAT64 1558ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_JMP_SLOT64 1559ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_RELATIVE64 1560ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOT10BY4 1561ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOT10BY8 1562ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPLT10BY4 1563ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPLT10BY8 1564ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTPLT32 1565ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_SHMEDIA_CODE 1566ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMMU5 1567ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMMS6 1568ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMMS6BY32 1569ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMMU6 1570ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMMS10 1571ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMMS10BY2 1572ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMMS10BY4 1573ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMMS10BY8 1574ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMMS16 1575ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMMU16 1576ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM_LOW16 1577ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM_LOW16_PCREL 1578ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM_MEDLOW16 1579ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM_MEDLOW16_PCREL 1580ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM_MEDHI16 1581ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM_MEDHI16_PCREL 1582ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM_HI16 1583ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_IMM_HI16_PCREL 1584ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_PT_16 1585ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_TLS_GD_32 1586ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_TLS_LD_32 1587ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_TLS_LDO_32 1588ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_TLS_IE_32 1589ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_TLS_LE_32 1590ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_TLS_DTPMOD32 1591ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_TLS_DTPOFF32 1592ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_TLS_TPOFF32 1593ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOT20 1594ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTOFF20 1595ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTFUNCDESC 1596ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTFUNCDESC20 1597ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTOFFFUNCDESC 1598ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_GOTOFFFUNCDESC20 1599ed0d50c3Schristos@deffnx {} BFD_RELOC_SH_FUNCDESC 1600ed0d50c3SchristosRenesas / SuperH SH relocs. Not all of these appear in object files. 1601ed0d50c3Schristos@end deffn 1602ed0d50c3Schristos@deffn {} BFD_RELOC_ARC_NONE 1603ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_8 1604ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_16 1605ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_24 1606ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_32 1607ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_N8 1608ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_N16 1609ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_N24 1610ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_N32 1611ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SDA 1612ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SECTOFF 1613ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_S21H_PCREL 1614ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_S21W_PCREL 1615ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_S25H_PCREL 1616ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_S25W_PCREL 1617ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SDA32 1618ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SDA_LDST 1619ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SDA_LDST1 1620ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SDA_LDST2 1621ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SDA16_LD 1622ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SDA16_LD1 1623ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SDA16_LD2 1624ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_S13_PCREL 1625ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_W 1626ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_32_ME 1627ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_32_ME_S 1628ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_N32_ME 1629ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SECTOFF_ME 1630ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SDA32_ME 1631ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_W_ME 1632ed0d50c3Schristos@deffnx {} BFD_RELOC_AC_SECTOFF_U8 1633ed0d50c3Schristos@deffnx {} BFD_RELOC_AC_SECTOFF_U8_1 1634ed0d50c3Schristos@deffnx {} BFD_RELOC_AC_SECTOFF_U8_2 163506324dcfSchristos@deffnx {} BFD_RELOC_AC_SECTOFF_S9 163606324dcfSchristos@deffnx {} BFD_RELOC_AC_SECTOFF_S9_1 163706324dcfSchristos@deffnx {} BFD_RELOC_AC_SECTOFF_S9_2 1638ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SECTOFF_ME_1 1639ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SECTOFF_ME_2 1640ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SECTOFF_1 1641ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SECTOFF_2 164206324dcfSchristos@deffnx {} BFD_RELOC_ARC_SDA_12 1643ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_SDA16_ST2 1644ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_32_PCREL 1645ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_PC32 1646ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_GOT32 1647ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_GOTPC32 1648ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_PLT32 1649ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_COPY 1650ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_GLOB_DAT 1651ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_JMP_SLOT 1652ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_RELATIVE 1653ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_GOTOFF 1654ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_GOTPC 1655ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_S21W_PCREL_PLT 1656ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_S25H_PCREL_PLT 1657ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_TLS_DTPMOD 1658ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_TLS_TPOFF 1659ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_TLS_GD_GOT 1660ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_TLS_GD_LD 1661ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_TLS_GD_CALL 1662ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_TLS_IE_GOT 1663ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_TLS_DTPOFF 1664ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_TLS_DTPOFF_S9 1665ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_TLS_LE_S9 1666ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_TLS_LE_32 1667ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_S25W_PCREL_PLT 1668ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_S21H_PCREL_PLT 1669ed0d50c3Schristos@deffnx {} BFD_RELOC_ARC_NPS_CMEM16 167006324dcfSchristos@deffnx {} BFD_RELOC_ARC_JLI_SECTOFF 1671ed0d50c3SchristosARC relocs. 1672ed0d50c3Schristos@end deffn 1673ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_16_IMM 1674ed0d50c3SchristosADI Blackfin 16 bit immediate absolute reloc. 1675ed0d50c3Schristos@end deffn 1676ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_16_HIGH 1677ed0d50c3SchristosADI Blackfin 16 bit immediate absolute reloc higher 16 bits. 1678ed0d50c3Schristos@end deffn 1679ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_4_PCREL 1680ed0d50c3SchristosADI Blackfin 'a' part of LSETUP. 1681ed0d50c3Schristos@end deffn 1682ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_5_PCREL 1683ed0d50c3SchristosADI Blackfin. 1684ed0d50c3Schristos@end deffn 1685ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_16_LOW 1686ed0d50c3SchristosADI Blackfin 16 bit immediate absolute reloc lower 16 bits. 1687ed0d50c3Schristos@end deffn 1688ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_10_PCREL 1689ed0d50c3SchristosADI Blackfin. 1690ed0d50c3Schristos@end deffn 1691ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_11_PCREL 1692ed0d50c3SchristosADI Blackfin 'b' part of LSETUP. 1693ed0d50c3Schristos@end deffn 1694ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_12_PCREL_JUMP 1695ed0d50c3SchristosADI Blackfin. 1696ed0d50c3Schristos@end deffn 1697ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_12_PCREL_JUMP_S 1698ed0d50c3SchristosADI Blackfin Short jump, pcrel. 1699ed0d50c3Schristos@end deffn 1700ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_24_PCREL_CALL_X 1701ed0d50c3SchristosADI Blackfin Call.x not implemented. 1702ed0d50c3Schristos@end deffn 1703ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_24_PCREL_JUMP_L 1704ed0d50c3SchristosADI Blackfin Long Jump pcrel. 1705ed0d50c3Schristos@end deffn 1706ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_GOT17M4 1707ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_GOTHI 1708ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_GOTLO 1709ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_FUNCDESC 1710ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_FUNCDESC_GOT17M4 1711ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_FUNCDESC_GOTHI 1712ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_FUNCDESC_GOTLO 1713ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_FUNCDESC_VALUE 1714ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4 1715ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI 1716ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO 1717ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_GOTOFF17M4 1718ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_GOTOFFHI 1719ed0d50c3Schristos@deffnx {} BFD_RELOC_BFIN_GOTOFFLO 1720ed0d50c3SchristosADI Blackfin FD-PIC relocations. 1721ed0d50c3Schristos@end deffn 1722ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_GOT 1723ed0d50c3SchristosADI Blackfin GOT relocation. 1724ed0d50c3Schristos@end deffn 1725ed0d50c3Schristos@deffn {} BFD_RELOC_BFIN_PLTPC 1726ed0d50c3SchristosADI Blackfin PLTPC relocation. 1727ed0d50c3Schristos@end deffn 1728ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_PUSH 1729ed0d50c3SchristosADI Blackfin arithmetic relocation. 1730ed0d50c3Schristos@end deffn 1731ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_CONST 1732ed0d50c3SchristosADI Blackfin arithmetic relocation. 1733ed0d50c3Schristos@end deffn 1734ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_ADD 1735ed0d50c3SchristosADI Blackfin arithmetic relocation. 1736ed0d50c3Schristos@end deffn 1737ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_SUB 1738ed0d50c3SchristosADI Blackfin arithmetic relocation. 1739ed0d50c3Schristos@end deffn 1740ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_MULT 1741ed0d50c3SchristosADI Blackfin arithmetic relocation. 1742ed0d50c3Schristos@end deffn 1743ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_DIV 1744ed0d50c3SchristosADI Blackfin arithmetic relocation. 1745ed0d50c3Schristos@end deffn 1746ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_MOD 1747ed0d50c3SchristosADI Blackfin arithmetic relocation. 1748ed0d50c3Schristos@end deffn 1749ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_LSHIFT 1750ed0d50c3SchristosADI Blackfin arithmetic relocation. 1751ed0d50c3Schristos@end deffn 1752ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_RSHIFT 1753ed0d50c3SchristosADI Blackfin arithmetic relocation. 1754ed0d50c3Schristos@end deffn 1755ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_AND 1756ed0d50c3SchristosADI Blackfin arithmetic relocation. 1757ed0d50c3Schristos@end deffn 1758ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_OR 1759ed0d50c3SchristosADI Blackfin arithmetic relocation. 1760ed0d50c3Schristos@end deffn 1761ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_XOR 1762ed0d50c3SchristosADI Blackfin arithmetic relocation. 1763ed0d50c3Schristos@end deffn 1764ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_LAND 1765ed0d50c3SchristosADI Blackfin arithmetic relocation. 1766ed0d50c3Schristos@end deffn 1767ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_LOR 1768ed0d50c3SchristosADI Blackfin arithmetic relocation. 1769ed0d50c3Schristos@end deffn 1770ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_LEN 1771ed0d50c3SchristosADI Blackfin arithmetic relocation. 1772ed0d50c3Schristos@end deffn 1773ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_NEG 1774ed0d50c3SchristosADI Blackfin arithmetic relocation. 1775ed0d50c3Schristos@end deffn 1776ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_COMP 1777ed0d50c3SchristosADI Blackfin arithmetic relocation. 1778ed0d50c3Schristos@end deffn 1779ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_PAGE 1780ed0d50c3SchristosADI Blackfin arithmetic relocation. 1781ed0d50c3Schristos@end deffn 1782ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_HWPAGE 1783ed0d50c3SchristosADI Blackfin arithmetic relocation. 1784ed0d50c3Schristos@end deffn 1785ed0d50c3Schristos@deffn {} BFD_ARELOC_BFIN_ADDR 1786ed0d50c3SchristosADI Blackfin arithmetic relocation. 1787ed0d50c3Schristos@end deffn 1788ed0d50c3Schristos@deffn {} BFD_RELOC_D10V_10_PCREL_R 1789ed0d50c3SchristosMitsubishi D10V relocs. 1790ed0d50c3SchristosThis is a 10-bit reloc with the right 2 bits 1791ed0d50c3Schristosassumed to be 0. 1792ed0d50c3Schristos@end deffn 1793ed0d50c3Schristos@deffn {} BFD_RELOC_D10V_10_PCREL_L 1794ed0d50c3SchristosMitsubishi D10V relocs. 1795ed0d50c3SchristosThis is a 10-bit reloc with the right 2 bits 1796ed0d50c3Schristosassumed to be 0. This is the same as the previous reloc 1797ed0d50c3Schristosexcept it is in the left container, i.e., 1798ed0d50c3Schristosshifted left 15 bits. 1799ed0d50c3Schristos@end deffn 1800ed0d50c3Schristos@deffn {} BFD_RELOC_D10V_18 1801ed0d50c3SchristosThis is an 18-bit reloc with the right 2 bits 1802ed0d50c3Schristosassumed to be 0. 1803ed0d50c3Schristos@end deffn 1804ed0d50c3Schristos@deffn {} BFD_RELOC_D10V_18_PCREL 1805ed0d50c3SchristosThis is an 18-bit reloc with the right 2 bits 1806ed0d50c3Schristosassumed to be 0. 1807ed0d50c3Schristos@end deffn 1808ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_6 1809ed0d50c3SchristosMitsubishi D30V relocs. 1810ed0d50c3SchristosThis is a 6-bit absolute reloc. 1811ed0d50c3Schristos@end deffn 1812ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_9_PCREL 1813ed0d50c3SchristosThis is a 6-bit pc-relative reloc with 1814ed0d50c3Schristosthe right 3 bits assumed to be 0. 1815ed0d50c3Schristos@end deffn 1816ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_9_PCREL_R 1817ed0d50c3SchristosThis is a 6-bit pc-relative reloc with 1818ed0d50c3Schristosthe right 3 bits assumed to be 0. Same 1819ed0d50c3Schristosas the previous reloc but on the right side 1820ed0d50c3Schristosof the container. 1821ed0d50c3Schristos@end deffn 1822ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_15 1823ed0d50c3SchristosThis is a 12-bit absolute reloc with the 1824ed0d50c3Schristosright 3 bitsassumed to be 0. 1825ed0d50c3Schristos@end deffn 1826ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_15_PCREL 1827ed0d50c3SchristosThis is a 12-bit pc-relative reloc with 1828ed0d50c3Schristosthe right 3 bits assumed to be 0. 1829ed0d50c3Schristos@end deffn 1830ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_15_PCREL_R 1831ed0d50c3SchristosThis is a 12-bit pc-relative reloc with 1832ed0d50c3Schristosthe right 3 bits assumed to be 0. Same 1833ed0d50c3Schristosas the previous reloc but on the right side 1834ed0d50c3Schristosof the container. 1835ed0d50c3Schristos@end deffn 1836ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_21 1837ed0d50c3SchristosThis is an 18-bit absolute reloc with 1838ed0d50c3Schristosthe right 3 bits assumed to be 0. 1839ed0d50c3Schristos@end deffn 1840ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_21_PCREL 1841ed0d50c3SchristosThis is an 18-bit pc-relative reloc with 1842ed0d50c3Schristosthe right 3 bits assumed to be 0. 1843ed0d50c3Schristos@end deffn 1844ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_21_PCREL_R 1845ed0d50c3SchristosThis is an 18-bit pc-relative reloc with 1846ed0d50c3Schristosthe right 3 bits assumed to be 0. Same 1847ed0d50c3Schristosas the previous reloc but on the right side 1848ed0d50c3Schristosof the container. 1849ed0d50c3Schristos@end deffn 1850ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_32 1851ed0d50c3SchristosThis is a 32-bit absolute reloc. 1852ed0d50c3Schristos@end deffn 1853ed0d50c3Schristos@deffn {} BFD_RELOC_D30V_32_PCREL 1854ed0d50c3SchristosThis is a 32-bit pc-relative reloc. 1855ed0d50c3Schristos@end deffn 1856ed0d50c3Schristos@deffn {} BFD_RELOC_DLX_HI16_S 1857ed0d50c3SchristosDLX relocs 1858ed0d50c3Schristos@end deffn 1859ed0d50c3Schristos@deffn {} BFD_RELOC_DLX_LO16 1860ed0d50c3SchristosDLX relocs 1861ed0d50c3Schristos@end deffn 1862ed0d50c3Schristos@deffn {} BFD_RELOC_DLX_JMP26 1863ed0d50c3SchristosDLX relocs 1864ed0d50c3Schristos@end deffn 1865ed0d50c3Schristos@deffn {} BFD_RELOC_M32C_HI8 1866ed0d50c3Schristos@deffnx {} BFD_RELOC_M32C_RL_JUMP 1867ed0d50c3Schristos@deffnx {} BFD_RELOC_M32C_RL_1ADDR 1868ed0d50c3Schristos@deffnx {} BFD_RELOC_M32C_RL_2ADDR 1869ed0d50c3SchristosRenesas M16C/M32C Relocations. 1870ed0d50c3Schristos@end deffn 1871ed0d50c3Schristos@deffn {} BFD_RELOC_M32R_24 1872ed0d50c3SchristosRenesas M32R (formerly Mitsubishi M32R) relocs. 1873ed0d50c3SchristosThis is a 24 bit absolute address. 1874ed0d50c3Schristos@end deffn 1875ed0d50c3Schristos@deffn {} BFD_RELOC_M32R_10_PCREL 1876ed0d50c3SchristosThis is a 10-bit pc-relative reloc with the right 2 bits assumed to be 0. 1877ed0d50c3Schristos@end deffn 1878ed0d50c3Schristos@deffn {} BFD_RELOC_M32R_18_PCREL 1879ed0d50c3SchristosThis is an 18-bit reloc with the right 2 bits assumed to be 0. 1880ed0d50c3Schristos@end deffn 1881ed0d50c3Schristos@deffn {} BFD_RELOC_M32R_26_PCREL 1882ed0d50c3SchristosThis is a 26-bit reloc with the right 2 bits assumed to be 0. 1883ed0d50c3Schristos@end deffn 1884ed0d50c3Schristos@deffn {} BFD_RELOC_M32R_HI16_ULO 1885ed0d50c3SchristosThis is a 16-bit reloc containing the high 16 bits of an address 1886ed0d50c3Schristosused when the lower 16 bits are treated as unsigned. 1887ed0d50c3Schristos@end deffn 1888ed0d50c3Schristos@deffn {} BFD_RELOC_M32R_HI16_SLO 1889ed0d50c3SchristosThis is a 16-bit reloc containing the high 16 bits of an address 1890ed0d50c3Schristosused when the lower 16 bits are treated as signed. 1891ed0d50c3Schristos@end deffn 1892ed0d50c3Schristos@deffn {} BFD_RELOC_M32R_LO16 1893ed0d50c3SchristosThis is a 16-bit reloc containing the lower 16 bits of an address. 1894ed0d50c3Schristos@end deffn 1895ed0d50c3Schristos@deffn {} BFD_RELOC_M32R_SDA16 1896ed0d50c3SchristosThis is a 16-bit reloc containing the small data area offset for use in 1897ed0d50c3Schristosadd3, load, and store instructions. 1898ed0d50c3Schristos@end deffn 1899ed0d50c3Schristos@deffn {} BFD_RELOC_M32R_GOT24 1900ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_26_PLTREL 1901ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_COPY 1902ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GLOB_DAT 1903ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_JMP_SLOT 1904ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_RELATIVE 1905ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOTOFF 1906ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOTOFF_HI_ULO 1907ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOTOFF_HI_SLO 1908ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOTOFF_LO 1909ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOTPC24 1910ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOT16_HI_ULO 1911ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOT16_HI_SLO 1912ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOT16_LO 1913ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOTPC_HI_ULO 1914ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOTPC_HI_SLO 1915ed0d50c3Schristos@deffnx {} BFD_RELOC_M32R_GOTPC_LO 1916ed0d50c3SchristosFor PIC. 1917ed0d50c3Schristos@end deffn 1918ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_20 1919ed0d50c3SchristosNDS32 relocs. 1920ed0d50c3SchristosThis is a 20 bit absolute address. 1921ed0d50c3Schristos@end deffn 1922ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_9_PCREL 1923ed0d50c3SchristosThis is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0. 1924ed0d50c3Schristos@end deffn 1925ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_WORD_9_PCREL 1926ed0d50c3SchristosThis is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0. 1927ed0d50c3Schristos@end deffn 1928ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_15_PCREL 1929ed0d50c3SchristosThis is an 15-bit reloc with the right 1 bit assumed to be 0. 1930ed0d50c3Schristos@end deffn 1931ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_17_PCREL 1932ed0d50c3SchristosThis is an 17-bit reloc with the right 1 bit assumed to be 0. 1933ed0d50c3Schristos@end deffn 1934ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_25_PCREL 1935ed0d50c3SchristosThis is a 25-bit reloc with the right 1 bit assumed to be 0. 1936ed0d50c3Schristos@end deffn 1937ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_HI20 1938ed0d50c3SchristosThis is a 20-bit reloc containing the high 20 bits of an address 1939ed0d50c3Schristosused with the lower 12 bits 1940ed0d50c3Schristos@end deffn 1941ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_LO12S3 1942ed0d50c3SchristosThis is a 12-bit reloc containing the lower 12 bits of an address 1943ed0d50c3Schristosthen shift right by 3. This is used with ldi,sdi... 1944ed0d50c3Schristos@end deffn 1945ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_LO12S2 1946ed0d50c3SchristosThis is a 12-bit reloc containing the lower 12 bits of an address 1947ed0d50c3Schristosthen shift left by 2. This is used with lwi,swi... 1948ed0d50c3Schristos@end deffn 1949ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_LO12S1 1950ed0d50c3SchristosThis is a 12-bit reloc containing the lower 12 bits of an address 1951ed0d50c3Schristosthen shift left by 1. This is used with lhi,shi... 1952ed0d50c3Schristos@end deffn 1953ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_LO12S0 1954ed0d50c3SchristosThis is a 12-bit reloc containing the lower 12 bits of an address 1955ed0d50c3Schristosthen shift left by 0. This is used with lbisbi... 1956ed0d50c3Schristos@end deffn 1957ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_LO12S0_ORI 1958ed0d50c3SchristosThis is a 12-bit reloc containing the lower 12 bits of an address 1959ed0d50c3Schristosthen shift left by 0. This is only used with branch relaxations 1960ed0d50c3Schristos@end deffn 1961ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_SDA15S3 1962ed0d50c3SchristosThis is a 15-bit reloc containing the small data area 18-bit signed offset 1963ed0d50c3Schristosand shift left by 3 for use in ldi, sdi... 1964ed0d50c3Schristos@end deffn 1965ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_SDA15S2 1966ed0d50c3SchristosThis is a 15-bit reloc containing the small data area 17-bit signed offset 1967ed0d50c3Schristosand shift left by 2 for use in lwi, swi... 1968ed0d50c3Schristos@end deffn 1969ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_SDA15S1 1970ed0d50c3SchristosThis is a 15-bit reloc containing the small data area 16-bit signed offset 1971ed0d50c3Schristosand shift left by 1 for use in lhi, shi... 1972ed0d50c3Schristos@end deffn 1973ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_SDA15S0 1974ed0d50c3SchristosThis is a 15-bit reloc containing the small data area 15-bit signed offset 1975ed0d50c3Schristosand shift left by 0 for use in lbi, sbi... 1976ed0d50c3Schristos@end deffn 1977ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_SDA16S3 1978ed0d50c3SchristosThis is a 16-bit reloc containing the small data area 16-bit signed offset 1979ed0d50c3Schristosand shift left by 3 1980ed0d50c3Schristos@end deffn 1981ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_SDA17S2 1982ed0d50c3SchristosThis is a 17-bit reloc containing the small data area 17-bit signed offset 1983ed0d50c3Schristosand shift left by 2 for use in lwi.gp, swi.gp... 1984ed0d50c3Schristos@end deffn 1985ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_SDA18S1 1986ed0d50c3SchristosThis is a 18-bit reloc containing the small data area 18-bit signed offset 1987ed0d50c3Schristosand shift left by 1 for use in lhi.gp, shi.gp... 1988ed0d50c3Schristos@end deffn 1989ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_SDA19S0 1990ed0d50c3SchristosThis is a 19-bit reloc containing the small data area 19-bit signed offset 1991ed0d50c3Schristosand shift left by 0 for use in lbi.gp, sbi.gp... 1992ed0d50c3Schristos@end deffn 1993ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_GOT20 1994ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_9_PLTREL 1995ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_25_PLTREL 1996ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_COPY 1997ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GLOB_DAT 1998ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_JMP_SLOT 1999ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_RELATIVE 2000ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOTOFF 2001ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOTOFF_HI20 2002ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOTOFF_LO12 2003ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOTPC20 2004ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOT_HI20 2005ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOT_LO12 2006ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOTPC_HI20 2007ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOTPC_LO12 2008ed0d50c3Schristosfor PIC 2009ed0d50c3Schristos@end deffn 2010ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_INSN16 2011ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LABEL 2012ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGCALL1 2013ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGCALL2 2014ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGCALL3 2015ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGJUMP1 2016ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGJUMP2 2017ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGJUMP3 2018ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LOADSTORE 2019ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_9_FIXED 2020ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_15_FIXED 2021ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_17_FIXED 2022ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_25_FIXED 2023ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGCALL4 2024ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGCALL5 2025ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGCALL6 2026ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGJUMP4 2027ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGJUMP5 2028ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGJUMP6 2029ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LONGJUMP7 2030ed0d50c3Schristosfor relax 2031ed0d50c3Schristos@end deffn 2032ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_PLTREL_HI20 2033ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_PLTREL_LO12 2034ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_PLT_GOTREL_HI20 2035ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_PLT_GOTREL_LO12 2036ed0d50c3Schristosfor PIC 2037ed0d50c3Schristos@end deffn 2038ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_SDA12S2_DP 2039ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_SDA12S2_SP 2040ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LO12S2_DP 2041ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_LO12S2_SP 2042ed0d50c3Schristosfor floating point 2043ed0d50c3Schristos@end deffn 2044ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_DWARF2_OP1 2045ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_DWARF2_OP2 2046ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_DWARF2_LEB 2047ed0d50c3Schristosfor dwarf2 debug_line. 2048ed0d50c3Schristos@end deffn 2049ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_UPDATE_TA 2050ed0d50c3Schristosfor eliminate 16-bit instructions 2051ed0d50c3Schristos@end deffn 2052ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_PLT_GOTREL_LO20 2053ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_PLT_GOTREL_LO15 2054ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_PLT_GOTREL_LO19 2055ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOT_LO15 2056ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOT_LO19 2057ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOTOFF_LO15 2058ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOTOFF_LO19 2059ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOT15S2 2060ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOT17S2 2061ed0d50c3Schristosfor PIC object relaxation 2062ed0d50c3Schristos@end deffn 2063ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_5 2064ed0d50c3SchristosNDS32 relocs. 2065ed0d50c3SchristosThis is a 5 bit absolute address. 2066ed0d50c3Schristos@end deffn 2067ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_10_UPCREL 2068ed0d50c3SchristosThis is a 10-bit unsigned pc-relative reloc with the right 1 bit assumed to be 0. 2069ed0d50c3Schristos@end deffn 2070ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_SDA_FP7U2_RELA 2071ed0d50c3SchristosIf fp were omitted, fp can used as another gp. 2072ed0d50c3Schristos@end deffn 2073ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_RELAX_ENTRY 2074ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOT_SUFF 2075ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_GOTOFF_SUFF 2076ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_PLT_GOT_SUFF 2077ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_MULCALL_SUFF 2078ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_PTR 2079ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_PTR_COUNT 2080ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_PTR_RESOLVED 2081ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_PLTBLOCK 2082ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_RELAX_REGION_BEGIN 2083ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_RELAX_REGION_END 2084ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_MINUEND 2085ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_SUBTRAHEND 2086ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_DIFF8 2087ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_DIFF16 2088ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_DIFF32 2089ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_DIFF_ULEB128 2090ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_EMPTY 2091ed0d50c3Schristosrelaxation relative relocation types 2092ed0d50c3Schristos@end deffn 2093ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_25_ABS 2094ed0d50c3SchristosThis is a 25 bit absolute address. 2095ed0d50c3Schristos@end deffn 2096ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_DATA 2097ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_TRAN 2098ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_17IFC_PCREL 2099ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_10IFCU_PCREL 2100ed0d50c3SchristosFor ex9 and ifc using. 2101ed0d50c3Schristos@end deffn 2102ed0d50c3Schristos@deffn {} BFD_RELOC_NDS32_TPOFF 2103*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_GOTTPOFF 2104ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_TLS_LE_HI20 2105ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_TLS_LE_LO12 2106ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_TLS_LE_20 2107ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_TLS_LE_15S0 2108ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_TLS_LE_15S1 2109ed0d50c3Schristos@deffnx {} BFD_RELOC_NDS32_TLS_LE_15S2 2110*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_LE_ADD 2111*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_LE_LS 2112*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_IE_HI20 2113*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_IE_LO12 2114*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_IE_LO12S2 2115*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_IEGP_HI20 2116*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_IEGP_LO12 2117*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_IEGP_LO12S2 2118*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_IEGP_LW 2119*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_DESC 2120*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_DESC_HI20 2121*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_DESC_LO12 2122*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_DESC_20 2123*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_DESC_SDA17S2 2124*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_DESC_ADD 2125*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_DESC_FUNC 2126*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_DESC_CALL 2127*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_TLS_DESC_MEM 2128*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_REMOVE 2129*b88e3e88Schristos@deffnx {} BFD_RELOC_NDS32_GROUP 2130ed0d50c3SchristosFor TLS. 2131ed0d50c3Schristos@end deffn 2132*b88e3e88Schristos@deffn {} BFD_RELOC_NDS32_LSI 2133*b88e3e88SchristosFor floating load store relaxation. 2134*b88e3e88Schristos@end deffn 2135ed0d50c3Schristos@deffn {} BFD_RELOC_V850_9_PCREL 2136ed0d50c3SchristosThis is a 9-bit reloc 2137ed0d50c3Schristos@end deffn 2138ed0d50c3Schristos@deffn {} BFD_RELOC_V850_22_PCREL 2139ed0d50c3SchristosThis is a 22-bit reloc 2140ed0d50c3Schristos@end deffn 2141ed0d50c3Schristos@deffn {} BFD_RELOC_V850_SDA_16_16_OFFSET 2142ed0d50c3SchristosThis is a 16 bit offset from the short data area pointer. 2143ed0d50c3Schristos@end deffn 2144ed0d50c3Schristos@deffn {} BFD_RELOC_V850_SDA_15_16_OFFSET 2145ed0d50c3SchristosThis is a 16 bit offset (of which only 15 bits are used) from the 2146ed0d50c3Schristosshort data area pointer. 2147ed0d50c3Schristos@end deffn 2148ed0d50c3Schristos@deffn {} BFD_RELOC_V850_ZDA_16_16_OFFSET 2149ed0d50c3SchristosThis is a 16 bit offset from the zero data area pointer. 2150ed0d50c3Schristos@end deffn 2151ed0d50c3Schristos@deffn {} BFD_RELOC_V850_ZDA_15_16_OFFSET 2152ed0d50c3SchristosThis is a 16 bit offset (of which only 15 bits are used) from the 2153ed0d50c3Schristoszero data area pointer. 2154ed0d50c3Schristos@end deffn 2155ed0d50c3Schristos@deffn {} BFD_RELOC_V850_TDA_6_8_OFFSET 2156ed0d50c3SchristosThis is an 8 bit offset (of which only 6 bits are used) from the 2157ed0d50c3Schristostiny data area pointer. 2158ed0d50c3Schristos@end deffn 2159ed0d50c3Schristos@deffn {} BFD_RELOC_V850_TDA_7_8_OFFSET 2160ed0d50c3SchristosThis is an 8bit offset (of which only 7 bits are used) from the tiny 2161ed0d50c3Schristosdata area pointer. 2162ed0d50c3Schristos@end deffn 2163ed0d50c3Schristos@deffn {} BFD_RELOC_V850_TDA_7_7_OFFSET 2164ed0d50c3SchristosThis is a 7 bit offset from the tiny data area pointer. 2165ed0d50c3Schristos@end deffn 2166ed0d50c3Schristos@deffn {} BFD_RELOC_V850_TDA_16_16_OFFSET 2167ed0d50c3SchristosThis is a 16 bit offset from the tiny data area pointer. 2168ed0d50c3Schristos@end deffn 2169ed0d50c3Schristos@deffn {} BFD_RELOC_V850_TDA_4_5_OFFSET 2170ed0d50c3SchristosThis is a 5 bit offset (of which only 4 bits are used) from the tiny 2171ed0d50c3Schristosdata area pointer. 2172ed0d50c3Schristos@end deffn 2173ed0d50c3Schristos@deffn {} BFD_RELOC_V850_TDA_4_4_OFFSET 2174ed0d50c3SchristosThis is a 4 bit offset from the tiny data area pointer. 2175ed0d50c3Schristos@end deffn 2176ed0d50c3Schristos@deffn {} BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET 2177ed0d50c3SchristosThis is a 16 bit offset from the short data area pointer, with the 2178ed0d50c3Schristosbits placed non-contiguously in the instruction. 2179ed0d50c3Schristos@end deffn 2180ed0d50c3Schristos@deffn {} BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET 2181ed0d50c3SchristosThis is a 16 bit offset from the zero data area pointer, with the 2182ed0d50c3Schristosbits placed non-contiguously in the instruction. 2183ed0d50c3Schristos@end deffn 2184ed0d50c3Schristos@deffn {} BFD_RELOC_V850_CALLT_6_7_OFFSET 2185ed0d50c3SchristosThis is a 6 bit offset from the call table base pointer. 2186ed0d50c3Schristos@end deffn 2187ed0d50c3Schristos@deffn {} BFD_RELOC_V850_CALLT_16_16_OFFSET 2188ed0d50c3SchristosThis is a 16 bit offset from the call table base pointer. 2189ed0d50c3Schristos@end deffn 2190ed0d50c3Schristos@deffn {} BFD_RELOC_V850_LONGCALL 2191ed0d50c3SchristosUsed for relaxing indirect function calls. 2192ed0d50c3Schristos@end deffn 2193ed0d50c3Schristos@deffn {} BFD_RELOC_V850_LONGJUMP 2194ed0d50c3SchristosUsed for relaxing indirect jumps. 2195ed0d50c3Schristos@end deffn 2196ed0d50c3Schristos@deffn {} BFD_RELOC_V850_ALIGN 2197ed0d50c3SchristosUsed to maintain alignment whilst relaxing. 2198ed0d50c3Schristos@end deffn 2199ed0d50c3Schristos@deffn {} BFD_RELOC_V850_LO16_SPLIT_OFFSET 2200ed0d50c3SchristosThis is a variation of BFD_RELOC_LO16 that can be used in v850e ld.bu 2201ed0d50c3Schristosinstructions. 2202ed0d50c3Schristos@end deffn 2203ed0d50c3Schristos@deffn {} BFD_RELOC_V850_16_PCREL 2204ed0d50c3SchristosThis is a 16-bit reloc. 2205ed0d50c3Schristos@end deffn 2206ed0d50c3Schristos@deffn {} BFD_RELOC_V850_17_PCREL 2207ed0d50c3SchristosThis is a 17-bit reloc. 2208ed0d50c3Schristos@end deffn 2209ed0d50c3Schristos@deffn {} BFD_RELOC_V850_23 2210ed0d50c3SchristosThis is a 23-bit reloc. 2211ed0d50c3Schristos@end deffn 2212ed0d50c3Schristos@deffn {} BFD_RELOC_V850_32_PCREL 2213ed0d50c3SchristosThis is a 32-bit reloc. 2214ed0d50c3Schristos@end deffn 2215ed0d50c3Schristos@deffn {} BFD_RELOC_V850_32_ABS 2216ed0d50c3SchristosThis is a 32-bit reloc. 2217ed0d50c3Schristos@end deffn 2218ed0d50c3Schristos@deffn {} BFD_RELOC_V850_16_SPLIT_OFFSET 2219ed0d50c3SchristosThis is a 16-bit reloc. 2220ed0d50c3Schristos@end deffn 2221ed0d50c3Schristos@deffn {} BFD_RELOC_V850_16_S1 2222ed0d50c3SchristosThis is a 16-bit reloc. 2223ed0d50c3Schristos@end deffn 2224ed0d50c3Schristos@deffn {} BFD_RELOC_V850_LO16_S1 2225ed0d50c3SchristosLow 16 bits. 16 bit shifted by 1. 2226ed0d50c3Schristos@end deffn 2227ed0d50c3Schristos@deffn {} BFD_RELOC_V850_CALLT_15_16_OFFSET 2228ed0d50c3SchristosThis is a 16 bit offset from the call table base pointer. 2229ed0d50c3Schristos@end deffn 2230ed0d50c3Schristos@deffn {} BFD_RELOC_V850_32_GOTPCREL 2231ed0d50c3SchristosDSO relocations. 2232ed0d50c3Schristos@end deffn 2233ed0d50c3Schristos@deffn {} BFD_RELOC_V850_16_GOT 2234ed0d50c3SchristosDSO relocations. 2235ed0d50c3Schristos@end deffn 2236ed0d50c3Schristos@deffn {} BFD_RELOC_V850_32_GOT 2237ed0d50c3SchristosDSO relocations. 2238ed0d50c3Schristos@end deffn 2239ed0d50c3Schristos@deffn {} BFD_RELOC_V850_22_PLT_PCREL 2240ed0d50c3SchristosDSO relocations. 2241ed0d50c3Schristos@end deffn 2242ed0d50c3Schristos@deffn {} BFD_RELOC_V850_32_PLT_PCREL 2243ed0d50c3SchristosDSO relocations. 2244ed0d50c3Schristos@end deffn 2245ed0d50c3Schristos@deffn {} BFD_RELOC_V850_COPY 2246ed0d50c3SchristosDSO relocations. 2247ed0d50c3Schristos@end deffn 2248ed0d50c3Schristos@deffn {} BFD_RELOC_V850_GLOB_DAT 2249ed0d50c3SchristosDSO relocations. 2250ed0d50c3Schristos@end deffn 2251ed0d50c3Schristos@deffn {} BFD_RELOC_V850_JMP_SLOT 2252ed0d50c3SchristosDSO relocations. 2253ed0d50c3Schristos@end deffn 2254ed0d50c3Schristos@deffn {} BFD_RELOC_V850_RELATIVE 2255ed0d50c3SchristosDSO relocations. 2256ed0d50c3Schristos@end deffn 2257ed0d50c3Schristos@deffn {} BFD_RELOC_V850_16_GOTOFF 2258ed0d50c3SchristosDSO relocations. 2259ed0d50c3Schristos@end deffn 2260ed0d50c3Schristos@deffn {} BFD_RELOC_V850_32_GOTOFF 2261ed0d50c3SchristosDSO relocations. 2262ed0d50c3Schristos@end deffn 2263ed0d50c3Schristos@deffn {} BFD_RELOC_V850_CODE 2264ed0d50c3Schristosstart code. 2265ed0d50c3Schristos@end deffn 2266ed0d50c3Schristos@deffn {} BFD_RELOC_V850_DATA 2267ed0d50c3Schristosstart data in text. 2268ed0d50c3Schristos@end deffn 2269ed0d50c3Schristos@deffn {} BFD_RELOC_TIC30_LDP 2270ed0d50c3SchristosThis is a 8bit DP reloc for the tms320c30, where the most 2271ed0d50c3Schristossignificant 8 bits of a 24 bit word are placed into the least 2272ed0d50c3Schristossignificant 8 bits of the opcode. 2273ed0d50c3Schristos@end deffn 2274ed0d50c3Schristos@deffn {} BFD_RELOC_TIC54X_PARTLS7 2275ed0d50c3SchristosThis is a 7bit reloc for the tms320c54x, where the least 2276ed0d50c3Schristossignificant 7 bits of a 16 bit word are placed into the least 2277ed0d50c3Schristossignificant 7 bits of the opcode. 2278ed0d50c3Schristos@end deffn 2279ed0d50c3Schristos@deffn {} BFD_RELOC_TIC54X_PARTMS9 2280ed0d50c3SchristosThis is a 9bit DP reloc for the tms320c54x, where the most 2281ed0d50c3Schristossignificant 9 bits of a 16 bit word are placed into the least 2282ed0d50c3Schristossignificant 9 bits of the opcode. 2283ed0d50c3Schristos@end deffn 2284ed0d50c3Schristos@deffn {} BFD_RELOC_TIC54X_23 2285ed0d50c3SchristosThis is an extended address 23-bit reloc for the tms320c54x. 2286ed0d50c3Schristos@end deffn 2287ed0d50c3Schristos@deffn {} BFD_RELOC_TIC54X_16_OF_23 2288ed0d50c3SchristosThis is a 16-bit reloc for the tms320c54x, where the least 2289ed0d50c3Schristossignificant 16 bits of a 23-bit extended address are placed into 2290ed0d50c3Schristosthe opcode. 2291ed0d50c3Schristos@end deffn 2292ed0d50c3Schristos@deffn {} BFD_RELOC_TIC54X_MS7_OF_23 2293ed0d50c3SchristosThis is a reloc for the tms320c54x, where the most 2294ed0d50c3Schristossignificant 7 bits of a 23-bit extended address are placed into 2295ed0d50c3Schristosthe opcode. 2296ed0d50c3Schristos@end deffn 2297ed0d50c3Schristos@deffn {} BFD_RELOC_C6000_PCR_S21 2298ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_PCR_S12 2299ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_PCR_S10 2300ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_PCR_S7 2301ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_ABS_S16 2302ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_ABS_L16 2303ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_ABS_H16 2304ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_U15_B 2305ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_U15_H 2306ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_U15_W 2307ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_S16 2308ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_L16_B 2309ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_L16_H 2310ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_L16_W 2311ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_H16_B 2312ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_H16_H 2313ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_H16_W 2314ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_GOT_U15_W 2315ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_GOT_L16_W 2316ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_SBR_GOT_H16_W 2317ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_DSBT_INDEX 2318ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_PREL31 2319ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_COPY 2320ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_JUMP_SLOT 2321ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_EHTYPE 2322ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_PCR_H16 2323ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_PCR_L16 2324ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_ALIGN 2325ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_FPHEAD 2326ed0d50c3Schristos@deffnx {} BFD_RELOC_C6000_NOCMP 2327ed0d50c3SchristosTMS320C6000 relocations. 2328ed0d50c3Schristos@end deffn 2329ed0d50c3Schristos@deffn {} BFD_RELOC_FR30_48 2330ed0d50c3SchristosThis is a 48 bit reloc for the FR30 that stores 32 bits. 2331ed0d50c3Schristos@end deffn 2332ed0d50c3Schristos@deffn {} BFD_RELOC_FR30_20 2333ed0d50c3SchristosThis is a 32 bit reloc for the FR30 that stores 20 bits split up into 2334ed0d50c3Schristostwo sections. 2335ed0d50c3Schristos@end deffn 2336ed0d50c3Schristos@deffn {} BFD_RELOC_FR30_6_IN_4 2337ed0d50c3SchristosThis is a 16 bit reloc for the FR30 that stores a 6 bit word offset in 2338ed0d50c3Schristos4 bits. 2339ed0d50c3Schristos@end deffn 2340ed0d50c3Schristos@deffn {} BFD_RELOC_FR30_8_IN_8 2341ed0d50c3SchristosThis is a 16 bit reloc for the FR30 that stores an 8 bit byte offset 2342ed0d50c3Schristosinto 8 bits. 2343ed0d50c3Schristos@end deffn 2344ed0d50c3Schristos@deffn {} BFD_RELOC_FR30_9_IN_8 2345ed0d50c3SchristosThis is a 16 bit reloc for the FR30 that stores a 9 bit short offset 2346ed0d50c3Schristosinto 8 bits. 2347ed0d50c3Schristos@end deffn 2348ed0d50c3Schristos@deffn {} BFD_RELOC_FR30_10_IN_8 2349ed0d50c3SchristosThis is a 16 bit reloc for the FR30 that stores a 10 bit word offset 2350ed0d50c3Schristosinto 8 bits. 2351ed0d50c3Schristos@end deffn 2352ed0d50c3Schristos@deffn {} BFD_RELOC_FR30_9_PCREL 2353ed0d50c3SchristosThis is a 16 bit reloc for the FR30 that stores a 9 bit pc relative 2354ed0d50c3Schristosshort offset into 8 bits. 2355ed0d50c3Schristos@end deffn 2356ed0d50c3Schristos@deffn {} BFD_RELOC_FR30_12_PCREL 2357ed0d50c3SchristosThis is a 16 bit reloc for the FR30 that stores a 12 bit pc relative 2358ed0d50c3Schristosshort offset into 11 bits. 2359ed0d50c3Schristos@end deffn 2360ed0d50c3Schristos@deffn {} BFD_RELOC_MCORE_PCREL_IMM8BY4 2361ed0d50c3Schristos@deffnx {} BFD_RELOC_MCORE_PCREL_IMM11BY2 2362ed0d50c3Schristos@deffnx {} BFD_RELOC_MCORE_PCREL_IMM4BY2 2363ed0d50c3Schristos@deffnx {} BFD_RELOC_MCORE_PCREL_32 2364ed0d50c3Schristos@deffnx {} BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 2365ed0d50c3Schristos@deffnx {} BFD_RELOC_MCORE_RVA 2366ed0d50c3SchristosMotorola Mcore relocations. 2367ed0d50c3Schristos@end deffn 2368ed0d50c3Schristos@deffn {} BFD_RELOC_MEP_8 2369ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_16 2370ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_32 2371ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_PCREL8A2 2372ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_PCREL12A2 2373ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_PCREL17A2 2374ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_PCREL24A2 2375ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_PCABS24A2 2376ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_LOW16 2377ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_HI16U 2378ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_HI16S 2379ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_GPREL 2380ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_TPREL 2381ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_TPREL7 2382ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_TPREL7A2 2383ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_TPREL7A4 2384ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_UIMM24 2385ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_ADDR24A4 2386ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_GNU_VTINHERIT 2387ed0d50c3Schristos@deffnx {} BFD_RELOC_MEP_GNU_VTENTRY 2388ed0d50c3SchristosToshiba Media Processor Relocations. 2389ed0d50c3Schristos@end deffn 2390ed0d50c3Schristos@deffn {} BFD_RELOC_METAG_HIADDR16 2391ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_LOADDR16 2392ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_RELBRANCH 2393ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_GETSETOFF 2394ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_HIOG 2395ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_LOOG 2396ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_REL8 2397ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_REL16 2398ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_HI16_GOTOFF 2399ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_LO16_GOTOFF 2400ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_GETSET_GOTOFF 2401ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_GETSET_GOT 2402ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_HI16_GOTPC 2403ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_LO16_GOTPC 2404ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_HI16_PLT 2405ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_LO16_PLT 2406ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_RELBRANCH_PLT 2407ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_GOTOFF 2408ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_PLT 2409ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_COPY 2410ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_JMP_SLOT 2411ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_RELATIVE 2412ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_GLOB_DAT 2413ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_GD 2414ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_LDM 2415ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_LDO_HI16 2416ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_LDO_LO16 2417ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_LDO 2418ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_IE 2419ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_IENONPIC 2420ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_IENONPIC_HI16 2421ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_IENONPIC_LO16 2422ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_TPOFF 2423ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_DTPMOD 2424ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_DTPOFF 2425ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_LE 2426ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_LE_HI16 2427ed0d50c3Schristos@deffnx {} BFD_RELOC_METAG_TLS_LE_LO16 2428ed0d50c3SchristosImagination Technologies Meta relocations. 2429ed0d50c3Schristos@end deffn 2430ed0d50c3Schristos@deffn {} BFD_RELOC_MMIX_GETA 2431ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_GETA_1 2432ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_GETA_2 2433ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_GETA_3 2434ed0d50c3SchristosThese are relocations for the GETA instruction. 2435ed0d50c3Schristos@end deffn 2436ed0d50c3Schristos@deffn {} BFD_RELOC_MMIX_CBRANCH 2437ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_CBRANCH_J 2438ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_CBRANCH_1 2439ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_CBRANCH_2 2440ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_CBRANCH_3 2441ed0d50c3SchristosThese are relocations for a conditional branch instruction. 2442ed0d50c3Schristos@end deffn 2443ed0d50c3Schristos@deffn {} BFD_RELOC_MMIX_PUSHJ 2444ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_PUSHJ_1 2445ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_PUSHJ_2 2446ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_PUSHJ_3 2447ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_PUSHJ_STUBBABLE 2448ed0d50c3SchristosThese are relocations for the PUSHJ instruction. 2449ed0d50c3Schristos@end deffn 2450ed0d50c3Schristos@deffn {} BFD_RELOC_MMIX_JMP 2451ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_JMP_1 2452ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_JMP_2 2453ed0d50c3Schristos@deffnx {} BFD_RELOC_MMIX_JMP_3 2454ed0d50c3SchristosThese are relocations for the JMP instruction. 2455ed0d50c3Schristos@end deffn 2456ed0d50c3Schristos@deffn {} BFD_RELOC_MMIX_ADDR19 2457ed0d50c3SchristosThis is a relocation for a relative address as in a GETA instruction or 2458ed0d50c3Schristosa branch. 2459ed0d50c3Schristos@end deffn 2460ed0d50c3Schristos@deffn {} BFD_RELOC_MMIX_ADDR27 2461ed0d50c3SchristosThis is a relocation for a relative address as in a JMP instruction. 2462ed0d50c3Schristos@end deffn 2463ed0d50c3Schristos@deffn {} BFD_RELOC_MMIX_REG_OR_BYTE 2464ed0d50c3SchristosThis is a relocation for an instruction field that may be a general 2465ed0d50c3Schristosregister or a value 0..255. 2466ed0d50c3Schristos@end deffn 2467ed0d50c3Schristos@deffn {} BFD_RELOC_MMIX_REG 2468ed0d50c3SchristosThis is a relocation for an instruction field that may be a general 2469ed0d50c3Schristosregister. 2470ed0d50c3Schristos@end deffn 2471ed0d50c3Schristos@deffn {} BFD_RELOC_MMIX_BASE_PLUS_OFFSET 2472ed0d50c3SchristosThis is a relocation for two instruction fields holding a register and 2473ed0d50c3Schristosan offset, the equivalent of the relocation. 2474ed0d50c3Schristos@end deffn 2475ed0d50c3Schristos@deffn {} BFD_RELOC_MMIX_LOCAL 2476ed0d50c3SchristosThis relocation is an assertion that the expression is not allocated as 2477ed0d50c3Schristosa global register. It does not modify contents. 2478ed0d50c3Schristos@end deffn 2479ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_7_PCREL 2480ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 8 bit pc relative 2481ed0d50c3Schristosshort offset into 7 bits. 2482ed0d50c3Schristos@end deffn 2483ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_13_PCREL 2484ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 13 bit pc relative 2485ed0d50c3Schristosshort offset into 12 bits. 2486ed0d50c3Schristos@end deffn 2487ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_16_PM 2488ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 17 bit value (usually 2489ed0d50c3Schristosprogram memory address) into 16 bits. 2490ed0d50c3Schristos@end deffn 2491ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_LO8_LDI 2492ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 8 bit value (usually 2493ed0d50c3Schristosdata memory address) into 8 bit immediate value of LDI insn. 2494ed0d50c3Schristos@end deffn 2495ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_HI8_LDI 2496ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit 2497ed0d50c3Schristosof data memory address) into 8 bit immediate value of LDI insn. 2498ed0d50c3Schristos@end deffn 2499ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_HH8_LDI 2500ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit 2501ed0d50c3Schristosof program memory address) into 8 bit immediate value of LDI insn. 2502ed0d50c3Schristos@end deffn 2503ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_MS8_LDI 2504ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit 2505ed0d50c3Schristosof 32 bit value) into 8 bit immediate value of LDI insn. 2506ed0d50c3Schristos@end deffn 2507ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_LO8_LDI_NEG 2508ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores negated 8 bit value 2509ed0d50c3Schristos(usually data memory address) into 8 bit immediate value of SUBI insn. 2510ed0d50c3Schristos@end deffn 2511ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_HI8_LDI_NEG 2512ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores negated 8 bit value 2513ed0d50c3Schristos(high 8 bit of data memory address) into 8 bit immediate value of 2514ed0d50c3SchristosSUBI insn. 2515ed0d50c3Schristos@end deffn 2516ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_HH8_LDI_NEG 2517ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores negated 8 bit value 2518ed0d50c3Schristos(most high 8 bit of program memory address) into 8 bit immediate value 2519ed0d50c3Schristosof LDI or SUBI insn. 2520ed0d50c3Schristos@end deffn 2521ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_MS8_LDI_NEG 2522ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores negated 8 bit value (msb 2523ed0d50c3Schristosof 32 bit value) into 8 bit immediate value of LDI insn. 2524ed0d50c3Schristos@end deffn 2525ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_LO8_LDI_PM 2526ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 8 bit value (usually 2527ed0d50c3Schristoscommand address) into 8 bit immediate value of LDI insn. 2528ed0d50c3Schristos@end deffn 2529ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_LO8_LDI_GS 2530ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 8 bit value 2531ed0d50c3Schristos(command address) into 8 bit immediate value of LDI insn. If the address 2532ed0d50c3Schristosis beyond the 128k boundary, the linker inserts a jump stub for this reloc 2533ed0d50c3Schristosin the lower 128k. 2534ed0d50c3Schristos@end deffn 2535ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_HI8_LDI_PM 2536ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit 2537ed0d50c3Schristosof command address) into 8 bit immediate value of LDI insn. 2538ed0d50c3Schristos@end deffn 2539ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_HI8_LDI_GS 2540ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 8 bit value (high 8 bit 2541ed0d50c3Schristosof command address) into 8 bit immediate value of LDI insn. If the address 2542ed0d50c3Schristosis beyond the 128k boundary, the linker inserts a jump stub for this reloc 2543ed0d50c3Schristosbelow 128k. 2544ed0d50c3Schristos@end deffn 2545ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_HH8_LDI_PM 2546ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores 8 bit value (most high 8 bit 2547ed0d50c3Schristosof command address) into 8 bit immediate value of LDI insn. 2548ed0d50c3Schristos@end deffn 2549ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_LO8_LDI_PM_NEG 2550ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores negated 8 bit value 2551ed0d50c3Schristos(usually command address) into 8 bit immediate value of SUBI insn. 2552ed0d50c3Schristos@end deffn 2553ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_HI8_LDI_PM_NEG 2554ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores negated 8 bit value 2555ed0d50c3Schristos(high 8 bit of 16 bit command address) into 8 bit immediate value 2556ed0d50c3Schristosof SUBI insn. 2557ed0d50c3Schristos@end deffn 2558ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_HH8_LDI_PM_NEG 2559ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores negated 8 bit value 2560ed0d50c3Schristos(high 6 bit of 22 bit command address) into 8 bit immediate 2561ed0d50c3Schristosvalue of SUBI insn. 2562ed0d50c3Schristos@end deffn 2563ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_CALL 2564ed0d50c3SchristosThis is a 32 bit reloc for the AVR that stores 23 bit value 2565ed0d50c3Schristosinto 22 bits. 2566ed0d50c3Schristos@end deffn 2567ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_LDI 2568ed0d50c3SchristosThis is a 16 bit reloc for the AVR that stores all needed bits 2569ed0d50c3Schristosfor absolute addressing with ldi with overflow check to linktime 2570ed0d50c3Schristos@end deffn 2571ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_6 2572ed0d50c3SchristosThis is a 6 bit reloc for the AVR that stores offset for ldd/std 2573ed0d50c3Schristosinstructions 2574ed0d50c3Schristos@end deffn 2575ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_6_ADIW 2576ed0d50c3SchristosThis is a 6 bit reloc for the AVR that stores offset for adiw/sbiw 2577ed0d50c3Schristosinstructions 2578ed0d50c3Schristos@end deffn 2579ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_8_LO 2580ed0d50c3SchristosThis is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol 2581ed0d50c3Schristosin .byte lo8(symbol) 2582ed0d50c3Schristos@end deffn 2583ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_8_HI 2584ed0d50c3SchristosThis is a 8 bit reloc for the AVR that stores bits 8..15 of a symbol 2585ed0d50c3Schristosin .byte hi8(symbol) 2586ed0d50c3Schristos@end deffn 2587ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_8_HLO 2588ed0d50c3SchristosThis is a 8 bit reloc for the AVR that stores bits 16..23 of a symbol 2589ed0d50c3Schristosin .byte hlo8(symbol) 2590ed0d50c3Schristos@end deffn 2591ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_DIFF8 2592ed0d50c3Schristos@deffnx {} BFD_RELOC_AVR_DIFF16 2593ed0d50c3Schristos@deffnx {} BFD_RELOC_AVR_DIFF32 2594ed0d50c3SchristosAVR relocations to mark the difference of two local symbols. 2595ed0d50c3SchristosThese are only needed to support linker relaxation and can be ignored 2596ed0d50c3Schristoswhen not relaxing. The field is set to the value of the difference 2597ed0d50c3Schristosassuming no relaxation. The relocation encodes the position of the 2598ed0d50c3Schristossecond symbol so the linker can determine whether to adjust the field 2599ed0d50c3Schristosvalue. 2600ed0d50c3Schristos@end deffn 2601ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_LDS_STS_16 2602ed0d50c3SchristosThis is a 7 bit reloc for the AVR that stores SRAM address for 16bit 2603ed0d50c3Schristoslds and sts instructions supported only tiny core. 2604ed0d50c3Schristos@end deffn 2605ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_PORT6 2606ed0d50c3SchristosThis is a 6 bit reloc for the AVR that stores an I/O register 2607ed0d50c3Schristosnumber for the IN and OUT instructions 2608ed0d50c3Schristos@end deffn 2609ed0d50c3Schristos@deffn {} BFD_RELOC_AVR_PORT5 2610ed0d50c3SchristosThis is a 5 bit reloc for the AVR that stores an I/O register 2611ed0d50c3Schristosnumber for the SBIC, SBIS, SBI and CBI instructions 2612ed0d50c3Schristos@end deffn 261306324dcfSchristos@deffn {} BFD_RELOC_RISCV_HI20 261406324dcfSchristos@deffnx {} BFD_RELOC_RISCV_PCREL_HI20 261506324dcfSchristos@deffnx {} BFD_RELOC_RISCV_PCREL_LO12_I 261606324dcfSchristos@deffnx {} BFD_RELOC_RISCV_PCREL_LO12_S 261706324dcfSchristos@deffnx {} BFD_RELOC_RISCV_LO12_I 261806324dcfSchristos@deffnx {} BFD_RELOC_RISCV_LO12_S 261906324dcfSchristos@deffnx {} BFD_RELOC_RISCV_GPREL12_I 262006324dcfSchristos@deffnx {} BFD_RELOC_RISCV_GPREL12_S 262106324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TPREL_HI20 262206324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TPREL_LO12_I 262306324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TPREL_LO12_S 262406324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TPREL_ADD 262506324dcfSchristos@deffnx {} BFD_RELOC_RISCV_CALL 262606324dcfSchristos@deffnx {} BFD_RELOC_RISCV_CALL_PLT 262706324dcfSchristos@deffnx {} BFD_RELOC_RISCV_ADD8 262806324dcfSchristos@deffnx {} BFD_RELOC_RISCV_ADD16 262906324dcfSchristos@deffnx {} BFD_RELOC_RISCV_ADD32 263006324dcfSchristos@deffnx {} BFD_RELOC_RISCV_ADD64 263106324dcfSchristos@deffnx {} BFD_RELOC_RISCV_SUB8 263206324dcfSchristos@deffnx {} BFD_RELOC_RISCV_SUB16 263306324dcfSchristos@deffnx {} BFD_RELOC_RISCV_SUB32 263406324dcfSchristos@deffnx {} BFD_RELOC_RISCV_SUB64 263506324dcfSchristos@deffnx {} BFD_RELOC_RISCV_GOT_HI20 263606324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TLS_GOT_HI20 263706324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TLS_GD_HI20 263806324dcfSchristos@deffnx {} BFD_RELOC_RISCV_JMP 263906324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TLS_DTPMOD32 264006324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TLS_DTPREL32 264106324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TLS_DTPMOD64 264206324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TLS_DTPREL64 264306324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TLS_TPREL32 264406324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TLS_TPREL64 264506324dcfSchristos@deffnx {} BFD_RELOC_RISCV_ALIGN 264606324dcfSchristos@deffnx {} BFD_RELOC_RISCV_RVC_BRANCH 264706324dcfSchristos@deffnx {} BFD_RELOC_RISCV_RVC_JUMP 264806324dcfSchristos@deffnx {} BFD_RELOC_RISCV_RVC_LUI 264906324dcfSchristos@deffnx {} BFD_RELOC_RISCV_GPREL_I 265006324dcfSchristos@deffnx {} BFD_RELOC_RISCV_GPREL_S 265106324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TPREL_I 265206324dcfSchristos@deffnx {} BFD_RELOC_RISCV_TPREL_S 265306324dcfSchristos@deffnx {} BFD_RELOC_RISCV_RELAX 265406324dcfSchristos@deffnx {} BFD_RELOC_RISCV_CFA 265506324dcfSchristos@deffnx {} BFD_RELOC_RISCV_SUB6 265606324dcfSchristos@deffnx {} BFD_RELOC_RISCV_SET6 265706324dcfSchristos@deffnx {} BFD_RELOC_RISCV_SET8 265806324dcfSchristos@deffnx {} BFD_RELOC_RISCV_SET16 265906324dcfSchristos@deffnx {} BFD_RELOC_RISCV_SET32 266006324dcfSchristos@deffnx {} BFD_RELOC_RISCV_32_PCREL 266106324dcfSchristosRISC-V relocations. 266206324dcfSchristos@end deffn 2663ed0d50c3Schristos@deffn {} BFD_RELOC_RL78_NEG8 2664ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_NEG16 2665ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_NEG24 2666ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_NEG32 2667ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_16_OP 2668ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_24_OP 2669ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_32_OP 2670ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_8U 2671ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_16U 2672ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_24U 2673ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_DIR3U_PCREL 2674ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_DIFF 2675ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_GPRELB 2676ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_GPRELW 2677ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_GPRELL 2678ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_SYM 2679ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_OP_SUBTRACT 2680ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_OP_NEG 2681ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_OP_AND 2682ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_OP_SHRA 2683ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_ABS8 2684ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_ABS16 2685ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_ABS16_REV 2686ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_ABS32 2687ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_ABS32_REV 2688ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_ABS16U 2689ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_ABS16UW 2690ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_ABS16UL 2691ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_RELAX 2692ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_HI16 2693ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_HI8 2694ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_LO16 2695ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_CODE 2696ed0d50c3Schristos@deffnx {} BFD_RELOC_RL78_SADDR 2697ed0d50c3SchristosRenesas RL78 Relocations. 2698ed0d50c3Schristos@end deffn 2699ed0d50c3Schristos@deffn {} BFD_RELOC_RX_NEG8 2700ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_NEG16 2701ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_NEG24 2702ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_NEG32 2703ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_16_OP 2704ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_24_OP 2705ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_32_OP 2706ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_8U 2707ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_16U 2708ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_24U 2709ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_DIR3U_PCREL 2710ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_DIFF 2711ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_GPRELB 2712ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_GPRELW 2713ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_GPRELL 2714ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_SYM 2715ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_OP_SUBTRACT 2716ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_OP_NEG 2717ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_ABS8 2718ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_ABS16 2719ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_ABS16_REV 2720ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_ABS32 2721ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_ABS32_REV 2722ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_ABS16U 2723ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_ABS16UW 2724ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_ABS16UL 2725ed0d50c3Schristos@deffnx {} BFD_RELOC_RX_RELAX 2726ed0d50c3SchristosRenesas RX Relocations. 2727ed0d50c3Schristos@end deffn 2728ed0d50c3Schristos@deffn {} BFD_RELOC_390_12 2729ed0d50c3SchristosDirect 12 bit. 2730ed0d50c3Schristos@end deffn 2731ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOT12 2732ed0d50c3Schristos12 bit GOT offset. 2733ed0d50c3Schristos@end deffn 2734ed0d50c3Schristos@deffn {} BFD_RELOC_390_PLT32 2735ed0d50c3Schristos32 bit PC relative PLT address. 2736ed0d50c3Schristos@end deffn 2737ed0d50c3Schristos@deffn {} BFD_RELOC_390_COPY 2738ed0d50c3SchristosCopy symbol at runtime. 2739ed0d50c3Schristos@end deffn 2740ed0d50c3Schristos@deffn {} BFD_RELOC_390_GLOB_DAT 2741ed0d50c3SchristosCreate GOT entry. 2742ed0d50c3Schristos@end deffn 2743ed0d50c3Schristos@deffn {} BFD_RELOC_390_JMP_SLOT 2744ed0d50c3SchristosCreate PLT entry. 2745ed0d50c3Schristos@end deffn 2746ed0d50c3Schristos@deffn {} BFD_RELOC_390_RELATIVE 2747ed0d50c3SchristosAdjust by program base. 2748ed0d50c3Schristos@end deffn 2749ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOTPC 2750ed0d50c3Schristos32 bit PC relative offset to GOT. 2751ed0d50c3Schristos@end deffn 2752ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOT16 2753ed0d50c3Schristos16 bit GOT offset. 2754ed0d50c3Schristos@end deffn 2755ed0d50c3Schristos@deffn {} BFD_RELOC_390_PC12DBL 2756ed0d50c3SchristosPC relative 12 bit shifted by 1. 2757ed0d50c3Schristos@end deffn 2758ed0d50c3Schristos@deffn {} BFD_RELOC_390_PLT12DBL 2759ed0d50c3Schristos12 bit PC rel. PLT shifted by 1. 2760ed0d50c3Schristos@end deffn 2761ed0d50c3Schristos@deffn {} BFD_RELOC_390_PC16DBL 2762ed0d50c3SchristosPC relative 16 bit shifted by 1. 2763ed0d50c3Schristos@end deffn 2764ed0d50c3Schristos@deffn {} BFD_RELOC_390_PLT16DBL 2765ed0d50c3Schristos16 bit PC rel. PLT shifted by 1. 2766ed0d50c3Schristos@end deffn 2767ed0d50c3Schristos@deffn {} BFD_RELOC_390_PC24DBL 2768ed0d50c3SchristosPC relative 24 bit shifted by 1. 2769ed0d50c3Schristos@end deffn 2770ed0d50c3Schristos@deffn {} BFD_RELOC_390_PLT24DBL 2771ed0d50c3Schristos24 bit PC rel. PLT shifted by 1. 2772ed0d50c3Schristos@end deffn 2773ed0d50c3Schristos@deffn {} BFD_RELOC_390_PC32DBL 2774ed0d50c3SchristosPC relative 32 bit shifted by 1. 2775ed0d50c3Schristos@end deffn 2776ed0d50c3Schristos@deffn {} BFD_RELOC_390_PLT32DBL 2777ed0d50c3Schristos32 bit PC rel. PLT shifted by 1. 2778ed0d50c3Schristos@end deffn 2779ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOTPCDBL 2780ed0d50c3Schristos32 bit PC rel. GOT shifted by 1. 2781ed0d50c3Schristos@end deffn 2782ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOT64 2783ed0d50c3Schristos64 bit GOT offset. 2784ed0d50c3Schristos@end deffn 2785ed0d50c3Schristos@deffn {} BFD_RELOC_390_PLT64 2786ed0d50c3Schristos64 bit PC relative PLT address. 2787ed0d50c3Schristos@end deffn 2788ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOTENT 2789ed0d50c3Schristos32 bit rel. offset to GOT entry. 2790ed0d50c3Schristos@end deffn 2791ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOTOFF64 2792ed0d50c3Schristos64 bit offset to GOT. 2793ed0d50c3Schristos@end deffn 2794ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOTPLT12 2795ed0d50c3Schristos12-bit offset to symbol-entry within GOT, with PLT handling. 2796ed0d50c3Schristos@end deffn 2797ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOTPLT16 2798ed0d50c3Schristos16-bit offset to symbol-entry within GOT, with PLT handling. 2799ed0d50c3Schristos@end deffn 2800ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOTPLT32 2801ed0d50c3Schristos32-bit offset to symbol-entry within GOT, with PLT handling. 2802ed0d50c3Schristos@end deffn 2803ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOTPLT64 2804ed0d50c3Schristos64-bit offset to symbol-entry within GOT, with PLT handling. 2805ed0d50c3Schristos@end deffn 2806ed0d50c3Schristos@deffn {} BFD_RELOC_390_GOTPLTENT 2807ed0d50c3Schristos32-bit rel. offset to symbol-entry within GOT, with PLT handling. 2808ed0d50c3Schristos@end deffn 2809ed0d50c3Schristos@deffn {} BFD_RELOC_390_PLTOFF16 2810ed0d50c3Schristos16-bit rel. offset from the GOT to a PLT entry. 2811ed0d50c3Schristos@end deffn 2812ed0d50c3Schristos@deffn {} BFD_RELOC_390_PLTOFF32 2813ed0d50c3Schristos32-bit rel. offset from the GOT to a PLT entry. 2814ed0d50c3Schristos@end deffn 2815ed0d50c3Schristos@deffn {} BFD_RELOC_390_PLTOFF64 2816ed0d50c3Schristos64-bit rel. offset from the GOT to a PLT entry. 2817ed0d50c3Schristos@end deffn 2818ed0d50c3Schristos@deffn {} BFD_RELOC_390_TLS_LOAD 2819ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_GDCALL 2820ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_LDCALL 2821ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_GD32 2822ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_GD64 2823ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_GOTIE12 2824ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_GOTIE32 2825ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_GOTIE64 2826ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_LDM32 2827ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_LDM64 2828ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_IE32 2829ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_IE64 2830ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_IEENT 2831ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_LE32 2832ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_LE64 2833ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_LDO32 2834ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_LDO64 2835ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_DTPMOD 2836ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_DTPOFF 2837ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_TPOFF 2838ed0d50c3Schristoss390 tls relocations. 2839ed0d50c3Schristos@end deffn 2840ed0d50c3Schristos@deffn {} BFD_RELOC_390_20 2841ed0d50c3Schristos@deffnx {} BFD_RELOC_390_GOT20 2842ed0d50c3Schristos@deffnx {} BFD_RELOC_390_GOTPLT20 2843ed0d50c3Schristos@deffnx {} BFD_RELOC_390_TLS_GOTIE20 2844ed0d50c3SchristosLong displacement extension. 2845ed0d50c3Schristos@end deffn 2846ed0d50c3Schristos@deffn {} BFD_RELOC_390_IRELATIVE 2847ed0d50c3SchristosSTT_GNU_IFUNC relocation. 2848ed0d50c3Schristos@end deffn 2849ed0d50c3Schristos@deffn {} BFD_RELOC_SCORE_GPREL15 2850ed0d50c3SchristosScore relocations 2851ed0d50c3SchristosLow 16 bit for load/store 2852ed0d50c3Schristos@end deffn 2853ed0d50c3Schristos@deffn {} BFD_RELOC_SCORE_DUMMY2 2854ed0d50c3Schristos@deffnx {} BFD_RELOC_SCORE_JMP 2855ed0d50c3SchristosThis is a 24-bit reloc with the right 1 bit assumed to be 0 2856ed0d50c3Schristos@end deffn 2857ed0d50c3Schristos@deffn {} BFD_RELOC_SCORE_BRANCH 2858ed0d50c3SchristosThis is a 19-bit reloc with the right 1 bit assumed to be 0 2859ed0d50c3Schristos@end deffn 2860ed0d50c3Schristos@deffn {} BFD_RELOC_SCORE_IMM30 2861ed0d50c3SchristosThis is a 32-bit reloc for 48-bit instructions. 2862ed0d50c3Schristos@end deffn 2863ed0d50c3Schristos@deffn {} BFD_RELOC_SCORE_IMM32 2864ed0d50c3SchristosThis is a 32-bit reloc for 48-bit instructions. 2865ed0d50c3Schristos@end deffn 2866ed0d50c3Schristos@deffn {} BFD_RELOC_SCORE16_JMP 2867ed0d50c3SchristosThis is a 11-bit reloc with the right 1 bit assumed to be 0 2868ed0d50c3Schristos@end deffn 2869ed0d50c3Schristos@deffn {} BFD_RELOC_SCORE16_BRANCH 2870ed0d50c3SchristosThis is a 8-bit reloc with the right 1 bit assumed to be 0 2871ed0d50c3Schristos@end deffn 2872ed0d50c3Schristos@deffn {} BFD_RELOC_SCORE_BCMP 2873ed0d50c3SchristosThis is a 9-bit reloc with the right 1 bit assumed to be 0 2874ed0d50c3Schristos@end deffn 2875ed0d50c3Schristos@deffn {} BFD_RELOC_SCORE_GOT15 2876ed0d50c3Schristos@deffnx {} BFD_RELOC_SCORE_GOT_LO16 2877ed0d50c3Schristos@deffnx {} BFD_RELOC_SCORE_CALL15 2878ed0d50c3Schristos@deffnx {} BFD_RELOC_SCORE_DUMMY_HI16 2879ed0d50c3SchristosUndocumented Score relocs 2880ed0d50c3Schristos@end deffn 2881ed0d50c3Schristos@deffn {} BFD_RELOC_IP2K_FR9 2882ed0d50c3SchristosScenix IP2K - 9-bit register number / data address 2883ed0d50c3Schristos@end deffn 2884ed0d50c3Schristos@deffn {} BFD_RELOC_IP2K_BANK 2885ed0d50c3SchristosScenix IP2K - 4-bit register/data bank number 2886ed0d50c3Schristos@end deffn 2887ed0d50c3Schristos@deffn {} BFD_RELOC_IP2K_ADDR16CJP 2888ed0d50c3SchristosScenix IP2K - low 13 bits of instruction word address 2889ed0d50c3Schristos@end deffn 2890ed0d50c3Schristos@deffn {} BFD_RELOC_IP2K_PAGE3 2891ed0d50c3SchristosScenix IP2K - high 3 bits of instruction word address 2892ed0d50c3Schristos@end deffn 2893ed0d50c3Schristos@deffn {} BFD_RELOC_IP2K_LO8DATA 2894ed0d50c3Schristos@deffnx {} BFD_RELOC_IP2K_HI8DATA 2895ed0d50c3Schristos@deffnx {} BFD_RELOC_IP2K_EX8DATA 2896ed0d50c3SchristosScenix IP2K - ext/low/high 8 bits of data address 2897ed0d50c3Schristos@end deffn 2898ed0d50c3Schristos@deffn {} BFD_RELOC_IP2K_LO8INSN 2899ed0d50c3Schristos@deffnx {} BFD_RELOC_IP2K_HI8INSN 2900ed0d50c3SchristosScenix IP2K - low/high 8 bits of instruction word address 2901ed0d50c3Schristos@end deffn 2902ed0d50c3Schristos@deffn {} BFD_RELOC_IP2K_PC_SKIP 2903ed0d50c3SchristosScenix IP2K - even/odd PC modifier to modify snb pcl.0 2904ed0d50c3Schristos@end deffn 2905ed0d50c3Schristos@deffn {} BFD_RELOC_IP2K_TEXT 2906ed0d50c3SchristosScenix IP2K - 16 bit word address in text section. 2907ed0d50c3Schristos@end deffn 2908ed0d50c3Schristos@deffn {} BFD_RELOC_IP2K_FR_OFFSET 2909ed0d50c3SchristosScenix IP2K - 7-bit sp or dp offset 2910ed0d50c3Schristos@end deffn 2911ed0d50c3Schristos@deffn {} BFD_RELOC_VPE4KMATH_DATA 2912ed0d50c3Schristos@deffnx {} BFD_RELOC_VPE4KMATH_INSN 2913ed0d50c3SchristosScenix VPE4K coprocessor - data/insn-space addressing 2914ed0d50c3Schristos@end deffn 2915ed0d50c3Schristos@deffn {} BFD_RELOC_VTABLE_INHERIT 2916ed0d50c3Schristos@deffnx {} BFD_RELOC_VTABLE_ENTRY 2917ed0d50c3SchristosThese two relocations are used by the linker to determine which of 2918ed0d50c3Schristosthe entries in a C++ virtual function table are actually used. When 2919ed0d50c3Schristosthe --gc-sections option is given, the linker will zero out the entries 2920ed0d50c3Schristosthat are not used, so that the code for those functions need not be 2921ed0d50c3Schristosincluded in the output. 2922ed0d50c3Schristos 2923ed0d50c3SchristosVTABLE_INHERIT is a zero-space relocation used to describe to the 2924ed0d50c3Schristoslinker the inheritance tree of a C++ virtual function table. The 2925ed0d50c3Schristosrelocation's symbol should be the parent class' vtable, and the 2926ed0d50c3Schristosrelocation should be located at the child vtable. 2927ed0d50c3Schristos 2928ed0d50c3SchristosVTABLE_ENTRY is a zero-space relocation that describes the use of a 2929ed0d50c3Schristosvirtual function table entry. The reloc's symbol should refer to the 2930ed0d50c3Schristostable of the class mentioned in the code. Off of that base, an offset 2931ed0d50c3Schristosdescribes the entry that is being used. For Rela hosts, this offset 2932ed0d50c3Schristosis stored in the reloc's addend. For Rel hosts, we are forced to put 2933ed0d50c3Schristosthis offset in the reloc's section offset. 2934ed0d50c3Schristos@end deffn 2935ed0d50c3Schristos@deffn {} BFD_RELOC_IA64_IMM14 2936ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_IMM22 2937ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_IMM64 2938ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DIR32MSB 2939ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DIR32LSB 2940ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DIR64MSB 2941ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DIR64LSB 2942ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_GPREL22 2943ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_GPREL64I 2944ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_GPREL32MSB 2945ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_GPREL32LSB 2946ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_GPREL64MSB 2947ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_GPREL64LSB 2948ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF22 2949ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF64I 2950ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PLTOFF22 2951ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PLTOFF64I 2952ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PLTOFF64MSB 2953ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PLTOFF64LSB 2954ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_FPTR64I 2955ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_FPTR32MSB 2956ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_FPTR32LSB 2957ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_FPTR64MSB 2958ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_FPTR64LSB 2959ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL21B 2960ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL21BI 2961ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL21M 2962ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL21F 2963ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL22 2964ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL60B 2965ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL64I 2966ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL32MSB 2967ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL32LSB 2968ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL64MSB 2969ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_PCREL64LSB 2970ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR22 2971ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR64I 2972ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR32MSB 2973ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR32LSB 2974ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR64MSB 2975ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF_FPTR64LSB 2976ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_SEGREL32MSB 2977ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_SEGREL32LSB 2978ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_SEGREL64MSB 2979ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_SEGREL64LSB 2980ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_SECREL32MSB 2981ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_SECREL32LSB 2982ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_SECREL64MSB 2983ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_SECREL64LSB 2984ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_REL32MSB 2985ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_REL32LSB 2986ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_REL64MSB 2987ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_REL64LSB 2988ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTV32MSB 2989ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTV32LSB 2990ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTV64MSB 2991ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTV64LSB 2992ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_IPLTMSB 2993ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_IPLTLSB 2994ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_COPY 2995ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF22X 2996ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LDXMOV 2997ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_TPREL14 2998ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_TPREL22 2999ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_TPREL64I 3000ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_TPREL64MSB 3001ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_TPREL64LSB 3002ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF_TPREL22 3003ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DTPMOD64MSB 3004ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DTPMOD64LSB 3005ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF_DTPMOD22 3006ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DTPREL14 3007ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DTPREL22 3008ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DTPREL64I 3009ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DTPREL32MSB 3010ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DTPREL32LSB 3011ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DTPREL64MSB 3012ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_DTPREL64LSB 3013ed0d50c3Schristos@deffnx {} BFD_RELOC_IA64_LTOFF_DTPREL22 3014ed0d50c3SchristosIntel IA64 Relocations. 3015ed0d50c3Schristos@end deffn 3016ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC11_HI8 3017ed0d50c3SchristosMotorola 68HC11 reloc. 3018ed0d50c3SchristosThis is the 8 bit high part of an absolute address. 3019ed0d50c3Schristos@end deffn 3020ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC11_LO8 3021ed0d50c3SchristosMotorola 68HC11 reloc. 3022ed0d50c3SchristosThis is the 8 bit low part of an absolute address. 3023ed0d50c3Schristos@end deffn 3024ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC11_3B 3025ed0d50c3SchristosMotorola 68HC11 reloc. 3026ed0d50c3SchristosThis is the 3 bit of a value. 3027ed0d50c3Schristos@end deffn 3028ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC11_RL_JUMP 3029ed0d50c3SchristosMotorola 68HC11 reloc. 3030ed0d50c3SchristosThis reloc marks the beginning of a jump/call instruction. 3031ed0d50c3SchristosIt is used for linker relaxation to correctly identify beginning 3032ed0d50c3Schristosof instruction and change some branches to use PC-relative 3033ed0d50c3Schristosaddressing mode. 3034ed0d50c3Schristos@end deffn 3035ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC11_RL_GROUP 3036ed0d50c3SchristosMotorola 68HC11 reloc. 3037ed0d50c3SchristosThis reloc marks a group of several instructions that gcc generates 3038ed0d50c3Schristosand for which the linker relaxation pass can modify and/or remove 3039ed0d50c3Schristossome of them. 3040ed0d50c3Schristos@end deffn 3041ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC11_LO16 3042ed0d50c3SchristosMotorola 68HC11 reloc. 3043ed0d50c3SchristosThis is the 16-bit lower part of an address. It is used for 'call' 3044ed0d50c3Schristosinstruction to specify the symbol address without any special 3045ed0d50c3Schristostransformation (due to memory bank window). 3046ed0d50c3Schristos@end deffn 3047ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC11_PAGE 3048ed0d50c3SchristosMotorola 68HC11 reloc. 3049ed0d50c3SchristosThis is a 8-bit reloc that specifies the page number of an address. 3050ed0d50c3SchristosIt is used by 'call' instruction to specify the page number of 3051ed0d50c3Schristosthe symbol. 3052ed0d50c3Schristos@end deffn 3053ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC11_24 3054ed0d50c3SchristosMotorola 68HC11 reloc. 3055ed0d50c3SchristosThis is a 24-bit reloc that represents the address with a 16-bit 3056ed0d50c3Schristosvalue and a 8-bit page number. The symbol address is transformed 3057ed0d50c3Schristosto follow the 16K memory bank of 68HC12 (seen as mapped in the window). 3058ed0d50c3Schristos@end deffn 3059ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC12_5B 3060ed0d50c3SchristosMotorola 68HC12 reloc. 3061ed0d50c3SchristosThis is the 5 bits of a value. 3062ed0d50c3Schristos@end deffn 3063ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_RL_JUMP 3064ed0d50c3SchristosFreescale XGATE reloc. 3065ed0d50c3SchristosThis reloc marks the beginning of a bra/jal instruction. 3066ed0d50c3Schristos@end deffn 3067ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_RL_GROUP 3068ed0d50c3SchristosFreescale XGATE reloc. 3069ed0d50c3SchristosThis reloc marks a group of several instructions that gcc generates 3070ed0d50c3Schristosand for which the linker relaxation pass can modify and/or remove 3071ed0d50c3Schristossome of them. 3072ed0d50c3Schristos@end deffn 3073ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_LO16 3074ed0d50c3SchristosFreescale XGATE reloc. 3075ed0d50c3SchristosThis is the 16-bit lower part of an address. It is used for the '16-bit' 3076ed0d50c3Schristosinstructions. 3077ed0d50c3Schristos@end deffn 3078ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_GPAGE 3079ed0d50c3SchristosFreescale XGATE reloc. 3080ed0d50c3Schristos@end deffn 3081ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_24 3082ed0d50c3SchristosFreescale XGATE reloc. 3083ed0d50c3Schristos@end deffn 3084ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_PCREL_9 3085ed0d50c3SchristosFreescale XGATE reloc. 3086ed0d50c3SchristosThis is a 9-bit pc-relative reloc. 3087ed0d50c3Schristos@end deffn 3088ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_PCREL_10 3089ed0d50c3SchristosFreescale XGATE reloc. 3090ed0d50c3SchristosThis is a 10-bit pc-relative reloc. 3091ed0d50c3Schristos@end deffn 3092ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_IMM8_LO 3093ed0d50c3SchristosFreescale XGATE reloc. 3094ed0d50c3SchristosThis is the 16-bit lower part of an address. It is used for the '16-bit' 3095ed0d50c3Schristosinstructions. 3096ed0d50c3Schristos@end deffn 3097ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_IMM8_HI 3098ed0d50c3SchristosFreescale XGATE reloc. 3099ed0d50c3SchristosThis is the 16-bit higher part of an address. It is used for the '16-bit' 3100ed0d50c3Schristosinstructions. 3101ed0d50c3Schristos@end deffn 3102ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_IMM3 3103ed0d50c3SchristosFreescale XGATE reloc. 3104ed0d50c3SchristosThis is a 3-bit pc-relative reloc. 3105ed0d50c3Schristos@end deffn 3106ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_IMM4 3107ed0d50c3SchristosFreescale XGATE reloc. 3108ed0d50c3SchristosThis is a 4-bit pc-relative reloc. 3109ed0d50c3Schristos@end deffn 3110ed0d50c3Schristos@deffn {} BFD_RELOC_XGATE_IMM5 3111ed0d50c3SchristosFreescale XGATE reloc. 3112ed0d50c3SchristosThis is a 5-bit pc-relative reloc. 3113ed0d50c3Schristos@end deffn 3114ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC12_9B 3115ed0d50c3SchristosMotorola 68HC12 reloc. 3116ed0d50c3SchristosThis is the 9 bits of a value. 3117ed0d50c3Schristos@end deffn 3118ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC12_16B 3119ed0d50c3SchristosMotorola 68HC12 reloc. 3120ed0d50c3SchristosThis is the 16 bits of a value. 3121ed0d50c3Schristos@end deffn 3122ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC12_9_PCREL 3123ed0d50c3SchristosMotorola 68HC12/XGATE reloc. 3124ed0d50c3SchristosThis is a PCREL9 branch. 3125ed0d50c3Schristos@end deffn 3126ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC12_10_PCREL 3127ed0d50c3SchristosMotorola 68HC12/XGATE reloc. 3128ed0d50c3SchristosThis is a PCREL10 branch. 3129ed0d50c3Schristos@end deffn 3130ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC12_LO8XG 3131ed0d50c3SchristosMotorola 68HC12/XGATE reloc. 3132ed0d50c3SchristosThis is the 8 bit low part of an absolute address and immediately precedes 3133ed0d50c3Schristosa matching HI8XG part. 3134ed0d50c3Schristos@end deffn 3135ed0d50c3Schristos@deffn {} BFD_RELOC_M68HC12_HI8XG 3136ed0d50c3SchristosMotorola 68HC12/XGATE reloc. 3137ed0d50c3SchristosThis is the 8 bit high part of an absolute address and immediately follows 3138ed0d50c3Schristosa matching LO8XG part. 3139ed0d50c3Schristos@end deffn 314006324dcfSchristos@deffn {} BFD_RELOC_S12Z_15_PCREL 314106324dcfSchristosFreescale S12Z reloc. 314206324dcfSchristosThis is a 15 bit relative address. If the most significant bits are all zero 314306324dcfSchristosthen it may be truncated to 8 bits. 314406324dcfSchristos@end deffn 3145ed0d50c3Schristos@deffn {} BFD_RELOC_CR16_NUM8 3146ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_NUM16 3147ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_NUM32 3148ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_NUM32a 3149ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_REGREL0 3150ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_REGREL4 3151ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_REGREL4a 3152ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_REGREL14 3153ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_REGREL14a 3154ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_REGREL16 3155ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_REGREL20 3156ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_REGREL20a 3157ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_ABS20 3158ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_ABS24 3159ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_IMM4 3160ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_IMM8 3161ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_IMM16 3162ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_IMM20 3163ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_IMM24 3164ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_IMM32 3165ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_IMM32a 3166ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_DISP4 3167ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_DISP8 3168ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_DISP16 3169ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_DISP20 3170ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_DISP24 3171ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_DISP24a 3172ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_SWITCH8 3173ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_SWITCH16 3174ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_SWITCH32 3175ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_GOT_REGREL20 3176ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_GOTC_REGREL20 3177ed0d50c3Schristos@deffnx {} BFD_RELOC_CR16_GLOB_DAT 3178ed0d50c3SchristosNS CR16 Relocations. 3179ed0d50c3Schristos@end deffn 3180ed0d50c3Schristos@deffn {} BFD_RELOC_CRX_REL4 3181ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_REL8 3182ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_REL8_CMP 3183ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_REL16 3184ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_REL24 3185ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_REL32 3186ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_REGREL12 3187ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_REGREL22 3188ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_REGREL28 3189ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_REGREL32 3190ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_ABS16 3191ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_ABS32 3192ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_NUM8 3193ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_NUM16 3194ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_NUM32 3195ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_IMM16 3196ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_IMM32 3197ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_SWITCH8 3198ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_SWITCH16 3199ed0d50c3Schristos@deffnx {} BFD_RELOC_CRX_SWITCH32 3200ed0d50c3SchristosNS CRX Relocations. 3201ed0d50c3Schristos@end deffn 3202ed0d50c3Schristos@deffn {} BFD_RELOC_CRIS_BDISP8 3203ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_UNSIGNED_5 3204ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_SIGNED_6 3205ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_UNSIGNED_6 3206ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_SIGNED_8 3207ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_UNSIGNED_8 3208ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_SIGNED_16 3209ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_UNSIGNED_16 3210ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_LAPCQ_OFFSET 3211ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_UNSIGNED_4 3212ed0d50c3SchristosThese relocs are only used within the CRIS assembler. They are not 3213ed0d50c3Schristos(at present) written to any object files. 3214ed0d50c3Schristos@end deffn 3215ed0d50c3Schristos@deffn {} BFD_RELOC_CRIS_COPY 3216ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_GLOB_DAT 3217ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_JUMP_SLOT 3218ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_RELATIVE 3219ed0d50c3SchristosRelocs used in ELF shared libraries for CRIS. 3220ed0d50c3Schristos@end deffn 3221ed0d50c3Schristos@deffn {} BFD_RELOC_CRIS_32_GOT 3222ed0d50c3Schristos32-bit offset to symbol-entry within GOT. 3223ed0d50c3Schristos@end deffn 3224ed0d50c3Schristos@deffn {} BFD_RELOC_CRIS_16_GOT 3225ed0d50c3Schristos16-bit offset to symbol-entry within GOT. 3226ed0d50c3Schristos@end deffn 3227ed0d50c3Schristos@deffn {} BFD_RELOC_CRIS_32_GOTPLT 3228ed0d50c3Schristos32-bit offset to symbol-entry within GOT, with PLT handling. 3229ed0d50c3Schristos@end deffn 3230ed0d50c3Schristos@deffn {} BFD_RELOC_CRIS_16_GOTPLT 3231ed0d50c3Schristos16-bit offset to symbol-entry within GOT, with PLT handling. 3232ed0d50c3Schristos@end deffn 3233ed0d50c3Schristos@deffn {} BFD_RELOC_CRIS_32_GOTREL 3234ed0d50c3Schristos32-bit offset to symbol, relative to GOT. 3235ed0d50c3Schristos@end deffn 3236ed0d50c3Schristos@deffn {} BFD_RELOC_CRIS_32_PLT_GOTREL 3237ed0d50c3Schristos32-bit offset to symbol with PLT entry, relative to GOT. 3238ed0d50c3Schristos@end deffn 3239ed0d50c3Schristos@deffn {} BFD_RELOC_CRIS_32_PLT_PCREL 3240ed0d50c3Schristos32-bit offset to symbol with PLT entry, relative to this relocation. 3241ed0d50c3Schristos@end deffn 3242ed0d50c3Schristos@deffn {} BFD_RELOC_CRIS_32_GOT_GD 3243ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_16_GOT_GD 3244ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_32_GD 3245ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_DTP 3246ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_32_DTPREL 3247ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_16_DTPREL 3248ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_32_GOT_TPREL 3249ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_16_GOT_TPREL 3250ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_32_TPREL 3251ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_16_TPREL 3252ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_DTPMOD 3253ed0d50c3Schristos@deffnx {} BFD_RELOC_CRIS_32_IE 3254ed0d50c3SchristosRelocs used in TLS code for CRIS. 3255ed0d50c3Schristos@end deffn 3256ed0d50c3Schristos@deffn {} BFD_RELOC_OR1K_REL_26 3257*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_SLO16 3258*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_PCREL_PG21 3259*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_LO13 3260*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_SLO13 3261ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_GOTPC_HI16 3262ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_GOTPC_LO16 3263ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_GOT16 3264*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_GOT_PG21 3265*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_GOT_LO13 3266ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_PLT26 3267*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_PLTA26 3268*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_GOTOFF_SLO16 3269ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_COPY 3270ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_GLOB_DAT 3271ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_JMP_SLOT 3272ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_RELATIVE 3273ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_GD_HI16 3274ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_GD_LO16 3275*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_TLS_GD_PG21 3276*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_TLS_GD_LO13 3277ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_LDM_HI16 3278ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_LDM_LO16 3279*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_TLS_LDM_PG21 3280*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_TLS_LDM_LO13 3281ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_LDO_HI16 3282ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_LDO_LO16 3283ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_IE_HI16 3284*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_TLS_IE_AHI16 3285ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_IE_LO16 3286*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_TLS_IE_PG21 3287*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_TLS_IE_LO13 3288ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_LE_HI16 3289*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_TLS_LE_AHI16 3290ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_LE_LO16 3291*b88e3e88Schristos@deffnx {} BFD_RELOC_OR1K_TLS_LE_SLO16 3292ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_TPOFF 3293ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_DTPOFF 3294ed0d50c3Schristos@deffnx {} BFD_RELOC_OR1K_TLS_DTPMOD 3295ed0d50c3SchristosOpenRISC 1000 Relocations. 3296ed0d50c3Schristos@end deffn 3297ed0d50c3Schristos@deffn {} BFD_RELOC_H8_DIR16A8 3298ed0d50c3Schristos@deffnx {} BFD_RELOC_H8_DIR16R8 3299ed0d50c3Schristos@deffnx {} BFD_RELOC_H8_DIR24A8 3300ed0d50c3Schristos@deffnx {} BFD_RELOC_H8_DIR24R8 3301ed0d50c3Schristos@deffnx {} BFD_RELOC_H8_DIR32A16 3302ed0d50c3Schristos@deffnx {} BFD_RELOC_H8_DISP32A16 3303ed0d50c3SchristosH8 elf Relocations. 3304ed0d50c3Schristos@end deffn 3305ed0d50c3Schristos@deffn {} BFD_RELOC_XSTORMY16_REL_12 3306ed0d50c3Schristos@deffnx {} BFD_RELOC_XSTORMY16_12 3307ed0d50c3Schristos@deffnx {} BFD_RELOC_XSTORMY16_24 3308ed0d50c3Schristos@deffnx {} BFD_RELOC_XSTORMY16_FPTR16 3309ed0d50c3SchristosSony Xstormy16 Relocations. 3310ed0d50c3Schristos@end deffn 3311ed0d50c3Schristos@deffn {} BFD_RELOC_RELC 3312ed0d50c3SchristosSelf-describing complex relocations. 3313ed0d50c3Schristos@end deffn 3314ed0d50c3Schristos@deffn {} BFD_RELOC_XC16X_PAG 3315ed0d50c3Schristos@deffnx {} BFD_RELOC_XC16X_POF 3316ed0d50c3Schristos@deffnx {} BFD_RELOC_XC16X_SEG 3317ed0d50c3Schristos@deffnx {} BFD_RELOC_XC16X_SOF 3318ed0d50c3SchristosInfineon Relocations. 3319ed0d50c3Schristos@end deffn 3320ed0d50c3Schristos@deffn {} BFD_RELOC_VAX_GLOB_DAT 3321ed0d50c3Schristos@deffnx {} BFD_RELOC_VAX_JMP_SLOT 3322ed0d50c3Schristos@deffnx {} BFD_RELOC_VAX_RELATIVE 3323ed0d50c3SchristosRelocations used by VAX ELF. 3324ed0d50c3Schristos@end deffn 3325ed0d50c3Schristos@deffn {} BFD_RELOC_MT_PC16 3326ed0d50c3SchristosMorpho MT - 16 bit immediate relocation. 3327ed0d50c3Schristos@end deffn 3328ed0d50c3Schristos@deffn {} BFD_RELOC_MT_HI16 3329ed0d50c3SchristosMorpho MT - Hi 16 bits of an address. 3330ed0d50c3Schristos@end deffn 3331ed0d50c3Schristos@deffn {} BFD_RELOC_MT_LO16 3332ed0d50c3SchristosMorpho MT - Low 16 bits of an address. 3333ed0d50c3Schristos@end deffn 3334ed0d50c3Schristos@deffn {} BFD_RELOC_MT_GNU_VTINHERIT 3335ed0d50c3SchristosMorpho MT - Used to tell the linker which vtable entries are used. 3336ed0d50c3Schristos@end deffn 3337ed0d50c3Schristos@deffn {} BFD_RELOC_MT_GNU_VTENTRY 3338ed0d50c3SchristosMorpho MT - Used to tell the linker which vtable entries are used. 3339ed0d50c3Schristos@end deffn 3340ed0d50c3Schristos@deffn {} BFD_RELOC_MT_PCINSN8 3341ed0d50c3SchristosMorpho MT - 8 bit immediate relocation. 3342ed0d50c3Schristos@end deffn 3343ed0d50c3Schristos@deffn {} BFD_RELOC_MSP430_10_PCREL 3344ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430_16_PCREL 3345ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430_16 3346ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430_16_PCREL_BYTE 3347ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430_16_BYTE 3348ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430_2X_PCREL 3349ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430_RL_PCREL 3350ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430_ABS8 3351ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_PCR20_EXT_SRC 3352ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_PCR20_EXT_DST 3353ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_PCR20_EXT_ODST 3354ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_ABS20_EXT_SRC 3355ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_ABS20_EXT_DST 3356ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_ABS20_EXT_ODST 3357ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_ABS20_ADR_SRC 3358ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_ABS20_ADR_DST 3359ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_PCR16 3360ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_PCR20_CALL 3361ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430X_ABS16 3362ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430_ABS_HI16 3363ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430_PREL31 3364ed0d50c3Schristos@deffnx {} BFD_RELOC_MSP430_SYM_DIFF 3365ed0d50c3Schristosmsp430 specific relocation codes 3366ed0d50c3Schristos@end deffn 3367ed0d50c3Schristos@deffn {} BFD_RELOC_NIOS2_S16 3368ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_U16 3369ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_CALL26 3370ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_IMM5 3371ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_CACHE_OPX 3372ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_IMM6 3373ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_IMM8 3374ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_HI16 3375ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_LO16 3376ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_HIADJ16 3377ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_GPREL 3378ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_UJMP 3379ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_CJMP 3380ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_CALLR 3381ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_ALIGN 3382ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_GOT16 3383ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_CALL16 3384ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_GOTOFF_LO 3385ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_GOTOFF_HA 3386ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_PCREL_LO 3387ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_PCREL_HA 3388ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_TLS_GD16 3389ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_TLS_LDM16 3390ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_TLS_LDO16 3391ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_TLS_IE16 3392ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_TLS_LE16 3393ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_TLS_DTPMOD 3394ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_TLS_DTPREL 3395ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_TLS_TPREL 3396ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_COPY 3397ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_GLOB_DAT 3398ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_JUMP_SLOT 3399ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_RELATIVE 3400ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_GOTOFF 3401ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_CALL26_NOAT 3402ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_GOT_LO 3403ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_GOT_HA 3404ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_CALL_LO 3405ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_CALL_HA 3406ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_S12 3407ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_I10_1_PCREL 3408ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_T1I7_1_PCREL 3409ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_T1I7_2 3410ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_T2I4 3411ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_T2I4_1 3412ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_T2I4_2 3413ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_X1I7_2 3414ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_X2L5 3415ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_F1I5_2 3416ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_L5I4X1 3417ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_T1X1I6 3418ed0d50c3Schristos@deffnx {} BFD_RELOC_NIOS2_R2_T1X1I6_2 3419ed0d50c3SchristosRelocations used by the Altera Nios II core. 3420ed0d50c3Schristos@end deffn 342106324dcfSchristos@deffn {} BFD_RELOC_PRU_U16 342206324dcfSchristosPRU LDI 16-bit unsigned data-memory relocation. 342306324dcfSchristos@end deffn 342406324dcfSchristos@deffn {} BFD_RELOC_PRU_U16_PMEMIMM 342506324dcfSchristosPRU LDI 16-bit unsigned instruction-memory relocation. 342606324dcfSchristos@end deffn 342706324dcfSchristos@deffn {} BFD_RELOC_PRU_LDI32 342806324dcfSchristosPRU relocation for two consecutive LDI load instructions that load a 342906324dcfSchristos32 bit value into a register. If the higher bits are all zero, then 343006324dcfSchristosthe second instruction may be relaxed. 343106324dcfSchristos@end deffn 343206324dcfSchristos@deffn {} BFD_RELOC_PRU_S10_PCREL 343306324dcfSchristosPRU QBBx 10-bit signed PC-relative relocation. 343406324dcfSchristos@end deffn 343506324dcfSchristos@deffn {} BFD_RELOC_PRU_U8_PCREL 343606324dcfSchristosPRU 8-bit unsigned relocation used for the LOOP instruction. 343706324dcfSchristos@end deffn 343806324dcfSchristos@deffn {} BFD_RELOC_PRU_32_PMEM 343906324dcfSchristos@deffnx {} BFD_RELOC_PRU_16_PMEM 344006324dcfSchristosPRU Program Memory relocations. Used to convert from byte addressing to 344106324dcfSchristos32-bit word addressing. 344206324dcfSchristos@end deffn 344306324dcfSchristos@deffn {} BFD_RELOC_PRU_GNU_DIFF8 344406324dcfSchristos@deffnx {} BFD_RELOC_PRU_GNU_DIFF16 344506324dcfSchristos@deffnx {} BFD_RELOC_PRU_GNU_DIFF32 344606324dcfSchristos@deffnx {} BFD_RELOC_PRU_GNU_DIFF16_PMEM 344706324dcfSchristos@deffnx {} BFD_RELOC_PRU_GNU_DIFF32_PMEM 344806324dcfSchristosPRU relocations to mark the difference of two local symbols. 344906324dcfSchristosThese are only needed to support linker relaxation and can be ignored 345006324dcfSchristoswhen not relaxing. The field is set to the value of the difference 345106324dcfSchristosassuming no relaxation. The relocation encodes the position of the 345206324dcfSchristossecond symbol so the linker can determine whether to adjust the field 345306324dcfSchristosvalue. The PMEM variants encode the word difference, instead of byte 345406324dcfSchristosdifference between symbols. 345506324dcfSchristos@end deffn 3456ed0d50c3Schristos@deffn {} BFD_RELOC_IQ2000_OFFSET_16 3457ed0d50c3Schristos@deffnx {} BFD_RELOC_IQ2000_OFFSET_21 3458ed0d50c3Schristos@deffnx {} BFD_RELOC_IQ2000_UHI16 3459ed0d50c3SchristosIQ2000 Relocations. 3460ed0d50c3Schristos@end deffn 3461ed0d50c3Schristos@deffn {} BFD_RELOC_XTENSA_RTLD 3462ed0d50c3SchristosSpecial Xtensa relocation used only by PLT entries in ELF shared 3463ed0d50c3Schristosobjects to indicate that the runtime linker should set the value 3464ed0d50c3Schristosto one of its own internal functions or data structures. 3465ed0d50c3Schristos@end deffn 3466ed0d50c3Schristos@deffn {} BFD_RELOC_XTENSA_GLOB_DAT 3467ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_JMP_SLOT 3468ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_RELATIVE 3469ed0d50c3SchristosXtensa relocations for ELF shared objects. 3470ed0d50c3Schristos@end deffn 3471ed0d50c3Schristos@deffn {} BFD_RELOC_XTENSA_PLT 3472ed0d50c3SchristosXtensa relocation used in ELF object files for symbols that may require 3473ed0d50c3SchristosPLT entries. Otherwise, this is just a generic 32-bit relocation. 3474ed0d50c3Schristos@end deffn 3475ed0d50c3Schristos@deffn {} BFD_RELOC_XTENSA_DIFF8 3476ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_DIFF16 3477ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_DIFF32 3478ed0d50c3SchristosXtensa relocations to mark the difference of two local symbols. 3479ed0d50c3SchristosThese are only needed to support linker relaxation and can be ignored 3480ed0d50c3Schristoswhen not relaxing. The field is set to the value of the difference 3481ed0d50c3Schristosassuming no relaxation. The relocation encodes the position of the 3482ed0d50c3Schristosfirst symbol so the linker can determine whether to adjust the field 3483ed0d50c3Schristosvalue. 3484ed0d50c3Schristos@end deffn 3485ed0d50c3Schristos@deffn {} BFD_RELOC_XTENSA_SLOT0_OP 3486ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT1_OP 3487ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT2_OP 3488ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT3_OP 3489ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT4_OP 3490ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT5_OP 3491ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT6_OP 3492ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT7_OP 3493ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT8_OP 3494ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT9_OP 3495ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT10_OP 3496ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT11_OP 3497ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT12_OP 3498ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT13_OP 3499ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT14_OP 3500ed0d50c3SchristosGeneric Xtensa relocations for instruction operands. Only the slot 3501ed0d50c3Schristosnumber is encoded in the relocation. The relocation applies to the 3502ed0d50c3Schristoslast PC-relative immediate operand, or if there are no PC-relative 3503ed0d50c3Schristosimmediates, to the last immediate operand. 3504ed0d50c3Schristos@end deffn 3505ed0d50c3Schristos@deffn {} BFD_RELOC_XTENSA_SLOT0_ALT 3506ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT1_ALT 3507ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT2_ALT 3508ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT3_ALT 3509ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT4_ALT 3510ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT5_ALT 3511ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT6_ALT 3512ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT7_ALT 3513ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT8_ALT 3514ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT9_ALT 3515ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT10_ALT 3516ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT11_ALT 3517ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT12_ALT 3518ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT13_ALT 3519ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_SLOT14_ALT 3520ed0d50c3SchristosAlternate Xtensa relocations. Only the slot is encoded in the 3521ed0d50c3Schristosrelocation. The meaning of these relocations is opcode-specific. 3522ed0d50c3Schristos@end deffn 3523ed0d50c3Schristos@deffn {} BFD_RELOC_XTENSA_OP0 3524ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_OP1 3525ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_OP2 3526ed0d50c3SchristosXtensa relocations for backward compatibility. These have all been 3527ed0d50c3Schristosreplaced by BFD_RELOC_XTENSA_SLOT0_OP. 3528ed0d50c3Schristos@end deffn 3529ed0d50c3Schristos@deffn {} BFD_RELOC_XTENSA_ASM_EXPAND 3530ed0d50c3SchristosXtensa relocation to mark that the assembler expanded the 3531ed0d50c3Schristosinstructions from an original target. The expansion size is 3532ed0d50c3Schristosencoded in the reloc size. 3533ed0d50c3Schristos@end deffn 3534ed0d50c3Schristos@deffn {} BFD_RELOC_XTENSA_ASM_SIMPLIFY 3535ed0d50c3SchristosXtensa relocation to mark that the linker should simplify 3536ed0d50c3Schristosassembler-expanded instructions. This is commonly used 3537ed0d50c3Schristosinternally by the linker after analysis of a 3538ed0d50c3SchristosBFD_RELOC_XTENSA_ASM_EXPAND. 3539ed0d50c3Schristos@end deffn 3540ed0d50c3Schristos@deffn {} BFD_RELOC_XTENSA_TLSDESC_FN 3541ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_TLSDESC_ARG 3542ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_TLS_DTPOFF 3543ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_TLS_TPOFF 3544ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_TLS_FUNC 3545ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_TLS_ARG 3546ed0d50c3Schristos@deffnx {} BFD_RELOC_XTENSA_TLS_CALL 3547ed0d50c3SchristosXtensa TLS relocations. 3548ed0d50c3Schristos@end deffn 3549ed0d50c3Schristos@deffn {} BFD_RELOC_Z80_DISP8 3550ed0d50c3Schristos8 bit signed offset in (ix+d) or (iy+d). 3551ed0d50c3Schristos@end deffn 3552*b88e3e88Schristos@deffn {} BFD_RELOC_Z80_BYTE0 3553*b88e3e88SchristosFirst 8 bits of multibyte (32, 24 or 16 bit) value. 3554*b88e3e88Schristos@end deffn 3555*b88e3e88Schristos@deffn {} BFD_RELOC_Z80_BYTE1 3556*b88e3e88SchristosSecond 8 bits of multibyte (32, 24 or 16 bit) value. 3557*b88e3e88Schristos@end deffn 3558*b88e3e88Schristos@deffn {} BFD_RELOC_Z80_BYTE2 3559*b88e3e88SchristosThird 8 bits of multibyte (32 or 24 bit) value. 3560*b88e3e88Schristos@end deffn 3561*b88e3e88Schristos@deffn {} BFD_RELOC_Z80_BYTE3 3562*b88e3e88SchristosFourth 8 bits of multibyte (32 bit) value. 3563*b88e3e88Schristos@end deffn 3564*b88e3e88Schristos@deffn {} BFD_RELOC_Z80_WORD0 3565*b88e3e88SchristosLowest 16 bits of multibyte (32 or 24 bit) value. 3566*b88e3e88Schristos@end deffn 3567*b88e3e88Schristos@deffn {} BFD_RELOC_Z80_WORD1 3568*b88e3e88SchristosHighest 16 bits of multibyte (32 or 24 bit) value. 3569*b88e3e88Schristos@end deffn 3570ed0d50c3Schristos@deffn {} BFD_RELOC_Z8K_DISP7 3571ed0d50c3SchristosDJNZ offset. 3572ed0d50c3Schristos@end deffn 3573ed0d50c3Schristos@deffn {} BFD_RELOC_Z8K_CALLR 3574ed0d50c3SchristosCALR offset. 3575ed0d50c3Schristos@end deffn 3576ed0d50c3Schristos@deffn {} BFD_RELOC_Z8K_IMM4L 3577ed0d50c3Schristos4 bit value. 3578ed0d50c3Schristos@end deffn 3579ed0d50c3Schristos@deffn {} BFD_RELOC_LM32_CALL 3580ed0d50c3Schristos@deffnx {} BFD_RELOC_LM32_BRANCH 3581ed0d50c3Schristos@deffnx {} BFD_RELOC_LM32_16_GOT 3582ed0d50c3Schristos@deffnx {} BFD_RELOC_LM32_GOTOFF_HI16 3583ed0d50c3Schristos@deffnx {} BFD_RELOC_LM32_GOTOFF_LO16 3584ed0d50c3Schristos@deffnx {} BFD_RELOC_LM32_COPY 3585ed0d50c3Schristos@deffnx {} BFD_RELOC_LM32_GLOB_DAT 3586ed0d50c3Schristos@deffnx {} BFD_RELOC_LM32_JMP_SLOT 3587ed0d50c3Schristos@deffnx {} BFD_RELOC_LM32_RELATIVE 3588ed0d50c3SchristosLattice Mico32 relocations. 3589ed0d50c3Schristos@end deffn 3590ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_SECTDIFF 3591ed0d50c3SchristosDifference between two section addreses. Must be followed by a 3592ed0d50c3SchristosBFD_RELOC_MACH_O_PAIR. 3593ed0d50c3Schristos@end deffn 3594ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_LOCAL_SECTDIFF 3595ed0d50c3SchristosLike BFD_RELOC_MACH_O_SECTDIFF but with a local symbol. 3596ed0d50c3Schristos@end deffn 3597ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_PAIR 3598ed0d50c3SchristosPair of relocation. Contains the first symbol. 3599ed0d50c3Schristos@end deffn 3600ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_SUBTRACTOR32 3601ed0d50c3SchristosSymbol will be substracted. Must be followed by a BFD_RELOC_32. 3602ed0d50c3Schristos@end deffn 3603ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_SUBTRACTOR64 3604ed0d50c3SchristosSymbol will be substracted. Must be followed by a BFD_RELOC_64. 3605ed0d50c3Schristos@end deffn 3606ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_X86_64_BRANCH32 3607ed0d50c3Schristos@deffnx {} BFD_RELOC_MACH_O_X86_64_BRANCH8 3608ed0d50c3SchristosPCREL relocations. They are marked as branch to create PLT entry if 3609ed0d50c3Schristosrequired. 3610ed0d50c3Schristos@end deffn 3611ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_X86_64_GOT 3612ed0d50c3SchristosUsed when referencing a GOT entry. 3613ed0d50c3Schristos@end deffn 3614ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_X86_64_GOT_LOAD 3615ed0d50c3SchristosUsed when loading a GOT entry with movq. It is specially marked so that 3616ed0d50c3Schristosthe linker could optimize the movq to a leaq if possible. 3617ed0d50c3Schristos@end deffn 3618ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_X86_64_PCREL32_1 3619ed0d50c3SchristosSame as BFD_RELOC_32_PCREL but with an implicit -1 addend. 3620ed0d50c3Schristos@end deffn 3621ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_X86_64_PCREL32_2 3622ed0d50c3SchristosSame as BFD_RELOC_32_PCREL but with an implicit -2 addend. 3623ed0d50c3Schristos@end deffn 3624ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_X86_64_PCREL32_4 3625ed0d50c3SchristosSame as BFD_RELOC_32_PCREL but with an implicit -4 addend. 3626ed0d50c3Schristos@end deffn 362706324dcfSchristos@deffn {} BFD_RELOC_MACH_O_X86_64_TLV 362806324dcfSchristosUsed when referencing a TLV entry. 362906324dcfSchristos@end deffn 3630ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_ARM64_ADDEND 3631ed0d50c3SchristosAddend for PAGE or PAGEOFF. 3632ed0d50c3Schristos@end deffn 3633ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21 3634ed0d50c3SchristosRelative offset to page of GOT slot. 3635ed0d50c3Schristos@end deffn 3636ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12 3637ed0d50c3SchristosRelative offset within page of GOT slot. 3638ed0d50c3Schristos@end deffn 3639ed0d50c3Schristos@deffn {} BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT 3640ed0d50c3SchristosAddress of a GOT entry. 3641ed0d50c3Schristos@end deffn 3642ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_32_LO 3643ed0d50c3SchristosThis is a 32 bit reloc for the microblaze that stores the 3644ed0d50c3Schristoslow 16 bits of a value 3645ed0d50c3Schristos@end deffn 3646ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_32_LO_PCREL 3647ed0d50c3SchristosThis is a 32 bit pc-relative reloc for the microblaze that 3648ed0d50c3Schristosstores the low 16 bits of a value 3649ed0d50c3Schristos@end deffn 3650ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_32_ROSDA 3651ed0d50c3SchristosThis is a 32 bit reloc for the microblaze that stores a 3652ed0d50c3Schristosvalue relative to the read-only small data area anchor 3653ed0d50c3Schristos@end deffn 3654ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_32_RWSDA 3655ed0d50c3SchristosThis is a 32 bit reloc for the microblaze that stores a 3656ed0d50c3Schristosvalue relative to the read-write small data area anchor 3657ed0d50c3Schristos@end deffn 3658ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM 3659ed0d50c3SchristosThis is a 32 bit reloc for the microblaze to handle 3660ed0d50c3Schristosexpressions of the form "Symbol Op Symbol" 3661ed0d50c3Schristos@end deffn 3662ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_NONE 3663ed0d50c3SchristosThis is a 64 bit reloc that stores the 32 bit pc relative 3664ed0d50c3Schristosvalue in two words (with an imm instruction). No relocation is 3665ed0d50c3Schristosdone here - only used for relaxing 3666ed0d50c3Schristos@end deffn 3667ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_GOTPC 3668ed0d50c3SchristosThis is a 64 bit reloc that stores the 32 bit pc relative 3669ed0d50c3Schristosvalue in two words (with an imm instruction). The relocation is 3670ed0d50c3SchristosPC-relative GOT offset 3671ed0d50c3Schristos@end deffn 3672ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_GOT 3673ed0d50c3SchristosThis is a 64 bit reloc that stores the 32 bit pc relative 3674ed0d50c3Schristosvalue in two words (with an imm instruction). The relocation is 3675ed0d50c3SchristosGOT offset 3676ed0d50c3Schristos@end deffn 3677ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_PLT 3678ed0d50c3SchristosThis is a 64 bit reloc that stores the 32 bit pc relative 3679ed0d50c3Schristosvalue in two words (with an imm instruction). The relocation is 3680ed0d50c3SchristosPC-relative offset into PLT 3681ed0d50c3Schristos@end deffn 3682ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_GOTOFF 3683ed0d50c3SchristosThis is a 64 bit reloc that stores the 32 bit GOT relative 3684ed0d50c3Schristosvalue in two words (with an imm instruction). The relocation is 3685ed0d50c3Schristosrelative offset from _GLOBAL_OFFSET_TABLE_ 3686ed0d50c3Schristos@end deffn 3687ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_32_GOTOFF 3688ed0d50c3SchristosThis is a 32 bit reloc that stores the 32 bit GOT relative 3689ed0d50c3Schristosvalue in a word. The relocation is relative offset from 3690ed0d50c3Schristos@end deffn 3691ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_COPY 3692ed0d50c3SchristosThis is used to tell the dynamic linker to copy the value out of 3693ed0d50c3Schristosthe dynamic object into the runtime process image. 3694ed0d50c3Schristos@end deffn 3695ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_TLS 3696ed0d50c3SchristosUnused Reloc 3697ed0d50c3Schristos@end deffn 3698ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_TLSGD 3699ed0d50c3SchristosThis is a 64 bit reloc that stores the 32 bit GOT relative value 3700ed0d50c3Schristosof the GOT TLS GD info entry in two words (with an imm instruction). The 3701ed0d50c3Schristosrelocation is GOT offset. 3702ed0d50c3Schristos@end deffn 3703ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_TLSLD 3704ed0d50c3SchristosThis is a 64 bit reloc that stores the 32 bit GOT relative value 3705ed0d50c3Schristosof the GOT TLS LD info entry in two words (with an imm instruction). The 3706ed0d50c3Schristosrelocation is GOT offset. 3707ed0d50c3Schristos@end deffn 3708ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_32_TLSDTPMOD 3709ed0d50c3SchristosThis is a 32 bit reloc that stores the Module ID to GOT(n). 3710ed0d50c3Schristos@end deffn 3711ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_32_TLSDTPREL 3712ed0d50c3SchristosThis is a 32 bit reloc that stores TLS offset to GOT(n+1). 3713ed0d50c3Schristos@end deffn 3714ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_TLSDTPREL 3715ed0d50c3SchristosThis is a 32 bit reloc for storing TLS offset to two words (uses imm 3716ed0d50c3Schristosinstruction) 3717ed0d50c3Schristos@end deffn 3718ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL 3719ed0d50c3SchristosThis is a 64 bit reloc that stores 32-bit thread pointer relative offset 3720ed0d50c3Schristosto two words (uses imm instruction). 3721ed0d50c3Schristos@end deffn 3722ed0d50c3Schristos@deffn {} BFD_RELOC_MICROBLAZE_64_TLSTPREL 3723ed0d50c3SchristosThis is a 64 bit reloc that stores 32-bit thread pointer relative offset 3724ed0d50c3Schristosto two words (uses imm instruction). 3725ed0d50c3Schristos@end deffn 372606324dcfSchristos@deffn {} BFD_RELOC_MICROBLAZE_64_TEXTPCREL 372706324dcfSchristosThis is a 64 bit reloc that stores the 32 bit pc relative 372806324dcfSchristosvalue in two words (with an imm instruction). The relocation is 372906324dcfSchristosPC-relative offset from start of TEXT. 373006324dcfSchristos@end deffn 373106324dcfSchristos@deffn {} BFD_RELOC_MICROBLAZE_64_TEXTREL 373206324dcfSchristosThis is a 64 bit reloc that stores the 32 bit offset 373306324dcfSchristosvalue in two words (with an imm instruction). The relocation is 373406324dcfSchristosrelative offset from start of TEXT. 373506324dcfSchristos@end deffn 3736ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_RELOC_START 3737ed0d50c3SchristosAArch64 pseudo relocation code to mark the start of the AArch64 3738ed0d50c3Schristosrelocation enumerators. N.B. the order of the enumerators is 3739ed0d50c3Schristosimportant as several tables in the AArch64 bfd backend are indexed 3740ed0d50c3Schristosby these enumerators; make sure they are all synced. 3741ed0d50c3Schristos@end deffn 3742ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_NULL 3743ed0d50c3SchristosDeprecated AArch64 null relocation code. 3744ed0d50c3Schristos@end deffn 3745ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_NONE 3746ed0d50c3SchristosAArch64 null relocation code. 3747ed0d50c3Schristos@end deffn 3748ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_64 3749ed0d50c3Schristos@deffnx {} BFD_RELOC_AARCH64_32 3750ed0d50c3Schristos@deffnx {} BFD_RELOC_AARCH64_16 3751ed0d50c3SchristosBasic absolute relocations of N bits. These are equivalent to 3752ed0d50c3SchristosBFD_RELOC_N and they were added to assist the indexing of the howto 3753ed0d50c3Schristostable. 3754ed0d50c3Schristos@end deffn 3755ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_64_PCREL 3756ed0d50c3Schristos@deffnx {} BFD_RELOC_AARCH64_32_PCREL 3757ed0d50c3Schristos@deffnx {} BFD_RELOC_AARCH64_16_PCREL 3758ed0d50c3SchristosPC-relative relocations. These are equivalent to BFD_RELOC_N_PCREL 3759ed0d50c3Schristosand they were added to assist the indexing of the howto table. 3760ed0d50c3Schristos@end deffn 3761ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_G0 3762ed0d50c3SchristosAArch64 MOV[NZK] instruction with most significant bits 0 to 15 3763ed0d50c3Schristosof an unsigned address/value. 3764ed0d50c3Schristos@end deffn 3765ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_G0_NC 3766ed0d50c3SchristosAArch64 MOV[NZK] instruction with less significant bits 0 to 15 of 3767ed0d50c3Schristosan address/value. No overflow checking. 3768ed0d50c3Schristos@end deffn 3769ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_G1 3770ed0d50c3SchristosAArch64 MOV[NZK] instruction with most significant bits 16 to 31 3771ed0d50c3Schristosof an unsigned address/value. 3772ed0d50c3Schristos@end deffn 3773ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_G1_NC 3774ed0d50c3SchristosAArch64 MOV[NZK] instruction with less significant bits 16 to 31 3775ed0d50c3Schristosof an address/value. No overflow checking. 3776ed0d50c3Schristos@end deffn 3777ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_G2 3778ed0d50c3SchristosAArch64 MOV[NZK] instruction with most significant bits 32 to 47 3779ed0d50c3Schristosof an unsigned address/value. 3780ed0d50c3Schristos@end deffn 3781ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_G2_NC 3782ed0d50c3SchristosAArch64 MOV[NZK] instruction with less significant bits 32 to 47 3783ed0d50c3Schristosof an address/value. No overflow checking. 3784ed0d50c3Schristos@end deffn 3785ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_G3 3786ed0d50c3SchristosAArch64 MOV[NZK] instruction with most signficant bits 48 to 64 3787ed0d50c3Schristosof a signed or unsigned address/value. 3788ed0d50c3Schristos@end deffn 3789ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_G0_S 3790ed0d50c3SchristosAArch64 MOV[NZ] instruction with most significant bits 0 to 15 3791ed0d50c3Schristosof a signed value. Changes instruction to MOVZ or MOVN depending on the 3792ed0d50c3Schristosvalue's sign. 3793ed0d50c3Schristos@end deffn 3794ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_G1_S 3795ed0d50c3SchristosAArch64 MOV[NZ] instruction with most significant bits 16 to 31 3796ed0d50c3Schristosof a signed value. Changes instruction to MOVZ or MOVN depending on the 3797ed0d50c3Schristosvalue's sign. 3798ed0d50c3Schristos@end deffn 3799ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_G2_S 3800ed0d50c3SchristosAArch64 MOV[NZ] instruction with most significant bits 32 to 47 3801ed0d50c3Schristosof a signed value. Changes instruction to MOVZ or MOVN depending on the 3802ed0d50c3Schristosvalue's sign. 3803ed0d50c3Schristos@end deffn 380406324dcfSchristos@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G0 380506324dcfSchristosAArch64 MOV[NZ] instruction with most significant bits 0 to 15 380606324dcfSchristosof a signed value. Changes instruction to MOVZ or MOVN depending on the 380706324dcfSchristosvalue's sign. 380806324dcfSchristos@end deffn 380906324dcfSchristos@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G0_NC 381006324dcfSchristosAArch64 MOV[NZ] instruction with most significant bits 0 to 15 381106324dcfSchristosof a signed value. Changes instruction to MOVZ or MOVN depending on the 381206324dcfSchristosvalue's sign. 381306324dcfSchristos@end deffn 381406324dcfSchristos@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G1 381506324dcfSchristosAArch64 MOVK instruction with most significant bits 16 to 31 381606324dcfSchristosof a signed value. 381706324dcfSchristos@end deffn 381806324dcfSchristos@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G1_NC 381906324dcfSchristosAArch64 MOVK instruction with most significant bits 16 to 31 382006324dcfSchristosof a signed value. 382106324dcfSchristos@end deffn 382206324dcfSchristos@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G2 382306324dcfSchristosAArch64 MOVK instruction with most significant bits 32 to 47 382406324dcfSchristosof a signed value. 382506324dcfSchristos@end deffn 382606324dcfSchristos@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G2_NC 382706324dcfSchristosAArch64 MOVK instruction with most significant bits 32 to 47 382806324dcfSchristosof a signed value. 382906324dcfSchristos@end deffn 383006324dcfSchristos@deffn {} BFD_RELOC_AARCH64_MOVW_PREL_G3 383106324dcfSchristosAArch64 MOVK instruction with most significant bits 47 to 63 383206324dcfSchristosof a signed value. 383306324dcfSchristos@end deffn 3834ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LD_LO19_PCREL 3835ed0d50c3SchristosAArch64 Load Literal instruction, holding a 19 bit pc-relative word 3836ed0d50c3Schristosoffset. The lowest two bits must be zero and are not stored in the 3837ed0d50c3Schristosinstruction, giving a 21 bit signed byte offset. 3838ed0d50c3Schristos@end deffn 3839ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_ADR_LO21_PCREL 3840ed0d50c3SchristosAArch64 ADR instruction, holding a simple 21 bit pc-relative byte offset. 3841ed0d50c3Schristos@end deffn 3842ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_ADR_HI21_PCREL 3843ed0d50c3SchristosAArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page 3844ed0d50c3Schristosoffset, giving a 4KB aligned page base address. 3845ed0d50c3Schristos@end deffn 3846ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL 3847ed0d50c3SchristosAArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page 3848ed0d50c3Schristosoffset, giving a 4KB aligned page base address, but with no overflow 3849ed0d50c3Schristoschecking. 3850ed0d50c3Schristos@end deffn 3851ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_ADD_LO12 3852ed0d50c3SchristosAArch64 ADD immediate instruction, holding bits 0 to 11 of the address. 3853ed0d50c3SchristosUsed in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. 3854ed0d50c3Schristos@end deffn 3855ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LDST8_LO12 3856ed0d50c3SchristosAArch64 8-bit load/store instruction, holding bits 0 to 11 of the 3857ed0d50c3Schristosaddress. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. 3858ed0d50c3Schristos@end deffn 3859ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TSTBR14 3860ed0d50c3SchristosAArch64 14 bit pc-relative test bit and branch. 3861ed0d50c3SchristosThe lowest two bits must be zero and are not stored in the instruction, 3862ed0d50c3Schristosgiving a 16 bit signed byte offset. 3863ed0d50c3Schristos@end deffn 3864ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_BRANCH19 3865ed0d50c3SchristosAArch64 19 bit pc-relative conditional branch and compare & branch. 3866ed0d50c3SchristosThe lowest two bits must be zero and are not stored in the instruction, 3867ed0d50c3Schristosgiving a 21 bit signed byte offset. 3868ed0d50c3Schristos@end deffn 3869ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_JUMP26 3870ed0d50c3SchristosAArch64 26 bit pc-relative unconditional branch. 3871ed0d50c3SchristosThe lowest two bits must be zero and are not stored in the instruction, 3872ed0d50c3Schristosgiving a 28 bit signed byte offset. 3873ed0d50c3Schristos@end deffn 3874ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_CALL26 3875ed0d50c3SchristosAArch64 26 bit pc-relative unconditional branch and link. 3876ed0d50c3SchristosThe lowest two bits must be zero and are not stored in the instruction, 3877ed0d50c3Schristosgiving a 28 bit signed byte offset. 3878ed0d50c3Schristos@end deffn 3879ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LDST16_LO12 3880ed0d50c3SchristosAArch64 16-bit load/store instruction, holding bits 0 to 11 of the 3881ed0d50c3Schristosaddress. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. 3882ed0d50c3Schristos@end deffn 3883ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LDST32_LO12 3884ed0d50c3SchristosAArch64 32-bit load/store instruction, holding bits 0 to 11 of the 3885ed0d50c3Schristosaddress. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. 3886ed0d50c3Schristos@end deffn 3887ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LDST64_LO12 3888ed0d50c3SchristosAArch64 64-bit load/store instruction, holding bits 0 to 11 of the 3889ed0d50c3Schristosaddress. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. 3890ed0d50c3Schristos@end deffn 3891ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LDST128_LO12 3892ed0d50c3SchristosAArch64 128-bit load/store instruction, holding bits 0 to 11 of the 3893ed0d50c3Schristosaddress. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. 3894ed0d50c3Schristos@end deffn 3895ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_GOT_LD_PREL19 3896ed0d50c3SchristosAArch64 Load Literal instruction, holding a 19 bit PC relative word 3897ed0d50c3Schristosoffset of the global offset table entry for a symbol. The lowest two 3898ed0d50c3Schristosbits must be zero and are not stored in the instruction, giving a 21 3899ed0d50c3Schristosbit signed byte offset. This relocation type requires signed overflow 3900ed0d50c3Schristoschecking. 3901ed0d50c3Schristos@end deffn 3902ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_ADR_GOT_PAGE 3903ed0d50c3SchristosGet to the page base of the global offset table entry for a symbol as 3904ed0d50c3Schristospart of an ADRP instruction using a 21 bit PC relative value.Used in 3905ed0d50c3Schristosconjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC. 3906ed0d50c3Schristos@end deffn 3907ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LD64_GOT_LO12_NC 3908ed0d50c3SchristosUnsigned 12 bit byte offset for 64 bit load/store from the page of 3909ed0d50c3Schristosthe GOT entry for this symbol. Used in conjunction with 391006324dcfSchristosBFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in LP64 ABI only. 3911ed0d50c3Schristos@end deffn 3912ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LD32_GOT_LO12_NC 3913ed0d50c3SchristosUnsigned 12 bit byte offset for 32 bit load/store from the page of 3914ed0d50c3Schristosthe GOT entry for this symbol. Used in conjunction with 391506324dcfSchristosBFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in ILP32 ABI only. 3916ed0d50c3Schristos@end deffn 3917ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC 3918ed0d50c3SchristosUnsigned 16 bit byte offset for 64 bit load/store from the GOT entry 3919ed0d50c3Schristosfor this symbol. Valid in LP64 ABI only. 3920ed0d50c3Schristos@end deffn 3921ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_MOVW_GOTOFF_G1 3922ed0d50c3SchristosUnsigned 16 bit byte higher offset for 64 bit load/store from the GOT entry 3923ed0d50c3Schristosfor this symbol. Valid in LP64 ABI only. 3924ed0d50c3Schristos@end deffn 3925ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LD64_GOTOFF_LO15 3926ed0d50c3SchristosUnsigned 15 bit byte offset for 64 bit load/store from the page of 3927ed0d50c3Schristosthe GOT entry for this symbol. Valid in LP64 ABI only. 3928ed0d50c3Schristos@end deffn 3929ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14 3930ed0d50c3SchristosScaled 14 bit byte offset to the page base of the global offset table. 3931ed0d50c3Schristos@end deffn 3932ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15 3933ed0d50c3SchristosScaled 15 bit byte offset to the page base of the global offset table. 3934ed0d50c3Schristos@end deffn 3935ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21 3936ed0d50c3SchristosGet to the page base of the global offset table entry for a symbols 3937ed0d50c3Schristostls_index structure as part of an adrp instruction using a 21 bit PC 3938ed0d50c3Schristosrelative value. Used in conjunction with 3939ed0d50c3SchristosBFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC. 3940ed0d50c3Schristos@end deffn 3941ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSGD_ADR_PREL21 3942ed0d50c3SchristosAArch64 TLS General Dynamic 3943ed0d50c3Schristos@end deffn 3944ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC 3945ed0d50c3SchristosUnsigned 12 bit byte offset to global offset table entry for a symbols 3946ed0d50c3Schristostls_index structure. Used in conjunction with 3947ed0d50c3SchristosBFD_RELOC_AARCH64_TLSGD_ADR_PAGE21. 3948ed0d50c3Schristos@end deffn 3949ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC 3950ed0d50c3SchristosAArch64 TLS General Dynamic relocation. 3951ed0d50c3Schristos@end deffn 3952ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSGD_MOVW_G1 3953ed0d50c3SchristosAArch64 TLS General Dynamic relocation. 3954ed0d50c3Schristos@end deffn 3955ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 3956ed0d50c3SchristosAArch64 TLS INITIAL EXEC relocation. 3957ed0d50c3Schristos@end deffn 3958ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 3959ed0d50c3SchristosAArch64 TLS INITIAL EXEC relocation. 3960ed0d50c3Schristos@end deffn 3961ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC 3962ed0d50c3SchristosAArch64 TLS INITIAL EXEC relocation. 3963ed0d50c3Schristos@end deffn 3964ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19 3965ed0d50c3SchristosAArch64 TLS INITIAL EXEC relocation. 3966ed0d50c3Schristos@end deffn 3967ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 3968ed0d50c3SchristosAArch64 TLS INITIAL EXEC relocation. 3969ed0d50c3Schristos@end deffn 3970ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1 3971ed0d50c3SchristosAArch64 TLS INITIAL EXEC relocation. 3972ed0d50c3Schristos@end deffn 3973ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12 3974ed0d50c3Schristosbit[23:12] of byte offset to module TLS base address. 3975ed0d50c3Schristos@end deffn 3976ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12 3977ed0d50c3SchristosUnsigned 12 bit byte offset to module TLS base address. 3978ed0d50c3Schristos@end deffn 3979ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 3980ed0d50c3SchristosNo overflow check version of BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12. 3981ed0d50c3Schristos@end deffn 3982ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC 3983ed0d50c3SchristosUnsigned 12 bit byte offset to global offset table entry for a symbols 3984ed0d50c3Schristostls_index structure. Used in conjunction with 3985ed0d50c3SchristosBFD_RELOC_AARCH64_TLSLD_ADR_PAGE21. 3986ed0d50c3Schristos@end deffn 3987ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21 3988ed0d50c3SchristosGOT entry page address for AArch64 TLS Local Dynamic, used with ADRP 3989ed0d50c3Schristosinstruction. 3990ed0d50c3Schristos@end deffn 3991ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_ADR_PREL21 3992ed0d50c3SchristosGOT entry address for AArch64 TLS Local Dynamic, used with ADR instruction. 3993ed0d50c3Schristos@end deffn 3994ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12 3995ed0d50c3Schristosbit[11:1] of byte offset to module TLS base address, encoded in ldst 3996ed0d50c3Schristosinstructions. 3997ed0d50c3Schristos@end deffn 3998ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 3999ed0d50c3SchristosSimilar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no overflow check. 4000ed0d50c3Schristos@end deffn 4001ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12 4002ed0d50c3Schristosbit[11:2] of byte offset to module TLS base address, encoded in ldst 4003ed0d50c3Schristosinstructions. 4004ed0d50c3Schristos@end deffn 4005ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 4006ed0d50c3SchristosSimilar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no overflow check. 4007ed0d50c3Schristos@end deffn 4008ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12 4009ed0d50c3Schristosbit[11:3] of byte offset to module TLS base address, encoded in ldst 4010ed0d50c3Schristosinstructions. 4011ed0d50c3Schristos@end deffn 4012ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 4013ed0d50c3SchristosSimilar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no overflow check. 4014ed0d50c3Schristos@end deffn 4015ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12 4016ed0d50c3Schristosbit[11:0] of byte offset to module TLS base address, encoded in ldst 4017ed0d50c3Schristosinstructions. 4018ed0d50c3Schristos@end deffn 4019ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 4020ed0d50c3SchristosSimilar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no overflow check. 4021ed0d50c3Schristos@end deffn 4022ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 4023ed0d50c3Schristosbit[15:0] of byte offset to module TLS base address. 4024ed0d50c3Schristos@end deffn 4025ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 4026ed0d50c3SchristosNo overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 4027ed0d50c3Schristos@end deffn 4028ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 4029ed0d50c3Schristosbit[31:16] of byte offset to module TLS base address. 4030ed0d50c3Schristos@end deffn 4031ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 4032ed0d50c3SchristosNo overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 4033ed0d50c3Schristos@end deffn 4034ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2 4035ed0d50c3Schristosbit[47:32] of byte offset to module TLS base address. 4036ed0d50c3Schristos@end deffn 4037ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2 4038ed0d50c3SchristosAArch64 TLS LOCAL EXEC relocation. 4039ed0d50c3Schristos@end deffn 4040ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1 4041ed0d50c3SchristosAArch64 TLS LOCAL EXEC relocation. 4042ed0d50c3Schristos@end deffn 4043ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC 4044ed0d50c3SchristosAArch64 TLS LOCAL EXEC relocation. 4045ed0d50c3Schristos@end deffn 4046ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0 4047ed0d50c3SchristosAArch64 TLS LOCAL EXEC relocation. 4048ed0d50c3Schristos@end deffn 4049ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC 4050ed0d50c3SchristosAArch64 TLS LOCAL EXEC relocation. 4051ed0d50c3Schristos@end deffn 4052ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12 4053ed0d50c3SchristosAArch64 TLS LOCAL EXEC relocation. 4054ed0d50c3Schristos@end deffn 4055ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12 4056ed0d50c3SchristosAArch64 TLS LOCAL EXEC relocation. 4057ed0d50c3Schristos@end deffn 4058ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC 4059ed0d50c3SchristosAArch64 TLS LOCAL EXEC relocation. 4060ed0d50c3Schristos@end deffn 406106324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12 406206324dcfSchristosbit[11:1] of byte offset to module TLS base address, encoded in ldst 406306324dcfSchristosinstructions. 406406324dcfSchristos@end deffn 406506324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 406606324dcfSchristosSimilar as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no overflow check. 406706324dcfSchristos@end deffn 406806324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12 406906324dcfSchristosbit[11:2] of byte offset to module TLS base address, encoded in ldst 407006324dcfSchristosinstructions. 407106324dcfSchristos@end deffn 407206324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 407306324dcfSchristosSimilar as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no overflow check. 407406324dcfSchristos@end deffn 407506324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12 407606324dcfSchristosbit[11:3] of byte offset to module TLS base address, encoded in ldst 407706324dcfSchristosinstructions. 407806324dcfSchristos@end deffn 407906324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 408006324dcfSchristosSimilar as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no overflow check. 408106324dcfSchristos@end deffn 408206324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12 408306324dcfSchristosbit[11:0] of byte offset to module TLS base address, encoded in ldst 408406324dcfSchristosinstructions. 408506324dcfSchristos@end deffn 408606324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 408706324dcfSchristosSimilar as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no overflow check. 408806324dcfSchristos@end deffn 4089ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_LD_PREL19 4090ed0d50c3SchristosAArch64 TLS DESC relocation. 4091ed0d50c3Schristos@end deffn 4092ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21 4093ed0d50c3SchristosAArch64 TLS DESC relocation. 4094ed0d50c3Schristos@end deffn 4095ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21 4096ed0d50c3SchristosAArch64 TLS DESC relocation. 4097ed0d50c3Schristos@end deffn 409806324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_LD64_LO12 4099ed0d50c3SchristosAArch64 TLS DESC relocation. 4100ed0d50c3Schristos@end deffn 4101ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC 4102ed0d50c3SchristosAArch64 TLS DESC relocation. 4103ed0d50c3Schristos@end deffn 410406324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_ADD_LO12 4105ed0d50c3SchristosAArch64 TLS DESC relocation. 4106ed0d50c3Schristos@end deffn 4107ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_OFF_G1 4108ed0d50c3SchristosAArch64 TLS DESC relocation. 4109ed0d50c3Schristos@end deffn 4110ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC 4111ed0d50c3SchristosAArch64 TLS DESC relocation. 4112ed0d50c3Schristos@end deffn 4113ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_LDR 4114ed0d50c3SchristosAArch64 TLS DESC relocation. 4115ed0d50c3Schristos@end deffn 4116ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_ADD 4117ed0d50c3SchristosAArch64 TLS DESC relocation. 4118ed0d50c3Schristos@end deffn 4119ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_CALL 4120ed0d50c3SchristosAArch64 TLS DESC relocation. 4121ed0d50c3Schristos@end deffn 4122ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_COPY 4123ed0d50c3SchristosAArch64 TLS relocation. 4124ed0d50c3Schristos@end deffn 4125ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_GLOB_DAT 4126ed0d50c3SchristosAArch64 TLS relocation. 4127ed0d50c3Schristos@end deffn 4128ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_JUMP_SLOT 4129ed0d50c3SchristosAArch64 TLS relocation. 4130ed0d50c3Schristos@end deffn 4131ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_RELATIVE 4132ed0d50c3SchristosAArch64 TLS relocation. 4133ed0d50c3Schristos@end deffn 4134ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLS_DTPMOD 4135ed0d50c3SchristosAArch64 TLS relocation. 4136ed0d50c3Schristos@end deffn 4137ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLS_DTPREL 4138ed0d50c3SchristosAArch64 TLS relocation. 4139ed0d50c3Schristos@end deffn 4140ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLS_TPREL 4141ed0d50c3SchristosAArch64 TLS relocation. 4142ed0d50c3Schristos@end deffn 4143ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC 4144ed0d50c3SchristosAArch64 TLS relocation. 4145ed0d50c3Schristos@end deffn 4146ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_IRELATIVE 4147ed0d50c3SchristosAArch64 support for STT_GNU_IFUNC. 4148ed0d50c3Schristos@end deffn 4149ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_RELOC_END 4150ed0d50c3SchristosAArch64 pseudo relocation code to mark the end of the AArch64 4151ed0d50c3Schristosrelocation enumerators that have direct mapping to ELF reloc codes. 4152ed0d50c3SchristosThere are a few more enumerators after this one; those are mainly 4153ed0d50c3Schristosused by the AArch64 assembler for the internal fixup or to select 4154ed0d50c3Schristosone of the above enumerators. 4155ed0d50c3Schristos@end deffn 4156ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP 4157ed0d50c3SchristosAArch64 pseudo relocation code to be used internally by the AArch64 4158ed0d50c3Schristosassembler and not (currently) written to any object files. 4159ed0d50c3Schristos@end deffn 4160ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LDST_LO12 4161ed0d50c3SchristosAArch64 unspecified load/store instruction, holding bits 0 to 11 of the 4162ed0d50c3Schristosaddress. Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL. 4163ed0d50c3Schristos@end deffn 4164ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12 4165ed0d50c3SchristosAArch64 pseudo relocation code for TLS local dynamic mode. It's to be 4166ed0d50c3Schristosused internally by the AArch64 assembler and not (currently) written to 4167ed0d50c3Schristosany object files. 4168ed0d50c3Schristos@end deffn 4169ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC 4170ed0d50c3SchristosSimilar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check. 4171ed0d50c3Schristos@end deffn 417206324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12 417306324dcfSchristosAArch64 pseudo relocation code for TLS local exec mode. It's to be 417406324dcfSchristosused internally by the AArch64 assembler and not (currently) written to 417506324dcfSchristosany object files. 417606324dcfSchristos@end deffn 417706324dcfSchristos@deffn {} BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC 417806324dcfSchristosSimilar as BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no overflow check. 417906324dcfSchristos@end deffn 4180ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_LD_GOT_LO12_NC 4181ed0d50c3SchristosAArch64 pseudo relocation code to be used internally by the AArch64 4182ed0d50c3Schristosassembler and not (currently) written to any object files. 4183ed0d50c3Schristos@end deffn 4184ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC 4185ed0d50c3SchristosAArch64 pseudo relocation code to be used internally by the AArch64 4186ed0d50c3Schristosassembler and not (currently) written to any object files. 4187ed0d50c3Schristos@end deffn 4188ed0d50c3Schristos@deffn {} BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC 4189ed0d50c3SchristosAArch64 pseudo relocation code to be used internally by the AArch64 4190ed0d50c3Schristosassembler and not (currently) written to any object files. 4191ed0d50c3Schristos@end deffn 4192ed0d50c3Schristos@deffn {} BFD_RELOC_TILEPRO_COPY 4193ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_GLOB_DAT 4194ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_JMP_SLOT 4195ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_RELATIVE 4196ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_BROFF_X1 4197ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_JOFFLONG_X1 4198ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT 4199ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM8_X0 4200ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM8_Y0 4201ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM8_X1 4202ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM8_Y1 4203ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_DEST_IMM8_X1 4204ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_MT_IMM15_X1 4205ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_MF_IMM15_X1 4206ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0 4207ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1 4208ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_LO 4209ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_LO 4210ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_HI 4211ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_HI 4212ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_HA 4213ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_HA 4214ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_PCREL 4215ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_PCREL 4216ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL 4217ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL 4218ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL 4219ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL 4220ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL 4221ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL 4222ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_GOT 4223ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_GOT 4224ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO 4225ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO 4226ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI 4227ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI 4228ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA 4229ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA 4230ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_MMSTART_X0 4231ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_MMEND_X0 4232ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_MMSTART_X1 4233ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_MMEND_X1 4234ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_SHAMT_X0 4235ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_SHAMT_X1 4236ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_SHAMT_Y0 4237ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_SHAMT_Y1 4238ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_TLS_GD_CALL 4239ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD 4240ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD 4241ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD 4242ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD 4243ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_TLS_IE_LOAD 4244ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD 4245ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD 4246ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO 4247ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO 4248ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI 4249ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI 4250ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA 4251ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA 4252ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE 4253ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE 4254ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO 4255ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO 4256ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI 4257ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI 4258ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA 4259ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA 4260ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_TLS_DTPMOD32 4261ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_TLS_DTPOFF32 4262ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_TLS_TPOFF32 4263ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE 4264ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE 4265ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO 4266ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO 4267ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI 4268ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI 4269ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA 4270ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA 4271ed0d50c3SchristosTilera TILEPro Relocations. 4272ed0d50c3Schristos@end deffn 4273ed0d50c3Schristos@deffn {} BFD_RELOC_TILEGX_HW0 4274ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_HW1 4275ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_HW2 4276ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_HW3 4277ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_HW0_LAST 4278ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_HW1_LAST 4279ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_HW2_LAST 4280ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_COPY 4281ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_GLOB_DAT 4282ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_JMP_SLOT 4283ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_RELATIVE 4284ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_BROFF_X1 4285ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_JUMPOFF_X1 4286ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_JUMPOFF_X1_PLT 4287ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_X0 4288ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_Y0 4289ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_X1 4290ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_Y1 4291ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_DEST_IMM8_X1 4292ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_MT_IMM14_X1 4293ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_MF_IMM14_X1 4294ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_MMSTART_X0 4295ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_MMEND_X0 4296ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_SHAMT_X0 4297ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_SHAMT_X1 4298ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_SHAMT_Y0 4299ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_SHAMT_Y1 4300ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0 4301ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0 4302ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW1 4303ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW1 4304ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW2 4305ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW2 4306ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW3 4307ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW3 4308ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST 4309ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST 4310ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST 4311ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST 4312ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST 4313ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST 4314ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL 4315ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL 4316ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL 4317ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL 4318ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL 4319ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL 4320ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL 4321ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL 4322ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL 4323ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL 4324ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL 4325ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL 4326ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL 4327ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL 4328ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT 4329ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT 4330ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL 4331ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL 4332ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL 4333ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL 4334ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL 4335ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL 4336ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT 4337ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT 4338ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT 4339ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT 4340ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL 4341ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL 4342ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD 4343ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD 4344ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE 4345ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE 4346ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE 4347ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE 4348ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE 4349ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE 4350ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD 4351ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD 4352ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 4353ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 4354ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE 4355ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE 4356ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL 4357ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL 4358ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL 4359ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL 4360ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL 4361ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL 4362ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 4363ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 4364ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 4365ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 4366ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_TLS_DTPMOD64 4367ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_TLS_DTPOFF64 4368ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_TLS_TPOFF64 4369ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_TLS_DTPMOD32 4370ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_TLS_DTPOFF32 4371ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_TLS_TPOFF32 4372ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_TLS_GD_CALL 4373ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD 4374ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD 4375ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD 4376ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD 4377ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_TLS_IE_LOAD 4378ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD 4379ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD 4380ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD 4381ed0d50c3Schristos@deffnx {} BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD 4382ed0d50c3SchristosTilera TILE-Gx Relocations. 4383ed0d50c3Schristos@end deffn 4384*b88e3e88Schristos@deffn {} BFD_RELOC_BPF_64 4385*b88e3e88Schristos@deffnx {} BFD_RELOC_BPF_32 4386*b88e3e88Schristos@deffnx {} BFD_RELOC_BPF_16 4387*b88e3e88Schristos@deffnx {} BFD_RELOC_BPF_DISP16 4388*b88e3e88Schristos@deffnx {} BFD_RELOC_BPF_DISP32 4389*b88e3e88SchristosLinux eBPF relocations. 4390*b88e3e88Schristos@end deffn 4391ed0d50c3Schristos@deffn {} BFD_RELOC_EPIPHANY_SIMM8 4392ed0d50c3SchristosAdapteva EPIPHANY - 8 bit signed pc-relative displacement 4393ed0d50c3Schristos@end deffn 4394ed0d50c3Schristos@deffn {} BFD_RELOC_EPIPHANY_SIMM24 4395ed0d50c3SchristosAdapteva EPIPHANY - 24 bit signed pc-relative displacement 4396ed0d50c3Schristos@end deffn 4397ed0d50c3Schristos@deffn {} BFD_RELOC_EPIPHANY_HIGH 4398ed0d50c3SchristosAdapteva EPIPHANY - 16 most-significant bits of absolute address 4399ed0d50c3Schristos@end deffn 4400ed0d50c3Schristos@deffn {} BFD_RELOC_EPIPHANY_LOW 4401ed0d50c3SchristosAdapteva EPIPHANY - 16 least-significant bits of absolute address 4402ed0d50c3Schristos@end deffn 4403ed0d50c3Schristos@deffn {} BFD_RELOC_EPIPHANY_SIMM11 4404ed0d50c3SchristosAdapteva EPIPHANY - 11 bit signed number - add/sub immediate 4405ed0d50c3Schristos@end deffn 4406ed0d50c3Schristos@deffn {} BFD_RELOC_EPIPHANY_IMM11 4407ed0d50c3SchristosAdapteva EPIPHANY - 11 bit sign-magnitude number (ld/st displacement) 4408ed0d50c3Schristos@end deffn 4409ed0d50c3Schristos@deffn {} BFD_RELOC_EPIPHANY_IMM8 4410ed0d50c3SchristosAdapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction. 4411ed0d50c3Schristos@end deffn 4412ed0d50c3Schristos@deffn {} BFD_RELOC_VISIUM_HI16 4413ed0d50c3Schristos@deffnx {} BFD_RELOC_VISIUM_LO16 4414ed0d50c3Schristos@deffnx {} BFD_RELOC_VISIUM_IM16 4415ed0d50c3Schristos@deffnx {} BFD_RELOC_VISIUM_REL16 4416ed0d50c3Schristos@deffnx {} BFD_RELOC_VISIUM_HI16_PCREL 4417ed0d50c3Schristos@deffnx {} BFD_RELOC_VISIUM_LO16_PCREL 4418ed0d50c3Schristos@deffnx {} BFD_RELOC_VISIUM_IM16_PCREL 4419ed0d50c3SchristosVisium Relocations. 4420ed0d50c3Schristos@end deffn 442106324dcfSchristos@deffn {} BFD_RELOC_WASM32_LEB128 442206324dcfSchristos@deffnx {} BFD_RELOC_WASM32_LEB128_GOT 442306324dcfSchristos@deffnx {} BFD_RELOC_WASM32_LEB128_GOT_CODE 442406324dcfSchristos@deffnx {} BFD_RELOC_WASM32_LEB128_PLT 442506324dcfSchristos@deffnx {} BFD_RELOC_WASM32_PLT_INDEX 442606324dcfSchristos@deffnx {} BFD_RELOC_WASM32_ABS32_CODE 442706324dcfSchristos@deffnx {} BFD_RELOC_WASM32_COPY 442806324dcfSchristos@deffnx {} BFD_RELOC_WASM32_CODE_POINTER 442906324dcfSchristos@deffnx {} BFD_RELOC_WASM32_INDEX 443006324dcfSchristos@deffnx {} BFD_RELOC_WASM32_PLT_SIG 443106324dcfSchristosWebAssembly relocations. 443206324dcfSchristos@end deffn 4433*b88e3e88Schristos@deffn {} BFD_RELOC_CKCORE_NONE 4434*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_ADDR32 4435*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_IMM8BY4 4436*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_IMM11BY2 4437*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_IMM4BY2 4438*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL32 4439*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2 4440*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GNU_VTINHERIT 4441*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GNU_VTENTRY 4442*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_RELATIVE 4443*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_COPY 4444*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GLOB_DAT 4445*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_JUMP_SLOT 4446*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOTOFF 4447*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOTPC 4448*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOT32 4449*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PLT32 4450*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_ADDRGOT 4451*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_ADDRPLT 4452*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_IMM26BY2 4453*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_IMM16BY2 4454*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_IMM16BY4 4455*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_IMM10BY2 4456*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_IMM10BY4 4457*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_ADDR_HI16 4458*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_ADDR_LO16 4459*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOTPC_HI16 4460*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOTPC_LO16 4461*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOTOFF_HI16 4462*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOTOFF_LO16 4463*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOT12 4464*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOT_HI16 4465*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOT_LO16 4466*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PLT12 4467*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PLT_HI16 4468*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PLT_LO16 4469*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_ADDRGOT_HI16 4470*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_ADDRGOT_LO16 4471*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_ADDRPLT_HI16 4472*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_ADDRPLT_LO16 4473*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2 4474*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_TOFFSET_LO16 4475*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_DOFFSET_LO16 4476*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_IMM18BY2 4477*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_DOFFSET_IMM18 4478*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_DOFFSET_IMM18BY2 4479*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_DOFFSET_IMM18BY4 4480*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOTOFF_IMM18 4481*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_GOT_IMM18BY4 4482*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PLT_IMM18BY4 4483*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_IMM7BY4 4484*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_TLS_LE32 4485*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_TLS_IE32 4486*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_TLS_GD32 4487*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_TLS_LDM32 4488*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_TLS_LDO32 4489*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_TLS_DTPMOD32 4490*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_TLS_DTPOFF32 4491*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_TLS_TPOFF32 4492*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4 4493*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_NOJSRI 4494*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_CALLGRAPH 4495*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_IRELATIVE 4496*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4 4497*b88e3e88Schristos@deffnx {} BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4 4498*b88e3e88SchristosC-SKY relocations. 4499*b88e3e88Schristos@end deffn 4500*b88e3e88Schristos@deffn {} BFD_RELOC_S12Z_OPR 4501*b88e3e88SchristosS12Z relocations. 4502*b88e3e88Schristos@end deffn 4503ed0d50c3Schristos 4504ed0d50c3Schristos@example 4505ed0d50c3Schristos 4506ed0d50c3Schristostypedef enum bfd_reloc_code_real bfd_reloc_code_real_type; 4507ed0d50c3Schristos@end example 4508ed0d50c3Schristos@findex bfd_reloc_type_lookup 4509ed0d50c3Schristos@subsubsection @code{bfd_reloc_type_lookup} 4510ed0d50c3Schristos@strong{Synopsis} 4511ed0d50c3Schristos@example 4512ed0d50c3Schristosreloc_howto_type *bfd_reloc_type_lookup 4513ed0d50c3Schristos (bfd *abfd, bfd_reloc_code_real_type code); 4514ed0d50c3Schristosreloc_howto_type *bfd_reloc_name_lookup 4515ed0d50c3Schristos (bfd *abfd, const char *reloc_name); 4516ed0d50c3Schristos@end example 4517ed0d50c3Schristos@strong{Description}@* 4518ed0d50c3SchristosReturn a pointer to a howto structure which, when 4519ed0d50c3Schristosinvoked, will perform the relocation @var{code} on data from the 4520ed0d50c3Schristosarchitecture noted. 4521ed0d50c3Schristos 4522ed0d50c3Schristos@findex bfd_default_reloc_type_lookup 4523ed0d50c3Schristos@subsubsection @code{bfd_default_reloc_type_lookup} 4524ed0d50c3Schristos@strong{Synopsis} 4525ed0d50c3Schristos@example 4526ed0d50c3Schristosreloc_howto_type *bfd_default_reloc_type_lookup 4527ed0d50c3Schristos (bfd *abfd, bfd_reloc_code_real_type code); 4528ed0d50c3Schristos@end example 4529ed0d50c3Schristos@strong{Description}@* 4530ed0d50c3SchristosProvides a default relocation lookup routine for any architecture. 4531ed0d50c3Schristos 4532ed0d50c3Schristos@findex bfd_get_reloc_code_name 4533ed0d50c3Schristos@subsubsection @code{bfd_get_reloc_code_name} 4534ed0d50c3Schristos@strong{Synopsis} 4535ed0d50c3Schristos@example 4536ed0d50c3Schristosconst char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code); 4537ed0d50c3Schristos@end example 4538ed0d50c3Schristos@strong{Description}@* 4539ed0d50c3SchristosProvides a printable name for the supplied relocation code. 4540ed0d50c3SchristosUseful mainly for printing error messages. 4541ed0d50c3Schristos 4542ed0d50c3Schristos@findex bfd_generic_relax_section 4543ed0d50c3Schristos@subsubsection @code{bfd_generic_relax_section} 4544ed0d50c3Schristos@strong{Synopsis} 4545ed0d50c3Schristos@example 4546ed0d50c3Schristosbfd_boolean bfd_generic_relax_section 4547ed0d50c3Schristos (bfd *abfd, 4548ed0d50c3Schristos asection *section, 4549ed0d50c3Schristos struct bfd_link_info *, 4550ed0d50c3Schristos bfd_boolean *); 4551ed0d50c3Schristos@end example 4552ed0d50c3Schristos@strong{Description}@* 4553ed0d50c3SchristosProvides default handling for relaxing for back ends which 4554ed0d50c3Schristosdon't do relaxing. 4555ed0d50c3Schristos 4556ed0d50c3Schristos@findex bfd_generic_gc_sections 4557ed0d50c3Schristos@subsubsection @code{bfd_generic_gc_sections} 4558ed0d50c3Schristos@strong{Synopsis} 4559ed0d50c3Schristos@example 4560ed0d50c3Schristosbfd_boolean bfd_generic_gc_sections 4561ed0d50c3Schristos (bfd *, struct bfd_link_info *); 4562ed0d50c3Schristos@end example 4563ed0d50c3Schristos@strong{Description}@* 4564ed0d50c3SchristosProvides default handling for relaxing for back ends which 4565ed0d50c3Schristosdon't do section gc -- i.e., does nothing. 4566ed0d50c3Schristos 4567ed0d50c3Schristos@findex bfd_generic_lookup_section_flags 4568ed0d50c3Schristos@subsubsection @code{bfd_generic_lookup_section_flags} 4569ed0d50c3Schristos@strong{Synopsis} 4570ed0d50c3Schristos@example 4571ed0d50c3Schristosbfd_boolean bfd_generic_lookup_section_flags 4572ed0d50c3Schristos (struct bfd_link_info *, struct flag_info *, asection *); 4573ed0d50c3Schristos@end example 4574ed0d50c3Schristos@strong{Description}@* 4575ed0d50c3SchristosProvides default handling for section flags lookup 4576ed0d50c3Schristos-- i.e., does nothing. 4577ed0d50c3SchristosReturns FALSE if the section should be omitted, otherwise TRUE. 4578ed0d50c3Schristos 4579ed0d50c3Schristos@findex bfd_generic_merge_sections 4580ed0d50c3Schristos@subsubsection @code{bfd_generic_merge_sections} 4581ed0d50c3Schristos@strong{Synopsis} 4582ed0d50c3Schristos@example 4583ed0d50c3Schristosbfd_boolean bfd_generic_merge_sections 4584ed0d50c3Schristos (bfd *, struct bfd_link_info *); 4585ed0d50c3Schristos@end example 4586ed0d50c3Schristos@strong{Description}@* 4587ed0d50c3SchristosProvides default handling for SEC_MERGE section merging for back ends 4588ed0d50c3Schristoswhich don't have SEC_MERGE support -- i.e., does nothing. 4589ed0d50c3Schristos 4590ed0d50c3Schristos@findex bfd_generic_get_relocated_section_contents 4591ed0d50c3Schristos@subsubsection @code{bfd_generic_get_relocated_section_contents} 4592ed0d50c3Schristos@strong{Synopsis} 4593ed0d50c3Schristos@example 4594ed0d50c3Schristosbfd_byte *bfd_generic_get_relocated_section_contents 4595ed0d50c3Schristos (bfd *abfd, 4596ed0d50c3Schristos struct bfd_link_info *link_info, 4597ed0d50c3Schristos struct bfd_link_order *link_order, 4598ed0d50c3Schristos bfd_byte *data, 4599ed0d50c3Schristos bfd_boolean relocatable, 4600ed0d50c3Schristos asymbol **symbols); 4601ed0d50c3Schristos@end example 4602ed0d50c3Schristos@strong{Description}@* 4603ed0d50c3SchristosProvides default handling of relocation effort for back ends 4604ed0d50c3Schristoswhich can't be bothered to do it efficiently. 4605ed0d50c3Schristos 460606324dcfSchristos@findex _bfd_generic_set_reloc 460706324dcfSchristos@subsubsection @code{_bfd_generic_set_reloc} 460806324dcfSchristos@strong{Synopsis} 460906324dcfSchristos@example 461006324dcfSchristosvoid _bfd_generic_set_reloc 461106324dcfSchristos (bfd *abfd, 461206324dcfSchristos sec_ptr section, 461306324dcfSchristos arelent **relptr, 461406324dcfSchristos unsigned int count); 461506324dcfSchristos@end example 461606324dcfSchristos@strong{Description}@* 461706324dcfSchristosInstalls a new set of internal relocations in SECTION. 461806324dcfSchristos 461906324dcfSchristos@findex _bfd_unrecognized_reloc 462006324dcfSchristos@subsubsection @code{_bfd_unrecognized_reloc} 462106324dcfSchristos@strong{Synopsis} 462206324dcfSchristos@example 462306324dcfSchristosbfd_boolean _bfd_unrecognized_reloc 462406324dcfSchristos (bfd * abfd, 462506324dcfSchristos sec_ptr section, 462606324dcfSchristos unsigned int r_type); 462706324dcfSchristos@end example 462806324dcfSchristos@strong{Description}@* 462906324dcfSchristosReports an unrecognized reloc. 463006324dcfSchristosWritten as a function in order to reduce code duplication. 463106324dcfSchristosReturns FALSE so that it can be called from a return statement. 463206324dcfSchristos 4633