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