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