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