Back to index

cell-binutils  2.17cvs20070401
elf32-sh-relocs.h
Go to the documentation of this file.
00001   /* No relocation.  */
00002   HOWTO (R_SH_NONE,         /* type */
00003         0,                  /* rightshift */
00004         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00005         0,                  /* bitsize */
00006         FALSE,                     /* pc_relative */
00007         0,                  /* bitpos */
00008         complain_overflow_dont, /* complain_on_overflow */
00009         sh_elf_ignore_reloc,       /* special_function */
00010         "R_SH_NONE",        /* name */
00011         FALSE,                     /* partial_inplace */
00012         0,                  /* src_mask */
00013         0,                  /* dst_mask */
00014         FALSE),             /* pcrel_offset */
00015 
00016   /* 32 bit absolute relocation.  Setting partial_inplace to TRUE and
00017      src_mask to a non-zero value is similar to the COFF toolchain.  */
00018   HOWTO (R_SH_DIR32,        /* type */
00019         0,                  /* rightshift */
00020         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00021         32,                 /* bitsize */
00022         FALSE,                     /* pc_relative */
00023         0,                  /* bitpos */
00024         complain_overflow_bitfield, /* complain_on_overflow */
00025         SH_ELF_RELOC,              /* special_function */
00026         "R_SH_DIR32",              /* name */
00027         SH_PARTIAL32,              /* partial_inplace */
00028         SH_SRC_MASK32,             /* src_mask */
00029         0xffffffff,         /* dst_mask */
00030         FALSE),             /* pcrel_offset */
00031 
00032   /* 32 bit PC relative relocation.  */
00033   HOWTO (R_SH_REL32,        /* type */
00034         0,                  /* rightshift */
00035         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00036         32,                 /* bitsize */
00037         TRUE,               /* pc_relative */
00038         0,                  /* bitpos */
00039         complain_overflow_signed, /* complain_on_overflow */
00040         sh_elf_ignore_reloc,       /* special_function */
00041         "R_SH_REL32",              /* name */
00042         SH_PARTIAL32,              /* partial_inplace */
00043         SH_SRC_MASK32,             /* src_mask */
00044         0xffffffff,         /* dst_mask */
00045         TRUE),                     /* pcrel_offset */
00046 
00047   /* 8 bit PC relative branch divided by 2.  */
00048   HOWTO (R_SH_DIR8WPN,             /* type */
00049         1,                  /* rightshift */
00050         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00051         8,                  /* bitsize */
00052         TRUE,               /* pc_relative */
00053         0,                  /* bitpos */
00054         complain_overflow_signed, /* complain_on_overflow */
00055         sh_elf_ignore_reloc,       /* special_function */
00056         "R_SH_DIR8WPN",     /* name */
00057         TRUE,               /* partial_inplace */
00058         0xff,               /* src_mask */
00059         0xff,               /* dst_mask */
00060         TRUE),                     /* pcrel_offset */
00061 
00062   /* 12 bit PC relative branch divided by 2.  */
00063   /* This cannot be partial_inplace because relaxation can't know the
00064      eventual value of a symbol.  */
00065   HOWTO (R_SH_IND12W,              /* type */
00066         1,                  /* rightshift */
00067         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00068         12,                 /* bitsize */
00069         TRUE,               /* pc_relative */
00070         0,                  /* bitpos */
00071         complain_overflow_signed, /* complain_on_overflow */
00072         NULL,               /* special_function */
00073         "R_SH_IND12W",             /* name */
00074         FALSE,                     /* partial_inplace */
00075         0x0,                /* src_mask */
00076         0xfff,                     /* dst_mask */
00077         TRUE),                     /* pcrel_offset */
00078 
00079   /* 8 bit unsigned PC relative divided by 4.  */
00080   HOWTO (R_SH_DIR8WPL,             /* type */
00081         2,                  /* rightshift */
00082         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00083         8,                  /* bitsize */
00084         TRUE,               /* pc_relative */
00085         0,                  /* bitpos */
00086         complain_overflow_unsigned, /* complain_on_overflow */
00087         sh_elf_ignore_reloc,       /* special_function */
00088         "R_SH_DIR8WPL",     /* name */
00089         TRUE,               /* partial_inplace */
00090         0xff,               /* src_mask */
00091         0xff,               /* dst_mask */
00092         TRUE),                     /* pcrel_offset */
00093 
00094   /* 8 bit unsigned PC relative divided by 2.  */
00095   HOWTO (R_SH_DIR8WPZ,             /* type */
00096         1,                  /* rightshift */
00097         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00098         8,                  /* bitsize */
00099         TRUE,               /* pc_relative */
00100         0,                  /* bitpos */
00101         complain_overflow_unsigned, /* complain_on_overflow */
00102         sh_elf_ignore_reloc,       /* special_function */
00103         "R_SH_DIR8WPZ",     /* name */
00104         TRUE,               /* partial_inplace */
00105         0xff,               /* src_mask */
00106         0xff,               /* dst_mask */
00107         TRUE),                     /* pcrel_offset */
00108 
00109   /* 8 bit GBR relative.  FIXME: This only makes sense if we have some
00110      special symbol for the GBR relative area, and that is not
00111      implemented.  */
00112   HOWTO (R_SH_DIR8BP,              /* type */
00113         0,                  /* rightshift */
00114         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00115         8,                  /* bitsize */
00116         FALSE,                     /* pc_relative */
00117         0,                  /* bitpos */
00118         complain_overflow_unsigned, /* complain_on_overflow */
00119         sh_elf_ignore_reloc,       /* special_function */
00120         "R_SH_DIR8BP",             /* name */
00121         FALSE,                     /* partial_inplace */
00122         0,                  /* src_mask */
00123         0xff,               /* dst_mask */
00124         TRUE),                     /* pcrel_offset */
00125 
00126   /* 8 bit GBR relative divided by 2.  FIXME: This only makes sense if
00127      we have some special symbol for the GBR relative area, and that
00128      is not implemented.  */
00129   HOWTO (R_SH_DIR8W,        /* type */
00130         1,                  /* rightshift */
00131         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00132         8,                  /* bitsize */
00133         FALSE,                     /* pc_relative */
00134         0,                  /* bitpos */
00135         complain_overflow_unsigned, /* complain_on_overflow */
00136         sh_elf_ignore_reloc,       /* special_function */
00137         "R_SH_DIR8W",              /* name */
00138         FALSE,                     /* partial_inplace */
00139         0,                  /* src_mask */
00140         0xff,               /* dst_mask */
00141         TRUE),                     /* pcrel_offset */
00142 
00143   /* 8 bit GBR relative divided by 4.  FIXME: This only makes sense if
00144      we have some special symbol for the GBR relative area, and that
00145      is not implemented.  */
00146   HOWTO (R_SH_DIR8L,        /* type */
00147         2,                  /* rightshift */
00148         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00149         8,                  /* bitsize */
00150         FALSE,                     /* pc_relative */
00151         0,                  /* bitpos */
00152         complain_overflow_unsigned, /* complain_on_overflow */
00153         sh_elf_ignore_reloc,       /* special_function */
00154         "R_SH_DIR8L",              /* name */
00155         FALSE,                     /* partial_inplace */
00156         0,                  /* src_mask */
00157         0xff,               /* dst_mask */
00158         TRUE),                     /* pcrel_offset */
00159 
00160   /* 8 bit PC relative divided by 2 - but specified in a very odd way.  */
00161   HOWTO (R_SH_LOOP_START,   /* type */
00162         1,                  /* rightshift */
00163         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00164         8,                  /* bitsize */
00165         FALSE,                     /* pc_relative */
00166         0,                  /* bitpos */
00167         complain_overflow_signed, /* complain_on_overflow */
00168         sh_elf_ignore_reloc,       /* special_function */
00169         "R_SH_LOOP_START",  /* name */
00170         TRUE,               /* partial_inplace */
00171         0xff,               /* src_mask */
00172         0xff,               /* dst_mask */
00173         TRUE),                     /* pcrel_offset */
00174 
00175   /* 8 bit PC relative divided by 2 - but specified in a very odd way.  */
00176   HOWTO (R_SH_LOOP_END,            /* type */
00177         1,                  /* rightshift */
00178         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00179         8,                  /* bitsize */
00180         FALSE,                     /* pc_relative */
00181         0,                  /* bitpos */
00182         complain_overflow_signed, /* complain_on_overflow */
00183         sh_elf_ignore_reloc,       /* special_function */
00184         "R_SH_LOOP_END",    /* name */
00185         TRUE,               /* partial_inplace */
00186         0xff,               /* src_mask */
00187         0xff,               /* dst_mask */
00188         TRUE),                     /* pcrel_offset */
00189 
00190   EMPTY_HOWTO (12),
00191   EMPTY_HOWTO (13),
00192   EMPTY_HOWTO (14),
00193   EMPTY_HOWTO (15),
00194   EMPTY_HOWTO (16),
00195   EMPTY_HOWTO (17),
00196   EMPTY_HOWTO (18),
00197   EMPTY_HOWTO (19),
00198   EMPTY_HOWTO (20),
00199   EMPTY_HOWTO (21),
00200 
00201   /* The remaining relocs are a GNU extension used for relaxing.  The
00202      final pass of the linker never needs to do anything with any of
00203      these relocs.  Any required operations are handled by the
00204      relaxation code.  */
00205 
00206   /* GNU extension to record C++ vtable hierarchy */
00207   HOWTO (R_SH_GNU_VTINHERIT, /* type */
00208         0,                  /* rightshift */
00209         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00210         0,                  /* bitsize */
00211         FALSE,                     /* pc_relative */
00212         0,                  /* bitpos */
00213         complain_overflow_dont, /* complain_on_overflow */
00214         NULL,               /* special_function */
00215         "R_SH_GNU_VTINHERIT", /* name */
00216         FALSE,                     /* partial_inplace */
00217         0,                  /* src_mask */
00218         0,                  /* dst_mask */
00219         FALSE),             /* pcrel_offset */
00220 
00221   /* GNU extension to record C++ vtable member usage */
00222   HOWTO (R_SH_GNU_VTENTRY,     /* type */
00223         0,                  /* rightshift */
00224         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00225         0,                  /* bitsize */
00226         FALSE,                     /* pc_relative */
00227         0,                  /* bitpos */
00228         complain_overflow_dont, /* complain_on_overflow */
00229         _bfd_elf_rel_vtable_reloc_fn,     /* special_function */
00230         "R_SH_GNU_VTENTRY",   /* name */
00231         FALSE,                     /* partial_inplace */
00232         0,                  /* src_mask */
00233         0,                  /* dst_mask */
00234         FALSE),             /* pcrel_offset */
00235 
00236   /* An 8 bit switch table entry.  This is generated for an expression
00237      such as ``.word L1 - L2''.  The offset holds the difference
00238      between the reloc address and L2.  */
00239   HOWTO (R_SH_SWITCH8,             /* type */
00240         0,                  /* rightshift */
00241         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00242         8,                  /* bitsize */
00243         FALSE,                     /* pc_relative */
00244         0,                  /* bitpos */
00245         complain_overflow_unsigned, /* complain_on_overflow */
00246         sh_elf_ignore_reloc,       /* special_function */
00247         "R_SH_SWITCH8",     /* name */
00248         FALSE,                     /* partial_inplace */
00249         0,                  /* src_mask */
00250         0,                  /* dst_mask */
00251         TRUE),                     /* pcrel_offset */
00252 
00253   /* A 16 bit switch table entry.  This is generated for an expression
00254      such as ``.word L1 - L2''.  The offset holds the difference
00255      between the reloc address and L2.  */
00256   HOWTO (R_SH_SWITCH16,            /* type */
00257         0,                  /* rightshift */
00258         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00259         16,                 /* bitsize */
00260         FALSE,                     /* pc_relative */
00261         0,                  /* bitpos */
00262         complain_overflow_unsigned, /* complain_on_overflow */
00263         sh_elf_ignore_reloc,       /* special_function */
00264         "R_SH_SWITCH16",    /* name */
00265         FALSE,                     /* partial_inplace */
00266         0,                  /* src_mask */
00267         0,                  /* dst_mask */
00268         TRUE),                     /* pcrel_offset */
00269 
00270   /* A 32 bit switch table entry.  This is generated for an expression
00271      such as ``.long L1 - L2''.  The offset holds the difference
00272      between the reloc address and L2.  */
00273   HOWTO (R_SH_SWITCH32,            /* type */
00274         0,                  /* rightshift */
00275         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00276         32,                 /* bitsize */
00277         FALSE,                     /* pc_relative */
00278         0,                  /* bitpos */
00279         complain_overflow_unsigned, /* complain_on_overflow */
00280         sh_elf_ignore_reloc,       /* special_function */
00281         "R_SH_SWITCH32",    /* name */
00282         FALSE,                     /* partial_inplace */
00283         0,                  /* src_mask */
00284         0,                  /* dst_mask */
00285         TRUE),                     /* pcrel_offset */
00286 
00287   /* Indicates a .uses pseudo-op.  The compiler will generate .uses
00288      pseudo-ops when it finds a function call which can be relaxed.
00289      The offset field holds the PC relative offset to the instruction
00290      which loads the register used in the function call.  */
00291   HOWTO (R_SH_USES,         /* type */
00292         0,                  /* rightshift */
00293         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00294         0,                  /* bitsize */
00295         FALSE,                     /* pc_relative */
00296         0,                  /* bitpos */
00297         complain_overflow_unsigned, /* complain_on_overflow */
00298         sh_elf_ignore_reloc,       /* special_function */
00299         "R_SH_USES",        /* name */
00300         FALSE,                     /* partial_inplace */
00301         0,                  /* src_mask */
00302         0,                  /* dst_mask */
00303         TRUE),                     /* pcrel_offset */
00304 
00305   /* The assembler will generate this reloc for addresses referred to
00306      by the register loads associated with USES relocs.  The offset
00307      field holds the number of times the address is referenced in the
00308      object file.  */
00309   HOWTO (R_SH_COUNT,        /* type */
00310         0,                  /* rightshift */
00311         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00312         0,                  /* bitsize */
00313         FALSE,                     /* pc_relative */
00314         0,                  /* bitpos */
00315         complain_overflow_unsigned, /* complain_on_overflow */
00316         sh_elf_ignore_reloc,       /* special_function */
00317         "R_SH_COUNT",              /* name */
00318         FALSE,                     /* partial_inplace */
00319         0,                  /* src_mask */
00320         0,                  /* dst_mask */
00321         TRUE),                     /* pcrel_offset */
00322 
00323   /* Indicates an alignment statement.  The offset field is the power
00324      of 2 to which subsequent portions of the object file must be
00325      aligned.  */
00326   HOWTO (R_SH_ALIGN,        /* type */
00327         0,                  /* rightshift */
00328         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00329         0,                  /* bitsize */
00330         FALSE,                     /* pc_relative */
00331         0,                  /* bitpos */
00332         complain_overflow_unsigned, /* complain_on_overflow */
00333         sh_elf_ignore_reloc,       /* special_function */
00334         "R_SH_ALIGN",       /* name */
00335         FALSE,                     /* partial_inplace */
00336         0,                  /* src_mask */
00337         0,                  /* dst_mask */
00338         TRUE),                     /* pcrel_offset */
00339 
00340   /* The assembler will generate this reloc before a block of
00341      instructions.  A section should be processed as assuming it
00342      contains data, unless this reloc is seen.  */
00343   HOWTO (R_SH_CODE,         /* type */
00344         0,                  /* rightshift */
00345         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00346         0,                  /* bitsize */
00347         FALSE,                     /* pc_relative */
00348         0,                  /* bitpos */
00349         complain_overflow_unsigned, /* complain_on_overflow */
00350         sh_elf_ignore_reloc,       /* special_function */
00351         "R_SH_CODE",        /* name */
00352         FALSE,                     /* partial_inplace */
00353         0,                  /* src_mask */
00354         0,                  /* dst_mask */
00355         TRUE),                     /* pcrel_offset */
00356 
00357   /* The assembler will generate this reloc after a block of
00358      instructions when it sees data that is not instructions.  */
00359   HOWTO (R_SH_DATA,         /* type */
00360         0,                  /* rightshift */
00361         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00362         0,                  /* bitsize */
00363         FALSE,                     /* pc_relative */
00364         0,                  /* bitpos */
00365         complain_overflow_unsigned, /* complain_on_overflow */
00366         sh_elf_ignore_reloc,       /* special_function */
00367         "R_SH_DATA",        /* name */
00368         FALSE,                     /* partial_inplace */
00369         0,                  /* src_mask */
00370         0,                  /* dst_mask */
00371         TRUE),                     /* pcrel_offset */
00372 
00373   /* The assembler generates this reloc for each label within a block
00374      of instructions.  This permits the linker to avoid swapping
00375      instructions which are the targets of branches.  */
00376   HOWTO (R_SH_LABEL,        /* type */
00377         0,                  /* rightshift */
00378         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00379         0,                  /* bitsize */
00380         FALSE,                     /* pc_relative */
00381         0,                  /* bitpos */
00382         complain_overflow_unsigned, /* complain_on_overflow */
00383         sh_elf_ignore_reloc,       /* special_function */
00384         "R_SH_LABEL",              /* name */
00385         FALSE,                     /* partial_inplace */
00386         0,                  /* src_mask */
00387         0,                  /* dst_mask */
00388         TRUE),                     /* pcrel_offset */
00389 
00390   /* The next 12 are only supported via linking in SHC-generated objects.  */
00391   HOWTO (R_SH_DIR16,        /* type */
00392         0,                  /* rightshift */
00393         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00394         16,                 /* bitsize */
00395         FALSE,                     /* pc_relative */
00396         0,                  /* bitpos */
00397         complain_overflow_dont, /* complain_on_overflow */
00398         bfd_elf_generic_reloc,     /* special_function */
00399         "R_SH_DIR16",              /* name */
00400         FALSE,                     /* partial_inplace */
00401         0,                  /* src_mask */
00402         0xffff,             /* dst_mask */
00403         FALSE),             /* pcrel_offset */
00404 
00405   HOWTO (R_SH_DIR8,         /* type */
00406         0,                  /* rightshift */
00407         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00408         8,                  /* bitsize */
00409         FALSE,                     /* pc_relative */
00410         0,                  /* bitpos */
00411         complain_overflow_dont, /* complain_on_overflow */
00412         bfd_elf_generic_reloc,     /* special_function */
00413         "R_SH_DIR8",        /* name */
00414         FALSE,                     /* partial_inplace */
00415         0,                  /* src_mask */
00416         0xff,               /* dst_mask */
00417         FALSE),             /* pcrel_offset */
00418 
00419   HOWTO (R_SH_DIR8UL,              /* type */
00420         2,                  /* rightshift */
00421         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00422         8,                  /* bitsize */
00423         FALSE,                     /* pc_relative */
00424         0,                  /* bitpos */
00425         complain_overflow_unsigned, /* complain_on_overflow */
00426         bfd_elf_generic_reloc,     /* special_function */
00427         "R_SH_DIR8UL",             /* name */
00428         FALSE,                     /* partial_inplace */
00429         0,                  /* src_mask */
00430         0xff,               /* dst_mask */
00431         FALSE),             /* pcrel_offset */
00432 
00433   HOWTO (R_SH_DIR8UW,              /* type */
00434         1,                  /* rightshift */
00435         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00436         8,                  /* bitsize */
00437         FALSE,                     /* pc_relative */
00438         0,                  /* bitpos */
00439         complain_overflow_unsigned, /* complain_on_overflow */
00440         bfd_elf_generic_reloc,     /* special_function */
00441         "R_SH_DIR8UW",             /* name */
00442         FALSE,                     /* partial_inplace */
00443         0,                  /* src_mask */
00444         0xff,               /* dst_mask */
00445         FALSE),             /* pcrel_offset */
00446 
00447   HOWTO (R_SH_DIR8U,        /* type */
00448         0,                  /* rightshift */
00449         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00450         8,                  /* bitsize */
00451         FALSE,                     /* pc_relative */
00452         0,                  /* bitpos */
00453         complain_overflow_unsigned, /* complain_on_overflow */
00454         bfd_elf_generic_reloc,     /* special_function */
00455         "R_SH_DIR8U",              /* name */
00456         FALSE,                     /* partial_inplace */
00457         0,                  /* src_mask */
00458         0xff,               /* dst_mask */
00459         FALSE),             /* pcrel_offset */
00460 
00461   HOWTO (R_SH_DIR8SW,              /* type */
00462         1,                  /* rightshift */
00463         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00464         8,                  /* bitsize */
00465         FALSE,                     /* pc_relative */
00466         0,                  /* bitpos */
00467         complain_overflow_signed, /* complain_on_overflow */
00468         bfd_elf_generic_reloc,     /* special_function */
00469         "R_SH_DIR8SW",             /* name */
00470         FALSE,                     /* partial_inplace */
00471         0,                  /* src_mask */
00472         0xff,               /* dst_mask */
00473         FALSE),             /* pcrel_offset */
00474 
00475   HOWTO (R_SH_DIR8S,        /* type */
00476         0,                  /* rightshift */
00477         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00478         8,                  /* bitsize */
00479         FALSE,                     /* pc_relative */
00480         0,                  /* bitpos */
00481         complain_overflow_signed, /* complain_on_overflow */
00482         bfd_elf_generic_reloc,     /* special_function */
00483         "R_SH_DIR8S",              /* name */
00484         FALSE,                     /* partial_inplace */
00485         0,                  /* src_mask */
00486         0xff,               /* dst_mask */
00487         FALSE),             /* pcrel_offset */
00488 
00489   HOWTO (R_SH_DIR4UL,              /* type */
00490         2,                  /* rightshift */
00491         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00492         4,                  /* bitsize */
00493         FALSE,                     /* pc_relative */
00494         0,                  /* bitpos */
00495         complain_overflow_unsigned, /* complain_on_overflow */
00496         bfd_elf_generic_reloc,     /* special_function */
00497         "R_SH_DIR4UL",             /* name */
00498         FALSE,                     /* partial_inplace */
00499         0,                  /* src_mask */
00500         0x0f,               /* dst_mask */
00501         FALSE),             /* pcrel_offset */
00502 
00503   HOWTO (R_SH_DIR4UW,              /* type */
00504         1,                  /* rightshift */
00505         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00506         4,                  /* bitsize */
00507         FALSE,                     /* pc_relative */
00508         0,                  /* bitpos */
00509         complain_overflow_unsigned, /* complain_on_overflow */
00510         bfd_elf_generic_reloc,     /* special_function */
00511         "R_SH_DIR4UW",             /* name */
00512         FALSE,                     /* partial_inplace */
00513         0,                  /* src_mask */
00514         0x0f,               /* dst_mask */
00515         FALSE),             /* pcrel_offset */
00516 
00517   HOWTO (R_SH_DIR4U,        /* type */
00518         0,                  /* rightshift */
00519         0,                  /* size (0 = byte, 1 = short, 2 = long) */
00520         4,                  /* bitsize */
00521         FALSE,                     /* pc_relative */
00522         0,                  /* bitpos */
00523         complain_overflow_unsigned, /* complain_on_overflow */
00524         bfd_elf_generic_reloc,     /* special_function */
00525         "R_SH_DIR4U",              /* name */
00526         FALSE,                     /* partial_inplace */
00527         0,                  /* src_mask */
00528         0x0f,               /* dst_mask */
00529         FALSE),             /* pcrel_offset */
00530 
00531   HOWTO (R_SH_PSHA,         /* type */
00532         0,                  /* rightshift */
00533         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00534         7,                  /* bitsize */
00535         FALSE,                     /* pc_relative */
00536         4,                  /* bitpos */
00537         complain_overflow_signed, /* complain_on_overflow */
00538         bfd_elf_generic_reloc,     /* special_function */
00539         "R_SH_PSHA",        /* name */
00540         FALSE,                     /* partial_inplace */
00541         0,                  /* src_mask */
00542         0x0f,               /* dst_mask */
00543         FALSE),             /* pcrel_offset */
00544 
00545   HOWTO (R_SH_PSHL,         /* type */
00546         0,                  /* rightshift */
00547         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00548         7,                  /* bitsize */
00549         FALSE,                     /* pc_relative */
00550         4,                  /* bitpos */
00551         complain_overflow_signed, /* complain_on_overflow */
00552         bfd_elf_generic_reloc,     /* special_function */
00553         "R_SH_PSHL",        /* name */
00554         FALSE,                     /* partial_inplace */
00555         0,                  /* src_mask */
00556         0x0f,               /* dst_mask */
00557         FALSE),             /* pcrel_offset */
00558 
00559 #ifdef INCLUDE_SHMEDIA
00560   /* Used in SHLLI.L and SHLRI.L.  */
00561   HOWTO (R_SH_DIR5U,        /* type */
00562         0,                  /* rightshift */
00563         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00564         5,                  /* bitsize */
00565         FALSE,                     /* pc_relative */
00566         10,                 /* bitpos */
00567         complain_overflow_unsigned, /* complain_on_overflow */
00568         bfd_elf_generic_reloc,     /* special_function */
00569         "R_SH_DIR5U",              /* name */
00570         FALSE,                     /* partial_inplace */
00571         0,                  /* src_mask */
00572         0xfc00,             /* dst_mask */
00573         FALSE),             /* pcrel_offset */
00574 
00575   /* Used in SHARI, SHLLI et al.  */
00576   HOWTO (R_SH_DIR6U,        /* type */
00577         0,                  /* rightshift */
00578         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00579         6,                  /* bitsize */
00580         FALSE,                     /* pc_relative */
00581         10,                 /* bitpos */
00582         complain_overflow_unsigned, /* complain_on_overflow */
00583         bfd_elf_generic_reloc,     /* special_function */
00584         "R_SH_DIR6U",              /* name */
00585         FALSE,                     /* partial_inplace */
00586         0,                  /* src_mask */
00587         0xfc00,             /* dst_mask */
00588         FALSE),             /* pcrel_offset */
00589 
00590   /* Used in BxxI, LDHI.L et al.  */
00591   HOWTO (R_SH_DIR6S,        /* type */
00592         0,                  /* rightshift */
00593         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00594         6,                  /* bitsize */
00595         FALSE,                     /* pc_relative */
00596         10,                 /* bitpos */
00597         complain_overflow_signed, /* complain_on_overflow */
00598         bfd_elf_generic_reloc,     /* special_function */
00599         "R_SH_DIR6S",              /* name */
00600         FALSE,                     /* partial_inplace */
00601         0,                  /* src_mask */
00602         0xfc00,             /* dst_mask */
00603         FALSE),             /* pcrel_offset */
00604 
00605   /* Used in ADDI, ANDI et al.  */
00606   HOWTO (R_SH_DIR10S,              /* type */
00607         0,                  /* rightshift */
00608         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00609         10,                 /* bitsize */
00610         FALSE,                     /* pc_relative */
00611         10,                 /* bitpos */
00612         complain_overflow_signed, /* complain_on_overflow */
00613         bfd_elf_generic_reloc,     /* special_function */
00614         "R_SH_DIR10S",             /* name */
00615         FALSE,                     /* partial_inplace */
00616         0,                  /* src_mask */
00617         0xffc00,            /* dst_mask */
00618         FALSE),             /* pcrel_offset */
00619 
00620   /* Used in LD.UW, ST.W et al.     */
00621   HOWTO (R_SH_DIR10SW,      /* type */
00622         1,                  /* rightshift */
00623         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00624         11,                 /* bitsize */
00625         FALSE,                     /* pc_relative */
00626         10,                 /* bitpos */
00627         complain_overflow_signed, /* complain_on_overflow */
00628         bfd_elf_generic_reloc,     /* special_function */
00629         "R_SH_DIR10SW",     /* name */
00630         FALSE,                     /* partial_inplace */
00631         0,                  /* src_mask */
00632         0xffc00,            /* dst_mask */
00633         FALSE),             /* pcrel_offset */
00634 
00635   /* Used in LD.L, FLD.S et al.     */
00636   HOWTO (R_SH_DIR10SL,      /* type */
00637         2,                  /* rightshift */
00638         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00639         12,                 /* bitsize */
00640         FALSE,                     /* pc_relative */
00641         10,                 /* bitpos */
00642         complain_overflow_signed, /* complain_on_overflow */
00643         bfd_elf_generic_reloc,     /* special_function */
00644         "R_SH_DIR10SL",     /* name */
00645         FALSE,                     /* partial_inplace */
00646         0,                  /* src_mask */
00647         0xffc00,            /* dst_mask */
00648         FALSE),             /* pcrel_offset */
00649 
00650   /* Used in FLD.D, FST.P et al.  */
00651   HOWTO (R_SH_DIR10SQ,      /* type */
00652         3,                  /* rightshift */
00653         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00654         13,                 /* bitsize */
00655         FALSE,                     /* pc_relative */
00656         10,                 /* bitpos */
00657         complain_overflow_signed, /* complain_on_overflow */
00658         bfd_elf_generic_reloc,     /* special_function */
00659         "R_SH_DIR10SQ",     /* name */
00660         FALSE,                     /* partial_inplace */
00661         0,                  /* src_mask */
00662         0xffc00,            /* dst_mask */
00663         FALSE),             /* pcrel_offset */
00664 
00665 #else
00666   EMPTY_HOWTO (45),
00667   EMPTY_HOWTO (46),
00668   EMPTY_HOWTO (47),
00669   EMPTY_HOWTO (48),
00670   EMPTY_HOWTO (49),
00671   EMPTY_HOWTO (50),
00672   EMPTY_HOWTO (51),
00673 #endif
00674 
00675   EMPTY_HOWTO (52),
00676 
00677   HOWTO (R_SH_DIR16S,              /* type */
00678         0,                  /* rightshift */
00679         1,                  /* size (0 = byte, 1 = short, 2 = long) */
00680         16,                 /* bitsize */
00681         FALSE,                     /* pc_relative */
00682         0,                  /* bitpos */
00683         complain_overflow_signed, /* complain_on_overflow */
00684         bfd_elf_generic_reloc,     /* special_function */
00685         "R_SH_DIR16S",             /* name */
00686         FALSE,                     /* partial_inplace */
00687         0,                  /* src_mask */
00688         0xffff,             /* dst_mask */
00689         FALSE),             /* pcrel_offset */
00690 
00691   EMPTY_HOWTO (54),
00692   EMPTY_HOWTO (55),
00693   EMPTY_HOWTO (56),
00694   EMPTY_HOWTO (57),
00695   EMPTY_HOWTO (58),
00696   EMPTY_HOWTO (59),
00697   EMPTY_HOWTO (60),
00698   EMPTY_HOWTO (61),
00699   EMPTY_HOWTO (62),
00700   EMPTY_HOWTO (63),
00701   EMPTY_HOWTO (64),
00702   EMPTY_HOWTO (65),
00703   EMPTY_HOWTO (66),
00704   EMPTY_HOWTO (67),
00705   EMPTY_HOWTO (68),
00706   EMPTY_HOWTO (69),
00707   EMPTY_HOWTO (70),
00708   EMPTY_HOWTO (71),
00709   EMPTY_HOWTO (72),
00710   EMPTY_HOWTO (73),
00711   EMPTY_HOWTO (74),
00712   EMPTY_HOWTO (75),
00713   EMPTY_HOWTO (76),
00714   EMPTY_HOWTO (77),
00715   EMPTY_HOWTO (78),
00716   EMPTY_HOWTO (79),
00717   EMPTY_HOWTO (80),
00718   EMPTY_HOWTO (81),
00719   EMPTY_HOWTO (82),
00720   EMPTY_HOWTO (83),
00721   EMPTY_HOWTO (84),
00722   EMPTY_HOWTO (85),
00723   EMPTY_HOWTO (86),
00724   EMPTY_HOWTO (87),
00725   EMPTY_HOWTO (88),
00726   EMPTY_HOWTO (89),
00727   EMPTY_HOWTO (90),
00728   EMPTY_HOWTO (91),
00729   EMPTY_HOWTO (92),
00730   EMPTY_HOWTO (93),
00731   EMPTY_HOWTO (94),
00732   EMPTY_HOWTO (95),
00733   EMPTY_HOWTO (96),
00734   EMPTY_HOWTO (97),
00735   EMPTY_HOWTO (98),
00736   EMPTY_HOWTO (99),
00737   EMPTY_HOWTO (100),
00738   EMPTY_HOWTO (101),
00739   EMPTY_HOWTO (102),
00740   EMPTY_HOWTO (103),
00741   EMPTY_HOWTO (104),
00742   EMPTY_HOWTO (105),
00743   EMPTY_HOWTO (106),
00744   EMPTY_HOWTO (107),
00745   EMPTY_HOWTO (108),
00746   EMPTY_HOWTO (109),
00747   EMPTY_HOWTO (110),
00748   EMPTY_HOWTO (111),
00749   EMPTY_HOWTO (112),
00750   EMPTY_HOWTO (113),
00751   EMPTY_HOWTO (114),
00752   EMPTY_HOWTO (115),
00753   EMPTY_HOWTO (116),
00754   EMPTY_HOWTO (117),
00755   EMPTY_HOWTO (118),
00756   EMPTY_HOWTO (119),
00757   EMPTY_HOWTO (120),
00758   EMPTY_HOWTO (121),
00759   EMPTY_HOWTO (122),
00760   EMPTY_HOWTO (123),
00761   EMPTY_HOWTO (124),
00762   EMPTY_HOWTO (125),
00763   EMPTY_HOWTO (126),
00764   EMPTY_HOWTO (127),
00765   EMPTY_HOWTO (128),
00766   EMPTY_HOWTO (129),
00767   EMPTY_HOWTO (130),
00768   EMPTY_HOWTO (131),
00769   EMPTY_HOWTO (132),
00770   EMPTY_HOWTO (133),
00771   EMPTY_HOWTO (134),
00772   EMPTY_HOWTO (135),
00773   EMPTY_HOWTO (136),
00774   EMPTY_HOWTO (137),
00775   EMPTY_HOWTO (138),
00776   EMPTY_HOWTO (139),
00777   EMPTY_HOWTO (140),
00778   EMPTY_HOWTO (141),
00779   EMPTY_HOWTO (142),
00780   EMPTY_HOWTO (143),
00781 
00782   HOWTO (R_SH_TLS_GD_32,    /* type */
00783         0,                  /* rightshift */
00784         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00785         32,                 /* bitsize */
00786         FALSE,                     /* pc_relative */
00787         0,                  /* bitpos */
00788         complain_overflow_bitfield, /* complain_on_overflow */
00789         bfd_elf_generic_reloc,     /* */
00790         "R_SH_TLS_GD_32",   /* name */
00791         SH_PARTIAL32,              /* partial_inplace */
00792         SH_SRC_MASK32,             /* src_mask */
00793         0xffffffff,         /* dst_mask */
00794         FALSE),             /* pcrel_offset */
00795 
00796   HOWTO (R_SH_TLS_LD_32,    /* type */
00797         0,                  /* rightshift */
00798         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00799         32,                 /* bitsize */
00800         FALSE,                     /* pc_relative */
00801         0,                  /* bitpos */
00802         complain_overflow_bitfield, /* complain_on_overflow */
00803         bfd_elf_generic_reloc,     /* */
00804         "R_SH_TLS_LD_32",   /* name */
00805         SH_PARTIAL32,              /* partial_inplace */
00806         SH_SRC_MASK32,             /* src_mask */
00807         0xffffffff,         /* dst_mask */
00808         FALSE),             /* pcrel_offset */
00809 
00810   HOWTO (R_SH_TLS_LDO_32,   /* type */
00811         0,                  /* rightshift */
00812         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00813         32,                 /* bitsize */
00814         FALSE,                     /* pc_relative */
00815         0,                  /* bitpos */
00816         complain_overflow_bitfield, /* complain_on_overflow */
00817         bfd_elf_generic_reloc,     /* */
00818         "R_SH_TLS_LDO_32",  /* name */
00819         SH_PARTIAL32,              /* partial_inplace */
00820         SH_SRC_MASK32,             /* src_mask */
00821         0xffffffff,         /* dst_mask */
00822         FALSE),             /* pcrel_offset */
00823 
00824   HOWTO (R_SH_TLS_IE_32,    /* type */
00825         0,                  /* rightshift */
00826         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00827         32,                 /* bitsize */
00828         FALSE,                     /* pc_relative */
00829         0,                  /* bitpos */
00830         complain_overflow_bitfield, /* complain_on_overflow */
00831         bfd_elf_generic_reloc,     /* */
00832         "R_SH_TLS_IE_32",   /* name */
00833         SH_PARTIAL32,              /* partial_inplace */
00834         SH_SRC_MASK32,             /* src_mask */
00835         0xffffffff,         /* dst_mask */
00836         FALSE),             /* pcrel_offset */
00837 
00838   HOWTO (R_SH_TLS_LE_32,    /* type */
00839         0,                  /* rightshift */
00840         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00841         32,                 /* bitsize */
00842         FALSE,                     /* pc_relative */
00843         0,                  /* bitpos */
00844         complain_overflow_bitfield, /* complain_on_overflow */
00845         bfd_elf_generic_reloc,     /* */
00846         "R_SH_TLS_LE_32",   /* name */
00847         SH_PARTIAL32,              /* partial_inplace */
00848         SH_SRC_MASK32,             /* src_mask */
00849         0xffffffff,         /* dst_mask */
00850         FALSE),             /* pcrel_offset */
00851 
00852   HOWTO (R_SH_TLS_DTPMOD32, /* type */
00853         0,                  /* rightshift */
00854         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00855         32,                 /* bitsize */
00856         FALSE,                     /* pc_relative */
00857         0,                  /* bitpos */
00858         complain_overflow_bitfield, /* complain_on_overflow */
00859         bfd_elf_generic_reloc,     /* */
00860         "R_SH_TLS_DTPMOD32",       /* name */
00861         SH_PARTIAL32,              /* partial_inplace */
00862         SH_SRC_MASK32,             /* src_mask */
00863         0xffffffff,         /* dst_mask */
00864         FALSE),             /* pcrel_offset */
00865 
00866   HOWTO (R_SH_TLS_DTPOFF32, /* type */
00867         0,                  /* rightshift */
00868         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00869         32,                 /* bitsize */
00870         FALSE,                     /* pc_relative */
00871         0,                  /* bitpos */
00872         complain_overflow_bitfield, /* complain_on_overflow */
00873         bfd_elf_generic_reloc,     /* */
00874         "R_SH_TLS_DTPOFF32",       /* name */
00875         SH_PARTIAL32,              /* partial_inplace */
00876         SH_SRC_MASK32,             /* src_mask */
00877         0xffffffff,         /* dst_mask */
00878         FALSE),             /* pcrel_offset */
00879 
00880   HOWTO (R_SH_TLS_TPOFF32,  /* type */
00881         0,                  /* rightshift */
00882         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00883         32,                 /* bitsize */
00884         FALSE,                     /* pc_relative */
00885         0,                  /* bitpos */
00886         complain_overflow_bitfield, /* complain_on_overflow */
00887         bfd_elf_generic_reloc,     /* */
00888         "R_SH_TLS_TPOFF32", /* name */
00889         SH_PARTIAL32,              /* partial_inplace */
00890         SH_SRC_MASK32,             /* src_mask */
00891         0xffffffff,         /* dst_mask */
00892         FALSE),             /* pcrel_offset */
00893 
00894   EMPTY_HOWTO (152),
00895   EMPTY_HOWTO (153),
00896   EMPTY_HOWTO (154),
00897   EMPTY_HOWTO (155),
00898   EMPTY_HOWTO (156),
00899   EMPTY_HOWTO (157),
00900   EMPTY_HOWTO (158),
00901   EMPTY_HOWTO (159),
00902 
00903   HOWTO (R_SH_GOT32,        /* type */
00904         0,                  /* rightshift */
00905         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00906         32,                 /* bitsize */
00907         FALSE,                     /* pc_relative */
00908         0,                  /* bitpos */
00909         complain_overflow_bitfield, /* complain_on_overflow */
00910         bfd_elf_generic_reloc, /* */
00911         "R_SH_GOT32",              /* name */
00912         SH_PARTIAL32,              /* partial_inplace */
00913         SH_SRC_MASK32,             /* src_mask */
00914         0xffffffff,         /* dst_mask */
00915         FALSE),             /* pcrel_offset */
00916 
00917   HOWTO (R_SH_PLT32,        /* type */
00918         0,                  /* rightshift */
00919         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00920         32,                 /* bitsize */
00921         TRUE,               /* pc_relative */
00922         0,                  /* bitpos */
00923         complain_overflow_bitfield, /* complain_on_overflow */
00924         bfd_elf_generic_reloc, /* */
00925         "R_SH_PLT32",              /* name */
00926         SH_PARTIAL32,              /* partial_inplace */
00927         SH_SRC_MASK32,             /* src_mask */
00928         0xffffffff,         /* dst_mask */
00929         TRUE),                     /* pcrel_offset */
00930 
00931   HOWTO (R_SH_COPY,         /* type */
00932         0,                  /* rightshift */
00933         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00934         32,                 /* bitsize */
00935         FALSE,                     /* pc_relative */
00936         0,                  /* bitpos */
00937         complain_overflow_bitfield, /* complain_on_overflow */
00938         bfd_elf_generic_reloc, /* */
00939         "R_SH_COPY",        /* name */
00940         SH_PARTIAL32,              /* partial_inplace */
00941         SH_SRC_MASK32,             /* src_mask */
00942         0xffffffff,         /* dst_mask */
00943         FALSE),             /* pcrel_offset */
00944 
00945   HOWTO (R_SH_GLOB_DAT,            /* type */
00946         0,                  /* rightshift */
00947         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00948         32,                 /* bitsize */
00949         FALSE,                     /* pc_relative */
00950         0,                  /* bitpos */
00951         complain_overflow_bitfield, /* complain_on_overflow */
00952         bfd_elf_generic_reloc, /* */
00953         "R_SH_GLOB_DAT",    /* name */
00954         SH_PARTIAL32,              /* partial_inplace */
00955         SH_SRC_MASK32,             /* src_mask */
00956         0xffffffff,         /* dst_mask */
00957         FALSE),             /* pcrel_offset */
00958 
00959   HOWTO (R_SH_JMP_SLOT,            /* type */
00960         0,                  /* rightshift */
00961         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00962         32,                 /* bitsize */
00963         FALSE,                     /* pc_relative */
00964         0,                  /* bitpos */
00965         complain_overflow_bitfield, /* complain_on_overflow */
00966         bfd_elf_generic_reloc, /* */
00967         "R_SH_JMP_SLOT",    /* name */
00968         SH_PARTIAL32,              /* partial_inplace */
00969         SH_SRC_MASK32,             /* src_mask */
00970         0xffffffff,         /* dst_mask */
00971         FALSE),             /* pcrel_offset */
00972 
00973   HOWTO (R_SH_RELATIVE,            /* type */
00974         0,                  /* rightshift */
00975         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00976         32,                 /* bitsize */
00977         FALSE,                     /* pc_relative */
00978         0,                  /* bitpos */
00979         complain_overflow_bitfield, /* complain_on_overflow */
00980         bfd_elf_generic_reloc, /* */
00981         "R_SH_RELATIVE",    /* name */
00982         SH_PARTIAL32,              /* partial_inplace */
00983         SH_SRC_MASK32,             /* src_mask */
00984         0xffffffff,         /* dst_mask */
00985         FALSE),             /* pcrel_offset */
00986 
00987   HOWTO (R_SH_GOTOFF,              /* type */
00988         0,                  /* rightshift */
00989         2,                  /* size (0 = byte, 1 = short, 2 = long) */
00990         32,                 /* bitsize */
00991         FALSE,                     /* pc_relative */
00992         0,                  /* bitpos */
00993         complain_overflow_bitfield, /* complain_on_overflow */
00994         bfd_elf_generic_reloc, /* */
00995         "R_SH_GOTOFF",             /* name */
00996         SH_PARTIAL32,              /* partial_inplace */
00997         SH_SRC_MASK32,             /* src_mask */
00998         0xffffffff,         /* dst_mask */
00999         FALSE),             /* pcrel_offset */
01000 
01001   HOWTO (R_SH_GOTPC,        /* type */
01002         0,                  /* rightshift */
01003         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01004         32,                 /* bitsize */
01005         TRUE,               /* pc_relative */
01006         0,                  /* bitpos */
01007         complain_overflow_bitfield, /* complain_on_overflow */
01008         bfd_elf_generic_reloc, /* */
01009         "R_SH_GOTPC",              /* name */
01010         SH_PARTIAL32,              /* partial_inplace */
01011         SH_SRC_MASK32,             /* src_mask */
01012         0xffffffff,         /* dst_mask */
01013         TRUE),                     /* pcrel_offset */
01014 
01015   HOWTO (R_SH_GOTPLT32,            /* type */
01016         0,                  /* rightshift */
01017         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01018         32,                 /* bitsize */
01019         FALSE,                     /* pc_relative */
01020         0,                  /* bitpos */
01021         complain_overflow_bitfield, /* complain_on_overflow */
01022         bfd_elf_generic_reloc, /* */
01023         "R_SH_GOTPLT32",    /* name */
01024         FALSE,                     /* partial_inplace */
01025         /* ??? Why not 0?  */
01026         SH_SRC_MASK32,             /* src_mask */
01027         0xffffffff,         /* dst_mask */
01028         FALSE),             /* pcrel_offset */
01029 
01030 #ifdef INCLUDE_SHMEDIA
01031   /* Used in MOVI and SHORI (x & 65536).  */
01032   HOWTO (R_SH_GOT_LOW16,    /* type */
01033         0,                  /* rightshift */
01034         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01035         64,                 /* bitsize */
01036         FALSE,                     /* pc_relative */
01037         10,                 /* bitpos */
01038         complain_overflow_dont, /* complain_on_overflow */
01039         bfd_elf_generic_reloc,     /* special_function */
01040         "R_SH_GOT_LOW16",   /* name */
01041         FALSE,                     /* partial_inplace */
01042         0,                  /* src_mask */
01043         0x3fffc00,          /* dst_mask */
01044         FALSE),             /* pcrel_offset */
01045 
01046   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
01047   HOWTO (R_SH_GOT_MEDLOW16, /* type */
01048         16,                 /* rightshift */
01049         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01050         64,                 /* bitsize */
01051         FALSE,                     /* pc_relative */
01052         10,                 /* bitpos */
01053         complain_overflow_dont, /* complain_on_overflow */
01054         bfd_elf_generic_reloc,     /* special_function */
01055         "R_SH_GOT_MEDLOW16",       /* name */
01056         FALSE,                     /* partial_inplace */
01057         0,                  /* src_mask */
01058         0x3fffc00,          /* dst_mask */
01059         FALSE),             /* pcrel_offset */
01060 
01061   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
01062   HOWTO (R_SH_GOT_MEDHI16,  /* type */
01063         32,                 /* rightshift */
01064         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01065         64,                 /* bitsize */
01066         FALSE,                     /* pc_relative */
01067         10,                 /* bitpos */
01068         complain_overflow_dont, /* complain_on_overflow */
01069         bfd_elf_generic_reloc,     /* special_function */
01070         "R_SH_GOT_MEDHI16", /* name */
01071         FALSE,                     /* partial_inplace */
01072         0,                  /* src_mask */
01073         0x3fffc00,          /* dst_mask */
01074         FALSE),             /* pcrel_offset */
01075 
01076   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
01077   HOWTO (R_SH_GOT_HI16,            /* type */
01078         48,                 /* rightshift */
01079         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01080         64,                 /* bitsize */
01081         FALSE,                     /* pc_relative */
01082         10,                 /* bitpos */
01083         complain_overflow_dont, /* complain_on_overflow */
01084         bfd_elf_generic_reloc,     /* special_function */
01085         "R_SH_GOT_HI16",    /* name */
01086         FALSE,                     /* partial_inplace */
01087         0,                  /* src_mask */
01088         0x3fffc00,          /* dst_mask */
01089         FALSE),             /* pcrel_offset */
01090 
01091   /* Used in MOVI and SHORI (x & 65536).  */
01092   HOWTO (R_SH_GOTPLT_LOW16, /* type */
01093         0,                  /* rightshift */
01094         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01095         64,                 /* bitsize */
01096         FALSE,                     /* pc_relative */
01097         10,                 /* bitpos */
01098         complain_overflow_dont, /* complain_on_overflow */
01099         bfd_elf_generic_reloc,     /* special_function */
01100         "R_SH_GOTPLT_LOW16",       /* name */
01101         FALSE,                     /* partial_inplace */
01102         0,                  /* src_mask */
01103         0x3fffc00,          /* dst_mask */
01104         FALSE),             /* pcrel_offset */
01105 
01106   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
01107   HOWTO (R_SH_GOTPLT_MEDLOW16,     /* type */
01108         16,                 /* rightshift */
01109         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01110         64,                 /* bitsize */
01111         FALSE,                     /* pc_relative */
01112         10,                 /* bitpos */
01113         complain_overflow_dont, /* complain_on_overflow */
01114         bfd_elf_generic_reloc,     /* special_function */
01115         "R_SH_GOTPLT_MEDLOW16", /* name */
01116         FALSE,                     /* partial_inplace */
01117         0,                  /* src_mask */
01118         0x3fffc00,          /* dst_mask */
01119         FALSE),             /* pcrel_offset */
01120 
01121   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
01122   HOWTO (R_SH_GOTPLT_MEDHI16,      /* type */
01123         32,                 /* rightshift */
01124         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01125         64,                 /* bitsize */
01126         FALSE,                     /* pc_relative */
01127         10,                 /* bitpos */
01128         complain_overflow_dont, /* complain_on_overflow */
01129         bfd_elf_generic_reloc,     /* special_function */
01130         "R_SH_GOTPLT_MEDHI16",     /* name */
01131         FALSE,                     /* partial_inplace */
01132         0,                  /* src_mask */
01133         0x3fffc00,          /* dst_mask */
01134         FALSE),             /* pcrel_offset */
01135 
01136   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
01137   HOWTO (R_SH_GOTPLT_HI16,  /* type */
01138         48,                 /* rightshift */
01139         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01140         64,                 /* bitsize */
01141         FALSE,                     /* pc_relative */
01142         10,                 /* bitpos */
01143         complain_overflow_dont, /* complain_on_overflow */
01144         bfd_elf_generic_reloc,     /* special_function */
01145         "R_SH_GOTPLT_HI16", /* name */
01146         FALSE,                     /* partial_inplace */
01147         0,                  /* src_mask */
01148         0x3fffc00,          /* dst_mask */
01149         FALSE),             /* pcrel_offset */
01150 
01151   /* Used in MOVI and SHORI (x & 65536).  */
01152   HOWTO (R_SH_PLT_LOW16,    /* type */
01153         0,                  /* rightshift */
01154         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01155         64,                 /* bitsize */
01156         TRUE,               /* pc_relative */
01157         10,                 /* bitpos */
01158         complain_overflow_dont, /* complain_on_overflow */
01159         bfd_elf_generic_reloc,     /* special_function */
01160         "R_SH_PLT_LOW16",   /* name */
01161         FALSE,                     /* partial_inplace */
01162         0,                  /* src_mask */
01163         0x3fffc00,          /* dst_mask */
01164         TRUE),                     /* pcrel_offset */
01165 
01166   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
01167   HOWTO (R_SH_PLT_MEDLOW16, /* type */
01168         16,                 /* rightshift */
01169         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01170         64,                 /* bitsize */
01171         TRUE,               /* pc_relative */
01172         10,                 /* bitpos */
01173         complain_overflow_dont, /* complain_on_overflow */
01174         bfd_elf_generic_reloc,     /* special_function */
01175         "R_SH_PLT_MEDLOW16",       /* name */
01176         FALSE,                     /* partial_inplace */
01177         0,                  /* src_mask */
01178         0x3fffc00,          /* dst_mask */
01179         TRUE),                     /* pcrel_offset */
01180 
01181   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
01182   HOWTO (R_SH_PLT_MEDHI16,  /* type */
01183         32,                 /* rightshift */
01184         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01185         64,                 /* bitsize */
01186         TRUE,               /* pc_relative */
01187         10,                 /* bitpos */
01188         complain_overflow_dont, /* complain_on_overflow */
01189         bfd_elf_generic_reloc,     /* special_function */
01190         "R_SH_PLT_MEDHI16", /* name */
01191         FALSE,                     /* partial_inplace */
01192         0,                  /* src_mask */
01193         0x3fffc00,          /* dst_mask */
01194         TRUE),                     /* pcrel_offset */
01195 
01196   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
01197   HOWTO (R_SH_PLT_HI16,            /* type */
01198         48,                 /* rightshift */
01199         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01200         64,                 /* bitsize */
01201         TRUE,               /* pc_relative */
01202         10,                 /* bitpos */
01203         complain_overflow_dont, /* complain_on_overflow */
01204         bfd_elf_generic_reloc,     /* special_function */
01205         "R_SH_PLT_HI16",    /* name */
01206         FALSE,                     /* partial_inplace */
01207         0,                  /* src_mask */
01208         0x3fffc00,          /* dst_mask */
01209         TRUE),                     /* pcrel_offset */
01210 
01211   /* Used in MOVI and SHORI (x & 65536).  */
01212   HOWTO (R_SH_GOTOFF_LOW16, /* type */
01213         0,                  /* rightshift */
01214         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01215         64,                 /* bitsize */
01216         FALSE,                     /* pc_relative */
01217         10,                 /* bitpos */
01218         complain_overflow_dont, /* complain_on_overflow */
01219         bfd_elf_generic_reloc,     /* special_function */
01220         "R_SH_GOTOFF_LOW16",       /* name */
01221         FALSE,                     /* partial_inplace */
01222         0,                  /* src_mask */
01223         0x3fffc00,          /* dst_mask */
01224         FALSE),             /* pcrel_offset */
01225 
01226   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
01227   HOWTO (R_SH_GOTOFF_MEDLOW16,     /* type */
01228         16,                 /* rightshift */
01229         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01230         64,                 /* bitsize */
01231         FALSE,                     /* pc_relative */
01232         10,                 /* bitpos */
01233         complain_overflow_dont, /* complain_on_overflow */
01234         bfd_elf_generic_reloc,     /* special_function */
01235         "R_SH_GOTOFF_MEDLOW16", /* name */
01236         FALSE,                     /* partial_inplace */
01237         0,                  /* src_mask */
01238         0x3fffc00,          /* dst_mask */
01239         FALSE),             /* pcrel_offset */
01240 
01241   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
01242   HOWTO (R_SH_GOTOFF_MEDHI16,      /* type */
01243         32,                 /* rightshift */
01244         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01245         64,                 /* bitsize */
01246         FALSE,                     /* pc_relative */
01247         10,                 /* bitpos */
01248         complain_overflow_dont, /* complain_on_overflow */
01249         bfd_elf_generic_reloc,     /* special_function */
01250         "R_SH_GOTOFF_MEDHI16",     /* name */
01251         FALSE,                     /* partial_inplace */
01252         0,                  /* src_mask */
01253         0x3fffc00,          /* dst_mask */
01254         FALSE),             /* pcrel_offset */
01255 
01256   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
01257   HOWTO (R_SH_GOTOFF_HI16,  /* type */
01258         48,                 /* rightshift */
01259         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01260         64,                 /* bitsize */
01261         FALSE,                     /* pc_relative */
01262         10,                 /* bitpos */
01263         complain_overflow_dont, /* complain_on_overflow */
01264         bfd_elf_generic_reloc,     /* special_function */
01265         "R_SH_GOTOFF_HI16", /* name */
01266         FALSE,                     /* partial_inplace */
01267         0,                  /* src_mask */
01268         0x3fffc00,          /* dst_mask */
01269         FALSE),             /* pcrel_offset */
01270 
01271   /* Used in MOVI and SHORI (x & 65536).  */
01272   HOWTO (R_SH_GOTPC_LOW16,  /* type */
01273         0,                  /* rightshift */
01274         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01275         64,                 /* bitsize */
01276         TRUE,               /* pc_relative */
01277         10,                 /* bitpos */
01278         complain_overflow_dont, /* complain_on_overflow */
01279         bfd_elf_generic_reloc,     /* special_function */
01280         "R_SH_GOTPC_LOW16", /* name */
01281         FALSE,                     /* partial_inplace */
01282         0,                  /* src_mask */
01283         0x3fffc00,          /* dst_mask */
01284         TRUE),                     /* pcrel_offset */
01285 
01286   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
01287   HOWTO (R_SH_GOTPC_MEDLOW16,      /* type */
01288         16,                 /* rightshift */
01289         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01290         64,                 /* bitsize */
01291         TRUE,               /* pc_relative */
01292         10,                 /* bitpos */
01293         complain_overflow_dont, /* complain_on_overflow */
01294         bfd_elf_generic_reloc,     /* special_function */
01295         "R_SH_GOTPC_MEDLOW16", /* name */
01296         FALSE,                     /* partial_inplace */
01297         0,                  /* src_mask */
01298         0x3fffc00,          /* dst_mask */
01299         TRUE),                     /* pcrel_offset */
01300 
01301   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
01302   HOWTO (R_SH_GOTPC_MEDHI16,       /* type */
01303         32,                 /* rightshift */
01304         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01305         64,                 /* bitsize */
01306         TRUE,               /* pc_relative */
01307         10,                 /* bitpos */
01308         complain_overflow_dont, /* complain_on_overflow */
01309         bfd_elf_generic_reloc,     /* special_function */
01310         "R_SH_GOTPC_MEDHI16",      /* name */
01311         FALSE,                     /* partial_inplace */
01312         0,                  /* src_mask */
01313         0x3fffc00,          /* dst_mask */
01314         TRUE),                     /* pcrel_offset */
01315 
01316   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
01317   HOWTO (R_SH_GOTPC_HI16,   /* type */
01318         48,                 /* rightshift */
01319         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01320         64,                 /* bitsize */
01321         TRUE,               /* pc_relative */
01322         10,                 /* bitpos */
01323         complain_overflow_dont, /* complain_on_overflow */
01324         bfd_elf_generic_reloc,     /* special_function */
01325         "R_SH_GOTPC_HI16",  /* name */
01326         FALSE,                     /* partial_inplace */
01327         0,                  /* src_mask */
01328         0x3fffc00,          /* dst_mask */
01329         TRUE),                     /* pcrel_offset */
01330 
01331   /* Used in LD.L, FLD.S et al.     */
01332   HOWTO (R_SH_GOT10BY4,            /* type */
01333         2,                  /* rightshift */
01334         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01335         12,                 /* bitsize */
01336         FALSE,                     /* pc_relative */
01337         10,                 /* bitpos */
01338         complain_overflow_signed, /* complain_on_overflow */
01339         bfd_elf_generic_reloc,     /* special_function */
01340         "R_SH_GOT10BY4",    /* name */
01341         FALSE,                     /* partial_inplace */
01342         0,                  /* src_mask */
01343         0xffc00,            /* dst_mask */
01344         FALSE),             /* pcrel_offset */
01345 
01346   /* Used in LD.L, FLD.S et al.     */
01347   HOWTO (R_SH_GOTPLT10BY4,  /* type */
01348         2,                  /* rightshift */
01349         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01350         12,                 /* bitsize */
01351         FALSE,                     /* pc_relative */
01352         10,                 /* bitpos */
01353         complain_overflow_signed, /* complain_on_overflow */
01354         bfd_elf_generic_reloc,     /* special_function */
01355         "R_SH_GOTPLT10BY4", /* name */
01356         FALSE,                     /* partial_inplace */
01357         0,                  /* src_mask */
01358         0xffc00,            /* dst_mask */
01359         FALSE),             /* pcrel_offset */
01360 
01361   /* Used in FLD.D, FST.P et al.  */
01362   HOWTO (R_SH_GOT10BY8,            /* type */
01363         3,                  /* rightshift */
01364         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01365         13,                 /* bitsize */
01366         FALSE,                     /* pc_relative */
01367         10,                 /* bitpos */
01368         complain_overflow_signed, /* complain_on_overflow */
01369         bfd_elf_generic_reloc,     /* special_function */
01370         "R_SH_GOT10BY8",    /* name */
01371         FALSE,                     /* partial_inplace */
01372         0,                  /* src_mask */
01373         0xffc00,            /* dst_mask */
01374         FALSE),             /* pcrel_offset */
01375 
01376   /* Used in FLD.D, FST.P et al.  */
01377   HOWTO (R_SH_GOTPLT10BY8,  /* type */
01378         3,                  /* rightshift */
01379         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01380         13,                 /* bitsize */
01381         FALSE,                     /* pc_relative */
01382         10,                 /* bitpos */
01383         complain_overflow_signed, /* complain_on_overflow */
01384         bfd_elf_generic_reloc,     /* special_function */
01385         "R_SH_GOTPLT10BY8", /* name */
01386         FALSE,                     /* partial_inplace */
01387         0,                  /* src_mask */
01388         0xffc00,            /* dst_mask */
01389         FALSE),             /* pcrel_offset */
01390 
01391   HOWTO (R_SH_COPY64,              /* type */
01392         0,                  /* rightshift */
01393         4,                  /* size (0 = byte, 1 = short, 2 = long) */
01394         64,                 /* bitsize */
01395         FALSE,                     /* pc_relative */
01396         0,                  /* bitpos */
01397         complain_overflow_dont, /* complain_on_overflow */
01398         bfd_elf_generic_reloc,     /* special_function */
01399         "R_SH_COPY64",             /* name */
01400         FALSE,                     /* partial_inplace */
01401         0,                  /* src_mask */
01402         ((bfd_vma) 0) - 1,  /* dst_mask */
01403         FALSE),             /* pcrel_offset */
01404 
01405   HOWTO (R_SH_GLOB_DAT64,   /* type */
01406         0,                  /* rightshift */
01407         4,                  /* size (0 = byte, 1 = short, 2 = long) */
01408         64,                 /* bitsize */
01409         FALSE,                     /* pc_relative */
01410         0,                  /* bitpos */
01411         complain_overflow_dont, /* complain_on_overflow */
01412         bfd_elf_generic_reloc,     /* special_function */
01413         "R_SH_GLOB_DAT64",  /* name */
01414         FALSE,                     /* partial_inplace */
01415         0,                  /* src_mask */
01416         ((bfd_vma) 0) - 1,  /* dst_mask */
01417         FALSE),             /* pcrel_offset */
01418 
01419   HOWTO (R_SH_JMP_SLOT64,   /* type */
01420         0,                  /* rightshift */
01421         4,                  /* size (0 = byte, 1 = short, 2 = long) */
01422         64,                 /* bitsize */
01423         FALSE,                     /* pc_relative */
01424         0,                  /* bitpos */
01425         complain_overflow_dont, /* complain_on_overflow */
01426         bfd_elf_generic_reloc,     /* special_function */
01427         "R_SH_JMP_SLOT64",  /* name */
01428         FALSE,                     /* partial_inplace */
01429         0,                  /* src_mask */
01430         ((bfd_vma) 0) - 1,  /* dst_mask */
01431         FALSE),             /* pcrel_offset */
01432 
01433   HOWTO (R_SH_RELATIVE64,   /* type */
01434         0,                  /* rightshift */
01435         4,                  /* size (0 = byte, 1 = short, 2 = long) */
01436         64,                 /* bitsize */
01437         FALSE,                     /* pc_relative */
01438         0,                  /* bitpos */
01439         complain_overflow_dont, /* complain_on_overflow */
01440         bfd_elf_generic_reloc,     /* special_function */
01441         "R_SH_RELATIVE64",  /* name */
01442         FALSE,                     /* partial_inplace */
01443         0,                  /* src_mask */
01444         ((bfd_vma) 0) - 1,  /* dst_mask */
01445         FALSE),             /* pcrel_offset */
01446 
01447   EMPTY_HOWTO (197),
01448   EMPTY_HOWTO (198),
01449   EMPTY_HOWTO (199),
01450   EMPTY_HOWTO (200),
01451   EMPTY_HOWTO (201),
01452   EMPTY_HOWTO (202),
01453   EMPTY_HOWTO (203),
01454   EMPTY_HOWTO (204),
01455   EMPTY_HOWTO (205),
01456   EMPTY_HOWTO (206),
01457   EMPTY_HOWTO (207),
01458   EMPTY_HOWTO (208),
01459   EMPTY_HOWTO (209),
01460   EMPTY_HOWTO (210),
01461   EMPTY_HOWTO (211),
01462   EMPTY_HOWTO (212),
01463   EMPTY_HOWTO (213),
01464   EMPTY_HOWTO (214),
01465   EMPTY_HOWTO (215),
01466   EMPTY_HOWTO (216),
01467   EMPTY_HOWTO (217),
01468   EMPTY_HOWTO (218),
01469   EMPTY_HOWTO (219),
01470   EMPTY_HOWTO (220),
01471   EMPTY_HOWTO (221),
01472   EMPTY_HOWTO (222),
01473   EMPTY_HOWTO (223),
01474   EMPTY_HOWTO (224),
01475   EMPTY_HOWTO (225),
01476   EMPTY_HOWTO (226),
01477   EMPTY_HOWTO (227),
01478   EMPTY_HOWTO (228),
01479   EMPTY_HOWTO (229),
01480   EMPTY_HOWTO (230),
01481   EMPTY_HOWTO (231),
01482   EMPTY_HOWTO (232),
01483   EMPTY_HOWTO (233),
01484   EMPTY_HOWTO (234),
01485   EMPTY_HOWTO (235),
01486   EMPTY_HOWTO (236),
01487   EMPTY_HOWTO (237),
01488   EMPTY_HOWTO (238),
01489   EMPTY_HOWTO (239),
01490   EMPTY_HOWTO (240),
01491   EMPTY_HOWTO (241),
01492 
01493   /* Relocations for SHmedia code.  None of these are partial_inplace or
01494      use the field being relocated (except R_SH_PT_16).  */
01495 
01496   /* The assembler will generate this reloc before a block of SHmedia
01497      instructions.  A section should be processed as assuming it contains
01498      data, unless this reloc is seen.  Note that a block of SHcompact
01499      instructions are instead preceded by R_SH_CODE.
01500      This is currently not implemented, but should be used for SHmedia
01501      linker relaxation.  */
01502   HOWTO (R_SH_SHMEDIA_CODE, /* type */
01503         0,                  /* rightshift */
01504         1,                  /* size (0 = byte, 1 = short, 2 = long) */
01505         0,                  /* bitsize */
01506         FALSE,                     /* pc_relative */
01507         0,                  /* bitpos */
01508         complain_overflow_unsigned, /* complain_on_overflow */
01509         sh_elf_ignore_reloc,       /* special_function */
01510         "R_SH_SHMEDIA_CODE",       /* name */
01511         FALSE,                     /* partial_inplace */
01512         0,                  /* src_mask */
01513         0,                  /* dst_mask */
01514         FALSE),             /* pcrel_offset */
01515 
01516   /* The assembler will generate this reloc at a PTA or PTB instruction,
01517      and the linker checks the right type of target, or changes a PTA to a
01518      PTB, if the original insn was PT.  */
01519   HOWTO (R_SH_PT_16,        /* type */
01520         2,                  /* rightshift */
01521         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01522         18,                 /* bitsize */
01523         TRUE,               /* pc_relative */
01524         10,                 /* bitpos */
01525         complain_overflow_signed, /* complain_on_overflow */
01526         bfd_elf_generic_reloc,     /* special_function */
01527         "R_SH_PT_16",              /* name */
01528         FALSE,                     /* partial_inplace */
01529         0,                  /* src_mask */
01530         0x3fffc00,          /* dst_mask */
01531         TRUE),                     /* pcrel_offset */
01532 
01533   /* Used in unexpanded MOVI.  */
01534   HOWTO (R_SH_IMMS16,              /* type */
01535         0,                  /* rightshift */
01536         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01537         16,                 /* bitsize */
01538         FALSE,                     /* pc_relative */
01539         10,                 /* bitpos */
01540         complain_overflow_signed, /* complain_on_overflow */
01541         bfd_elf_generic_reloc,     /* special_function */
01542         "R_SH_IMMS16",             /* name */
01543         FALSE,                     /* partial_inplace */
01544         0,                  /* src_mask */
01545         0x3fffc00,          /* dst_mask */
01546         FALSE),             /* pcrel_offset */
01547 
01548   /* Used in SHORI.  */
01549   HOWTO (R_SH_IMMU16,              /* type */
01550         0,                  /* rightshift */
01551         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01552         16,                 /* bitsize */
01553         FALSE,                     /* pc_relative */
01554         10,                 /* bitpos */
01555         complain_overflow_unsigned, /* complain_on_overflow */
01556         bfd_elf_generic_reloc,     /* special_function */
01557         "R_SH_IMMU16",             /* name */
01558         FALSE,                     /* partial_inplace */
01559         0,                  /* src_mask */
01560         0x3fffc00,          /* dst_mask */
01561         FALSE),             /* pcrel_offset */
01562 
01563   /* Used in MOVI and SHORI (x & 65536).  */
01564   HOWTO (R_SH_IMM_LOW16,    /* type */
01565         0,                  /* rightshift */
01566         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01567         64,                 /* bitsize */
01568         FALSE,                     /* pc_relative */
01569         10,                 /* bitpos */
01570         complain_overflow_dont, /* complain_on_overflow */
01571         bfd_elf_generic_reloc,     /* special_function */
01572         "R_SH_IMM_LOW16",   /* name */
01573         FALSE,                     /* partial_inplace */
01574         0,                  /* src_mask */
01575         0x3fffc00,          /* dst_mask */
01576         FALSE),             /* pcrel_offset */
01577 
01578   /* Used in MOVI and SHORI ((x - $) & 65536).  */
01579   HOWTO (R_SH_IMM_LOW16_PCREL,     /* type */
01580         0,                  /* rightshift */
01581         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01582         64,                 /* bitsize */
01583         TRUE,               /* pc_relative */
01584         10,                 /* bitpos */
01585         complain_overflow_dont, /* complain_on_overflow */
01586         bfd_elf_generic_reloc,     /* special_function */
01587         "R_SH_IMM_LOW16_PCREL", /* name */
01588         FALSE,                     /* partial_inplace */
01589         0,                  /* src_mask */
01590         0x3fffc00,          /* dst_mask */
01591         TRUE),                     /* pcrel_offset */
01592 
01593   /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
01594   HOWTO (R_SH_IMM_MEDLOW16, /* type */
01595         16,                 /* rightshift */
01596         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01597         64,                 /* bitsize */
01598         FALSE,                     /* pc_relative */
01599         10,                 /* bitpos */
01600         complain_overflow_dont, /* complain_on_overflow */
01601         bfd_elf_generic_reloc,     /* special_function */
01602         "R_SH_IMM_MEDLOW16",       /* name */
01603         FALSE,                     /* partial_inplace */
01604         0,                  /* src_mask */
01605         0x3fffc00,          /* dst_mask */
01606         FALSE),             /* pcrel_offset */
01607 
01608   /* Used in MOVI and SHORI (((x - $) >> 16) & 65536).  */
01609   HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */
01610         16,                 /* rightshift */
01611         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01612         64,                 /* bitsize */
01613         TRUE,               /* pc_relative */
01614         10,                 /* bitpos */
01615         complain_overflow_dont, /* complain_on_overflow */
01616         bfd_elf_generic_reloc,     /* special_function */
01617         "R_SH_IMM_MEDLOW16_PCREL", /* name */
01618         FALSE,                     /* partial_inplace */
01619         0,                  /* src_mask */
01620         0x3fffc00,          /* dst_mask */
01621         TRUE),                     /* pcrel_offset */
01622 
01623   /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
01624   HOWTO (R_SH_IMM_MEDHI16,  /* type */
01625         32,                 /* rightshift */
01626         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01627         64,                 /* bitsize */
01628         FALSE,                     /* pc_relative */
01629         10,                 /* bitpos */
01630         complain_overflow_dont, /* complain_on_overflow */
01631         bfd_elf_generic_reloc,     /* special_function */
01632         "R_SH_IMM_MEDHI16", /* name */
01633         FALSE,                     /* partial_inplace */
01634         0,                  /* src_mask */
01635         0x3fffc00,          /* dst_mask */
01636         FALSE),             /* pcrel_offset */
01637 
01638   /* Used in MOVI and SHORI (((x - $) >> 32) & 65536).  */
01639   HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */
01640         32,                 /* rightshift */
01641         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01642         64,                 /* bitsize */
01643         TRUE,               /* pc_relative */
01644         10,                 /* bitpos */
01645         complain_overflow_dont, /* complain_on_overflow */
01646         bfd_elf_generic_reloc,     /* special_function */
01647         "R_SH_IMM_MEDHI16_PCREL", /* name */
01648         FALSE,                     /* partial_inplace */
01649         0,                  /* src_mask */
01650         0x3fffc00,          /* dst_mask */
01651         TRUE),                     /* pcrel_offset */
01652 
01653   /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
01654   HOWTO (R_SH_IMM_HI16,            /* type */
01655         48,                 /* rightshift */
01656         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01657         64,                 /* bitsize */
01658         FALSE,                     /* pc_relative */
01659         10,                 /* bitpos */
01660         complain_overflow_dont, /* complain_on_overflow */
01661         bfd_elf_generic_reloc,     /* special_function */
01662         "R_SH_IMM_HI16",    /* name */
01663         FALSE,                     /* partial_inplace */
01664         0,                  /* src_mask */
01665         0x3fffc00,          /* dst_mask */
01666         FALSE),             /* pcrel_offset */
01667 
01668   /* Used in MOVI and SHORI (((x - $) >> 48) & 65536).  */
01669   HOWTO (R_SH_IMM_HI16_PCREL,      /* type */
01670         48,                 /* rightshift */
01671         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01672         64,                 /* bitsize */
01673         TRUE,               /* pc_relative */
01674         10,                 /* bitpos */
01675         complain_overflow_dont, /* complain_on_overflow */
01676         bfd_elf_generic_reloc,     /* special_function */
01677         "R_SH_IMM_HI16_PCREL", /* name */
01678         FALSE,                     /* partial_inplace */
01679         0,                  /* src_mask */
01680         0x3fffc00,          /* dst_mask */
01681         TRUE),                     /* pcrel_offset */
01682 
01683   /* For the .uaquad pseudo.  */
01684   HOWTO (R_SH_64,           /* type */
01685         0,                  /* rightshift */
01686         4,                  /* size (0 = byte, 1 = short, 2 = long) */
01687         64,                 /* bitsize */
01688         FALSE,                     /* pc_relative */
01689         0,                  /* bitpos */
01690         complain_overflow_dont, /* complain_on_overflow */
01691         bfd_elf_generic_reloc,     /* special_function */
01692         "R_SH_64",          /* name */
01693         FALSE,                     /* partial_inplace */
01694         0,                  /* src_mask */
01695         ((bfd_vma) 0) - 1,  /* dst_mask */
01696         FALSE),             /* pcrel_offset */
01697 
01698   /* For the .uaquad pseudo, (x - $).  */
01699   HOWTO (R_SH_64_PCREL,            /* type */
01700         48,                 /* rightshift */
01701         2,                  /* size (0 = byte, 1 = short, 2 = long) */
01702         64,                 /* bitsize */
01703         TRUE,               /* pc_relative */
01704         10,                 /* bitpos */
01705         complain_overflow_dont, /* complain_on_overflow */
01706         bfd_elf_generic_reloc,     /* special_function */
01707         "R_SH_64_PCREL",    /* name */
01708         FALSE,                     /* partial_inplace */
01709         0,                  /* src_mask */
01710         ((bfd_vma) 0) - 1,  /* dst_mask */
01711         TRUE),                     /* pcrel_offset */
01712 
01713 #endif
01714 #undef SH_PARTIAL32
01715 #undef SH_SRC_MASK32
01716 #undef SH_ELF_RELOC