elf32-sh-relocs.h revision 218822
1 /* No relocation. */ 2 HOWTO (R_SH_NONE, /* type */ 3 0, /* rightshift */ 4 0, /* size (0 = byte, 1 = short, 2 = long) */ 5 0, /* bitsize */ 6 FALSE, /* pc_relative */ 7 0, /* bitpos */ 8 complain_overflow_dont, /* complain_on_overflow */ 9 sh_elf_ignore_reloc, /* special_function */ 10 "R_SH_NONE", /* name */ 11 FALSE, /* partial_inplace */ 12 0, /* src_mask */ 13 0, /* dst_mask */ 14 FALSE), /* pcrel_offset */ 15 16 /* 32 bit absolute relocation. Setting partial_inplace to TRUE and 17 src_mask to a non-zero value is similar to the COFF toolchain. */ 18 HOWTO (R_SH_DIR32, /* type */ 19 0, /* rightshift */ 20 2, /* size (0 = byte, 1 = short, 2 = long) */ 21 32, /* bitsize */ 22 FALSE, /* pc_relative */ 23 0, /* bitpos */ 24 complain_overflow_bitfield, /* complain_on_overflow */ 25 SH_ELF_RELOC, /* special_function */ 26 "R_SH_DIR32", /* name */ 27 SH_PARTIAL32, /* partial_inplace */ 28 SH_SRC_MASK32, /* src_mask */ 29 0xffffffff, /* dst_mask */ 30 FALSE), /* pcrel_offset */ 31 32 /* 32 bit PC relative relocation. */ 33 HOWTO (R_SH_REL32, /* type */ 34 0, /* rightshift */ 35 2, /* size (0 = byte, 1 = short, 2 = long) */ 36 32, /* bitsize */ 37 TRUE, /* pc_relative */ 38 0, /* bitpos */ 39 complain_overflow_signed, /* complain_on_overflow */ 40 sh_elf_ignore_reloc, /* special_function */ 41 "R_SH_REL32", /* name */ 42 SH_PARTIAL32, /* partial_inplace */ 43 SH_SRC_MASK32, /* src_mask */ 44 0xffffffff, /* dst_mask */ 45 TRUE), /* pcrel_offset */ 46 47 /* 8 bit PC relative branch divided by 2. */ 48 HOWTO (R_SH_DIR8WPN, /* type */ 49 1, /* rightshift */ 50 1, /* size (0 = byte, 1 = short, 2 = long) */ 51 8, /* bitsize */ 52 TRUE, /* pc_relative */ 53 0, /* bitpos */ 54 complain_overflow_signed, /* complain_on_overflow */ 55 sh_elf_ignore_reloc, /* special_function */ 56 "R_SH_DIR8WPN", /* name */ 57 TRUE, /* partial_inplace */ 58 0xff, /* src_mask */ 59 0xff, /* dst_mask */ 60 TRUE), /* pcrel_offset */ 61 62 /* 12 bit PC relative branch divided by 2. */ 63 /* This cannot be partial_inplace because relaxation can't know the 64 eventual value of a symbol. */ 65 HOWTO (R_SH_IND12W, /* type */ 66 1, /* rightshift */ 67 1, /* size (0 = byte, 1 = short, 2 = long) */ 68 12, /* bitsize */ 69 TRUE, /* pc_relative */ 70 0, /* bitpos */ 71 complain_overflow_signed, /* complain_on_overflow */ 72 NULL, /* special_function */ 73 "R_SH_IND12W", /* name */ 74 FALSE, /* partial_inplace */ 75 0x0, /* src_mask */ 76 0xfff, /* dst_mask */ 77 TRUE), /* pcrel_offset */ 78 79 /* 8 bit unsigned PC relative divided by 4. */ 80 HOWTO (R_SH_DIR8WPL, /* type */ 81 2, /* rightshift */ 82 1, /* size (0 = byte, 1 = short, 2 = long) */ 83 8, /* bitsize */ 84 TRUE, /* pc_relative */ 85 0, /* bitpos */ 86 complain_overflow_unsigned, /* complain_on_overflow */ 87 sh_elf_ignore_reloc, /* special_function */ 88 "R_SH_DIR8WPL", /* name */ 89 TRUE, /* partial_inplace */ 90 0xff, /* src_mask */ 91 0xff, /* dst_mask */ 92 TRUE), /* pcrel_offset */ 93 94 /* 8 bit unsigned PC relative divided by 2. */ 95 HOWTO (R_SH_DIR8WPZ, /* type */ 96 1, /* rightshift */ 97 1, /* size (0 = byte, 1 = short, 2 = long) */ 98 8, /* bitsize */ 99 TRUE, /* pc_relative */ 100 0, /* bitpos */ 101 complain_overflow_unsigned, /* complain_on_overflow */ 102 sh_elf_ignore_reloc, /* special_function */ 103 "R_SH_DIR8WPZ", /* name */ 104 TRUE, /* partial_inplace */ 105 0xff, /* src_mask */ 106 0xff, /* dst_mask */ 107 TRUE), /* pcrel_offset */ 108 109 /* 8 bit GBR relative. FIXME: This only makes sense if we have some 110 special symbol for the GBR relative area, and that is not 111 implemented. */ 112 HOWTO (R_SH_DIR8BP, /* type */ 113 0, /* rightshift */ 114 1, /* size (0 = byte, 1 = short, 2 = long) */ 115 8, /* bitsize */ 116 FALSE, /* pc_relative */ 117 0, /* bitpos */ 118 complain_overflow_unsigned, /* complain_on_overflow */ 119 sh_elf_ignore_reloc, /* special_function */ 120 "R_SH_DIR8BP", /* name */ 121 FALSE, /* partial_inplace */ 122 0, /* src_mask */ 123 0xff, /* dst_mask */ 124 TRUE), /* pcrel_offset */ 125 126 /* 8 bit GBR relative divided by 2. FIXME: This only makes sense if 127 we have some special symbol for the GBR relative area, and that 128 is not implemented. */ 129 HOWTO (R_SH_DIR8W, /* type */ 130 1, /* rightshift */ 131 1, /* size (0 = byte, 1 = short, 2 = long) */ 132 8, /* bitsize */ 133 FALSE, /* pc_relative */ 134 0, /* bitpos */ 135 complain_overflow_unsigned, /* complain_on_overflow */ 136 sh_elf_ignore_reloc, /* special_function */ 137 "R_SH_DIR8W", /* name */ 138 FALSE, /* partial_inplace */ 139 0, /* src_mask */ 140 0xff, /* dst_mask */ 141 TRUE), /* pcrel_offset */ 142 143 /* 8 bit GBR relative divided by 4. FIXME: This only makes sense if 144 we have some special symbol for the GBR relative area, and that 145 is not implemented. */ 146 HOWTO (R_SH_DIR8L, /* type */ 147 2, /* rightshift */ 148 1, /* size (0 = byte, 1 = short, 2 = long) */ 149 8, /* bitsize */ 150 FALSE, /* pc_relative */ 151 0, /* bitpos */ 152 complain_overflow_unsigned, /* complain_on_overflow */ 153 sh_elf_ignore_reloc, /* special_function */ 154 "R_SH_DIR8L", /* name */ 155 FALSE, /* partial_inplace */ 156 0, /* src_mask */ 157 0xff, /* dst_mask */ 158 TRUE), /* pcrel_offset */ 159 160 /* 8 bit PC relative divided by 2 - but specified in a very odd way. */ 161 HOWTO (R_SH_LOOP_START, /* type */ 162 1, /* rightshift */ 163 1, /* size (0 = byte, 1 = short, 2 = long) */ 164 8, /* bitsize */ 165 FALSE, /* pc_relative */ 166 0, /* bitpos */ 167 complain_overflow_signed, /* complain_on_overflow */ 168 sh_elf_ignore_reloc, /* special_function */ 169 "R_SH_LOOP_START", /* name */ 170 TRUE, /* partial_inplace */ 171 0xff, /* src_mask */ 172 0xff, /* dst_mask */ 173 TRUE), /* pcrel_offset */ 174 175 /* 8 bit PC relative divided by 2 - but specified in a very odd way. */ 176 HOWTO (R_SH_LOOP_END, /* type */ 177 1, /* rightshift */ 178 1, /* size (0 = byte, 1 = short, 2 = long) */ 179 8, /* bitsize */ 180 FALSE, /* pc_relative */ 181 0, /* bitpos */ 182 complain_overflow_signed, /* complain_on_overflow */ 183 sh_elf_ignore_reloc, /* special_function */ 184 "R_SH_LOOP_END", /* name */ 185 TRUE, /* partial_inplace */ 186 0xff, /* src_mask */ 187 0xff, /* dst_mask */ 188 TRUE), /* pcrel_offset */ 189 190 EMPTY_HOWTO (12), 191 EMPTY_HOWTO (13), 192 EMPTY_HOWTO (14), 193 EMPTY_HOWTO (15), 194 EMPTY_HOWTO (16), 195 EMPTY_HOWTO (17), 196 EMPTY_HOWTO (18), 197 EMPTY_HOWTO (19), 198 EMPTY_HOWTO (20), 199 EMPTY_HOWTO (21), 200 201 /* The remaining relocs are a GNU extension used for relaxing. The 202 final pass of the linker never needs to do anything with any of 203 these relocs. Any required operations are handled by the 204 relaxation code. */ 205 206 /* GNU extension to record C++ vtable hierarchy */ 207 HOWTO (R_SH_GNU_VTINHERIT, /* type */ 208 0, /* rightshift */ 209 2, /* size (0 = byte, 1 = short, 2 = long) */ 210 0, /* bitsize */ 211 FALSE, /* pc_relative */ 212 0, /* bitpos */ 213 complain_overflow_dont, /* complain_on_overflow */ 214 NULL, /* special_function */ 215 "R_SH_GNU_VTINHERIT", /* name */ 216 FALSE, /* partial_inplace */ 217 0, /* src_mask */ 218 0, /* dst_mask */ 219 FALSE), /* pcrel_offset */ 220 221 /* GNU extension to record C++ vtable member usage */ 222 HOWTO (R_SH_GNU_VTENTRY, /* type */ 223 0, /* rightshift */ 224 2, /* size (0 = byte, 1 = short, 2 = long) */ 225 0, /* bitsize */ 226 FALSE, /* pc_relative */ 227 0, /* bitpos */ 228 complain_overflow_dont, /* complain_on_overflow */ 229 _bfd_elf_rel_vtable_reloc_fn, /* special_function */ 230 "R_SH_GNU_VTENTRY", /* name */ 231 FALSE, /* partial_inplace */ 232 0, /* src_mask */ 233 0, /* dst_mask */ 234 FALSE), /* pcrel_offset */ 235 236 /* An 8 bit switch table entry. This is generated for an expression 237 such as ``.word L1 - L2''. The offset holds the difference 238 between the reloc address and L2. */ 239 HOWTO (R_SH_SWITCH8, /* type */ 240 0, /* rightshift */ 241 0, /* size (0 = byte, 1 = short, 2 = long) */ 242 8, /* bitsize */ 243 FALSE, /* pc_relative */ 244 0, /* bitpos */ 245 complain_overflow_unsigned, /* complain_on_overflow */ 246 sh_elf_ignore_reloc, /* special_function */ 247 "R_SH_SWITCH8", /* name */ 248 FALSE, /* partial_inplace */ 249 0, /* src_mask */ 250 0, /* dst_mask */ 251 TRUE), /* pcrel_offset */ 252 253 /* A 16 bit switch table entry. This is generated for an expression 254 such as ``.word L1 - L2''. The offset holds the difference 255 between the reloc address and L2. */ 256 HOWTO (R_SH_SWITCH16, /* type */ 257 0, /* rightshift */ 258 1, /* size (0 = byte, 1 = short, 2 = long) */ 259 16, /* bitsize */ 260 FALSE, /* pc_relative */ 261 0, /* bitpos */ 262 complain_overflow_unsigned, /* complain_on_overflow */ 263 sh_elf_ignore_reloc, /* special_function */ 264 "R_SH_SWITCH16", /* name */ 265 FALSE, /* partial_inplace */ 266 0, /* src_mask */ 267 0, /* dst_mask */ 268 TRUE), /* pcrel_offset */ 269 270 /* A 32 bit switch table entry. This is generated for an expression 271 such as ``.long L1 - L2''. The offset holds the difference 272 between the reloc address and L2. */ 273 HOWTO (R_SH_SWITCH32, /* type */ 274 0, /* rightshift */ 275 2, /* size (0 = byte, 1 = short, 2 = long) */ 276 32, /* bitsize */ 277 FALSE, /* pc_relative */ 278 0, /* bitpos */ 279 complain_overflow_unsigned, /* complain_on_overflow */ 280 sh_elf_ignore_reloc, /* special_function */ 281 "R_SH_SWITCH32", /* name */ 282 FALSE, /* partial_inplace */ 283 0, /* src_mask */ 284 0, /* dst_mask */ 285 TRUE), /* pcrel_offset */ 286 287 /* Indicates a .uses pseudo-op. The compiler will generate .uses 288 pseudo-ops when it finds a function call which can be relaxed. 289 The offset field holds the PC relative offset to the instruction 290 which loads the register used in the function call. */ 291 HOWTO (R_SH_USES, /* type */ 292 0, /* rightshift */ 293 1, /* size (0 = byte, 1 = short, 2 = long) */ 294 0, /* bitsize */ 295 FALSE, /* pc_relative */ 296 0, /* bitpos */ 297 complain_overflow_unsigned, /* complain_on_overflow */ 298 sh_elf_ignore_reloc, /* special_function */ 299 "R_SH_USES", /* name */ 300 FALSE, /* partial_inplace */ 301 0, /* src_mask */ 302 0, /* dst_mask */ 303 TRUE), /* pcrel_offset */ 304 305 /* The assembler will generate this reloc for addresses referred to 306 by the register loads associated with USES relocs. The offset 307 field holds the number of times the address is referenced in the 308 object file. */ 309 HOWTO (R_SH_COUNT, /* type */ 310 0, /* rightshift */ 311 1, /* size (0 = byte, 1 = short, 2 = long) */ 312 0, /* bitsize */ 313 FALSE, /* pc_relative */ 314 0, /* bitpos */ 315 complain_overflow_unsigned, /* complain_on_overflow */ 316 sh_elf_ignore_reloc, /* special_function */ 317 "R_SH_COUNT", /* name */ 318 FALSE, /* partial_inplace */ 319 0, /* src_mask */ 320 0, /* dst_mask */ 321 TRUE), /* pcrel_offset */ 322 323 /* Indicates an alignment statement. The offset field is the power 324 of 2 to which subsequent portions of the object file must be 325 aligned. */ 326 HOWTO (R_SH_ALIGN, /* type */ 327 0, /* rightshift */ 328 1, /* size (0 = byte, 1 = short, 2 = long) */ 329 0, /* bitsize */ 330 FALSE, /* pc_relative */ 331 0, /* bitpos */ 332 complain_overflow_unsigned, /* complain_on_overflow */ 333 sh_elf_ignore_reloc, /* special_function */ 334 "R_SH_ALIGN", /* name */ 335 FALSE, /* partial_inplace */ 336 0, /* src_mask */ 337 0, /* dst_mask */ 338 TRUE), /* pcrel_offset */ 339 340 /* The assembler will generate this reloc before a block of 341 instructions. A section should be processed as assuming it 342 contains data, unless this reloc is seen. */ 343 HOWTO (R_SH_CODE, /* type */ 344 0, /* rightshift */ 345 1, /* size (0 = byte, 1 = short, 2 = long) */ 346 0, /* bitsize */ 347 FALSE, /* pc_relative */ 348 0, /* bitpos */ 349 complain_overflow_unsigned, /* complain_on_overflow */ 350 sh_elf_ignore_reloc, /* special_function */ 351 "R_SH_CODE", /* name */ 352 FALSE, /* partial_inplace */ 353 0, /* src_mask */ 354 0, /* dst_mask */ 355 TRUE), /* pcrel_offset */ 356 357 /* The assembler will generate this reloc after a block of 358 instructions when it sees data that is not instructions. */ 359 HOWTO (R_SH_DATA, /* type */ 360 0, /* rightshift */ 361 1, /* size (0 = byte, 1 = short, 2 = long) */ 362 0, /* bitsize */ 363 FALSE, /* pc_relative */ 364 0, /* bitpos */ 365 complain_overflow_unsigned, /* complain_on_overflow */ 366 sh_elf_ignore_reloc, /* special_function */ 367 "R_SH_DATA", /* name */ 368 FALSE, /* partial_inplace */ 369 0, /* src_mask */ 370 0, /* dst_mask */ 371 TRUE), /* pcrel_offset */ 372 373 /* The assembler generates this reloc for each label within a block 374 of instructions. This permits the linker to avoid swapping 375 instructions which are the targets of branches. */ 376 HOWTO (R_SH_LABEL, /* type */ 377 0, /* rightshift */ 378 1, /* size (0 = byte, 1 = short, 2 = long) */ 379 0, /* bitsize */ 380 FALSE, /* pc_relative */ 381 0, /* bitpos */ 382 complain_overflow_unsigned, /* complain_on_overflow */ 383 sh_elf_ignore_reloc, /* special_function */ 384 "R_SH_LABEL", /* name */ 385 FALSE, /* partial_inplace */ 386 0, /* src_mask */ 387 0, /* dst_mask */ 388 TRUE), /* pcrel_offset */ 389 390 /* The next 12 are only supported via linking in SHC-generated objects. */ 391 HOWTO (R_SH_DIR16, /* type */ 392 0, /* rightshift */ 393 1, /* size (0 = byte, 1 = short, 2 = long) */ 394 16, /* bitsize */ 395 FALSE, /* pc_relative */ 396 0, /* bitpos */ 397 complain_overflow_dont, /* complain_on_overflow */ 398 bfd_elf_generic_reloc, /* special_function */ 399 "R_SH_DIR16", /* name */ 400 FALSE, /* partial_inplace */ 401 0, /* src_mask */ 402 0xffff, /* dst_mask */ 403 FALSE), /* pcrel_offset */ 404 405 HOWTO (R_SH_DIR8, /* type */ 406 0, /* rightshift */ 407 0, /* size (0 = byte, 1 = short, 2 = long) */ 408 8, /* bitsize */ 409 FALSE, /* pc_relative */ 410 0, /* bitpos */ 411 complain_overflow_dont, /* complain_on_overflow */ 412 bfd_elf_generic_reloc, /* special_function */ 413 "R_SH_DIR8", /* name */ 414 FALSE, /* partial_inplace */ 415 0, /* src_mask */ 416 0xff, /* dst_mask */ 417 FALSE), /* pcrel_offset */ 418 419 HOWTO (R_SH_DIR8UL, /* type */ 420 2, /* rightshift */ 421 0, /* size (0 = byte, 1 = short, 2 = long) */ 422 8, /* bitsize */ 423 FALSE, /* pc_relative */ 424 0, /* bitpos */ 425 complain_overflow_unsigned, /* complain_on_overflow */ 426 bfd_elf_generic_reloc, /* special_function */ 427 "R_SH_DIR8UL", /* name */ 428 FALSE, /* partial_inplace */ 429 0, /* src_mask */ 430 0xff, /* dst_mask */ 431 FALSE), /* pcrel_offset */ 432 433 HOWTO (R_SH_DIR8UW, /* type */ 434 1, /* rightshift */ 435 0, /* size (0 = byte, 1 = short, 2 = long) */ 436 8, /* bitsize */ 437 FALSE, /* pc_relative */ 438 0, /* bitpos */ 439 complain_overflow_unsigned, /* complain_on_overflow */ 440 bfd_elf_generic_reloc, /* special_function */ 441 "R_SH_DIR8UW", /* name */ 442 FALSE, /* partial_inplace */ 443 0, /* src_mask */ 444 0xff, /* dst_mask */ 445 FALSE), /* pcrel_offset */ 446 447 HOWTO (R_SH_DIR8U, /* type */ 448 0, /* rightshift */ 449 0, /* size (0 = byte, 1 = short, 2 = long) */ 450 8, /* bitsize */ 451 FALSE, /* pc_relative */ 452 0, /* bitpos */ 453 complain_overflow_unsigned, /* complain_on_overflow */ 454 bfd_elf_generic_reloc, /* special_function */ 455 "R_SH_DIR8U", /* name */ 456 FALSE, /* partial_inplace */ 457 0, /* src_mask */ 458 0xff, /* dst_mask */ 459 FALSE), /* pcrel_offset */ 460 461 HOWTO (R_SH_DIR8SW, /* type */ 462 1, /* rightshift */ 463 0, /* size (0 = byte, 1 = short, 2 = long) */ 464 8, /* bitsize */ 465 FALSE, /* pc_relative */ 466 0, /* bitpos */ 467 complain_overflow_signed, /* complain_on_overflow */ 468 bfd_elf_generic_reloc, /* special_function */ 469 "R_SH_DIR8SW", /* name */ 470 FALSE, /* partial_inplace */ 471 0, /* src_mask */ 472 0xff, /* dst_mask */ 473 FALSE), /* pcrel_offset */ 474 475 HOWTO (R_SH_DIR8S, /* type */ 476 0, /* rightshift */ 477 0, /* size (0 = byte, 1 = short, 2 = long) */ 478 8, /* bitsize */ 479 FALSE, /* pc_relative */ 480 0, /* bitpos */ 481 complain_overflow_signed, /* complain_on_overflow */ 482 bfd_elf_generic_reloc, /* special_function */ 483 "R_SH_DIR8S", /* name */ 484 FALSE, /* partial_inplace */ 485 0, /* src_mask */ 486 0xff, /* dst_mask */ 487 FALSE), /* pcrel_offset */ 488 489 HOWTO (R_SH_DIR4UL, /* type */ 490 2, /* rightshift */ 491 0, /* size (0 = byte, 1 = short, 2 = long) */ 492 4, /* bitsize */ 493 FALSE, /* pc_relative */ 494 0, /* bitpos */ 495 complain_overflow_unsigned, /* complain_on_overflow */ 496 bfd_elf_generic_reloc, /* special_function */ 497 "R_SH_DIR4UL", /* name */ 498 FALSE, /* partial_inplace */ 499 0, /* src_mask */ 500 0x0f, /* dst_mask */ 501 FALSE), /* pcrel_offset */ 502 503 HOWTO (R_SH_DIR4UW, /* type */ 504 1, /* rightshift */ 505 0, /* size (0 = byte, 1 = short, 2 = long) */ 506 4, /* bitsize */ 507 FALSE, /* pc_relative */ 508 0, /* bitpos */ 509 complain_overflow_unsigned, /* complain_on_overflow */ 510 bfd_elf_generic_reloc, /* special_function */ 511 "R_SH_DIR4UW", /* name */ 512 FALSE, /* partial_inplace */ 513 0, /* src_mask */ 514 0x0f, /* dst_mask */ 515 FALSE), /* pcrel_offset */ 516 517 HOWTO (R_SH_DIR4U, /* type */ 518 0, /* rightshift */ 519 0, /* size (0 = byte, 1 = short, 2 = long) */ 520 4, /* bitsize */ 521 FALSE, /* pc_relative */ 522 0, /* bitpos */ 523 complain_overflow_unsigned, /* complain_on_overflow */ 524 bfd_elf_generic_reloc, /* special_function */ 525 "R_SH_DIR4U", /* name */ 526 FALSE, /* partial_inplace */ 527 0, /* src_mask */ 528 0x0f, /* dst_mask */ 529 FALSE), /* pcrel_offset */ 530 531 HOWTO (R_SH_PSHA, /* type */ 532 0, /* rightshift */ 533 1, /* size (0 = byte, 1 = short, 2 = long) */ 534 7, /* bitsize */ 535 FALSE, /* pc_relative */ 536 4, /* bitpos */ 537 complain_overflow_signed, /* complain_on_overflow */ 538 bfd_elf_generic_reloc, /* special_function */ 539 "R_SH_PSHA", /* name */ 540 FALSE, /* partial_inplace */ 541 0, /* src_mask */ 542 0x0f, /* dst_mask */ 543 FALSE), /* pcrel_offset */ 544 545 HOWTO (R_SH_PSHL, /* type */ 546 0, /* rightshift */ 547 1, /* size (0 = byte, 1 = short, 2 = long) */ 548 7, /* bitsize */ 549 FALSE, /* pc_relative */ 550 4, /* bitpos */ 551 complain_overflow_signed, /* complain_on_overflow */ 552 bfd_elf_generic_reloc, /* special_function */ 553 "R_SH_PSHL", /* name */ 554 FALSE, /* partial_inplace */ 555 0, /* src_mask */ 556 0x0f, /* dst_mask */ 557 FALSE), /* pcrel_offset */ 558 559#ifdef INCLUDE_SHMEDIA 560 /* Used in SHLLI.L and SHLRI.L. */ 561 HOWTO (R_SH_DIR5U, /* type */ 562 0, /* rightshift */ 563 2, /* size (0 = byte, 1 = short, 2 = long) */ 564 5, /* bitsize */ 565 FALSE, /* pc_relative */ 566 10, /* bitpos */ 567 complain_overflow_unsigned, /* complain_on_overflow */ 568 bfd_elf_generic_reloc, /* special_function */ 569 "R_SH_DIR5U", /* name */ 570 FALSE, /* partial_inplace */ 571 0, /* src_mask */ 572 0xfc00, /* dst_mask */ 573 FALSE), /* pcrel_offset */ 574 575 /* Used in SHARI, SHLLI et al. */ 576 HOWTO (R_SH_DIR6U, /* type */ 577 0, /* rightshift */ 578 2, /* size (0 = byte, 1 = short, 2 = long) */ 579 6, /* bitsize */ 580 FALSE, /* pc_relative */ 581 10, /* bitpos */ 582 complain_overflow_unsigned, /* complain_on_overflow */ 583 bfd_elf_generic_reloc, /* special_function */ 584 "R_SH_DIR6U", /* name */ 585 FALSE, /* partial_inplace */ 586 0, /* src_mask */ 587 0xfc00, /* dst_mask */ 588 FALSE), /* pcrel_offset */ 589 590 /* Used in BxxI, LDHI.L et al. */ 591 HOWTO (R_SH_DIR6S, /* type */ 592 0, /* rightshift */ 593 2, /* size (0 = byte, 1 = short, 2 = long) */ 594 6, /* bitsize */ 595 FALSE, /* pc_relative */ 596 10, /* bitpos */ 597 complain_overflow_signed, /* complain_on_overflow */ 598 bfd_elf_generic_reloc, /* special_function */ 599 "R_SH_DIR6S", /* name */ 600 FALSE, /* partial_inplace */ 601 0, /* src_mask */ 602 0xfc00, /* dst_mask */ 603 FALSE), /* pcrel_offset */ 604 605 /* Used in ADDI, ANDI et al. */ 606 HOWTO (R_SH_DIR10S, /* type */ 607 0, /* rightshift */ 608 2, /* size (0 = byte, 1 = short, 2 = long) */ 609 10, /* bitsize */ 610 FALSE, /* pc_relative */ 611 10, /* bitpos */ 612 complain_overflow_signed, /* complain_on_overflow */ 613 bfd_elf_generic_reloc, /* special_function */ 614 "R_SH_DIR10S", /* name */ 615 FALSE, /* partial_inplace */ 616 0, /* src_mask */ 617 0xffc00, /* dst_mask */ 618 FALSE), /* pcrel_offset */ 619 620 /* Used in LD.UW, ST.W et al. */ 621 HOWTO (R_SH_DIR10SW, /* type */ 622 1, /* rightshift */ 623 2, /* size (0 = byte, 1 = short, 2 = long) */ 624 11, /* bitsize */ 625 FALSE, /* pc_relative */ 626 10, /* bitpos */ 627 complain_overflow_signed, /* complain_on_overflow */ 628 bfd_elf_generic_reloc, /* special_function */ 629 "R_SH_DIR10SW", /* name */ 630 FALSE, /* partial_inplace */ 631 0, /* src_mask */ 632 0xffc00, /* dst_mask */ 633 FALSE), /* pcrel_offset */ 634 635 /* Used in LD.L, FLD.S et al. */ 636 HOWTO (R_SH_DIR10SL, /* type */ 637 2, /* rightshift */ 638 2, /* size (0 = byte, 1 = short, 2 = long) */ 639 12, /* bitsize */ 640 FALSE, /* pc_relative */ 641 10, /* bitpos */ 642 complain_overflow_signed, /* complain_on_overflow */ 643 bfd_elf_generic_reloc, /* special_function */ 644 "R_SH_DIR10SL", /* name */ 645 FALSE, /* partial_inplace */ 646 0, /* src_mask */ 647 0xffc00, /* dst_mask */ 648 FALSE), /* pcrel_offset */ 649 650 /* Used in FLD.D, FST.P et al. */ 651 HOWTO (R_SH_DIR10SQ, /* type */ 652 3, /* rightshift */ 653 2, /* size (0 = byte, 1 = short, 2 = long) */ 654 13, /* bitsize */ 655 FALSE, /* pc_relative */ 656 10, /* bitpos */ 657 complain_overflow_signed, /* complain_on_overflow */ 658 bfd_elf_generic_reloc, /* special_function */ 659 "R_SH_DIR10SQ", /* name */ 660 FALSE, /* partial_inplace */ 661 0, /* src_mask */ 662 0xffc00, /* dst_mask */ 663 FALSE), /* pcrel_offset */ 664 665#else 666 EMPTY_HOWTO (45), 667 EMPTY_HOWTO (46), 668 EMPTY_HOWTO (47), 669 EMPTY_HOWTO (48), 670 EMPTY_HOWTO (49), 671 EMPTY_HOWTO (50), 672 EMPTY_HOWTO (51), 673#endif 674 675 EMPTY_HOWTO (52), 676 677 HOWTO (R_SH_DIR16S, /* type */ 678 0, /* rightshift */ 679 1, /* size (0 = byte, 1 = short, 2 = long) */ 680 16, /* bitsize */ 681 FALSE, /* pc_relative */ 682 0, /* bitpos */ 683 complain_overflow_signed, /* complain_on_overflow */ 684 bfd_elf_generic_reloc, /* special_function */ 685 "R_SH_DIR16S", /* name */ 686 FALSE, /* partial_inplace */ 687 0, /* src_mask */ 688 0xffff, /* dst_mask */ 689 FALSE), /* pcrel_offset */ 690 691 EMPTY_HOWTO (54), 692 EMPTY_HOWTO (55), 693 EMPTY_HOWTO (56), 694 EMPTY_HOWTO (57), 695 EMPTY_HOWTO (58), 696 EMPTY_HOWTO (59), 697 EMPTY_HOWTO (60), 698 EMPTY_HOWTO (61), 699 EMPTY_HOWTO (62), 700 EMPTY_HOWTO (63), 701 EMPTY_HOWTO (64), 702 EMPTY_HOWTO (65), 703 EMPTY_HOWTO (66), 704 EMPTY_HOWTO (67), 705 EMPTY_HOWTO (68), 706 EMPTY_HOWTO (69), 707 EMPTY_HOWTO (70), 708 EMPTY_HOWTO (71), 709 EMPTY_HOWTO (72), 710 EMPTY_HOWTO (73), 711 EMPTY_HOWTO (74), 712 EMPTY_HOWTO (75), 713 EMPTY_HOWTO (76), 714 EMPTY_HOWTO (77), 715 EMPTY_HOWTO (78), 716 EMPTY_HOWTO (79), 717 EMPTY_HOWTO (80), 718 EMPTY_HOWTO (81), 719 EMPTY_HOWTO (82), 720 EMPTY_HOWTO (83), 721 EMPTY_HOWTO (84), 722 EMPTY_HOWTO (85), 723 EMPTY_HOWTO (86), 724 EMPTY_HOWTO (87), 725 EMPTY_HOWTO (88), 726 EMPTY_HOWTO (89), 727 EMPTY_HOWTO (90), 728 EMPTY_HOWTO (91), 729 EMPTY_HOWTO (92), 730 EMPTY_HOWTO (93), 731 EMPTY_HOWTO (94), 732 EMPTY_HOWTO (95), 733 EMPTY_HOWTO (96), 734 EMPTY_HOWTO (97), 735 EMPTY_HOWTO (98), 736 EMPTY_HOWTO (99), 737 EMPTY_HOWTO (100), 738 EMPTY_HOWTO (101), 739 EMPTY_HOWTO (102), 740 EMPTY_HOWTO (103), 741 EMPTY_HOWTO (104), 742 EMPTY_HOWTO (105), 743 EMPTY_HOWTO (106), 744 EMPTY_HOWTO (107), 745 EMPTY_HOWTO (108), 746 EMPTY_HOWTO (109), 747 EMPTY_HOWTO (110), 748 EMPTY_HOWTO (111), 749 EMPTY_HOWTO (112), 750 EMPTY_HOWTO (113), 751 EMPTY_HOWTO (114), 752 EMPTY_HOWTO (115), 753 EMPTY_HOWTO (116), 754 EMPTY_HOWTO (117), 755 EMPTY_HOWTO (118), 756 EMPTY_HOWTO (119), 757 EMPTY_HOWTO (120), 758 EMPTY_HOWTO (121), 759 EMPTY_HOWTO (122), 760 EMPTY_HOWTO (123), 761 EMPTY_HOWTO (124), 762 EMPTY_HOWTO (125), 763 EMPTY_HOWTO (126), 764 EMPTY_HOWTO (127), 765 EMPTY_HOWTO (128), 766 EMPTY_HOWTO (129), 767 EMPTY_HOWTO (130), 768 EMPTY_HOWTO (131), 769 EMPTY_HOWTO (132), 770 EMPTY_HOWTO (133), 771 EMPTY_HOWTO (134), 772 EMPTY_HOWTO (135), 773 EMPTY_HOWTO (136), 774 EMPTY_HOWTO (137), 775 EMPTY_HOWTO (138), 776 EMPTY_HOWTO (139), 777 EMPTY_HOWTO (140), 778 EMPTY_HOWTO (141), 779 EMPTY_HOWTO (142), 780 EMPTY_HOWTO (143), 781 782 HOWTO (R_SH_TLS_GD_32, /* type */ 783 0, /* rightshift */ 784 2, /* size (0 = byte, 1 = short, 2 = long) */ 785 32, /* bitsize */ 786 FALSE, /* pc_relative */ 787 0, /* bitpos */ 788 complain_overflow_bitfield, /* complain_on_overflow */ 789 bfd_elf_generic_reloc, /* */ 790 "R_SH_TLS_GD_32", /* name */ 791 SH_PARTIAL32, /* partial_inplace */ 792 SH_SRC_MASK32, /* src_mask */ 793 0xffffffff, /* dst_mask */ 794 FALSE), /* pcrel_offset */ 795 796 HOWTO (R_SH_TLS_LD_32, /* type */ 797 0, /* rightshift */ 798 2, /* size (0 = byte, 1 = short, 2 = long) */ 799 32, /* bitsize */ 800 FALSE, /* pc_relative */ 801 0, /* bitpos */ 802 complain_overflow_bitfield, /* complain_on_overflow */ 803 bfd_elf_generic_reloc, /* */ 804 "R_SH_TLS_LD_32", /* name */ 805 SH_PARTIAL32, /* partial_inplace */ 806 SH_SRC_MASK32, /* src_mask */ 807 0xffffffff, /* dst_mask */ 808 FALSE), /* pcrel_offset */ 809 810 HOWTO (R_SH_TLS_LDO_32, /* type */ 811 0, /* rightshift */ 812 2, /* size (0 = byte, 1 = short, 2 = long) */ 813 32, /* bitsize */ 814 FALSE, /* pc_relative */ 815 0, /* bitpos */ 816 complain_overflow_bitfield, /* complain_on_overflow */ 817 bfd_elf_generic_reloc, /* */ 818 "R_SH_TLS_LDO_32", /* name */ 819 SH_PARTIAL32, /* partial_inplace */ 820 SH_SRC_MASK32, /* src_mask */ 821 0xffffffff, /* dst_mask */ 822 FALSE), /* pcrel_offset */ 823 824 HOWTO (R_SH_TLS_IE_32, /* type */ 825 0, /* rightshift */ 826 2, /* size (0 = byte, 1 = short, 2 = long) */ 827 32, /* bitsize */ 828 FALSE, /* pc_relative */ 829 0, /* bitpos */ 830 complain_overflow_bitfield, /* complain_on_overflow */ 831 bfd_elf_generic_reloc, /* */ 832 "R_SH_TLS_IE_32", /* name */ 833 SH_PARTIAL32, /* partial_inplace */ 834 SH_SRC_MASK32, /* src_mask */ 835 0xffffffff, /* dst_mask */ 836 FALSE), /* pcrel_offset */ 837 838 HOWTO (R_SH_TLS_LE_32, /* type */ 839 0, /* rightshift */ 840 2, /* size (0 = byte, 1 = short, 2 = long) */ 841 32, /* bitsize */ 842 FALSE, /* pc_relative */ 843 0, /* bitpos */ 844 complain_overflow_bitfield, /* complain_on_overflow */ 845 bfd_elf_generic_reloc, /* */ 846 "R_SH_TLS_LE_32", /* name */ 847 SH_PARTIAL32, /* partial_inplace */ 848 SH_SRC_MASK32, /* src_mask */ 849 0xffffffff, /* dst_mask */ 850 FALSE), /* pcrel_offset */ 851 852 HOWTO (R_SH_TLS_DTPMOD32, /* type */ 853 0, /* rightshift */ 854 2, /* size (0 = byte, 1 = short, 2 = long) */ 855 32, /* bitsize */ 856 FALSE, /* pc_relative */ 857 0, /* bitpos */ 858 complain_overflow_bitfield, /* complain_on_overflow */ 859 bfd_elf_generic_reloc, /* */ 860 "R_SH_TLS_DTPMOD32", /* name */ 861 SH_PARTIAL32, /* partial_inplace */ 862 SH_SRC_MASK32, /* src_mask */ 863 0xffffffff, /* dst_mask */ 864 FALSE), /* pcrel_offset */ 865 866 HOWTO (R_SH_TLS_DTPOFF32, /* type */ 867 0, /* rightshift */ 868 2, /* size (0 = byte, 1 = short, 2 = long) */ 869 32, /* bitsize */ 870 FALSE, /* pc_relative */ 871 0, /* bitpos */ 872 complain_overflow_bitfield, /* complain_on_overflow */ 873 bfd_elf_generic_reloc, /* */ 874 "R_SH_TLS_DTPOFF32", /* name */ 875 SH_PARTIAL32, /* partial_inplace */ 876 SH_SRC_MASK32, /* src_mask */ 877 0xffffffff, /* dst_mask */ 878 FALSE), /* pcrel_offset */ 879 880 HOWTO (R_SH_TLS_TPOFF32, /* type */ 881 0, /* rightshift */ 882 2, /* size (0 = byte, 1 = short, 2 = long) */ 883 32, /* bitsize */ 884 FALSE, /* pc_relative */ 885 0, /* bitpos */ 886 complain_overflow_bitfield, /* complain_on_overflow */ 887 bfd_elf_generic_reloc, /* */ 888 "R_SH_TLS_TPOFF32", /* name */ 889 SH_PARTIAL32, /* partial_inplace */ 890 SH_SRC_MASK32, /* src_mask */ 891 0xffffffff, /* dst_mask */ 892 FALSE), /* pcrel_offset */ 893 894 EMPTY_HOWTO (152), 895 EMPTY_HOWTO (153), 896 EMPTY_HOWTO (154), 897 EMPTY_HOWTO (155), 898 EMPTY_HOWTO (156), 899 EMPTY_HOWTO (157), 900 EMPTY_HOWTO (158), 901 EMPTY_HOWTO (159), 902 903 HOWTO (R_SH_GOT32, /* type */ 904 0, /* rightshift */ 905 2, /* size (0 = byte, 1 = short, 2 = long) */ 906 32, /* bitsize */ 907 FALSE, /* pc_relative */ 908 0, /* bitpos */ 909 complain_overflow_bitfield, /* complain_on_overflow */ 910 bfd_elf_generic_reloc, /* */ 911 "R_SH_GOT32", /* name */ 912 SH_PARTIAL32, /* partial_inplace */ 913 SH_SRC_MASK32, /* src_mask */ 914 0xffffffff, /* dst_mask */ 915 FALSE), /* pcrel_offset */ 916 917 HOWTO (R_SH_PLT32, /* type */ 918 0, /* rightshift */ 919 2, /* size (0 = byte, 1 = short, 2 = long) */ 920 32, /* bitsize */ 921 TRUE, /* pc_relative */ 922 0, /* bitpos */ 923 complain_overflow_bitfield, /* complain_on_overflow */ 924 bfd_elf_generic_reloc, /* */ 925 "R_SH_PLT32", /* name */ 926 SH_PARTIAL32, /* partial_inplace */ 927 SH_SRC_MASK32, /* src_mask */ 928 0xffffffff, /* dst_mask */ 929 TRUE), /* pcrel_offset */ 930 931 HOWTO (R_SH_COPY, /* type */ 932 0, /* rightshift */ 933 2, /* size (0 = byte, 1 = short, 2 = long) */ 934 32, /* bitsize */ 935 FALSE, /* pc_relative */ 936 0, /* bitpos */ 937 complain_overflow_bitfield, /* complain_on_overflow */ 938 bfd_elf_generic_reloc, /* */ 939 "R_SH_COPY", /* name */ 940 SH_PARTIAL32, /* partial_inplace */ 941 SH_SRC_MASK32, /* src_mask */ 942 0xffffffff, /* dst_mask */ 943 FALSE), /* pcrel_offset */ 944 945 HOWTO (R_SH_GLOB_DAT, /* type */ 946 0, /* rightshift */ 947 2, /* size (0 = byte, 1 = short, 2 = long) */ 948 32, /* bitsize */ 949 FALSE, /* pc_relative */ 950 0, /* bitpos */ 951 complain_overflow_bitfield, /* complain_on_overflow */ 952 bfd_elf_generic_reloc, /* */ 953 "R_SH_GLOB_DAT", /* name */ 954 SH_PARTIAL32, /* partial_inplace */ 955 SH_SRC_MASK32, /* src_mask */ 956 0xffffffff, /* dst_mask */ 957 FALSE), /* pcrel_offset */ 958 959 HOWTO (R_SH_JMP_SLOT, /* type */ 960 0, /* rightshift */ 961 2, /* size (0 = byte, 1 = short, 2 = long) */ 962 32, /* bitsize */ 963 FALSE, /* pc_relative */ 964 0, /* bitpos */ 965 complain_overflow_bitfield, /* complain_on_overflow */ 966 bfd_elf_generic_reloc, /* */ 967 "R_SH_JMP_SLOT", /* name */ 968 SH_PARTIAL32, /* partial_inplace */ 969 SH_SRC_MASK32, /* src_mask */ 970 0xffffffff, /* dst_mask */ 971 FALSE), /* pcrel_offset */ 972 973 HOWTO (R_SH_RELATIVE, /* type */ 974 0, /* rightshift */ 975 2, /* size (0 = byte, 1 = short, 2 = long) */ 976 32, /* bitsize */ 977 FALSE, /* pc_relative */ 978 0, /* bitpos */ 979 complain_overflow_bitfield, /* complain_on_overflow */ 980 bfd_elf_generic_reloc, /* */ 981 "R_SH_RELATIVE", /* name */ 982 SH_PARTIAL32, /* partial_inplace */ 983 SH_SRC_MASK32, /* src_mask */ 984 0xffffffff, /* dst_mask */ 985 FALSE), /* pcrel_offset */ 986 987 HOWTO (R_SH_GOTOFF, /* type */ 988 0, /* rightshift */ 989 2, /* size (0 = byte, 1 = short, 2 = long) */ 990 32, /* bitsize */ 991 FALSE, /* pc_relative */ 992 0, /* bitpos */ 993 complain_overflow_bitfield, /* complain_on_overflow */ 994 bfd_elf_generic_reloc, /* */ 995 "R_SH_GOTOFF", /* name */ 996 SH_PARTIAL32, /* partial_inplace */ 997 SH_SRC_MASK32, /* src_mask */ 998 0xffffffff, /* dst_mask */ 999 FALSE), /* pcrel_offset */ 1000 1001 HOWTO (R_SH_GOTPC, /* type */ 1002 0, /* rightshift */ 1003 2, /* size (0 = byte, 1 = short, 2 = long) */ 1004 32, /* bitsize */ 1005 TRUE, /* pc_relative */ 1006 0, /* bitpos */ 1007 complain_overflow_bitfield, /* complain_on_overflow */ 1008 bfd_elf_generic_reloc, /* */ 1009 "R_SH_GOTPC", /* name */ 1010 SH_PARTIAL32, /* partial_inplace */ 1011 SH_SRC_MASK32, /* src_mask */ 1012 0xffffffff, /* dst_mask */ 1013 TRUE), /* pcrel_offset */ 1014 1015 HOWTO (R_SH_GOTPLT32, /* type */ 1016 0, /* rightshift */ 1017 2, /* size (0 = byte, 1 = short, 2 = long) */ 1018 32, /* bitsize */ 1019 FALSE, /* pc_relative */ 1020 0, /* bitpos */ 1021 complain_overflow_bitfield, /* complain_on_overflow */ 1022 bfd_elf_generic_reloc, /* */ 1023 "R_SH_GOTPLT32", /* name */ 1024 FALSE, /* partial_inplace */ 1025 /* ??? Why not 0? */ 1026 SH_SRC_MASK32, /* src_mask */ 1027 0xffffffff, /* dst_mask */ 1028 FALSE), /* pcrel_offset */ 1029 1030#ifdef INCLUDE_SHMEDIA 1031 /* Used in MOVI and SHORI (x & 65536). */ 1032 HOWTO (R_SH_GOT_LOW16, /* type */ 1033 0, /* rightshift */ 1034 2, /* size (0 = byte, 1 = short, 2 = long) */ 1035 64, /* bitsize */ 1036 FALSE, /* pc_relative */ 1037 10, /* bitpos */ 1038 complain_overflow_dont, /* complain_on_overflow */ 1039 bfd_elf_generic_reloc, /* special_function */ 1040 "R_SH_GOT_LOW16", /* name */ 1041 FALSE, /* partial_inplace */ 1042 0, /* src_mask */ 1043 0x3fffc00, /* dst_mask */ 1044 FALSE), /* pcrel_offset */ 1045 1046 /* Used in MOVI and SHORI ((x >> 16) & 65536). */ 1047 HOWTO (R_SH_GOT_MEDLOW16, /* type */ 1048 16, /* rightshift */ 1049 2, /* size (0 = byte, 1 = short, 2 = long) */ 1050 64, /* bitsize */ 1051 FALSE, /* pc_relative */ 1052 10, /* bitpos */ 1053 complain_overflow_dont, /* complain_on_overflow */ 1054 bfd_elf_generic_reloc, /* special_function */ 1055 "R_SH_GOT_MEDLOW16", /* name */ 1056 FALSE, /* partial_inplace */ 1057 0, /* src_mask */ 1058 0x3fffc00, /* dst_mask */ 1059 FALSE), /* pcrel_offset */ 1060 1061 /* Used in MOVI and SHORI ((x >> 32) & 65536). */ 1062 HOWTO (R_SH_GOT_MEDHI16, /* type */ 1063 32, /* rightshift */ 1064 2, /* size (0 = byte, 1 = short, 2 = long) */ 1065 64, /* bitsize */ 1066 FALSE, /* pc_relative */ 1067 10, /* bitpos */ 1068 complain_overflow_dont, /* complain_on_overflow */ 1069 bfd_elf_generic_reloc, /* special_function */ 1070 "R_SH_GOT_MEDHI16", /* name */ 1071 FALSE, /* partial_inplace */ 1072 0, /* src_mask */ 1073 0x3fffc00, /* dst_mask */ 1074 FALSE), /* pcrel_offset */ 1075 1076 /* Used in MOVI and SHORI ((x >> 48) & 65536). */ 1077 HOWTO (R_SH_GOT_HI16, /* type */ 1078 48, /* rightshift */ 1079 2, /* size (0 = byte, 1 = short, 2 = long) */ 1080 64, /* bitsize */ 1081 FALSE, /* pc_relative */ 1082 10, /* bitpos */ 1083 complain_overflow_dont, /* complain_on_overflow */ 1084 bfd_elf_generic_reloc, /* special_function */ 1085 "R_SH_GOT_HI16", /* name */ 1086 FALSE, /* partial_inplace */ 1087 0, /* src_mask */ 1088 0x3fffc00, /* dst_mask */ 1089 FALSE), /* pcrel_offset */ 1090 1091 /* Used in MOVI and SHORI (x & 65536). */ 1092 HOWTO (R_SH_GOTPLT_LOW16, /* type */ 1093 0, /* rightshift */ 1094 2, /* size (0 = byte, 1 = short, 2 = long) */ 1095 64, /* bitsize */ 1096 FALSE, /* pc_relative */ 1097 10, /* bitpos */ 1098 complain_overflow_dont, /* complain_on_overflow */ 1099 bfd_elf_generic_reloc, /* special_function */ 1100 "R_SH_GOTPLT_LOW16", /* name */ 1101 FALSE, /* partial_inplace */ 1102 0, /* src_mask */ 1103 0x3fffc00, /* dst_mask */ 1104 FALSE), /* pcrel_offset */ 1105 1106 /* Used in MOVI and SHORI ((x >> 16) & 65536). */ 1107 HOWTO (R_SH_GOTPLT_MEDLOW16, /* type */ 1108 16, /* rightshift */ 1109 2, /* size (0 = byte, 1 = short, 2 = long) */ 1110 64, /* bitsize */ 1111 FALSE, /* pc_relative */ 1112 10, /* bitpos */ 1113 complain_overflow_dont, /* complain_on_overflow */ 1114 bfd_elf_generic_reloc, /* special_function */ 1115 "R_SH_GOTPLT_MEDLOW16", /* name */ 1116 FALSE, /* partial_inplace */ 1117 0, /* src_mask */ 1118 0x3fffc00, /* dst_mask */ 1119 FALSE), /* pcrel_offset */ 1120 1121 /* Used in MOVI and SHORI ((x >> 32) & 65536). */ 1122 HOWTO (R_SH_GOTPLT_MEDHI16, /* type */ 1123 32, /* rightshift */ 1124 2, /* size (0 = byte, 1 = short, 2 = long) */ 1125 64, /* bitsize */ 1126 FALSE, /* pc_relative */ 1127 10, /* bitpos */ 1128 complain_overflow_dont, /* complain_on_overflow */ 1129 bfd_elf_generic_reloc, /* special_function */ 1130 "R_SH_GOTPLT_MEDHI16", /* name */ 1131 FALSE, /* partial_inplace */ 1132 0, /* src_mask */ 1133 0x3fffc00, /* dst_mask */ 1134 FALSE), /* pcrel_offset */ 1135 1136 /* Used in MOVI and SHORI ((x >> 48) & 65536). */ 1137 HOWTO (R_SH_GOTPLT_HI16, /* type */ 1138 48, /* rightshift */ 1139 2, /* size (0 = byte, 1 = short, 2 = long) */ 1140 64, /* bitsize */ 1141 FALSE, /* pc_relative */ 1142 10, /* bitpos */ 1143 complain_overflow_dont, /* complain_on_overflow */ 1144 bfd_elf_generic_reloc, /* special_function */ 1145 "R_SH_GOTPLT_HI16", /* name */ 1146 FALSE, /* partial_inplace */ 1147 0, /* src_mask */ 1148 0x3fffc00, /* dst_mask */ 1149 FALSE), /* pcrel_offset */ 1150 1151 /* Used in MOVI and SHORI (x & 65536). */ 1152 HOWTO (R_SH_PLT_LOW16, /* type */ 1153 0, /* rightshift */ 1154 2, /* size (0 = byte, 1 = short, 2 = long) */ 1155 64, /* bitsize */ 1156 TRUE, /* pc_relative */ 1157 10, /* bitpos */ 1158 complain_overflow_dont, /* complain_on_overflow */ 1159 bfd_elf_generic_reloc, /* special_function */ 1160 "R_SH_PLT_LOW16", /* name */ 1161 FALSE, /* partial_inplace */ 1162 0, /* src_mask */ 1163 0x3fffc00, /* dst_mask */ 1164 TRUE), /* pcrel_offset */ 1165 1166 /* Used in MOVI and SHORI ((x >> 16) & 65536). */ 1167 HOWTO (R_SH_PLT_MEDLOW16, /* type */ 1168 16, /* rightshift */ 1169 2, /* size (0 = byte, 1 = short, 2 = long) */ 1170 64, /* bitsize */ 1171 TRUE, /* pc_relative */ 1172 10, /* bitpos */ 1173 complain_overflow_dont, /* complain_on_overflow */ 1174 bfd_elf_generic_reloc, /* special_function */ 1175 "R_SH_PLT_MEDLOW16", /* name */ 1176 FALSE, /* partial_inplace */ 1177 0, /* src_mask */ 1178 0x3fffc00, /* dst_mask */ 1179 TRUE), /* pcrel_offset */ 1180 1181 /* Used in MOVI and SHORI ((x >> 32) & 65536). */ 1182 HOWTO (R_SH_PLT_MEDHI16, /* type */ 1183 32, /* rightshift */ 1184 2, /* size (0 = byte, 1 = short, 2 = long) */ 1185 64, /* bitsize */ 1186 TRUE, /* pc_relative */ 1187 10, /* bitpos */ 1188 complain_overflow_dont, /* complain_on_overflow */ 1189 bfd_elf_generic_reloc, /* special_function */ 1190 "R_SH_PLT_MEDHI16", /* name */ 1191 FALSE, /* partial_inplace */ 1192 0, /* src_mask */ 1193 0x3fffc00, /* dst_mask */ 1194 TRUE), /* pcrel_offset */ 1195 1196 /* Used in MOVI and SHORI ((x >> 48) & 65536). */ 1197 HOWTO (R_SH_PLT_HI16, /* type */ 1198 48, /* rightshift */ 1199 2, /* size (0 = byte, 1 = short, 2 = long) */ 1200 64, /* bitsize */ 1201 TRUE, /* pc_relative */ 1202 10, /* bitpos */ 1203 complain_overflow_dont, /* complain_on_overflow */ 1204 bfd_elf_generic_reloc, /* special_function */ 1205 "R_SH_PLT_HI16", /* name */ 1206 FALSE, /* partial_inplace */ 1207 0, /* src_mask */ 1208 0x3fffc00, /* dst_mask */ 1209 TRUE), /* pcrel_offset */ 1210 1211 /* Used in MOVI and SHORI (x & 65536). */ 1212 HOWTO (R_SH_GOTOFF_LOW16, /* type */ 1213 0, /* rightshift */ 1214 2, /* size (0 = byte, 1 = short, 2 = long) */ 1215 64, /* bitsize */ 1216 FALSE, /* pc_relative */ 1217 10, /* bitpos */ 1218 complain_overflow_dont, /* complain_on_overflow */ 1219 bfd_elf_generic_reloc, /* special_function */ 1220 "R_SH_GOTOFF_LOW16", /* name */ 1221 FALSE, /* partial_inplace */ 1222 0, /* src_mask */ 1223 0x3fffc00, /* dst_mask */ 1224 FALSE), /* pcrel_offset */ 1225 1226 /* Used in MOVI and SHORI ((x >> 16) & 65536). */ 1227 HOWTO (R_SH_GOTOFF_MEDLOW16, /* type */ 1228 16, /* rightshift */ 1229 2, /* size (0 = byte, 1 = short, 2 = long) */ 1230 64, /* bitsize */ 1231 FALSE, /* pc_relative */ 1232 10, /* bitpos */ 1233 complain_overflow_dont, /* complain_on_overflow */ 1234 bfd_elf_generic_reloc, /* special_function */ 1235 "R_SH_GOTOFF_MEDLOW16", /* name */ 1236 FALSE, /* partial_inplace */ 1237 0, /* src_mask */ 1238 0x3fffc00, /* dst_mask */ 1239 FALSE), /* pcrel_offset */ 1240 1241 /* Used in MOVI and SHORI ((x >> 32) & 65536). */ 1242 HOWTO (R_SH_GOTOFF_MEDHI16, /* type */ 1243 32, /* rightshift */ 1244 2, /* size (0 = byte, 1 = short, 2 = long) */ 1245 64, /* bitsize */ 1246 FALSE, /* pc_relative */ 1247 10, /* bitpos */ 1248 complain_overflow_dont, /* complain_on_overflow */ 1249 bfd_elf_generic_reloc, /* special_function */ 1250 "R_SH_GOTOFF_MEDHI16", /* name */ 1251 FALSE, /* partial_inplace */ 1252 0, /* src_mask */ 1253 0x3fffc00, /* dst_mask */ 1254 FALSE), /* pcrel_offset */ 1255 1256 /* Used in MOVI and SHORI ((x >> 48) & 65536). */ 1257 HOWTO (R_SH_GOTOFF_HI16, /* type */ 1258 48, /* rightshift */ 1259 2, /* size (0 = byte, 1 = short, 2 = long) */ 1260 64, /* bitsize */ 1261 FALSE, /* pc_relative */ 1262 10, /* bitpos */ 1263 complain_overflow_dont, /* complain_on_overflow */ 1264 bfd_elf_generic_reloc, /* special_function */ 1265 "R_SH_GOTOFF_HI16", /* name */ 1266 FALSE, /* partial_inplace */ 1267 0, /* src_mask */ 1268 0x3fffc00, /* dst_mask */ 1269 FALSE), /* pcrel_offset */ 1270 1271 /* Used in MOVI and SHORI (x & 65536). */ 1272 HOWTO (R_SH_GOTPC_LOW16, /* type */ 1273 0, /* rightshift */ 1274 2, /* size (0 = byte, 1 = short, 2 = long) */ 1275 64, /* bitsize */ 1276 TRUE, /* pc_relative */ 1277 10, /* bitpos */ 1278 complain_overflow_dont, /* complain_on_overflow */ 1279 bfd_elf_generic_reloc, /* special_function */ 1280 "R_SH_GOTPC_LOW16", /* name */ 1281 FALSE, /* partial_inplace */ 1282 0, /* src_mask */ 1283 0x3fffc00, /* dst_mask */ 1284 TRUE), /* pcrel_offset */ 1285 1286 /* Used in MOVI and SHORI ((x >> 16) & 65536). */ 1287 HOWTO (R_SH_GOTPC_MEDLOW16, /* type */ 1288 16, /* rightshift */ 1289 2, /* size (0 = byte, 1 = short, 2 = long) */ 1290 64, /* bitsize */ 1291 TRUE, /* pc_relative */ 1292 10, /* bitpos */ 1293 complain_overflow_dont, /* complain_on_overflow */ 1294 bfd_elf_generic_reloc, /* special_function */ 1295 "R_SH_GOTPC_MEDLOW16", /* name */ 1296 FALSE, /* partial_inplace */ 1297 0, /* src_mask */ 1298 0x3fffc00, /* dst_mask */ 1299 TRUE), /* pcrel_offset */ 1300 1301 /* Used in MOVI and SHORI ((x >> 32) & 65536). */ 1302 HOWTO (R_SH_GOTPC_MEDHI16, /* type */ 1303 32, /* rightshift */ 1304 2, /* size (0 = byte, 1 = short, 2 = long) */ 1305 64, /* bitsize */ 1306 TRUE, /* pc_relative */ 1307 10, /* bitpos */ 1308 complain_overflow_dont, /* complain_on_overflow */ 1309 bfd_elf_generic_reloc, /* special_function */ 1310 "R_SH_GOTPC_MEDHI16", /* name */ 1311 FALSE, /* partial_inplace */ 1312 0, /* src_mask */ 1313 0x3fffc00, /* dst_mask */ 1314 TRUE), /* pcrel_offset */ 1315 1316 /* Used in MOVI and SHORI ((x >> 48) & 65536). */ 1317 HOWTO (R_SH_GOTPC_HI16, /* type */ 1318 48, /* rightshift */ 1319 2, /* size (0 = byte, 1 = short, 2 = long) */ 1320 64, /* bitsize */ 1321 TRUE, /* pc_relative */ 1322 10, /* bitpos */ 1323 complain_overflow_dont, /* complain_on_overflow */ 1324 bfd_elf_generic_reloc, /* special_function */ 1325 "R_SH_GOTPC_HI16", /* name */ 1326 FALSE, /* partial_inplace */ 1327 0, /* src_mask */ 1328 0x3fffc00, /* dst_mask */ 1329 TRUE), /* pcrel_offset */ 1330 1331 /* Used in LD.L, FLD.S et al. */ 1332 HOWTO (R_SH_GOT10BY4, /* type */ 1333 2, /* rightshift */ 1334 2, /* size (0 = byte, 1 = short, 2 = long) */ 1335 12, /* bitsize */ 1336 FALSE, /* pc_relative */ 1337 10, /* bitpos */ 1338 complain_overflow_signed, /* complain_on_overflow */ 1339 bfd_elf_generic_reloc, /* special_function */ 1340 "R_SH_GOT10BY4", /* name */ 1341 FALSE, /* partial_inplace */ 1342 0, /* src_mask */ 1343 0xffc00, /* dst_mask */ 1344 FALSE), /* pcrel_offset */ 1345 1346 /* Used in LD.L, FLD.S et al. */ 1347 HOWTO (R_SH_GOTPLT10BY4, /* type */ 1348 2, /* rightshift */ 1349 2, /* size (0 = byte, 1 = short, 2 = long) */ 1350 12, /* bitsize */ 1351 FALSE, /* pc_relative */ 1352 10, /* bitpos */ 1353 complain_overflow_signed, /* complain_on_overflow */ 1354 bfd_elf_generic_reloc, /* special_function */ 1355 "R_SH_GOTPLT10BY4", /* name */ 1356 FALSE, /* partial_inplace */ 1357 0, /* src_mask */ 1358 0xffc00, /* dst_mask */ 1359 FALSE), /* pcrel_offset */ 1360 1361 /* Used in FLD.D, FST.P et al. */ 1362 HOWTO (R_SH_GOT10BY8, /* type */ 1363 3, /* rightshift */ 1364 2, /* size (0 = byte, 1 = short, 2 = long) */ 1365 13, /* bitsize */ 1366 FALSE, /* pc_relative */ 1367 10, /* bitpos */ 1368 complain_overflow_signed, /* complain_on_overflow */ 1369 bfd_elf_generic_reloc, /* special_function */ 1370 "R_SH_GOT10BY8", /* name */ 1371 FALSE, /* partial_inplace */ 1372 0, /* src_mask */ 1373 0xffc00, /* dst_mask */ 1374 FALSE), /* pcrel_offset */ 1375 1376 /* Used in FLD.D, FST.P et al. */ 1377 HOWTO (R_SH_GOTPLT10BY8, /* type */ 1378 3, /* rightshift */ 1379 2, /* size (0 = byte, 1 = short, 2 = long) */ 1380 13, /* bitsize */ 1381 FALSE, /* pc_relative */ 1382 10, /* bitpos */ 1383 complain_overflow_signed, /* complain_on_overflow */ 1384 bfd_elf_generic_reloc, /* special_function */ 1385 "R_SH_GOTPLT10BY8", /* name */ 1386 FALSE, /* partial_inplace */ 1387 0, /* src_mask */ 1388 0xffc00, /* dst_mask */ 1389 FALSE), /* pcrel_offset */ 1390 1391 HOWTO (R_SH_COPY64, /* type */ 1392 0, /* rightshift */ 1393 4, /* size (0 = byte, 1 = short, 2 = long) */ 1394 64, /* bitsize */ 1395 FALSE, /* pc_relative */ 1396 0, /* bitpos */ 1397 complain_overflow_dont, /* complain_on_overflow */ 1398 bfd_elf_generic_reloc, /* special_function */ 1399 "R_SH_COPY64", /* name */ 1400 FALSE, /* partial_inplace */ 1401 0, /* src_mask */ 1402 ((bfd_vma) 0) - 1, /* dst_mask */ 1403 FALSE), /* pcrel_offset */ 1404 1405 HOWTO (R_SH_GLOB_DAT64, /* type */ 1406 0, /* rightshift */ 1407 4, /* size (0 = byte, 1 = short, 2 = long) */ 1408 64, /* bitsize */ 1409 FALSE, /* pc_relative */ 1410 0, /* bitpos */ 1411 complain_overflow_dont, /* complain_on_overflow */ 1412 bfd_elf_generic_reloc, /* special_function */ 1413 "R_SH_GLOB_DAT64", /* name */ 1414 FALSE, /* partial_inplace */ 1415 0, /* src_mask */ 1416 ((bfd_vma) 0) - 1, /* dst_mask */ 1417 FALSE), /* pcrel_offset */ 1418 1419 HOWTO (R_SH_JMP_SLOT64, /* type */ 1420 0, /* rightshift */ 1421 4, /* size (0 = byte, 1 = short, 2 = long) */ 1422 64, /* bitsize */ 1423 FALSE, /* pc_relative */ 1424 0, /* bitpos */ 1425 complain_overflow_dont, /* complain_on_overflow */ 1426 bfd_elf_generic_reloc, /* special_function */ 1427 "R_SH_JMP_SLOT64", /* name */ 1428 FALSE, /* partial_inplace */ 1429 0, /* src_mask */ 1430 ((bfd_vma) 0) - 1, /* dst_mask */ 1431 FALSE), /* pcrel_offset */ 1432 1433 HOWTO (R_SH_RELATIVE64, /* type */ 1434 0, /* rightshift */ 1435 4, /* size (0 = byte, 1 = short, 2 = long) */ 1436 64, /* bitsize */ 1437 FALSE, /* pc_relative */ 1438 0, /* bitpos */ 1439 complain_overflow_dont, /* complain_on_overflow */ 1440 bfd_elf_generic_reloc, /* special_function */ 1441 "R_SH_RELATIVE64", /* name */ 1442 FALSE, /* partial_inplace */ 1443 0, /* src_mask */ 1444 ((bfd_vma) 0) - 1, /* dst_mask */ 1445 FALSE), /* pcrel_offset */ 1446 1447 EMPTY_HOWTO (197), 1448 EMPTY_HOWTO (198), 1449 EMPTY_HOWTO (199), 1450 EMPTY_HOWTO (200), 1451 EMPTY_HOWTO (201), 1452 EMPTY_HOWTO (202), 1453 EMPTY_HOWTO (203), 1454 EMPTY_HOWTO (204), 1455 EMPTY_HOWTO (205), 1456 EMPTY_HOWTO (206), 1457 EMPTY_HOWTO (207), 1458 EMPTY_HOWTO (208), 1459 EMPTY_HOWTO (209), 1460 EMPTY_HOWTO (210), 1461 EMPTY_HOWTO (211), 1462 EMPTY_HOWTO (212), 1463 EMPTY_HOWTO (213), 1464 EMPTY_HOWTO (214), 1465 EMPTY_HOWTO (215), 1466 EMPTY_HOWTO (216), 1467 EMPTY_HOWTO (217), 1468 EMPTY_HOWTO (218), 1469 EMPTY_HOWTO (219), 1470 EMPTY_HOWTO (220), 1471 EMPTY_HOWTO (221), 1472 EMPTY_HOWTO (222), 1473 EMPTY_HOWTO (223), 1474 EMPTY_HOWTO (224), 1475 EMPTY_HOWTO (225), 1476 EMPTY_HOWTO (226), 1477 EMPTY_HOWTO (227), 1478 EMPTY_HOWTO (228), 1479 EMPTY_HOWTO (229), 1480 EMPTY_HOWTO (230), 1481 EMPTY_HOWTO (231), 1482 EMPTY_HOWTO (232), 1483 EMPTY_HOWTO (233), 1484 EMPTY_HOWTO (234), 1485 EMPTY_HOWTO (235), 1486 EMPTY_HOWTO (236), 1487 EMPTY_HOWTO (237), 1488 EMPTY_HOWTO (238), 1489 EMPTY_HOWTO (239), 1490 EMPTY_HOWTO (240), 1491 EMPTY_HOWTO (241), 1492 1493 /* Relocations for SHmedia code. None of these are partial_inplace or 1494 use the field being relocated (except R_SH_PT_16). */ 1495 1496 /* The assembler will generate this reloc before a block of SHmedia 1497 instructions. A section should be processed as assuming it contains 1498 data, unless this reloc is seen. Note that a block of SHcompact 1499 instructions are instead preceded by R_SH_CODE. 1500 This is currently not implemented, but should be used for SHmedia 1501 linker relaxation. */ 1502 HOWTO (R_SH_SHMEDIA_CODE, /* type */ 1503 0, /* rightshift */ 1504 1, /* size (0 = byte, 1 = short, 2 = long) */ 1505 0, /* bitsize */ 1506 FALSE, /* pc_relative */ 1507 0, /* bitpos */ 1508 complain_overflow_unsigned, /* complain_on_overflow */ 1509 sh_elf_ignore_reloc, /* special_function */ 1510 "R_SH_SHMEDIA_CODE", /* name */ 1511 FALSE, /* partial_inplace */ 1512 0, /* src_mask */ 1513 0, /* dst_mask */ 1514 FALSE), /* pcrel_offset */ 1515 1516 /* The assembler will generate this reloc at a PTA or PTB instruction, 1517 and the linker checks the right type of target, or changes a PTA to a 1518 PTB, if the original insn was PT. */ 1519 HOWTO (R_SH_PT_16, /* type */ 1520 2, /* rightshift */ 1521 2, /* size (0 = byte, 1 = short, 2 = long) */ 1522 18, /* bitsize */ 1523 TRUE, /* pc_relative */ 1524 10, /* bitpos */ 1525 complain_overflow_signed, /* complain_on_overflow */ 1526 bfd_elf_generic_reloc, /* special_function */ 1527 "R_SH_PT_16", /* name */ 1528 FALSE, /* partial_inplace */ 1529 0, /* src_mask */ 1530 0x3fffc00, /* dst_mask */ 1531 TRUE), /* pcrel_offset */ 1532 1533 /* Used in unexpanded MOVI. */ 1534 HOWTO (R_SH_IMMS16, /* type */ 1535 0, /* rightshift */ 1536 2, /* size (0 = byte, 1 = short, 2 = long) */ 1537 16, /* bitsize */ 1538 FALSE, /* pc_relative */ 1539 10, /* bitpos */ 1540 complain_overflow_signed, /* complain_on_overflow */ 1541 bfd_elf_generic_reloc, /* special_function */ 1542 "R_SH_IMMS16", /* name */ 1543 FALSE, /* partial_inplace */ 1544 0, /* src_mask */ 1545 0x3fffc00, /* dst_mask */ 1546 FALSE), /* pcrel_offset */ 1547 1548 /* Used in SHORI. */ 1549 HOWTO (R_SH_IMMU16, /* type */ 1550 0, /* rightshift */ 1551 2, /* size (0 = byte, 1 = short, 2 = long) */ 1552 16, /* bitsize */ 1553 FALSE, /* pc_relative */ 1554 10, /* bitpos */ 1555 complain_overflow_unsigned, /* complain_on_overflow */ 1556 bfd_elf_generic_reloc, /* special_function */ 1557 "R_SH_IMMU16", /* name */ 1558 FALSE, /* partial_inplace */ 1559 0, /* src_mask */ 1560 0x3fffc00, /* dst_mask */ 1561 FALSE), /* pcrel_offset */ 1562 1563 /* Used in MOVI and SHORI (x & 65536). */ 1564 HOWTO (R_SH_IMM_LOW16, /* type */ 1565 0, /* rightshift */ 1566 2, /* size (0 = byte, 1 = short, 2 = long) */ 1567 64, /* bitsize */ 1568 FALSE, /* pc_relative */ 1569 10, /* bitpos */ 1570 complain_overflow_dont, /* complain_on_overflow */ 1571 bfd_elf_generic_reloc, /* special_function */ 1572 "R_SH_IMM_LOW16", /* name */ 1573 FALSE, /* partial_inplace */ 1574 0, /* src_mask */ 1575 0x3fffc00, /* dst_mask */ 1576 FALSE), /* pcrel_offset */ 1577 1578 /* Used in MOVI and SHORI ((x - $) & 65536). */ 1579 HOWTO (R_SH_IMM_LOW16_PCREL, /* type */ 1580 0, /* rightshift */ 1581 2, /* size (0 = byte, 1 = short, 2 = long) */ 1582 64, /* bitsize */ 1583 TRUE, /* pc_relative */ 1584 10, /* bitpos */ 1585 complain_overflow_dont, /* complain_on_overflow */ 1586 bfd_elf_generic_reloc, /* special_function */ 1587 "R_SH_IMM_LOW16_PCREL", /* name */ 1588 FALSE, /* partial_inplace */ 1589 0, /* src_mask */ 1590 0x3fffc00, /* dst_mask */ 1591 TRUE), /* pcrel_offset */ 1592 1593 /* Used in MOVI and SHORI ((x >> 16) & 65536). */ 1594 HOWTO (R_SH_IMM_MEDLOW16, /* type */ 1595 16, /* rightshift */ 1596 2, /* size (0 = byte, 1 = short, 2 = long) */ 1597 64, /* bitsize */ 1598 FALSE, /* pc_relative */ 1599 10, /* bitpos */ 1600 complain_overflow_dont, /* complain_on_overflow */ 1601 bfd_elf_generic_reloc, /* special_function */ 1602 "R_SH_IMM_MEDLOW16", /* name */ 1603 FALSE, /* partial_inplace */ 1604 0, /* src_mask */ 1605 0x3fffc00, /* dst_mask */ 1606 FALSE), /* pcrel_offset */ 1607 1608 /* Used in MOVI and SHORI (((x - $) >> 16) & 65536). */ 1609 HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */ 1610 16, /* rightshift */ 1611 2, /* size (0 = byte, 1 = short, 2 = long) */ 1612 64, /* bitsize */ 1613 TRUE, /* pc_relative */ 1614 10, /* bitpos */ 1615 complain_overflow_dont, /* complain_on_overflow */ 1616 bfd_elf_generic_reloc, /* special_function */ 1617 "R_SH_IMM_MEDLOW16_PCREL", /* name */ 1618 FALSE, /* partial_inplace */ 1619 0, /* src_mask */ 1620 0x3fffc00, /* dst_mask */ 1621 TRUE), /* pcrel_offset */ 1622 1623 /* Used in MOVI and SHORI ((x >> 32) & 65536). */ 1624 HOWTO (R_SH_IMM_MEDHI16, /* type */ 1625 32, /* rightshift */ 1626 2, /* size (0 = byte, 1 = short, 2 = long) */ 1627 64, /* bitsize */ 1628 FALSE, /* pc_relative */ 1629 10, /* bitpos */ 1630 complain_overflow_dont, /* complain_on_overflow */ 1631 bfd_elf_generic_reloc, /* special_function */ 1632 "R_SH_IMM_MEDHI16", /* name */ 1633 FALSE, /* partial_inplace */ 1634 0, /* src_mask */ 1635 0x3fffc00, /* dst_mask */ 1636 FALSE), /* pcrel_offset */ 1637 1638 /* Used in MOVI and SHORI (((x - $) >> 32) & 65536). */ 1639 HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */ 1640 32, /* rightshift */ 1641 2, /* size (0 = byte, 1 = short, 2 = long) */ 1642 64, /* bitsize */ 1643 TRUE, /* pc_relative */ 1644 10, /* bitpos */ 1645 complain_overflow_dont, /* complain_on_overflow */ 1646 bfd_elf_generic_reloc, /* special_function */ 1647 "R_SH_IMM_MEDHI16_PCREL", /* name */ 1648 FALSE, /* partial_inplace */ 1649 0, /* src_mask */ 1650 0x3fffc00, /* dst_mask */ 1651 TRUE), /* pcrel_offset */ 1652 1653 /* Used in MOVI and SHORI ((x >> 48) & 65536). */ 1654 HOWTO (R_SH_IMM_HI16, /* type */ 1655 48, /* rightshift */ 1656 2, /* size (0 = byte, 1 = short, 2 = long) */ 1657 64, /* bitsize */ 1658 FALSE, /* pc_relative */ 1659 10, /* bitpos */ 1660 complain_overflow_dont, /* complain_on_overflow */ 1661 bfd_elf_generic_reloc, /* special_function */ 1662 "R_SH_IMM_HI16", /* name */ 1663 FALSE, /* partial_inplace */ 1664 0, /* src_mask */ 1665 0x3fffc00, /* dst_mask */ 1666 FALSE), /* pcrel_offset */ 1667 1668 /* Used in MOVI and SHORI (((x - $) >> 48) & 65536). */ 1669 HOWTO (R_SH_IMM_HI16_PCREL, /* type */ 1670 48, /* rightshift */ 1671 2, /* size (0 = byte, 1 = short, 2 = long) */ 1672 64, /* bitsize */ 1673 TRUE, /* pc_relative */ 1674 10, /* bitpos */ 1675 complain_overflow_dont, /* complain_on_overflow */ 1676 bfd_elf_generic_reloc, /* special_function */ 1677 "R_SH_IMM_HI16_PCREL", /* name */ 1678 FALSE, /* partial_inplace */ 1679 0, /* src_mask */ 1680 0x3fffc00, /* dst_mask */ 1681 TRUE), /* pcrel_offset */ 1682 1683 /* For the .uaquad pseudo. */ 1684 HOWTO (R_SH_64, /* type */ 1685 0, /* rightshift */ 1686 4, /* size (0 = byte, 1 = short, 2 = long) */ 1687 64, /* bitsize */ 1688 FALSE, /* pc_relative */ 1689 0, /* bitpos */ 1690 complain_overflow_dont, /* complain_on_overflow */ 1691 bfd_elf_generic_reloc, /* special_function */ 1692 "R_SH_64", /* name */ 1693 FALSE, /* partial_inplace */ 1694 0, /* src_mask */ 1695 ((bfd_vma) 0) - 1, /* dst_mask */ 1696 FALSE), /* pcrel_offset */ 1697 1698 /* For the .uaquad pseudo, (x - $). */ 1699 HOWTO (R_SH_64_PCREL, /* type */ 1700 48, /* rightshift */ 1701 2, /* size (0 = byte, 1 = short, 2 = long) */ 1702 64, /* bitsize */ 1703 TRUE, /* pc_relative */ 1704 10, /* bitpos */ 1705 complain_overflow_dont, /* complain_on_overflow */ 1706 bfd_elf_generic_reloc, /* special_function */ 1707 "R_SH_64_PCREL", /* name */ 1708 FALSE, /* partial_inplace */ 1709 0, /* src_mask */ 1710 ((bfd_vma) 0) - 1, /* dst_mask */ 1711 TRUE), /* pcrel_offset */ 1712 1713#endif 1714#undef SH_PARTIAL32 1715#undef SH_SRC_MASK32 1716#undef SH_ELF_RELOC 1717