1 1.10 christos /* Copyright (C) 2006-2025 Free Software Foundation, Inc. 2 1.1 christos 3 1.1 christos This file is part of BFD, the Binary File Descriptor library. 4 1.1 christos 5 1.1 christos This program is free software; you can redistribute it and/or modify 6 1.1 christos it under the terms of the GNU General Public License as published by 7 1.1 christos the Free Software Foundation; either version 3 of the License, or 8 1.1 christos (at your option) any later version. 9 1.1 christos 10 1.1 christos This program is distributed in the hope that it will be useful, 11 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of 12 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 1.1 christos GNU General Public License for more details. 14 1.1 christos 15 1.1 christos You should have received a copy of the GNU General Public License 16 1.1 christos along with this program; if not, write to the Free Software 17 1.1 christos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 18 1.1 christos MA 02110-1301, USA. */ 19 1.1 christos 20 1.1 christos /* No relocation. */ 21 1.1 christos HOWTO (R_SH_NONE, /* type */ 22 1.1 christos 0, /* rightshift */ 23 1.8 christos 0, /* size */ 24 1.1 christos 0, /* bitsize */ 25 1.8 christos false, /* pc_relative */ 26 1.1 christos 0, /* bitpos */ 27 1.1 christos complain_overflow_dont, /* complain_on_overflow */ 28 1.1 christos sh_elf_ignore_reloc, /* special_function */ 29 1.1 christos "R_SH_NONE", /* name */ 30 1.8 christos false, /* partial_inplace */ 31 1.1 christos 0, /* src_mask */ 32 1.1 christos 0, /* dst_mask */ 33 1.8 christos false), /* pcrel_offset */ 34 1.1 christos 35 1.1 christos /* 32 bit absolute relocation. Setting partial_inplace to TRUE and 36 1.1 christos src_mask to a non-zero value is similar to the COFF toolchain. */ 37 1.1 christos HOWTO (R_SH_DIR32, /* type */ 38 1.1 christos 0, /* rightshift */ 39 1.8 christos 4, /* size */ 40 1.1 christos 32, /* bitsize */ 41 1.8 christos false, /* pc_relative */ 42 1.1 christos 0, /* bitpos */ 43 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 44 1.1 christos SH_ELF_RELOC, /* special_function */ 45 1.1 christos "R_SH_DIR32", /* name */ 46 1.1 christos SH_PARTIAL32, /* partial_inplace */ 47 1.1 christos SH_SRC_MASK32, /* src_mask */ 48 1.1 christos 0xffffffff, /* dst_mask */ 49 1.8 christos false), /* pcrel_offset */ 50 1.1 christos 51 1.1 christos /* 32 bit PC relative relocation. */ 52 1.1 christos HOWTO (R_SH_REL32, /* type */ 53 1.1 christos 0, /* rightshift */ 54 1.8 christos 4, /* size */ 55 1.1 christos 32, /* bitsize */ 56 1.8 christos true, /* pc_relative */ 57 1.1 christos 0, /* bitpos */ 58 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 59 1.1 christos sh_elf_ignore_reloc, /* special_function */ 60 1.1 christos "R_SH_REL32", /* name */ 61 1.1 christos SH_PARTIAL32, /* partial_inplace */ 62 1.1 christos SH_SRC_MASK32, /* src_mask */ 63 1.1 christos 0xffffffff, /* dst_mask */ 64 1.8 christos true), /* pcrel_offset */ 65 1.1 christos 66 1.1 christos /* 8 bit PC relative branch divided by 2. */ 67 1.1 christos HOWTO (R_SH_DIR8WPN, /* type */ 68 1.1 christos 1, /* rightshift */ 69 1.8 christos 2, /* size */ 70 1.1 christos 8, /* bitsize */ 71 1.8 christos true, /* pc_relative */ 72 1.1 christos 0, /* bitpos */ 73 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 74 1.1 christos sh_elf_ignore_reloc, /* special_function */ 75 1.1 christos "R_SH_DIR8WPN", /* name */ 76 1.8 christos true, /* partial_inplace */ 77 1.1 christos 0xff, /* src_mask */ 78 1.1 christos 0xff, /* dst_mask */ 79 1.8 christos true), /* pcrel_offset */ 80 1.1 christos 81 1.1 christos /* 12 bit PC relative branch divided by 2. */ 82 1.1 christos /* This cannot be partial_inplace because relaxation can't know the 83 1.1 christos eventual value of a symbol. */ 84 1.1 christos HOWTO (R_SH_IND12W, /* type */ 85 1.1 christos 1, /* rightshift */ 86 1.8 christos 2, /* size */ 87 1.1 christos 12, /* bitsize */ 88 1.8 christos true, /* pc_relative */ 89 1.1 christos 0, /* bitpos */ 90 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 91 1.1 christos NULL, /* special_function */ 92 1.1 christos "R_SH_IND12W", /* name */ 93 1.8 christos false, /* partial_inplace */ 94 1.1 christos 0x0, /* src_mask */ 95 1.1 christos 0xfff, /* dst_mask */ 96 1.8 christos true), /* pcrel_offset */ 97 1.1 christos 98 1.1 christos /* 8 bit unsigned PC relative divided by 4. */ 99 1.1 christos HOWTO (R_SH_DIR8WPL, /* type */ 100 1.1 christos 2, /* rightshift */ 101 1.8 christos 2, /* size */ 102 1.1 christos 8, /* bitsize */ 103 1.8 christos true, /* pc_relative */ 104 1.1 christos 0, /* bitpos */ 105 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 106 1.1 christos sh_elf_ignore_reloc, /* special_function */ 107 1.1 christos "R_SH_DIR8WPL", /* name */ 108 1.8 christos true, /* partial_inplace */ 109 1.1 christos 0xff, /* src_mask */ 110 1.1 christos 0xff, /* dst_mask */ 111 1.8 christos true), /* pcrel_offset */ 112 1.1 christos 113 1.1 christos /* 8 bit unsigned PC relative divided by 2. */ 114 1.1 christos HOWTO (R_SH_DIR8WPZ, /* type */ 115 1.1 christos 1, /* rightshift */ 116 1.8 christos 2, /* size */ 117 1.1 christos 8, /* bitsize */ 118 1.8 christos true, /* pc_relative */ 119 1.1 christos 0, /* bitpos */ 120 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 121 1.1 christos sh_elf_ignore_reloc, /* special_function */ 122 1.1 christos "R_SH_DIR8WPZ", /* name */ 123 1.8 christos true, /* partial_inplace */ 124 1.1 christos 0xff, /* src_mask */ 125 1.1 christos 0xff, /* dst_mask */ 126 1.8 christos true), /* pcrel_offset */ 127 1.1 christos 128 1.1 christos /* 8 bit GBR relative. FIXME: This only makes sense if we have some 129 1.1 christos special symbol for the GBR relative area, and that is not 130 1.1 christos implemented. */ 131 1.1 christos HOWTO (R_SH_DIR8BP, /* type */ 132 1.1 christos 0, /* rightshift */ 133 1.8 christos 2, /* size */ 134 1.1 christos 8, /* bitsize */ 135 1.8 christos false, /* pc_relative */ 136 1.1 christos 0, /* bitpos */ 137 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 138 1.1 christos sh_elf_ignore_reloc, /* special_function */ 139 1.1 christos "R_SH_DIR8BP", /* name */ 140 1.8 christos false, /* partial_inplace */ 141 1.1 christos 0, /* src_mask */ 142 1.1 christos 0xff, /* dst_mask */ 143 1.8 christos true), /* pcrel_offset */ 144 1.1 christos 145 1.1 christos /* 8 bit GBR relative divided by 2. FIXME: This only makes sense if 146 1.1 christos we have some special symbol for the GBR relative area, and that 147 1.1 christos is not implemented. */ 148 1.1 christos HOWTO (R_SH_DIR8W, /* type */ 149 1.1 christos 1, /* rightshift */ 150 1.8 christos 2, /* size */ 151 1.1 christos 8, /* bitsize */ 152 1.8 christos false, /* pc_relative */ 153 1.1 christos 0, /* bitpos */ 154 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 155 1.1 christos sh_elf_ignore_reloc, /* special_function */ 156 1.1 christos "R_SH_DIR8W", /* name */ 157 1.8 christos false, /* partial_inplace */ 158 1.1 christos 0, /* src_mask */ 159 1.1 christos 0xff, /* dst_mask */ 160 1.8 christos true), /* pcrel_offset */ 161 1.1 christos 162 1.1 christos /* 8 bit GBR relative divided by 4. FIXME: This only makes sense if 163 1.1 christos we have some special symbol for the GBR relative area, and that 164 1.1 christos is not implemented. */ 165 1.1 christos HOWTO (R_SH_DIR8L, /* type */ 166 1.1 christos 2, /* rightshift */ 167 1.8 christos 2, /* size */ 168 1.1 christos 8, /* bitsize */ 169 1.8 christos false, /* pc_relative */ 170 1.1 christos 0, /* bitpos */ 171 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 172 1.1 christos sh_elf_ignore_reloc, /* special_function */ 173 1.1 christos "R_SH_DIR8L", /* name */ 174 1.8 christos false, /* partial_inplace */ 175 1.1 christos 0, /* src_mask */ 176 1.1 christos 0xff, /* dst_mask */ 177 1.8 christos true), /* pcrel_offset */ 178 1.1 christos 179 1.1 christos /* 8 bit PC relative divided by 2 - but specified in a very odd way. */ 180 1.1 christos HOWTO (R_SH_LOOP_START, /* type */ 181 1.1 christos 1, /* rightshift */ 182 1.8 christos 2, /* size */ 183 1.1 christos 8, /* bitsize */ 184 1.8 christos false, /* pc_relative */ 185 1.1 christos 0, /* bitpos */ 186 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 187 1.1 christos sh_elf_ignore_reloc, /* special_function */ 188 1.1 christos "R_SH_LOOP_START", /* name */ 189 1.8 christos true, /* partial_inplace */ 190 1.1 christos 0xff, /* src_mask */ 191 1.1 christos 0xff, /* dst_mask */ 192 1.8 christos true), /* pcrel_offset */ 193 1.1 christos 194 1.1 christos /* 8 bit PC relative divided by 2 - but specified in a very odd way. */ 195 1.1 christos HOWTO (R_SH_LOOP_END, /* type */ 196 1.1 christos 1, /* rightshift */ 197 1.8 christos 2, /* size */ 198 1.1 christos 8, /* bitsize */ 199 1.8 christos false, /* pc_relative */ 200 1.1 christos 0, /* bitpos */ 201 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 202 1.1 christos sh_elf_ignore_reloc, /* special_function */ 203 1.1 christos "R_SH_LOOP_END", /* name */ 204 1.8 christos true, /* partial_inplace */ 205 1.1 christos 0xff, /* src_mask */ 206 1.1 christos 0xff, /* dst_mask */ 207 1.8 christos true), /* pcrel_offset */ 208 1.1 christos 209 1.1 christos EMPTY_HOWTO (12), 210 1.1 christos EMPTY_HOWTO (13), 211 1.1 christos EMPTY_HOWTO (14), 212 1.1 christos EMPTY_HOWTO (15), 213 1.1 christos EMPTY_HOWTO (16), 214 1.1 christos EMPTY_HOWTO (17), 215 1.1 christos EMPTY_HOWTO (18), 216 1.1 christos EMPTY_HOWTO (19), 217 1.1 christos EMPTY_HOWTO (20), 218 1.1 christos EMPTY_HOWTO (21), 219 1.1 christos 220 1.1 christos /* The remaining relocs are a GNU extension used for relaxing. The 221 1.1 christos final pass of the linker never needs to do anything with any of 222 1.1 christos these relocs. Any required operations are handled by the 223 1.1 christos relaxation code. */ 224 1.1 christos 225 1.1 christos /* GNU extension to record C++ vtable hierarchy */ 226 1.1 christos HOWTO (R_SH_GNU_VTINHERIT, /* type */ 227 1.1 christos 0, /* rightshift */ 228 1.8 christos 4, /* size */ 229 1.1 christos 0, /* bitsize */ 230 1.8 christos false, /* pc_relative */ 231 1.1 christos 0, /* bitpos */ 232 1.1 christos complain_overflow_dont, /* complain_on_overflow */ 233 1.1 christos NULL, /* special_function */ 234 1.1 christos "R_SH_GNU_VTINHERIT", /* name */ 235 1.8 christos false, /* partial_inplace */ 236 1.1 christos 0, /* src_mask */ 237 1.1 christos 0, /* dst_mask */ 238 1.8 christos false), /* pcrel_offset */ 239 1.1 christos 240 1.1 christos /* GNU extension to record C++ vtable member usage */ 241 1.1 christos HOWTO (R_SH_GNU_VTENTRY, /* type */ 242 1.1 christos 0, /* rightshift */ 243 1.8 christos 4, /* size */ 244 1.1 christos 0, /* bitsize */ 245 1.8 christos false, /* pc_relative */ 246 1.1 christos 0, /* bitpos */ 247 1.1 christos complain_overflow_dont, /* complain_on_overflow */ 248 1.1 christos _bfd_elf_rel_vtable_reloc_fn, /* special_function */ 249 1.1 christos "R_SH_GNU_VTENTRY", /* name */ 250 1.8 christos false, /* partial_inplace */ 251 1.1 christos 0, /* src_mask */ 252 1.1 christos 0, /* dst_mask */ 253 1.8 christos false), /* pcrel_offset */ 254 1.1 christos 255 1.1 christos /* An 8 bit switch table entry. This is generated for an expression 256 1.1 christos such as ``.word L1 - L2''. The offset holds the difference 257 1.1 christos between the reloc address and L2. */ 258 1.1 christos HOWTO (R_SH_SWITCH8, /* type */ 259 1.1 christos 0, /* rightshift */ 260 1.8 christos 1, /* size */ 261 1.1 christos 8, /* bitsize */ 262 1.8 christos false, /* pc_relative */ 263 1.1 christos 0, /* bitpos */ 264 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 265 1.1 christos sh_elf_ignore_reloc, /* special_function */ 266 1.1 christos "R_SH_SWITCH8", /* name */ 267 1.8 christos false, /* partial_inplace */ 268 1.1 christos 0, /* src_mask */ 269 1.1 christos 0, /* dst_mask */ 270 1.8 christos true), /* pcrel_offset */ 271 1.1 christos 272 1.1 christos /* A 16 bit switch table entry. This is generated for an expression 273 1.1 christos such as ``.word L1 - L2''. The offset holds the difference 274 1.1 christos between the reloc address and L2. */ 275 1.1 christos HOWTO (R_SH_SWITCH16, /* type */ 276 1.1 christos 0, /* rightshift */ 277 1.8 christos 2, /* size */ 278 1.1 christos 16, /* bitsize */ 279 1.8 christos false, /* pc_relative */ 280 1.1 christos 0, /* bitpos */ 281 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 282 1.1 christos sh_elf_ignore_reloc, /* special_function */ 283 1.1 christos "R_SH_SWITCH16", /* name */ 284 1.8 christos false, /* partial_inplace */ 285 1.1 christos 0, /* src_mask */ 286 1.1 christos 0, /* dst_mask */ 287 1.8 christos true), /* pcrel_offset */ 288 1.1 christos 289 1.1 christos /* A 32 bit switch table entry. This is generated for an expression 290 1.1 christos such as ``.long L1 - L2''. The offset holds the difference 291 1.1 christos between the reloc address and L2. */ 292 1.1 christos HOWTO (R_SH_SWITCH32, /* type */ 293 1.1 christos 0, /* rightshift */ 294 1.8 christos 4, /* size */ 295 1.1 christos 32, /* bitsize */ 296 1.8 christos false, /* pc_relative */ 297 1.1 christos 0, /* bitpos */ 298 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 299 1.1 christos sh_elf_ignore_reloc, /* special_function */ 300 1.1 christos "R_SH_SWITCH32", /* name */ 301 1.8 christos false, /* partial_inplace */ 302 1.1 christos 0, /* src_mask */ 303 1.1 christos 0, /* dst_mask */ 304 1.8 christos true), /* pcrel_offset */ 305 1.1 christos 306 1.1 christos /* Indicates a .uses pseudo-op. The compiler will generate .uses 307 1.1 christos pseudo-ops when it finds a function call which can be relaxed. 308 1.1 christos The offset field holds the PC relative offset to the instruction 309 1.1 christos which loads the register used in the function call. */ 310 1.1 christos HOWTO (R_SH_USES, /* type */ 311 1.1 christos 0, /* rightshift */ 312 1.8 christos 2, /* size */ 313 1.1 christos 0, /* bitsize */ 314 1.8 christos false, /* pc_relative */ 315 1.1 christos 0, /* bitpos */ 316 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 317 1.1 christos sh_elf_ignore_reloc, /* special_function */ 318 1.1 christos "R_SH_USES", /* name */ 319 1.8 christos false, /* partial_inplace */ 320 1.1 christos 0, /* src_mask */ 321 1.1 christos 0, /* dst_mask */ 322 1.8 christos true), /* pcrel_offset */ 323 1.1 christos 324 1.1 christos /* The assembler will generate this reloc for addresses referred to 325 1.1 christos by the register loads associated with USES relocs. The offset 326 1.1 christos field holds the number of times the address is referenced in the 327 1.1 christos object file. */ 328 1.1 christos HOWTO (R_SH_COUNT, /* type */ 329 1.1 christos 0, /* rightshift */ 330 1.8 christos 2, /* size */ 331 1.1 christos 0, /* bitsize */ 332 1.8 christos false, /* pc_relative */ 333 1.1 christos 0, /* bitpos */ 334 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 335 1.1 christos sh_elf_ignore_reloc, /* special_function */ 336 1.1 christos "R_SH_COUNT", /* name */ 337 1.8 christos false, /* partial_inplace */ 338 1.1 christos 0, /* src_mask */ 339 1.1 christos 0, /* dst_mask */ 340 1.8 christos true), /* pcrel_offset */ 341 1.1 christos 342 1.1 christos /* Indicates an alignment statement. The offset field is the power 343 1.1 christos of 2 to which subsequent portions of the object file must be 344 1.1 christos aligned. */ 345 1.1 christos HOWTO (R_SH_ALIGN, /* type */ 346 1.1 christos 0, /* rightshift */ 347 1.8 christos 2, /* size */ 348 1.1 christos 0, /* bitsize */ 349 1.8 christos false, /* pc_relative */ 350 1.1 christos 0, /* bitpos */ 351 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 352 1.1 christos sh_elf_ignore_reloc, /* special_function */ 353 1.1 christos "R_SH_ALIGN", /* name */ 354 1.8 christos false, /* partial_inplace */ 355 1.1 christos 0, /* src_mask */ 356 1.1 christos 0, /* dst_mask */ 357 1.8 christos true), /* pcrel_offset */ 358 1.1 christos 359 1.1 christos /* The assembler will generate this reloc before a block of 360 1.1 christos instructions. A section should be processed as assuming it 361 1.1 christos contains data, unless this reloc is seen. */ 362 1.1 christos HOWTO (R_SH_CODE, /* type */ 363 1.1 christos 0, /* rightshift */ 364 1.8 christos 2, /* size */ 365 1.1 christos 0, /* bitsize */ 366 1.8 christos false, /* pc_relative */ 367 1.1 christos 0, /* bitpos */ 368 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 369 1.1 christos sh_elf_ignore_reloc, /* special_function */ 370 1.1 christos "R_SH_CODE", /* name */ 371 1.8 christos false, /* partial_inplace */ 372 1.1 christos 0, /* src_mask */ 373 1.1 christos 0, /* dst_mask */ 374 1.8 christos true), /* pcrel_offset */ 375 1.1 christos 376 1.1 christos /* The assembler will generate this reloc after a block of 377 1.1 christos instructions when it sees data that is not instructions. */ 378 1.1 christos HOWTO (R_SH_DATA, /* type */ 379 1.1 christos 0, /* rightshift */ 380 1.8 christos 2, /* size */ 381 1.1 christos 0, /* bitsize */ 382 1.8 christos false, /* pc_relative */ 383 1.1 christos 0, /* bitpos */ 384 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 385 1.1 christos sh_elf_ignore_reloc, /* special_function */ 386 1.1 christos "R_SH_DATA", /* name */ 387 1.8 christos false, /* partial_inplace */ 388 1.1 christos 0, /* src_mask */ 389 1.1 christos 0, /* dst_mask */ 390 1.8 christos true), /* pcrel_offset */ 391 1.1 christos 392 1.1 christos /* The assembler generates this reloc for each label within a block 393 1.1 christos of instructions. This permits the linker to avoid swapping 394 1.1 christos instructions which are the targets of branches. */ 395 1.1 christos HOWTO (R_SH_LABEL, /* type */ 396 1.1 christos 0, /* rightshift */ 397 1.8 christos 2, /* size */ 398 1.1 christos 0, /* bitsize */ 399 1.8 christos false, /* pc_relative */ 400 1.1 christos 0, /* bitpos */ 401 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 402 1.1 christos sh_elf_ignore_reloc, /* special_function */ 403 1.1 christos "R_SH_LABEL", /* name */ 404 1.8 christos false, /* partial_inplace */ 405 1.1 christos 0, /* src_mask */ 406 1.1 christos 0, /* dst_mask */ 407 1.8 christos true), /* pcrel_offset */ 408 1.1 christos 409 1.1 christos /* The next 12 are only supported via linking in SHC-generated objects. */ 410 1.1 christos HOWTO (R_SH_DIR16, /* type */ 411 1.1 christos 0, /* rightshift */ 412 1.8 christos 2, /* size */ 413 1.1 christos 16, /* bitsize */ 414 1.8 christos false, /* pc_relative */ 415 1.1 christos 0, /* bitpos */ 416 1.1 christos complain_overflow_dont, /* complain_on_overflow */ 417 1.1 christos bfd_elf_generic_reloc, /* special_function */ 418 1.1 christos "R_SH_DIR16", /* name */ 419 1.8 christos false, /* partial_inplace */ 420 1.1 christos 0, /* src_mask */ 421 1.1 christos 0xffff, /* dst_mask */ 422 1.8 christos false), /* pcrel_offset */ 423 1.1 christos 424 1.1 christos HOWTO (R_SH_DIR8, /* type */ 425 1.1 christos 0, /* rightshift */ 426 1.8 christos 1, /* size */ 427 1.1 christos 8, /* bitsize */ 428 1.8 christos false, /* pc_relative */ 429 1.1 christos 0, /* bitpos */ 430 1.1 christos complain_overflow_dont, /* complain_on_overflow */ 431 1.1 christos bfd_elf_generic_reloc, /* special_function */ 432 1.1 christos "R_SH_DIR8", /* name */ 433 1.8 christos false, /* partial_inplace */ 434 1.1 christos 0, /* src_mask */ 435 1.1 christos 0xff, /* dst_mask */ 436 1.8 christos false), /* pcrel_offset */ 437 1.1 christos 438 1.1 christos HOWTO (R_SH_DIR8UL, /* type */ 439 1.1 christos 2, /* rightshift */ 440 1.8 christos 1, /* size */ 441 1.1 christos 8, /* bitsize */ 442 1.8 christos false, /* pc_relative */ 443 1.1 christos 0, /* bitpos */ 444 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 445 1.1 christos bfd_elf_generic_reloc, /* special_function */ 446 1.1 christos "R_SH_DIR8UL", /* name */ 447 1.8 christos false, /* partial_inplace */ 448 1.1 christos 0, /* src_mask */ 449 1.1 christos 0xff, /* dst_mask */ 450 1.8 christos false), /* pcrel_offset */ 451 1.1 christos 452 1.1 christos HOWTO (R_SH_DIR8UW, /* type */ 453 1.1 christos 1, /* rightshift */ 454 1.8 christos 1, /* size */ 455 1.1 christos 8, /* bitsize */ 456 1.8 christos false, /* pc_relative */ 457 1.1 christos 0, /* bitpos */ 458 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 459 1.1 christos bfd_elf_generic_reloc, /* special_function */ 460 1.1 christos "R_SH_DIR8UW", /* name */ 461 1.8 christos false, /* partial_inplace */ 462 1.1 christos 0, /* src_mask */ 463 1.1 christos 0xff, /* dst_mask */ 464 1.8 christos false), /* pcrel_offset */ 465 1.1 christos 466 1.1 christos HOWTO (R_SH_DIR8U, /* type */ 467 1.1 christos 0, /* rightshift */ 468 1.8 christos 1, /* size */ 469 1.1 christos 8, /* bitsize */ 470 1.8 christos false, /* pc_relative */ 471 1.1 christos 0, /* bitpos */ 472 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 473 1.1 christos bfd_elf_generic_reloc, /* special_function */ 474 1.1 christos "R_SH_DIR8U", /* name */ 475 1.8 christos false, /* partial_inplace */ 476 1.1 christos 0, /* src_mask */ 477 1.1 christos 0xff, /* dst_mask */ 478 1.8 christos false), /* pcrel_offset */ 479 1.1 christos 480 1.1 christos HOWTO (R_SH_DIR8SW, /* type */ 481 1.1 christos 1, /* rightshift */ 482 1.8 christos 1, /* size */ 483 1.1 christos 8, /* bitsize */ 484 1.8 christos false, /* pc_relative */ 485 1.1 christos 0, /* bitpos */ 486 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 487 1.1 christos bfd_elf_generic_reloc, /* special_function */ 488 1.1 christos "R_SH_DIR8SW", /* name */ 489 1.8 christos false, /* partial_inplace */ 490 1.1 christos 0, /* src_mask */ 491 1.1 christos 0xff, /* dst_mask */ 492 1.8 christos false), /* pcrel_offset */ 493 1.1 christos 494 1.1 christos HOWTO (R_SH_DIR8S, /* type */ 495 1.1 christos 0, /* rightshift */ 496 1.8 christos 1, /* size */ 497 1.1 christos 8, /* bitsize */ 498 1.8 christos false, /* pc_relative */ 499 1.1 christos 0, /* bitpos */ 500 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 501 1.1 christos bfd_elf_generic_reloc, /* special_function */ 502 1.1 christos "R_SH_DIR8S", /* name */ 503 1.8 christos false, /* partial_inplace */ 504 1.1 christos 0, /* src_mask */ 505 1.1 christos 0xff, /* dst_mask */ 506 1.8 christos false), /* pcrel_offset */ 507 1.1 christos 508 1.1 christos HOWTO (R_SH_DIR4UL, /* type */ 509 1.1 christos 2, /* rightshift */ 510 1.8 christos 1, /* size */ 511 1.1 christos 4, /* bitsize */ 512 1.8 christos false, /* pc_relative */ 513 1.1 christos 0, /* bitpos */ 514 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 515 1.1 christos bfd_elf_generic_reloc, /* special_function */ 516 1.1 christos "R_SH_DIR4UL", /* name */ 517 1.8 christos false, /* partial_inplace */ 518 1.1 christos 0, /* src_mask */ 519 1.1 christos 0x0f, /* dst_mask */ 520 1.8 christos false), /* pcrel_offset */ 521 1.1 christos 522 1.1 christos HOWTO (R_SH_DIR4UW, /* type */ 523 1.1 christos 1, /* rightshift */ 524 1.8 christos 1, /* size */ 525 1.1 christos 4, /* bitsize */ 526 1.8 christos false, /* pc_relative */ 527 1.1 christos 0, /* bitpos */ 528 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 529 1.1 christos bfd_elf_generic_reloc, /* special_function */ 530 1.1 christos "R_SH_DIR4UW", /* name */ 531 1.8 christos false, /* partial_inplace */ 532 1.1 christos 0, /* src_mask */ 533 1.1 christos 0x0f, /* dst_mask */ 534 1.8 christos false), /* pcrel_offset */ 535 1.1 christos 536 1.1 christos HOWTO (R_SH_DIR4U, /* type */ 537 1.1 christos 0, /* rightshift */ 538 1.8 christos 1, /* size */ 539 1.1 christos 4, /* bitsize */ 540 1.8 christos false, /* pc_relative */ 541 1.1 christos 0, /* bitpos */ 542 1.1 christos complain_overflow_unsigned, /* complain_on_overflow */ 543 1.1 christos bfd_elf_generic_reloc, /* special_function */ 544 1.1 christos "R_SH_DIR4U", /* name */ 545 1.8 christos false, /* partial_inplace */ 546 1.1 christos 0, /* src_mask */ 547 1.1 christos 0x0f, /* dst_mask */ 548 1.8 christos false), /* pcrel_offset */ 549 1.1 christos 550 1.1 christos HOWTO (R_SH_PSHA, /* type */ 551 1.1 christos 0, /* rightshift */ 552 1.8 christos 2, /* size */ 553 1.1 christos 7, /* bitsize */ 554 1.8 christos false, /* pc_relative */ 555 1.1 christos 4, /* bitpos */ 556 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 557 1.1 christos bfd_elf_generic_reloc, /* special_function */ 558 1.1 christos "R_SH_PSHA", /* name */ 559 1.8 christos false, /* partial_inplace */ 560 1.1 christos 0, /* src_mask */ 561 1.1 christos 0x0f, /* dst_mask */ 562 1.8 christos false), /* pcrel_offset */ 563 1.1 christos 564 1.1 christos HOWTO (R_SH_PSHL, /* type */ 565 1.1 christos 0, /* rightshift */ 566 1.8 christos 2, /* size */ 567 1.1 christos 7, /* bitsize */ 568 1.8 christos false, /* pc_relative */ 569 1.1 christos 4, /* bitpos */ 570 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 571 1.1 christos bfd_elf_generic_reloc, /* special_function */ 572 1.1 christos "R_SH_PSHL", /* name */ 573 1.8 christos false, /* partial_inplace */ 574 1.1 christos 0, /* src_mask */ 575 1.1 christos 0x0f, /* dst_mask */ 576 1.8 christos false), /* pcrel_offset */ 577 1.1 christos 578 1.1 christos EMPTY_HOWTO (45), 579 1.1 christos EMPTY_HOWTO (46), 580 1.1 christos EMPTY_HOWTO (47), 581 1.1 christos EMPTY_HOWTO (48), 582 1.1 christos EMPTY_HOWTO (49), 583 1.1 christos EMPTY_HOWTO (50), 584 1.1 christos EMPTY_HOWTO (51), 585 1.1 christos 586 1.1 christos EMPTY_HOWTO (52), 587 1.1 christos 588 1.1 christos HOWTO (R_SH_DIR16S, /* type */ 589 1.1 christos 0, /* rightshift */ 590 1.8 christos 2, /* size */ 591 1.1 christos 16, /* bitsize */ 592 1.8 christos false, /* pc_relative */ 593 1.1 christos 0, /* bitpos */ 594 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 595 1.1 christos bfd_elf_generic_reloc, /* special_function */ 596 1.1 christos "R_SH_DIR16S", /* name */ 597 1.8 christos false, /* partial_inplace */ 598 1.1 christos 0, /* src_mask */ 599 1.1 christos 0xffff, /* dst_mask */ 600 1.8 christos false), /* pcrel_offset */ 601 1.1 christos 602 1.1 christos EMPTY_HOWTO (54), 603 1.1 christos EMPTY_HOWTO (55), 604 1.1 christos EMPTY_HOWTO (56), 605 1.1 christos EMPTY_HOWTO (57), 606 1.1 christos EMPTY_HOWTO (58), 607 1.1 christos EMPTY_HOWTO (59), 608 1.1 christos EMPTY_HOWTO (60), 609 1.1 christos EMPTY_HOWTO (61), 610 1.1 christos EMPTY_HOWTO (62), 611 1.1 christos EMPTY_HOWTO (63), 612 1.1 christos EMPTY_HOWTO (64), 613 1.1 christos EMPTY_HOWTO (65), 614 1.1 christos EMPTY_HOWTO (66), 615 1.1 christos EMPTY_HOWTO (67), 616 1.1 christos EMPTY_HOWTO (68), 617 1.1 christos EMPTY_HOWTO (69), 618 1.1 christos EMPTY_HOWTO (70), 619 1.1 christos EMPTY_HOWTO (71), 620 1.1 christos EMPTY_HOWTO (72), 621 1.1 christos EMPTY_HOWTO (73), 622 1.1 christos EMPTY_HOWTO (74), 623 1.1 christos EMPTY_HOWTO (75), 624 1.1 christos EMPTY_HOWTO (76), 625 1.1 christos EMPTY_HOWTO (77), 626 1.1 christos EMPTY_HOWTO (78), 627 1.1 christos EMPTY_HOWTO (79), 628 1.1 christos EMPTY_HOWTO (80), 629 1.1 christos EMPTY_HOWTO (81), 630 1.1 christos EMPTY_HOWTO (82), 631 1.1 christos EMPTY_HOWTO (83), 632 1.1 christos EMPTY_HOWTO (84), 633 1.1 christos EMPTY_HOWTO (85), 634 1.1 christos EMPTY_HOWTO (86), 635 1.1 christos EMPTY_HOWTO (87), 636 1.1 christos EMPTY_HOWTO (88), 637 1.1 christos EMPTY_HOWTO (89), 638 1.1 christos EMPTY_HOWTO (90), 639 1.1 christos EMPTY_HOWTO (91), 640 1.1 christos EMPTY_HOWTO (92), 641 1.1 christos EMPTY_HOWTO (93), 642 1.1 christos EMPTY_HOWTO (94), 643 1.1 christos EMPTY_HOWTO (95), 644 1.1 christos EMPTY_HOWTO (96), 645 1.1 christos EMPTY_HOWTO (97), 646 1.1 christos EMPTY_HOWTO (98), 647 1.1 christos EMPTY_HOWTO (99), 648 1.1 christos EMPTY_HOWTO (100), 649 1.1 christos EMPTY_HOWTO (101), 650 1.1 christos EMPTY_HOWTO (102), 651 1.1 christos EMPTY_HOWTO (103), 652 1.1 christos EMPTY_HOWTO (104), 653 1.1 christos EMPTY_HOWTO (105), 654 1.1 christos EMPTY_HOWTO (106), 655 1.1 christos EMPTY_HOWTO (107), 656 1.1 christos EMPTY_HOWTO (108), 657 1.1 christos EMPTY_HOWTO (109), 658 1.1 christos EMPTY_HOWTO (110), 659 1.1 christos EMPTY_HOWTO (111), 660 1.1 christos EMPTY_HOWTO (112), 661 1.1 christos EMPTY_HOWTO (113), 662 1.1 christos EMPTY_HOWTO (114), 663 1.1 christos EMPTY_HOWTO (115), 664 1.1 christos EMPTY_HOWTO (116), 665 1.1 christos EMPTY_HOWTO (117), 666 1.1 christos EMPTY_HOWTO (118), 667 1.1 christos EMPTY_HOWTO (119), 668 1.1 christos EMPTY_HOWTO (120), 669 1.1 christos EMPTY_HOWTO (121), 670 1.1 christos EMPTY_HOWTO (122), 671 1.1 christos EMPTY_HOWTO (123), 672 1.1 christos EMPTY_HOWTO (124), 673 1.1 christos EMPTY_HOWTO (125), 674 1.1 christos EMPTY_HOWTO (126), 675 1.1 christos EMPTY_HOWTO (127), 676 1.1 christos EMPTY_HOWTO (128), 677 1.1 christos EMPTY_HOWTO (129), 678 1.1 christos EMPTY_HOWTO (130), 679 1.1 christos EMPTY_HOWTO (131), 680 1.1 christos EMPTY_HOWTO (132), 681 1.1 christos EMPTY_HOWTO (133), 682 1.1 christos EMPTY_HOWTO (134), 683 1.1 christos EMPTY_HOWTO (135), 684 1.1 christos EMPTY_HOWTO (136), 685 1.1 christos EMPTY_HOWTO (137), 686 1.1 christos EMPTY_HOWTO (138), 687 1.1 christos EMPTY_HOWTO (139), 688 1.1 christos EMPTY_HOWTO (140), 689 1.1 christos EMPTY_HOWTO (141), 690 1.1 christos EMPTY_HOWTO (142), 691 1.1 christos EMPTY_HOWTO (143), 692 1.1 christos 693 1.1 christos HOWTO (R_SH_TLS_GD_32, /* type */ 694 1.1 christos 0, /* rightshift */ 695 1.8 christos 4, /* size */ 696 1.1 christos 32, /* bitsize */ 697 1.8 christos false, /* pc_relative */ 698 1.1 christos 0, /* bitpos */ 699 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 700 1.1 christos bfd_elf_generic_reloc, /* */ 701 1.1 christos "R_SH_TLS_GD_32", /* name */ 702 1.1 christos SH_PARTIAL32, /* partial_inplace */ 703 1.1 christos SH_SRC_MASK32, /* src_mask */ 704 1.1 christos 0xffffffff, /* dst_mask */ 705 1.8 christos false), /* pcrel_offset */ 706 1.1 christos 707 1.1 christos HOWTO (R_SH_TLS_LD_32, /* type */ 708 1.1 christos 0, /* rightshift */ 709 1.8 christos 4, /* size */ 710 1.1 christos 32, /* bitsize */ 711 1.8 christos false, /* pc_relative */ 712 1.1 christos 0, /* bitpos */ 713 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 714 1.1 christos bfd_elf_generic_reloc, /* */ 715 1.1 christos "R_SH_TLS_LD_32", /* name */ 716 1.1 christos SH_PARTIAL32, /* partial_inplace */ 717 1.1 christos SH_SRC_MASK32, /* src_mask */ 718 1.1 christos 0xffffffff, /* dst_mask */ 719 1.8 christos false), /* pcrel_offset */ 720 1.1 christos 721 1.1 christos HOWTO (R_SH_TLS_LDO_32, /* type */ 722 1.1 christos 0, /* rightshift */ 723 1.8 christos 4, /* size */ 724 1.1 christos 32, /* bitsize */ 725 1.8 christos false, /* pc_relative */ 726 1.1 christos 0, /* bitpos */ 727 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 728 1.1 christos bfd_elf_generic_reloc, /* */ 729 1.1 christos "R_SH_TLS_LDO_32", /* name */ 730 1.1 christos SH_PARTIAL32, /* partial_inplace */ 731 1.1 christos SH_SRC_MASK32, /* src_mask */ 732 1.1 christos 0xffffffff, /* dst_mask */ 733 1.8 christos false), /* pcrel_offset */ 734 1.1 christos 735 1.1 christos HOWTO (R_SH_TLS_IE_32, /* type */ 736 1.1 christos 0, /* rightshift */ 737 1.8 christos 4, /* size */ 738 1.1 christos 32, /* bitsize */ 739 1.8 christos false, /* pc_relative */ 740 1.1 christos 0, /* bitpos */ 741 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 742 1.1 christos bfd_elf_generic_reloc, /* */ 743 1.1 christos "R_SH_TLS_IE_32", /* name */ 744 1.1 christos SH_PARTIAL32, /* partial_inplace */ 745 1.1 christos SH_SRC_MASK32, /* src_mask */ 746 1.1 christos 0xffffffff, /* dst_mask */ 747 1.8 christos false), /* pcrel_offset */ 748 1.1 christos 749 1.1 christos HOWTO (R_SH_TLS_LE_32, /* type */ 750 1.1 christos 0, /* rightshift */ 751 1.8 christos 4, /* size */ 752 1.1 christos 32, /* bitsize */ 753 1.8 christos false, /* pc_relative */ 754 1.1 christos 0, /* bitpos */ 755 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 756 1.1 christos bfd_elf_generic_reloc, /* */ 757 1.1 christos "R_SH_TLS_LE_32", /* name */ 758 1.1 christos SH_PARTIAL32, /* partial_inplace */ 759 1.1 christos SH_SRC_MASK32, /* src_mask */ 760 1.1 christos 0xffffffff, /* dst_mask */ 761 1.8 christos false), /* pcrel_offset */ 762 1.1 christos 763 1.1 christos HOWTO (R_SH_TLS_DTPMOD32, /* type */ 764 1.1 christos 0, /* rightshift */ 765 1.8 christos 4, /* size */ 766 1.1 christos 32, /* bitsize */ 767 1.8 christos false, /* pc_relative */ 768 1.1 christos 0, /* bitpos */ 769 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 770 1.1 christos bfd_elf_generic_reloc, /* */ 771 1.1 christos "R_SH_TLS_DTPMOD32", /* name */ 772 1.1 christos SH_PARTIAL32, /* partial_inplace */ 773 1.1 christos SH_SRC_MASK32, /* src_mask */ 774 1.1 christos 0xffffffff, /* dst_mask */ 775 1.8 christos false), /* pcrel_offset */ 776 1.1 christos 777 1.1 christos HOWTO (R_SH_TLS_DTPOFF32, /* type */ 778 1.1 christos 0, /* rightshift */ 779 1.8 christos 4, /* size */ 780 1.1 christos 32, /* bitsize */ 781 1.8 christos false, /* pc_relative */ 782 1.1 christos 0, /* bitpos */ 783 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 784 1.1 christos bfd_elf_generic_reloc, /* */ 785 1.1 christos "R_SH_TLS_DTPOFF32", /* name */ 786 1.1 christos SH_PARTIAL32, /* partial_inplace */ 787 1.1 christos SH_SRC_MASK32, /* src_mask */ 788 1.1 christos 0xffffffff, /* dst_mask */ 789 1.8 christos false), /* pcrel_offset */ 790 1.1 christos 791 1.1 christos HOWTO (R_SH_TLS_TPOFF32, /* type */ 792 1.1 christos 0, /* rightshift */ 793 1.8 christos 4, /* size */ 794 1.1 christos 32, /* bitsize */ 795 1.8 christos false, /* pc_relative */ 796 1.1 christos 0, /* bitpos */ 797 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 798 1.1 christos bfd_elf_generic_reloc, /* */ 799 1.1 christos "R_SH_TLS_TPOFF32", /* name */ 800 1.1 christos SH_PARTIAL32, /* partial_inplace */ 801 1.1 christos SH_SRC_MASK32, /* src_mask */ 802 1.1 christos 0xffffffff, /* dst_mask */ 803 1.8 christos false), /* pcrel_offset */ 804 1.1 christos 805 1.1 christos EMPTY_HOWTO (152), 806 1.1 christos EMPTY_HOWTO (153), 807 1.1 christos EMPTY_HOWTO (154), 808 1.1 christos EMPTY_HOWTO (155), 809 1.1 christos EMPTY_HOWTO (156), 810 1.1 christos EMPTY_HOWTO (157), 811 1.1 christos EMPTY_HOWTO (158), 812 1.1 christos EMPTY_HOWTO (159), 813 1.1 christos 814 1.1 christos HOWTO (R_SH_GOT32, /* type */ 815 1.1 christos 0, /* rightshift */ 816 1.8 christos 4, /* size */ 817 1.1 christos 32, /* bitsize */ 818 1.8 christos false, /* pc_relative */ 819 1.1 christos 0, /* bitpos */ 820 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 821 1.1 christos bfd_elf_generic_reloc, /* */ 822 1.1 christos "R_SH_GOT32", /* name */ 823 1.1 christos SH_PARTIAL32, /* partial_inplace */ 824 1.1 christos SH_SRC_MASK32, /* src_mask */ 825 1.1 christos 0xffffffff, /* dst_mask */ 826 1.8 christos false), /* pcrel_offset */ 827 1.1 christos 828 1.1 christos HOWTO (R_SH_PLT32, /* type */ 829 1.1 christos 0, /* rightshift */ 830 1.8 christos 4, /* size */ 831 1.1 christos 32, /* bitsize */ 832 1.8 christos true, /* pc_relative */ 833 1.1 christos 0, /* bitpos */ 834 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 835 1.1 christos bfd_elf_generic_reloc, /* */ 836 1.1 christos "R_SH_PLT32", /* name */ 837 1.1 christos SH_PARTIAL32, /* partial_inplace */ 838 1.1 christos SH_SRC_MASK32, /* src_mask */ 839 1.1 christos 0xffffffff, /* dst_mask */ 840 1.8 christos true), /* pcrel_offset */ 841 1.1 christos 842 1.1 christos HOWTO (R_SH_COPY, /* type */ 843 1.1 christos 0, /* rightshift */ 844 1.8 christos 4, /* size */ 845 1.1 christos 32, /* bitsize */ 846 1.8 christos false, /* pc_relative */ 847 1.1 christos 0, /* bitpos */ 848 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 849 1.1 christos bfd_elf_generic_reloc, /* */ 850 1.1 christos "R_SH_COPY", /* name */ 851 1.1 christos SH_PARTIAL32, /* partial_inplace */ 852 1.1 christos SH_SRC_MASK32, /* src_mask */ 853 1.1 christos 0xffffffff, /* dst_mask */ 854 1.8 christos false), /* pcrel_offset */ 855 1.1 christos 856 1.1 christos HOWTO (R_SH_GLOB_DAT, /* type */ 857 1.1 christos 0, /* rightshift */ 858 1.8 christos 4, /* size */ 859 1.1 christos 32, /* bitsize */ 860 1.8 christos false, /* pc_relative */ 861 1.1 christos 0, /* bitpos */ 862 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 863 1.1 christos bfd_elf_generic_reloc, /* */ 864 1.1 christos "R_SH_GLOB_DAT", /* name */ 865 1.1 christos SH_PARTIAL32, /* partial_inplace */ 866 1.1 christos SH_SRC_MASK32, /* src_mask */ 867 1.1 christos 0xffffffff, /* dst_mask */ 868 1.8 christos false), /* pcrel_offset */ 869 1.1 christos 870 1.1 christos HOWTO (R_SH_JMP_SLOT, /* type */ 871 1.1 christos 0, /* rightshift */ 872 1.8 christos 4, /* size */ 873 1.1 christos 32, /* bitsize */ 874 1.8 christos false, /* pc_relative */ 875 1.1 christos 0, /* bitpos */ 876 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 877 1.1 christos bfd_elf_generic_reloc, /* */ 878 1.1 christos "R_SH_JMP_SLOT", /* name */ 879 1.1 christos SH_PARTIAL32, /* partial_inplace */ 880 1.1 christos SH_SRC_MASK32, /* src_mask */ 881 1.1 christos 0xffffffff, /* dst_mask */ 882 1.8 christos false), /* pcrel_offset */ 883 1.1 christos 884 1.1 christos HOWTO (R_SH_RELATIVE, /* type */ 885 1.1 christos 0, /* rightshift */ 886 1.8 christos 4, /* size */ 887 1.1 christos 32, /* bitsize */ 888 1.8 christos false, /* pc_relative */ 889 1.1 christos 0, /* bitpos */ 890 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 891 1.1 christos bfd_elf_generic_reloc, /* */ 892 1.1 christos "R_SH_RELATIVE", /* name */ 893 1.1 christos SH_PARTIAL32, /* partial_inplace */ 894 1.1 christos SH_SRC_MASK32, /* src_mask */ 895 1.1 christos 0xffffffff, /* dst_mask */ 896 1.8 christos false), /* pcrel_offset */ 897 1.1 christos 898 1.1 christos HOWTO (R_SH_GOTOFF, /* type */ 899 1.1 christos 0, /* rightshift */ 900 1.8 christos 4, /* size */ 901 1.1 christos 32, /* bitsize */ 902 1.8 christos false, /* pc_relative */ 903 1.1 christos 0, /* bitpos */ 904 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 905 1.1 christos bfd_elf_generic_reloc, /* */ 906 1.1 christos "R_SH_GOTOFF", /* name */ 907 1.1 christos SH_PARTIAL32, /* partial_inplace */ 908 1.1 christos SH_SRC_MASK32, /* src_mask */ 909 1.1 christos 0xffffffff, /* dst_mask */ 910 1.8 christos false), /* pcrel_offset */ 911 1.1 christos 912 1.1 christos HOWTO (R_SH_GOTPC, /* type */ 913 1.1 christos 0, /* rightshift */ 914 1.8 christos 4, /* size */ 915 1.1 christos 32, /* bitsize */ 916 1.8 christos true, /* pc_relative */ 917 1.1 christos 0, /* bitpos */ 918 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 919 1.1 christos bfd_elf_generic_reloc, /* */ 920 1.1 christos "R_SH_GOTPC", /* name */ 921 1.1 christos SH_PARTIAL32, /* partial_inplace */ 922 1.1 christos SH_SRC_MASK32, /* src_mask */ 923 1.1 christos 0xffffffff, /* dst_mask */ 924 1.8 christos true), /* pcrel_offset */ 925 1.1 christos 926 1.1 christos HOWTO (R_SH_GOTPLT32, /* type */ 927 1.1 christos 0, /* rightshift */ 928 1.8 christos 4, /* size */ 929 1.1 christos 32, /* bitsize */ 930 1.8 christos false, /* pc_relative */ 931 1.1 christos 0, /* bitpos */ 932 1.1 christos complain_overflow_bitfield, /* complain_on_overflow */ 933 1.1 christos bfd_elf_generic_reloc, /* */ 934 1.1 christos "R_SH_GOTPLT32", /* name */ 935 1.8 christos false, /* partial_inplace */ 936 1.1 christos /* ??? Why not 0? */ 937 1.1 christos SH_SRC_MASK32, /* src_mask */ 938 1.1 christos 0xffffffff, /* dst_mask */ 939 1.8 christos false), /* pcrel_offset */ 940 1.1 christos 941 1.1 christos EMPTY_HOWTO (169), 942 1.1 christos EMPTY_HOWTO (170), 943 1.1 christos EMPTY_HOWTO (171), 944 1.1 christos EMPTY_HOWTO (172), 945 1.1 christos EMPTY_HOWTO (173), 946 1.1 christos EMPTY_HOWTO (174), 947 1.1 christos EMPTY_HOWTO (175), 948 1.1 christos EMPTY_HOWTO (176), 949 1.1 christos EMPTY_HOWTO (177), 950 1.1 christos EMPTY_HOWTO (178), 951 1.1 christos EMPTY_HOWTO (179), 952 1.1 christos EMPTY_HOWTO (180), 953 1.1 christos EMPTY_HOWTO (181), 954 1.1 christos EMPTY_HOWTO (182), 955 1.1 christos EMPTY_HOWTO (183), 956 1.1 christos EMPTY_HOWTO (184), 957 1.1 christos EMPTY_HOWTO (185), 958 1.1 christos EMPTY_HOWTO (186), 959 1.1 christos EMPTY_HOWTO (187), 960 1.1 christos EMPTY_HOWTO (188), 961 1.1 christos EMPTY_HOWTO (189), 962 1.1 christos EMPTY_HOWTO (190), 963 1.1 christos EMPTY_HOWTO (191), 964 1.1 christos EMPTY_HOWTO (192), 965 1.1 christos EMPTY_HOWTO (193), 966 1.1 christos EMPTY_HOWTO (194), 967 1.1 christos EMPTY_HOWTO (195), 968 1.1 christos EMPTY_HOWTO (196), 969 1.1 christos EMPTY_HOWTO (197), 970 1.1 christos EMPTY_HOWTO (198), 971 1.1 christos EMPTY_HOWTO (199), 972 1.1 christos EMPTY_HOWTO (200), 973 1.1 christos 974 1.1 christos /* FDPIC-relative offset to a GOT entry, for movi20. */ 975 1.1 christos HOWTO (R_SH_GOT20, /* type */ 976 1.1 christos 0, /* rightshift */ 977 1.8 christos 4, /* size */ 978 1.1 christos 20, /* bitsize */ 979 1.8 christos false, /* pc_relative */ 980 1.1 christos 0, /* bitpos */ 981 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 982 1.1 christos bfd_elf_generic_reloc, /* special_function */ 983 1.1 christos "R_SH_GOT20", /* name */ 984 1.8 christos false, /* partial_inplace */ 985 1.1 christos 0, /* src_mask */ 986 1.1 christos 0x00f0ffff, /* dst_mask */ 987 1.8 christos false), /* pcrel_offset */ 988 1.1 christos 989 1.1 christos /* FDPIC-relative offset to a data object, for movi20. */ 990 1.1 christos HOWTO (R_SH_GOTOFF20, /* type */ 991 1.1 christos 0, /* rightshift */ 992 1.8 christos 4, /* size */ 993 1.1 christos 20, /* bitsize */ 994 1.8 christos false, /* pc_relative */ 995 1.1 christos 0, /* bitpos */ 996 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 997 1.1 christos bfd_elf_generic_reloc, /* special_function */ 998 1.1 christos "R_SH_GOTOFF20", /* name */ 999 1.8 christos false, /* partial_inplace */ 1000 1.1 christos 0, /* src_mask */ 1001 1.1 christos 0x00f0ffff, /* dst_mask */ 1002 1.8 christos false), /* pcrel_offset */ 1003 1.1 christos 1004 1.1 christos /* FDPIC-relative offset to a GOT entry for a function descriptor. */ 1005 1.1 christos HOWTO (R_SH_GOTFUNCDESC, /* type */ 1006 1.1 christos 0, /* rightshift */ 1007 1.8 christos 4, /* size */ 1008 1.1 christos 32, /* bitsize */ 1009 1.8 christos false, /* pc_relative */ 1010 1.1 christos 0, /* bitpos */ 1011 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 1012 1.1 christos bfd_elf_generic_reloc, /* special_function */ 1013 1.1 christos "R_SH_GOTFUNCDESC", /* name */ 1014 1.8 christos false, /* partial_inplace */ 1015 1.1 christos 0, /* src_mask */ 1016 1.1 christos 0xffffffff, /* dst_mask */ 1017 1.8 christos false), /* pcrel_offset */ 1018 1.1 christos 1019 1.1 christos /* FDPIC-relative offset to a GOT entry for a function descriptor, 1020 1.1 christos for movi20. */ 1021 1.1 christos HOWTO (R_SH_GOTFUNCDESC20, /* type */ 1022 1.1 christos 0, /* rightshift */ 1023 1.8 christos 4, /* size */ 1024 1.1 christos 20, /* bitsize */ 1025 1.8 christos false, /* pc_relative */ 1026 1.1 christos 0, /* bitpos */ 1027 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 1028 1.1 christos bfd_elf_generic_reloc, /* special_function */ 1029 1.1 christos "R_SH_GOTFUNCDESC20", /* name */ 1030 1.8 christos false, /* partial_inplace */ 1031 1.1 christos 0, /* src_mask */ 1032 1.1 christos 0x00f0ffff, /* dst_mask */ 1033 1.8 christos false), /* pcrel_offset */ 1034 1.1 christos 1035 1.1 christos /* FDPIC-relative offset to a function descriptor. */ 1036 1.1 christos HOWTO (R_SH_GOTOFFFUNCDESC, /* type */ 1037 1.1 christos 0, /* rightshift */ 1038 1.8 christos 4, /* size */ 1039 1.1 christos 32, /* bitsize */ 1040 1.8 christos false, /* pc_relative */ 1041 1.1 christos 0, /* bitpos */ 1042 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 1043 1.1 christos bfd_elf_generic_reloc, /* special_function */ 1044 1.1 christos "R_SH_GOTOFFFUNCDESC", /* name */ 1045 1.8 christos false, /* partial_inplace */ 1046 1.1 christos 0, /* src_mask */ 1047 1.1 christos 0xffffffff, /* dst_mask */ 1048 1.8 christos false), /* pcrel_offset */ 1049 1.1 christos 1050 1.1 christos /* FDPIC-relative offset to a function descriptor, for movi20. */ 1051 1.1 christos HOWTO (R_SH_GOTOFFFUNCDESC20, /* type */ 1052 1.1 christos 0, /* rightshift */ 1053 1.8 christos 4, /* size */ 1054 1.1 christos 20, /* bitsize */ 1055 1.8 christos false, /* pc_relative */ 1056 1.1 christos 0, /* bitpos */ 1057 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 1058 1.1 christos bfd_elf_generic_reloc, /* special_function */ 1059 1.1 christos "R_SH_GOTOFFFUNCDESC20", /* name */ 1060 1.8 christos false, /* partial_inplace */ 1061 1.1 christos 0, /* src_mask */ 1062 1.1 christos 0x00f0ffff, /* dst_mask */ 1063 1.8 christos false), /* pcrel_offset */ 1064 1.1 christos 1065 1.1 christos /* Address of an official function descriptor. */ 1066 1.1 christos HOWTO (R_SH_FUNCDESC, /* type */ 1067 1.1 christos 0, /* rightshift */ 1068 1.8 christos 4, /* size */ 1069 1.1 christos 32, /* bitsize */ 1070 1.8 christos false, /* pc_relative */ 1071 1.1 christos 0, /* bitpos */ 1072 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 1073 1.1 christos bfd_elf_generic_reloc, /* special_function */ 1074 1.1 christos "R_SH_FUNCDESC", /* name */ 1075 1.8 christos false, /* partial_inplace */ 1076 1.1 christos 0, /* src_mask */ 1077 1.1 christos 0xffffffff, /* dst_mask */ 1078 1.8 christos false), /* pcrel_offset */ 1079 1.1 christos 1080 1.1 christos /* Function descriptor to be filled in by the dynamic linker. */ 1081 1.1 christos HOWTO (R_SH_FUNCDESC_VALUE, /* type */ 1082 1.1 christos 0, /* rightshift */ 1083 1.8 christos 4, /* size */ 1084 1.1 christos 64, /* bitsize */ 1085 1.8 christos false, /* pc_relative */ 1086 1.1 christos 0, /* bitpos */ 1087 1.1 christos complain_overflow_signed, /* complain_on_overflow */ 1088 1.1 christos bfd_elf_generic_reloc, /* special_function */ 1089 1.1 christos "R_SH_FUNCDESC_VALUE", /* name */ 1090 1.8 christos false, /* partial_inplace */ 1091 1.1 christos 0, /* src_mask */ 1092 1.1 christos 0xffffffff, /* dst_mask */ 1093 1.8 christos false), /* pcrel_offset */ 1094 1.1 christos 1095 1.1 christos #undef SH_PARTIAL32 1096 1.1 christos #undef SH_SRC_MASK32 1097 1.1 christos #undef SH_ELF_RELOC 1098