1214571Sdim  /* No relocation.  */
2214571Sdim  HOWTO (R_SH_NONE,		/* type */
3214571Sdim	 0,			/* rightshift */
4214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
5214571Sdim	 0,			/* bitsize */
6214571Sdim	 FALSE,			/* pc_relative */
7214571Sdim	 0,			/* bitpos */
8214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
9214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
10214571Sdim	 "R_SH_NONE",		/* name */
11214571Sdim	 FALSE,			/* partial_inplace */
12214571Sdim	 0,			/* src_mask */
13214571Sdim	 0,			/* dst_mask */
14214571Sdim	 FALSE),		/* pcrel_offset */
15214571Sdim
16214571Sdim  /* 32 bit absolute relocation.  Setting partial_inplace to TRUE and
17214571Sdim     src_mask to a non-zero value is similar to the COFF toolchain.  */
18214571Sdim  HOWTO (R_SH_DIR32,		/* type */
19214571Sdim	 0,			/* rightshift */
20214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
21214571Sdim	 32,			/* bitsize */
22214571Sdim	 FALSE,			/* pc_relative */
23214571Sdim	 0,			/* bitpos */
24214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
25214571Sdim	 SH_ELF_RELOC,		/* special_function */
26214571Sdim	 "R_SH_DIR32",		/* name */
27214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
28214571Sdim	 SH_SRC_MASK32,		/* src_mask */
29214571Sdim	 0xffffffff,		/* dst_mask */
30214571Sdim	 FALSE),		/* pcrel_offset */
31214571Sdim
32214571Sdim  /* 32 bit PC relative relocation.  */
33214571Sdim  HOWTO (R_SH_REL32,		/* type */
34214571Sdim	 0,			/* rightshift */
35214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
36214571Sdim	 32,			/* bitsize */
37214571Sdim	 TRUE,			/* pc_relative */
38214571Sdim	 0,			/* bitpos */
39214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
40214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
41214571Sdim	 "R_SH_REL32",		/* name */
42214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
43214571Sdim	 SH_SRC_MASK32,		/* src_mask */
44214571Sdim	 0xffffffff,		/* dst_mask */
45214571Sdim	 TRUE),			/* pcrel_offset */
46214571Sdim
47214571Sdim  /* 8 bit PC relative branch divided by 2.  */
48214571Sdim  HOWTO (R_SH_DIR8WPN,		/* type */
49214571Sdim	 1,			/* rightshift */
50214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
51214571Sdim	 8,			/* bitsize */
52214571Sdim	 TRUE,			/* pc_relative */
53214571Sdim	 0,			/* bitpos */
54214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
55214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
56214571Sdim	 "R_SH_DIR8WPN",	/* name */
57214571Sdim	 TRUE,			/* partial_inplace */
58214571Sdim	 0xff,			/* src_mask */
59214571Sdim	 0xff,			/* dst_mask */
60214571Sdim	 TRUE),			/* pcrel_offset */
61214571Sdim
62214571Sdim  /* 12 bit PC relative branch divided by 2.  */
63214571Sdim  /* This cannot be partial_inplace because relaxation can't know the
64214571Sdim     eventual value of a symbol.  */
65214571Sdim  HOWTO (R_SH_IND12W,		/* type */
66214571Sdim	 1,			/* rightshift */
67214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
68214571Sdim	 12,			/* bitsize */
69214571Sdim	 TRUE,			/* pc_relative */
70214571Sdim	 0,			/* bitpos */
71214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
72214571Sdim	 NULL,			/* special_function */
73214571Sdim	 "R_SH_IND12W",		/* name */
74214571Sdim	 FALSE,			/* partial_inplace */
75214571Sdim	 0x0,			/* src_mask */
76214571Sdim	 0xfff,			/* dst_mask */
77214571Sdim	 TRUE),			/* pcrel_offset */
78214571Sdim
79214571Sdim  /* 8 bit unsigned PC relative divided by 4.  */
80214571Sdim  HOWTO (R_SH_DIR8WPL,		/* type */
81214571Sdim	 2,			/* rightshift */
82214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
83214571Sdim	 8,			/* bitsize */
84214571Sdim	 TRUE,			/* pc_relative */
85214571Sdim	 0,			/* bitpos */
86214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
87214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
88214571Sdim	 "R_SH_DIR8WPL",	/* name */
89214571Sdim	 TRUE,			/* partial_inplace */
90214571Sdim	 0xff,			/* src_mask */
91214571Sdim	 0xff,			/* dst_mask */
92214571Sdim	 TRUE),			/* pcrel_offset */
93214571Sdim
94214571Sdim  /* 8 bit unsigned PC relative divided by 2.  */
95214571Sdim  HOWTO (R_SH_DIR8WPZ,		/* type */
96214571Sdim	 1,			/* rightshift */
97214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
98214571Sdim	 8,			/* bitsize */
99214571Sdim	 TRUE,			/* pc_relative */
100214571Sdim	 0,			/* bitpos */
101214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
102214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
103214571Sdim	 "R_SH_DIR8WPZ",	/* name */
104214571Sdim	 TRUE,			/* partial_inplace */
105214571Sdim	 0xff,			/* src_mask */
106214571Sdim	 0xff,			/* dst_mask */
107214571Sdim	 TRUE),			/* pcrel_offset */
108214571Sdim
109214571Sdim  /* 8 bit GBR relative.  FIXME: This only makes sense if we have some
110214571Sdim     special symbol for the GBR relative area, and that is not
111214571Sdim     implemented.  */
112214571Sdim  HOWTO (R_SH_DIR8BP,		/* type */
113214571Sdim	 0,			/* rightshift */
114214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
115214571Sdim	 8,			/* bitsize */
116214571Sdim	 FALSE,			/* pc_relative */
117214571Sdim	 0,			/* bitpos */
118214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
119214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
120214571Sdim	 "R_SH_DIR8BP",		/* name */
121214571Sdim	 FALSE,			/* partial_inplace */
122214571Sdim	 0,			/* src_mask */
123214571Sdim	 0xff,			/* dst_mask */
124214571Sdim	 TRUE),			/* pcrel_offset */
125214571Sdim
126214571Sdim  /* 8 bit GBR relative divided by 2.  FIXME: This only makes sense if
127214571Sdim     we have some special symbol for the GBR relative area, and that
128214571Sdim     is not implemented.  */
129214571Sdim  HOWTO (R_SH_DIR8W,		/* type */
130214571Sdim	 1,			/* rightshift */
131214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
132214571Sdim	 8,			/* bitsize */
133214571Sdim	 FALSE,			/* pc_relative */
134214571Sdim	 0,			/* bitpos */
135214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
136214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
137214571Sdim	 "R_SH_DIR8W",		/* name */
138214571Sdim	 FALSE,			/* partial_inplace */
139214571Sdim	 0,			/* src_mask */
140214571Sdim	 0xff,			/* dst_mask */
141214571Sdim	 TRUE),			/* pcrel_offset */
142214571Sdim
143214571Sdim  /* 8 bit GBR relative divided by 4.  FIXME: This only makes sense if
144214571Sdim     we have some special symbol for the GBR relative area, and that
145214571Sdim     is not implemented.  */
146214571Sdim  HOWTO (R_SH_DIR8L,		/* type */
147214571Sdim	 2,			/* rightshift */
148214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
149214571Sdim	 8,			/* bitsize */
150214571Sdim	 FALSE,			/* pc_relative */
151214571Sdim	 0,			/* bitpos */
152214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
153214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
154214571Sdim	 "R_SH_DIR8L",		/* name */
155214571Sdim	 FALSE,			/* partial_inplace */
156214571Sdim	 0,			/* src_mask */
157214571Sdim	 0xff,			/* dst_mask */
158214571Sdim	 TRUE),			/* pcrel_offset */
159214571Sdim
160214571Sdim  /* 8 bit PC relative divided by 2 - but specified in a very odd way.  */
161214571Sdim  HOWTO (R_SH_LOOP_START,	/* type */
162214571Sdim	 1,			/* rightshift */
163214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
164214571Sdim	 8,			/* bitsize */
165214571Sdim	 FALSE,			/* pc_relative */
166214571Sdim	 0,			/* bitpos */
167214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
168214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
169214571Sdim	 "R_SH_LOOP_START",	/* name */
170214571Sdim	 TRUE,			/* partial_inplace */
171214571Sdim	 0xff,			/* src_mask */
172214571Sdim	 0xff,			/* dst_mask */
173214571Sdim	 TRUE),			/* pcrel_offset */
174214571Sdim
175214571Sdim  /* 8 bit PC relative divided by 2 - but specified in a very odd way.  */
176214571Sdim  HOWTO (R_SH_LOOP_END,		/* type */
177214571Sdim	 1,			/* rightshift */
178214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
179214571Sdim	 8,			/* bitsize */
180214571Sdim	 FALSE,			/* pc_relative */
181214571Sdim	 0,			/* bitpos */
182214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
183214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
184214571Sdim	 "R_SH_LOOP_END",	/* name */
185214571Sdim	 TRUE,			/* partial_inplace */
186214571Sdim	 0xff,			/* src_mask */
187214571Sdim	 0xff,			/* dst_mask */
188214571Sdim	 TRUE),			/* pcrel_offset */
189214571Sdim
190214571Sdim  EMPTY_HOWTO (12),
191214571Sdim  EMPTY_HOWTO (13),
192214571Sdim  EMPTY_HOWTO (14),
193214571Sdim  EMPTY_HOWTO (15),
194214571Sdim  EMPTY_HOWTO (16),
195214571Sdim  EMPTY_HOWTO (17),
196214571Sdim  EMPTY_HOWTO (18),
197214571Sdim  EMPTY_HOWTO (19),
198214571Sdim  EMPTY_HOWTO (20),
199214571Sdim  EMPTY_HOWTO (21),
200214571Sdim
201214571Sdim  /* The remaining relocs are a GNU extension used for relaxing.  The
202214571Sdim     final pass of the linker never needs to do anything with any of
203214571Sdim     these relocs.  Any required operations are handled by the
204214571Sdim     relaxation code.  */
205214571Sdim
206214571Sdim  /* GNU extension to record C++ vtable hierarchy */
207214571Sdim  HOWTO (R_SH_GNU_VTINHERIT, /* type */
208214571Sdim	 0,			/* rightshift */
209214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
210214571Sdim	 0,			/* bitsize */
211214571Sdim	 FALSE,			/* pc_relative */
212214571Sdim	 0,			/* bitpos */
213214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
214214571Sdim	 NULL,			/* special_function */
215214571Sdim	 "R_SH_GNU_VTINHERIT", /* name */
216214571Sdim	 FALSE,			/* partial_inplace */
217214571Sdim	 0,			/* src_mask */
218214571Sdim	 0,			/* dst_mask */
219214571Sdim	 FALSE),		/* pcrel_offset */
220214571Sdim
221214571Sdim  /* GNU extension to record C++ vtable member usage */
222214571Sdim  HOWTO (R_SH_GNU_VTENTRY,     /* type */
223214571Sdim	 0,			/* rightshift */
224214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
225214571Sdim	 0,			/* bitsize */
226214571Sdim	 FALSE,			/* pc_relative */
227214571Sdim	 0,			/* bitpos */
228214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
229214571Sdim	 _bfd_elf_rel_vtable_reloc_fn,	/* special_function */
230214571Sdim	 "R_SH_GNU_VTENTRY",   /* name */
231214571Sdim	 FALSE,			/* partial_inplace */
232214571Sdim	 0,			/* src_mask */
233214571Sdim	 0,			/* dst_mask */
234214571Sdim	 FALSE),		/* pcrel_offset */
235214571Sdim
236214571Sdim  /* An 8 bit switch table entry.  This is generated for an expression
237214571Sdim     such as ``.word L1 - L2''.  The offset holds the difference
238214571Sdim     between the reloc address and L2.  */
239214571Sdim  HOWTO (R_SH_SWITCH8,		/* type */
240214571Sdim	 0,			/* rightshift */
241214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
242214571Sdim	 8,			/* bitsize */
243214571Sdim	 FALSE,			/* pc_relative */
244214571Sdim	 0,			/* bitpos */
245214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
246214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
247214571Sdim	 "R_SH_SWITCH8",	/* name */
248214571Sdim	 FALSE,			/* partial_inplace */
249214571Sdim	 0,			/* src_mask */
250214571Sdim	 0,			/* dst_mask */
251214571Sdim	 TRUE),			/* pcrel_offset */
252214571Sdim
253214571Sdim  /* A 16 bit switch table entry.  This is generated for an expression
254214571Sdim     such as ``.word L1 - L2''.  The offset holds the difference
255214571Sdim     between the reloc address and L2.  */
256214571Sdim  HOWTO (R_SH_SWITCH16,		/* type */
257214571Sdim	 0,			/* rightshift */
258214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
259214571Sdim	 16,			/* bitsize */
260214571Sdim	 FALSE,			/* pc_relative */
261214571Sdim	 0,			/* bitpos */
262214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
263214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
264214571Sdim	 "R_SH_SWITCH16",	/* name */
265214571Sdim	 FALSE,			/* partial_inplace */
266214571Sdim	 0,			/* src_mask */
267214571Sdim	 0,			/* dst_mask */
268214571Sdim	 TRUE),			/* pcrel_offset */
269214571Sdim
270214571Sdim  /* A 32 bit switch table entry.  This is generated for an expression
271214571Sdim     such as ``.long L1 - L2''.  The offset holds the difference
272214571Sdim     between the reloc address and L2.  */
273214571Sdim  HOWTO (R_SH_SWITCH32,		/* type */
274214571Sdim	 0,			/* rightshift */
275214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
276214571Sdim	 32,			/* bitsize */
277214571Sdim	 FALSE,			/* pc_relative */
278214571Sdim	 0,			/* bitpos */
279214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
280214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
281214571Sdim	 "R_SH_SWITCH32",	/* name */
282214571Sdim	 FALSE,			/* partial_inplace */
283214571Sdim	 0,			/* src_mask */
284214571Sdim	 0,			/* dst_mask */
285214571Sdim	 TRUE),			/* pcrel_offset */
286214571Sdim
287214571Sdim  /* Indicates a .uses pseudo-op.  The compiler will generate .uses
288214571Sdim     pseudo-ops when it finds a function call which can be relaxed.
289214571Sdim     The offset field holds the PC relative offset to the instruction
290214571Sdim     which loads the register used in the function call.  */
291214571Sdim  HOWTO (R_SH_USES,		/* type */
292214571Sdim	 0,			/* rightshift */
293214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
294214571Sdim	 0,			/* bitsize */
295214571Sdim	 FALSE,			/* pc_relative */
296214571Sdim	 0,			/* bitpos */
297214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
298214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
299214571Sdim	 "R_SH_USES",		/* name */
300214571Sdim	 FALSE,			/* partial_inplace */
301214571Sdim	 0,			/* src_mask */
302214571Sdim	 0,			/* dst_mask */
303214571Sdim	 TRUE),			/* pcrel_offset */
304214571Sdim
305214571Sdim  /* The assembler will generate this reloc for addresses referred to
306214571Sdim     by the register loads associated with USES relocs.  The offset
307214571Sdim     field holds the number of times the address is referenced in the
308214571Sdim     object file.  */
309214571Sdim  HOWTO (R_SH_COUNT,		/* type */
310214571Sdim	 0,			/* rightshift */
311214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
312214571Sdim	 0,			/* bitsize */
313214571Sdim	 FALSE,			/* pc_relative */
314214571Sdim	 0,			/* bitpos */
315214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
316214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
317214571Sdim	 "R_SH_COUNT",		/* name */
318214571Sdim	 FALSE,			/* partial_inplace */
319214571Sdim	 0,			/* src_mask */
320214571Sdim	 0,			/* dst_mask */
321214571Sdim	 TRUE),			/* pcrel_offset */
322214571Sdim
323214571Sdim  /* Indicates an alignment statement.  The offset field is the power
324214571Sdim     of 2 to which subsequent portions of the object file must be
325214571Sdim     aligned.  */
326214571Sdim  HOWTO (R_SH_ALIGN,		/* type */
327214571Sdim	 0,			/* rightshift */
328214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
329214571Sdim	 0,			/* bitsize */
330214571Sdim	 FALSE,			/* pc_relative */
331214571Sdim	 0,			/* bitpos */
332214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
333214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
334214571Sdim	 "R_SH_ALIGN",	/* name */
335214571Sdim	 FALSE,			/* partial_inplace */
336214571Sdim	 0,			/* src_mask */
337214571Sdim	 0,			/* dst_mask */
338214571Sdim	 TRUE),			/* pcrel_offset */
339214571Sdim
340214571Sdim  /* The assembler will generate this reloc before a block of
341214571Sdim     instructions.  A section should be processed as assuming it
342214571Sdim     contains data, unless this reloc is seen.  */
343214571Sdim  HOWTO (R_SH_CODE,		/* type */
344214571Sdim	 0,			/* rightshift */
345214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
346214571Sdim	 0,			/* bitsize */
347214571Sdim	 FALSE,			/* pc_relative */
348214571Sdim	 0,			/* bitpos */
349214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
350214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
351214571Sdim	 "R_SH_CODE",		/* name */
352214571Sdim	 FALSE,			/* partial_inplace */
353214571Sdim	 0,			/* src_mask */
354214571Sdim	 0,			/* dst_mask */
355214571Sdim	 TRUE),			/* pcrel_offset */
356214571Sdim
357214571Sdim  /* The assembler will generate this reloc after a block of
358214571Sdim     instructions when it sees data that is not instructions.  */
359214571Sdim  HOWTO (R_SH_DATA,		/* type */
360214571Sdim	 0,			/* rightshift */
361214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
362214571Sdim	 0,			/* bitsize */
363214571Sdim	 FALSE,			/* pc_relative */
364214571Sdim	 0,			/* bitpos */
365214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
366214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
367214571Sdim	 "R_SH_DATA",		/* name */
368214571Sdim	 FALSE,			/* partial_inplace */
369214571Sdim	 0,			/* src_mask */
370214571Sdim	 0,			/* dst_mask */
371214571Sdim	 TRUE),			/* pcrel_offset */
372214571Sdim
373214571Sdim  /* The assembler generates this reloc for each label within a block
374214571Sdim     of instructions.  This permits the linker to avoid swapping
375214571Sdim     instructions which are the targets of branches.  */
376214571Sdim  HOWTO (R_SH_LABEL,		/* type */
377214571Sdim	 0,			/* rightshift */
378214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
379214571Sdim	 0,			/* bitsize */
380214571Sdim	 FALSE,			/* pc_relative */
381214571Sdim	 0,			/* bitpos */
382214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
383214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
384214571Sdim	 "R_SH_LABEL",		/* name */
385214571Sdim	 FALSE,			/* partial_inplace */
386214571Sdim	 0,			/* src_mask */
387214571Sdim	 0,			/* dst_mask */
388214571Sdim	 TRUE),			/* pcrel_offset */
389214571Sdim
390214571Sdim  /* The next 12 are only supported via linking in SHC-generated objects.  */
391214571Sdim  HOWTO (R_SH_DIR16,		/* type */
392214571Sdim	 0,			/* rightshift */
393214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
394214571Sdim	 16,			/* bitsize */
395214571Sdim	 FALSE,			/* pc_relative */
396214571Sdim	 0,			/* bitpos */
397214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
398214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
399214571Sdim	 "R_SH_DIR16",		/* name */
400214571Sdim	 FALSE,			/* partial_inplace */
401214571Sdim	 0,			/* src_mask */
402214571Sdim	 0xffff,		/* dst_mask */
403214571Sdim	 FALSE),		/* pcrel_offset */
404214571Sdim
405214571Sdim  HOWTO (R_SH_DIR8,		/* type */
406214571Sdim	 0,			/* rightshift */
407214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
408214571Sdim	 8,			/* bitsize */
409214571Sdim	 FALSE,			/* pc_relative */
410214571Sdim	 0,			/* bitpos */
411214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
412214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
413214571Sdim	 "R_SH_DIR8",		/* name */
414214571Sdim	 FALSE,			/* partial_inplace */
415214571Sdim	 0,			/* src_mask */
416214571Sdim	 0xff,			/* dst_mask */
417214571Sdim	 FALSE),		/* pcrel_offset */
418214571Sdim
419214571Sdim  HOWTO (R_SH_DIR8UL,		/* type */
420214571Sdim	 2,			/* rightshift */
421214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
422214571Sdim	 8,			/* bitsize */
423214571Sdim	 FALSE,			/* pc_relative */
424214571Sdim	 0,			/* bitpos */
425214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
426214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
427214571Sdim	 "R_SH_DIR8UL",		/* name */
428214571Sdim	 FALSE,			/* partial_inplace */
429214571Sdim	 0,			/* src_mask */
430214571Sdim	 0xff,			/* dst_mask */
431214571Sdim	 FALSE),		/* pcrel_offset */
432214571Sdim
433214571Sdim  HOWTO (R_SH_DIR8UW,		/* type */
434214571Sdim	 1,			/* rightshift */
435214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
436214571Sdim	 8,			/* bitsize */
437214571Sdim	 FALSE,			/* pc_relative */
438214571Sdim	 0,			/* bitpos */
439214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
440214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
441214571Sdim	 "R_SH_DIR8UW",		/* name */
442214571Sdim	 FALSE,			/* partial_inplace */
443214571Sdim	 0,			/* src_mask */
444214571Sdim	 0xff,			/* dst_mask */
445214571Sdim	 FALSE),		/* pcrel_offset */
446214571Sdim
447214571Sdim  HOWTO (R_SH_DIR8U,		/* type */
448214571Sdim	 0,			/* rightshift */
449214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
450214571Sdim	 8,			/* bitsize */
451214571Sdim	 FALSE,			/* pc_relative */
452214571Sdim	 0,			/* bitpos */
453214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
454214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
455214571Sdim	 "R_SH_DIR8U",		/* name */
456214571Sdim	 FALSE,			/* partial_inplace */
457214571Sdim	 0,			/* src_mask */
458214571Sdim	 0xff,			/* dst_mask */
459214571Sdim	 FALSE),		/* pcrel_offset */
460214571Sdim
461214571Sdim  HOWTO (R_SH_DIR8SW,		/* type */
462214571Sdim	 1,			/* rightshift */
463214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
464214571Sdim	 8,			/* bitsize */
465214571Sdim	 FALSE,			/* pc_relative */
466214571Sdim	 0,			/* bitpos */
467214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
468214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
469214571Sdim	 "R_SH_DIR8SW",		/* name */
470214571Sdim	 FALSE,			/* partial_inplace */
471214571Sdim	 0,			/* src_mask */
472214571Sdim	 0xff,			/* dst_mask */
473214571Sdim	 FALSE),		/* pcrel_offset */
474214571Sdim
475214571Sdim  HOWTO (R_SH_DIR8S,		/* type */
476214571Sdim	 0,			/* rightshift */
477214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
478214571Sdim	 8,			/* bitsize */
479214571Sdim	 FALSE,			/* pc_relative */
480214571Sdim	 0,			/* bitpos */
481214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
482214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
483214571Sdim	 "R_SH_DIR8S",		/* name */
484214571Sdim	 FALSE,			/* partial_inplace */
485214571Sdim	 0,			/* src_mask */
486214571Sdim	 0xff,			/* dst_mask */
487214571Sdim	 FALSE),		/* pcrel_offset */
488214571Sdim
489214571Sdim  HOWTO (R_SH_DIR4UL,		/* type */
490214571Sdim	 2,			/* rightshift */
491214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
492214571Sdim	 4,			/* bitsize */
493214571Sdim	 FALSE,			/* pc_relative */
494214571Sdim	 0,			/* bitpos */
495214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
496214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
497214571Sdim	 "R_SH_DIR4UL",		/* name */
498214571Sdim	 FALSE,			/* partial_inplace */
499214571Sdim	 0,			/* src_mask */
500214571Sdim	 0x0f,			/* dst_mask */
501214571Sdim	 FALSE),		/* pcrel_offset */
502214571Sdim
503214571Sdim  HOWTO (R_SH_DIR4UW,		/* type */
504214571Sdim	 1,			/* rightshift */
505214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
506214571Sdim	 4,			/* bitsize */
507214571Sdim	 FALSE,			/* pc_relative */
508214571Sdim	 0,			/* bitpos */
509214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
510214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
511214571Sdim	 "R_SH_DIR4UW",		/* name */
512214571Sdim	 FALSE,			/* partial_inplace */
513214571Sdim	 0,			/* src_mask */
514214571Sdim	 0x0f,			/* dst_mask */
515214571Sdim	 FALSE),		/* pcrel_offset */
516214571Sdim
517214571Sdim  HOWTO (R_SH_DIR4U,		/* type */
518214571Sdim	 0,			/* rightshift */
519214571Sdim	 0,			/* size (0 = byte, 1 = short, 2 = long) */
520214571Sdim	 4,			/* bitsize */
521214571Sdim	 FALSE,			/* pc_relative */
522214571Sdim	 0,			/* bitpos */
523214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
524214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
525214571Sdim	 "R_SH_DIR4U",		/* name */
526214571Sdim	 FALSE,			/* partial_inplace */
527214571Sdim	 0,			/* src_mask */
528214571Sdim	 0x0f,			/* dst_mask */
529214571Sdim	 FALSE),		/* pcrel_offset */
530214571Sdim
531214571Sdim  HOWTO (R_SH_PSHA,		/* type */
532214571Sdim	 0,			/* rightshift */
533214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
534214571Sdim	 7,			/* bitsize */
535214571Sdim	 FALSE,			/* pc_relative */
536214571Sdim	 4,			/* bitpos */
537214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
538214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
539214571Sdim	 "R_SH_PSHA",		/* name */
540214571Sdim	 FALSE,			/* partial_inplace */
541214571Sdim	 0,			/* src_mask */
542214571Sdim	 0x0f,			/* dst_mask */
543214571Sdim	 FALSE),		/* pcrel_offset */
544214571Sdim
545214571Sdim  HOWTO (R_SH_PSHL,		/* type */
546214571Sdim	 0,			/* rightshift */
547214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
548214571Sdim	 7,			/* bitsize */
549214571Sdim	 FALSE,			/* pc_relative */
550214571Sdim	 4,			/* bitpos */
551214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
552214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
553214571Sdim	 "R_SH_PSHL",		/* name */
554214571Sdim	 FALSE,			/* partial_inplace */
555214571Sdim	 0,			/* src_mask */
556214571Sdim	 0x0f,			/* dst_mask */
557214571Sdim	 FALSE),		/* pcrel_offset */
558214571Sdim
559214571Sdim#ifdef INCLUDE_SHMEDIA
560214571Sdim  /* Used in SHLLI.L and SHLRI.L.  */
561214571Sdim  HOWTO (R_SH_DIR5U,		/* type */
562214571Sdim	 0,			/* rightshift */
563214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
564214571Sdim	 5,			/* bitsize */
565214571Sdim	 FALSE,			/* pc_relative */
566214571Sdim	 10,			/* bitpos */
567214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
568214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
569214571Sdim	 "R_SH_DIR5U",		/* name */
570214571Sdim	 FALSE,			/* partial_inplace */
571214571Sdim	 0,			/* src_mask */
572214571Sdim	 0xfc00,		/* dst_mask */
573214571Sdim	 FALSE),		/* pcrel_offset */
574214571Sdim
575214571Sdim  /* Used in SHARI, SHLLI et al.  */
576214571Sdim  HOWTO (R_SH_DIR6U,		/* type */
577214571Sdim	 0,			/* rightshift */
578214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
579214571Sdim	 6,			/* bitsize */
580214571Sdim	 FALSE,			/* pc_relative */
581214571Sdim	 10,			/* bitpos */
582214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
583214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
584214571Sdim	 "R_SH_DIR6U",		/* name */
585214571Sdim	 FALSE,			/* partial_inplace */
586214571Sdim	 0,			/* src_mask */
587214571Sdim	 0xfc00,		/* dst_mask */
588214571Sdim	 FALSE),		/* pcrel_offset */
589214571Sdim
590214571Sdim  /* Used in BxxI, LDHI.L et al.  */
591214571Sdim  HOWTO (R_SH_DIR6S,		/* type */
592214571Sdim	 0,			/* rightshift */
593214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
594214571Sdim	 6,			/* bitsize */
595214571Sdim	 FALSE,			/* pc_relative */
596214571Sdim	 10,			/* bitpos */
597214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
598214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
599214571Sdim	 "R_SH_DIR6S",		/* name */
600214571Sdim	 FALSE,			/* partial_inplace */
601214571Sdim	 0,			/* src_mask */
602214571Sdim	 0xfc00,		/* dst_mask */
603214571Sdim	 FALSE),		/* pcrel_offset */
604214571Sdim
605214571Sdim  /* Used in ADDI, ANDI et al.  */
606214571Sdim  HOWTO (R_SH_DIR10S,		/* type */
607214571Sdim	 0,			/* rightshift */
608214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
609214571Sdim	 10,			/* bitsize */
610214571Sdim	 FALSE,			/* pc_relative */
611214571Sdim	 10,			/* bitpos */
612214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
613214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
614214571Sdim	 "R_SH_DIR10S",		/* name */
615214571Sdim	 FALSE,			/* partial_inplace */
616214571Sdim	 0,			/* src_mask */
617214571Sdim	 0xffc00,		/* dst_mask */
618214571Sdim	 FALSE),		/* pcrel_offset */
619214571Sdim
620214571Sdim  /* Used in LD.UW, ST.W et al.	 */
621214571Sdim  HOWTO (R_SH_DIR10SW,	/* type */
622214571Sdim	 1,			/* rightshift */
623214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
624214571Sdim	 11,			/* bitsize */
625214571Sdim	 FALSE,			/* pc_relative */
626214571Sdim	 10,			/* bitpos */
627214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
628214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
629214571Sdim	 "R_SH_DIR10SW",	/* name */
630214571Sdim	 FALSE,			/* partial_inplace */
631214571Sdim	 0,			/* src_mask */
632214571Sdim	 0xffc00,		/* dst_mask */
633214571Sdim	 FALSE),		/* pcrel_offset */
634214571Sdim
635214571Sdim  /* Used in LD.L, FLD.S et al.	 */
636214571Sdim  HOWTO (R_SH_DIR10SL,	/* type */
637214571Sdim	 2,			/* rightshift */
638214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
639214571Sdim	 12,			/* bitsize */
640214571Sdim	 FALSE,			/* pc_relative */
641214571Sdim	 10,			/* bitpos */
642214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
643214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
644214571Sdim	 "R_SH_DIR10SL",	/* name */
645214571Sdim	 FALSE,			/* partial_inplace */
646214571Sdim	 0,			/* src_mask */
647214571Sdim	 0xffc00,		/* dst_mask */
648214571Sdim	 FALSE),		/* pcrel_offset */
649214571Sdim
650214571Sdim  /* Used in FLD.D, FST.P et al.  */
651214571Sdim  HOWTO (R_SH_DIR10SQ,	/* type */
652214571Sdim	 3,			/* rightshift */
653214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
654214571Sdim	 13,			/* bitsize */
655214571Sdim	 FALSE,			/* pc_relative */
656214571Sdim	 10,			/* bitpos */
657214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
658214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
659214571Sdim	 "R_SH_DIR10SQ",	/* name */
660214571Sdim	 FALSE,			/* partial_inplace */
661214571Sdim	 0,			/* src_mask */
662214571Sdim	 0xffc00,		/* dst_mask */
663214571Sdim	 FALSE),		/* pcrel_offset */
664214571Sdim
665214571Sdim#else
666214571Sdim  EMPTY_HOWTO (45),
667214571Sdim  EMPTY_HOWTO (46),
668214571Sdim  EMPTY_HOWTO (47),
669214571Sdim  EMPTY_HOWTO (48),
670214571Sdim  EMPTY_HOWTO (49),
671214571Sdim  EMPTY_HOWTO (50),
672214571Sdim  EMPTY_HOWTO (51),
673214571Sdim#endif
674214571Sdim
675214571Sdim  EMPTY_HOWTO (52),
676214571Sdim
677214571Sdim  HOWTO (R_SH_DIR16S,		/* type */
678214571Sdim	 0,			/* rightshift */
679214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
680214571Sdim	 16,			/* bitsize */
681214571Sdim	 FALSE,			/* pc_relative */
682214571Sdim	 0,			/* bitpos */
683214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
684214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
685214571Sdim	 "R_SH_DIR16S",		/* name */
686214571Sdim	 FALSE,			/* partial_inplace */
687214571Sdim	 0,			/* src_mask */
688214571Sdim	 0xffff,		/* dst_mask */
689214571Sdim	 FALSE),		/* pcrel_offset */
690214571Sdim
691214571Sdim  EMPTY_HOWTO (54),
692214571Sdim  EMPTY_HOWTO (55),
693214571Sdim  EMPTY_HOWTO (56),
694214571Sdim  EMPTY_HOWTO (57),
695214571Sdim  EMPTY_HOWTO (58),
696214571Sdim  EMPTY_HOWTO (59),
697214571Sdim  EMPTY_HOWTO (60),
698214571Sdim  EMPTY_HOWTO (61),
699214571Sdim  EMPTY_HOWTO (62),
700214571Sdim  EMPTY_HOWTO (63),
701214571Sdim  EMPTY_HOWTO (64),
702214571Sdim  EMPTY_HOWTO (65),
703214571Sdim  EMPTY_HOWTO (66),
704214571Sdim  EMPTY_HOWTO (67),
705214571Sdim  EMPTY_HOWTO (68),
706214571Sdim  EMPTY_HOWTO (69),
707214571Sdim  EMPTY_HOWTO (70),
708214571Sdim  EMPTY_HOWTO (71),
709214571Sdim  EMPTY_HOWTO (72),
710214571Sdim  EMPTY_HOWTO (73),
711214571Sdim  EMPTY_HOWTO (74),
712214571Sdim  EMPTY_HOWTO (75),
713214571Sdim  EMPTY_HOWTO (76),
714214571Sdim  EMPTY_HOWTO (77),
715214571Sdim  EMPTY_HOWTO (78),
716214571Sdim  EMPTY_HOWTO (79),
717214571Sdim  EMPTY_HOWTO (80),
718214571Sdim  EMPTY_HOWTO (81),
719214571Sdim  EMPTY_HOWTO (82),
720214571Sdim  EMPTY_HOWTO (83),
721214571Sdim  EMPTY_HOWTO (84),
722214571Sdim  EMPTY_HOWTO (85),
723214571Sdim  EMPTY_HOWTO (86),
724214571Sdim  EMPTY_HOWTO (87),
725214571Sdim  EMPTY_HOWTO (88),
726214571Sdim  EMPTY_HOWTO (89),
727214571Sdim  EMPTY_HOWTO (90),
728214571Sdim  EMPTY_HOWTO (91),
729214571Sdim  EMPTY_HOWTO (92),
730214571Sdim  EMPTY_HOWTO (93),
731214571Sdim  EMPTY_HOWTO (94),
732214571Sdim  EMPTY_HOWTO (95),
733214571Sdim  EMPTY_HOWTO (96),
734214571Sdim  EMPTY_HOWTO (97),
735214571Sdim  EMPTY_HOWTO (98),
736214571Sdim  EMPTY_HOWTO (99),
737214571Sdim  EMPTY_HOWTO (100),
738214571Sdim  EMPTY_HOWTO (101),
739214571Sdim  EMPTY_HOWTO (102),
740214571Sdim  EMPTY_HOWTO (103),
741214571Sdim  EMPTY_HOWTO (104),
742214571Sdim  EMPTY_HOWTO (105),
743214571Sdim  EMPTY_HOWTO (106),
744214571Sdim  EMPTY_HOWTO (107),
745214571Sdim  EMPTY_HOWTO (108),
746214571Sdim  EMPTY_HOWTO (109),
747214571Sdim  EMPTY_HOWTO (110),
748214571Sdim  EMPTY_HOWTO (111),
749214571Sdim  EMPTY_HOWTO (112),
750214571Sdim  EMPTY_HOWTO (113),
751214571Sdim  EMPTY_HOWTO (114),
752214571Sdim  EMPTY_HOWTO (115),
753214571Sdim  EMPTY_HOWTO (116),
754214571Sdim  EMPTY_HOWTO (117),
755214571Sdim  EMPTY_HOWTO (118),
756214571Sdim  EMPTY_HOWTO (119),
757214571Sdim  EMPTY_HOWTO (120),
758214571Sdim  EMPTY_HOWTO (121),
759214571Sdim  EMPTY_HOWTO (122),
760214571Sdim  EMPTY_HOWTO (123),
761214571Sdim  EMPTY_HOWTO (124),
762214571Sdim  EMPTY_HOWTO (125),
763214571Sdim  EMPTY_HOWTO (126),
764214571Sdim  EMPTY_HOWTO (127),
765214571Sdim  EMPTY_HOWTO (128),
766214571Sdim  EMPTY_HOWTO (129),
767214571Sdim  EMPTY_HOWTO (130),
768214571Sdim  EMPTY_HOWTO (131),
769214571Sdim  EMPTY_HOWTO (132),
770214571Sdim  EMPTY_HOWTO (133),
771214571Sdim  EMPTY_HOWTO (134),
772214571Sdim  EMPTY_HOWTO (135),
773214571Sdim  EMPTY_HOWTO (136),
774214571Sdim  EMPTY_HOWTO (137),
775214571Sdim  EMPTY_HOWTO (138),
776214571Sdim  EMPTY_HOWTO (139),
777214571Sdim  EMPTY_HOWTO (140),
778214571Sdim  EMPTY_HOWTO (141),
779214571Sdim  EMPTY_HOWTO (142),
780214571Sdim  EMPTY_HOWTO (143),
781214571Sdim
782214571Sdim  HOWTO (R_SH_TLS_GD_32,	/* type */
783214571Sdim	 0,			/* rightshift */
784214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
785214571Sdim	 32,			/* bitsize */
786214571Sdim	 FALSE,			/* pc_relative */
787214571Sdim	 0,			/* bitpos */
788214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
789214571Sdim	 bfd_elf_generic_reloc,	/* */
790214571Sdim	 "R_SH_TLS_GD_32",	/* name */
791214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
792214571Sdim	 SH_SRC_MASK32,		/* src_mask */
793214571Sdim	 0xffffffff,		/* dst_mask */
794214571Sdim	 FALSE),		/* pcrel_offset */
795214571Sdim
796214571Sdim  HOWTO (R_SH_TLS_LD_32,	/* type */
797214571Sdim	 0,			/* rightshift */
798214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
799214571Sdim	 32,			/* bitsize */
800214571Sdim	 FALSE,			/* pc_relative */
801214571Sdim	 0,			/* bitpos */
802214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
803214571Sdim	 bfd_elf_generic_reloc,	/* */
804214571Sdim	 "R_SH_TLS_LD_32",	/* name */
805214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
806214571Sdim	 SH_SRC_MASK32,		/* src_mask */
807214571Sdim	 0xffffffff,		/* dst_mask */
808214571Sdim	 FALSE),		/* pcrel_offset */
809214571Sdim
810214571Sdim  HOWTO (R_SH_TLS_LDO_32,	/* type */
811214571Sdim	 0,			/* rightshift */
812214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
813214571Sdim	 32,			/* bitsize */
814214571Sdim	 FALSE,			/* pc_relative */
815214571Sdim	 0,			/* bitpos */
816214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
817214571Sdim	 bfd_elf_generic_reloc,	/* */
818214571Sdim	 "R_SH_TLS_LDO_32",	/* name */
819214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
820214571Sdim	 SH_SRC_MASK32,		/* src_mask */
821214571Sdim	 0xffffffff,		/* dst_mask */
822214571Sdim	 FALSE),		/* pcrel_offset */
823214571Sdim
824214571Sdim  HOWTO (R_SH_TLS_IE_32,	/* type */
825214571Sdim	 0,			/* rightshift */
826214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
827214571Sdim	 32,			/* bitsize */
828214571Sdim	 FALSE,			/* pc_relative */
829214571Sdim	 0,			/* bitpos */
830214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
831214571Sdim	 bfd_elf_generic_reloc,	/* */
832214571Sdim	 "R_SH_TLS_IE_32",	/* name */
833214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
834214571Sdim	 SH_SRC_MASK32,		/* src_mask */
835214571Sdim	 0xffffffff,		/* dst_mask */
836214571Sdim	 FALSE),		/* pcrel_offset */
837214571Sdim
838214571Sdim  HOWTO (R_SH_TLS_LE_32,	/* type */
839214571Sdim	 0,			/* rightshift */
840214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
841214571Sdim	 32,			/* bitsize */
842214571Sdim	 FALSE,			/* pc_relative */
843214571Sdim	 0,			/* bitpos */
844214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
845214571Sdim	 bfd_elf_generic_reloc,	/* */
846214571Sdim	 "R_SH_TLS_LE_32",	/* name */
847214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
848214571Sdim	 SH_SRC_MASK32,		/* src_mask */
849214571Sdim	 0xffffffff,		/* dst_mask */
850214571Sdim	 FALSE),		/* pcrel_offset */
851214571Sdim
852214571Sdim  HOWTO (R_SH_TLS_DTPMOD32,	/* type */
853214571Sdim	 0,			/* rightshift */
854214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
855214571Sdim	 32,			/* bitsize */
856214571Sdim	 FALSE,			/* pc_relative */
857214571Sdim	 0,			/* bitpos */
858214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
859214571Sdim	 bfd_elf_generic_reloc,	/* */
860214571Sdim	 "R_SH_TLS_DTPMOD32",	/* name */
861214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
862214571Sdim	 SH_SRC_MASK32,		/* src_mask */
863214571Sdim	 0xffffffff,		/* dst_mask */
864214571Sdim	 FALSE),		/* pcrel_offset */
865214571Sdim
866214571Sdim  HOWTO (R_SH_TLS_DTPOFF32,	/* type */
867214571Sdim	 0,			/* rightshift */
868214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
869214571Sdim	 32,			/* bitsize */
870214571Sdim	 FALSE,			/* pc_relative */
871214571Sdim	 0,			/* bitpos */
872214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
873214571Sdim	 bfd_elf_generic_reloc,	/* */
874214571Sdim	 "R_SH_TLS_DTPOFF32",	/* name */
875214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
876214571Sdim	 SH_SRC_MASK32,		/* src_mask */
877214571Sdim	 0xffffffff,		/* dst_mask */
878214571Sdim	 FALSE),		/* pcrel_offset */
879214571Sdim
880214571Sdim  HOWTO (R_SH_TLS_TPOFF32,	/* type */
881214571Sdim	 0,			/* rightshift */
882214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
883214571Sdim	 32,			/* bitsize */
884214571Sdim	 FALSE,			/* pc_relative */
885214571Sdim	 0,			/* bitpos */
886214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
887214571Sdim	 bfd_elf_generic_reloc,	/* */
888214571Sdim	 "R_SH_TLS_TPOFF32",	/* name */
889214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
890214571Sdim	 SH_SRC_MASK32,		/* src_mask */
891214571Sdim	 0xffffffff,		/* dst_mask */
892214571Sdim	 FALSE),		/* pcrel_offset */
893214571Sdim
894214571Sdim  EMPTY_HOWTO (152),
895214571Sdim  EMPTY_HOWTO (153),
896214571Sdim  EMPTY_HOWTO (154),
897214571Sdim  EMPTY_HOWTO (155),
898214571Sdim  EMPTY_HOWTO (156),
899214571Sdim  EMPTY_HOWTO (157),
900214571Sdim  EMPTY_HOWTO (158),
901214571Sdim  EMPTY_HOWTO (159),
902214571Sdim
903214571Sdim  HOWTO (R_SH_GOT32,		/* type */
904214571Sdim	 0,			/* rightshift */
905214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
906214571Sdim	 32,			/* bitsize */
907214571Sdim	 FALSE,			/* pc_relative */
908214571Sdim	 0,			/* bitpos */
909214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
910214571Sdim	 bfd_elf_generic_reloc, /* */
911214571Sdim	 "R_SH_GOT32",		/* name */
912214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
913214571Sdim	 SH_SRC_MASK32,		/* src_mask */
914214571Sdim	 0xffffffff,		/* dst_mask */
915214571Sdim	 FALSE),		/* pcrel_offset */
916214571Sdim
917214571Sdim  HOWTO (R_SH_PLT32,		/* type */
918214571Sdim	 0,			/* rightshift */
919214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
920214571Sdim	 32,			/* bitsize */
921214571Sdim	 TRUE,			/* pc_relative */
922214571Sdim	 0,			/* bitpos */
923214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
924214571Sdim	 bfd_elf_generic_reloc, /* */
925214571Sdim	 "R_SH_PLT32",		/* name */
926214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
927214571Sdim	 SH_SRC_MASK32,		/* src_mask */
928214571Sdim	 0xffffffff,		/* dst_mask */
929214571Sdim	 TRUE),			/* pcrel_offset */
930214571Sdim
931214571Sdim  HOWTO (R_SH_COPY,		/* type */
932214571Sdim	 0,			/* rightshift */
933214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
934214571Sdim	 32,			/* bitsize */
935214571Sdim	 FALSE,			/* pc_relative */
936214571Sdim	 0,			/* bitpos */
937214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
938214571Sdim	 bfd_elf_generic_reloc, /* */
939214571Sdim	 "R_SH_COPY",		/* name */
940214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
941214571Sdim	 SH_SRC_MASK32,		/* src_mask */
942214571Sdim	 0xffffffff,		/* dst_mask */
943214571Sdim	 FALSE),		/* pcrel_offset */
944214571Sdim
945214571Sdim  HOWTO (R_SH_GLOB_DAT,		/* type */
946214571Sdim	 0,			/* rightshift */
947214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
948214571Sdim	 32,			/* bitsize */
949214571Sdim	 FALSE,			/* pc_relative */
950214571Sdim	 0,			/* bitpos */
951214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
952214571Sdim	 bfd_elf_generic_reloc, /* */
953214571Sdim	 "R_SH_GLOB_DAT",	/* name */
954214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
955214571Sdim	 SH_SRC_MASK32,		/* src_mask */
956214571Sdim	 0xffffffff,		/* dst_mask */
957214571Sdim	 FALSE),		/* pcrel_offset */
958214571Sdim
959214571Sdim  HOWTO (R_SH_JMP_SLOT,		/* type */
960214571Sdim	 0,			/* rightshift */
961214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
962214571Sdim	 32,			/* bitsize */
963214571Sdim	 FALSE,			/* pc_relative */
964214571Sdim	 0,			/* bitpos */
965214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
966214571Sdim	 bfd_elf_generic_reloc, /* */
967214571Sdim	 "R_SH_JMP_SLOT",	/* name */
968214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
969214571Sdim	 SH_SRC_MASK32,		/* src_mask */
970214571Sdim	 0xffffffff,		/* dst_mask */
971214571Sdim	 FALSE),		/* pcrel_offset */
972214571Sdim
973214571Sdim  HOWTO (R_SH_RELATIVE,		/* type */
974214571Sdim	 0,			/* rightshift */
975214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
976214571Sdim	 32,			/* bitsize */
977214571Sdim	 FALSE,			/* pc_relative */
978214571Sdim	 0,			/* bitpos */
979214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
980214571Sdim	 bfd_elf_generic_reloc, /* */
981214571Sdim	 "R_SH_RELATIVE",	/* name */
982214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
983214571Sdim	 SH_SRC_MASK32,		/* src_mask */
984214571Sdim	 0xffffffff,		/* dst_mask */
985214571Sdim	 FALSE),		/* pcrel_offset */
986214571Sdim
987214571Sdim  HOWTO (R_SH_GOTOFF,		/* type */
988214571Sdim	 0,			/* rightshift */
989214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
990214571Sdim	 32,			/* bitsize */
991214571Sdim	 FALSE,			/* pc_relative */
992214571Sdim	 0,			/* bitpos */
993214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
994214571Sdim	 bfd_elf_generic_reloc, /* */
995214571Sdim	 "R_SH_GOTOFF",		/* name */
996214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
997214571Sdim	 SH_SRC_MASK32,		/* src_mask */
998214571Sdim	 0xffffffff,		/* dst_mask */
999214571Sdim	 FALSE),		/* pcrel_offset */
1000214571Sdim
1001214571Sdim  HOWTO (R_SH_GOTPC,		/* type */
1002214571Sdim	 0,			/* rightshift */
1003214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1004214571Sdim	 32,			/* bitsize */
1005214571Sdim	 TRUE,			/* pc_relative */
1006214571Sdim	 0,			/* bitpos */
1007214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
1008214571Sdim	 bfd_elf_generic_reloc, /* */
1009214571Sdim	 "R_SH_GOTPC",		/* name */
1010214571Sdim	 SH_PARTIAL32,		/* partial_inplace */
1011214571Sdim	 SH_SRC_MASK32,		/* src_mask */
1012214571Sdim	 0xffffffff,		/* dst_mask */
1013214571Sdim	 TRUE),			/* pcrel_offset */
1014214571Sdim
1015214571Sdim  HOWTO (R_SH_GOTPLT32,		/* type */
1016214571Sdim	 0,			/* rightshift */
1017214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1018214571Sdim	 32,			/* bitsize */
1019214571Sdim	 FALSE,			/* pc_relative */
1020214571Sdim	 0,			/* bitpos */
1021214571Sdim	 complain_overflow_bitfield, /* complain_on_overflow */
1022214571Sdim	 bfd_elf_generic_reloc, /* */
1023214571Sdim	 "R_SH_GOTPLT32",	/* name */
1024214571Sdim	 FALSE,			/* partial_inplace */
1025214571Sdim	 /* ??? Why not 0?  */
1026214571Sdim	 SH_SRC_MASK32,		/* src_mask */
1027214571Sdim	 0xffffffff,		/* dst_mask */
1028214571Sdim	 FALSE),		/* pcrel_offset */
1029214571Sdim
1030214571Sdim#ifdef INCLUDE_SHMEDIA
1031214571Sdim  /* Used in MOVI and SHORI (x & 65536).  */
1032214571Sdim  HOWTO (R_SH_GOT_LOW16,	/* type */
1033214571Sdim	 0,			/* rightshift */
1034214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1035214571Sdim	 64,			/* bitsize */
1036214571Sdim	 FALSE,			/* pc_relative */
1037214571Sdim	 10,			/* bitpos */
1038214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1039214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1040214571Sdim	 "R_SH_GOT_LOW16",	/* name */
1041214571Sdim	 FALSE,			/* partial_inplace */
1042214571Sdim	 0,			/* src_mask */
1043214571Sdim	 0x3fffc00,		/* dst_mask */
1044214571Sdim	 FALSE),		/* pcrel_offset */
1045214571Sdim
1046214571Sdim  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
1047214571Sdim  HOWTO (R_SH_GOT_MEDLOW16,	/* type */
1048214571Sdim	 16,			/* rightshift */
1049214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1050214571Sdim	 64,			/* bitsize */
1051214571Sdim	 FALSE,			/* pc_relative */
1052214571Sdim	 10,			/* bitpos */
1053214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1054214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1055214571Sdim	 "R_SH_GOT_MEDLOW16",	/* name */
1056214571Sdim	 FALSE,			/* partial_inplace */
1057214571Sdim	 0,			/* src_mask */
1058214571Sdim	 0x3fffc00,		/* dst_mask */
1059214571Sdim	 FALSE),		/* pcrel_offset */
1060214571Sdim
1061214571Sdim  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
1062214571Sdim  HOWTO (R_SH_GOT_MEDHI16,	/* type */
1063214571Sdim	 32,			/* rightshift */
1064214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1065214571Sdim	 64,			/* bitsize */
1066214571Sdim	 FALSE,			/* pc_relative */
1067214571Sdim	 10,			/* bitpos */
1068214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1069214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1070214571Sdim	 "R_SH_GOT_MEDHI16",	/* name */
1071214571Sdim	 FALSE,			/* partial_inplace */
1072214571Sdim	 0,			/* src_mask */
1073214571Sdim	 0x3fffc00,		/* dst_mask */
1074214571Sdim	 FALSE),		/* pcrel_offset */
1075214571Sdim
1076214571Sdim  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
1077214571Sdim  HOWTO (R_SH_GOT_HI16,		/* type */
1078214571Sdim	 48,			/* rightshift */
1079214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1080214571Sdim	 64,			/* bitsize */
1081214571Sdim	 FALSE,			/* pc_relative */
1082214571Sdim	 10,			/* bitpos */
1083214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1084214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1085214571Sdim	 "R_SH_GOT_HI16",	/* name */
1086214571Sdim	 FALSE,			/* partial_inplace */
1087214571Sdim	 0,			/* src_mask */
1088214571Sdim	 0x3fffc00,		/* dst_mask */
1089214571Sdim	 FALSE),		/* pcrel_offset */
1090214571Sdim
1091214571Sdim  /* Used in MOVI and SHORI (x & 65536).  */
1092214571Sdim  HOWTO (R_SH_GOTPLT_LOW16,	/* type */
1093214571Sdim	 0,			/* rightshift */
1094214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1095214571Sdim	 64,			/* bitsize */
1096214571Sdim	 FALSE,			/* pc_relative */
1097214571Sdim	 10,			/* bitpos */
1098214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1099214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1100214571Sdim	 "R_SH_GOTPLT_LOW16",	/* name */
1101214571Sdim	 FALSE,			/* partial_inplace */
1102214571Sdim	 0,			/* src_mask */
1103214571Sdim	 0x3fffc00,		/* dst_mask */
1104214571Sdim	 FALSE),		/* pcrel_offset */
1105214571Sdim
1106214571Sdim  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
1107214571Sdim  HOWTO (R_SH_GOTPLT_MEDLOW16,	/* type */
1108214571Sdim	 16,			/* rightshift */
1109214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1110214571Sdim	 64,			/* bitsize */
1111214571Sdim	 FALSE,			/* pc_relative */
1112214571Sdim	 10,			/* bitpos */
1113214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1114214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1115214571Sdim	 "R_SH_GOTPLT_MEDLOW16", /* name */
1116214571Sdim	 FALSE,			/* partial_inplace */
1117214571Sdim	 0,			/* src_mask */
1118214571Sdim	 0x3fffc00,		/* dst_mask */
1119214571Sdim	 FALSE),		/* pcrel_offset */
1120214571Sdim
1121214571Sdim  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
1122214571Sdim  HOWTO (R_SH_GOTPLT_MEDHI16,	/* type */
1123214571Sdim	 32,			/* rightshift */
1124214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1125214571Sdim	 64,			/* bitsize */
1126214571Sdim	 FALSE,			/* pc_relative */
1127214571Sdim	 10,			/* bitpos */
1128214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1129214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1130214571Sdim	 "R_SH_GOTPLT_MEDHI16",	/* name */
1131214571Sdim	 FALSE,			/* partial_inplace */
1132214571Sdim	 0,			/* src_mask */
1133214571Sdim	 0x3fffc00,		/* dst_mask */
1134214571Sdim	 FALSE),		/* pcrel_offset */
1135214571Sdim
1136214571Sdim  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
1137214571Sdim  HOWTO (R_SH_GOTPLT_HI16,	/* type */
1138214571Sdim	 48,			/* rightshift */
1139214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1140214571Sdim	 64,			/* bitsize */
1141214571Sdim	 FALSE,			/* pc_relative */
1142214571Sdim	 10,			/* bitpos */
1143214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1144214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1145214571Sdim	 "R_SH_GOTPLT_HI16",	/* name */
1146214571Sdim	 FALSE,			/* partial_inplace */
1147214571Sdim	 0,			/* src_mask */
1148214571Sdim	 0x3fffc00,		/* dst_mask */
1149214571Sdim	 FALSE),		/* pcrel_offset */
1150214571Sdim
1151214571Sdim  /* Used in MOVI and SHORI (x & 65536).  */
1152214571Sdim  HOWTO (R_SH_PLT_LOW16,	/* type */
1153214571Sdim	 0,			/* rightshift */
1154214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1155214571Sdim	 64,			/* bitsize */
1156214571Sdim	 TRUE,			/* pc_relative */
1157214571Sdim	 10,			/* bitpos */
1158214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1159214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1160214571Sdim	 "R_SH_PLT_LOW16",	/* name */
1161214571Sdim	 FALSE,			/* partial_inplace */
1162214571Sdim	 0,			/* src_mask */
1163214571Sdim	 0x3fffc00,		/* dst_mask */
1164214571Sdim	 TRUE),			/* pcrel_offset */
1165214571Sdim
1166214571Sdim  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
1167214571Sdim  HOWTO (R_SH_PLT_MEDLOW16,	/* type */
1168214571Sdim	 16,			/* rightshift */
1169214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1170214571Sdim	 64,			/* bitsize */
1171214571Sdim	 TRUE,			/* pc_relative */
1172214571Sdim	 10,			/* bitpos */
1173214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1174214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1175214571Sdim	 "R_SH_PLT_MEDLOW16",	/* name */
1176214571Sdim	 FALSE,			/* partial_inplace */
1177214571Sdim	 0,			/* src_mask */
1178214571Sdim	 0x3fffc00,		/* dst_mask */
1179214571Sdim	 TRUE),			/* pcrel_offset */
1180214571Sdim
1181214571Sdim  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
1182214571Sdim  HOWTO (R_SH_PLT_MEDHI16,	/* type */
1183214571Sdim	 32,			/* rightshift */
1184214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1185214571Sdim	 64,			/* bitsize */
1186214571Sdim	 TRUE,			/* pc_relative */
1187214571Sdim	 10,			/* bitpos */
1188214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1189214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1190214571Sdim	 "R_SH_PLT_MEDHI16",	/* name */
1191214571Sdim	 FALSE,			/* partial_inplace */
1192214571Sdim	 0,			/* src_mask */
1193214571Sdim	 0x3fffc00,		/* dst_mask */
1194214571Sdim	 TRUE),			/* pcrel_offset */
1195214571Sdim
1196214571Sdim  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
1197214571Sdim  HOWTO (R_SH_PLT_HI16,		/* type */
1198214571Sdim	 48,			/* rightshift */
1199214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1200214571Sdim	 64,			/* bitsize */
1201214571Sdim	 TRUE,			/* pc_relative */
1202214571Sdim	 10,			/* bitpos */
1203214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1204214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1205214571Sdim	 "R_SH_PLT_HI16",	/* name */
1206214571Sdim	 FALSE,			/* partial_inplace */
1207214571Sdim	 0,			/* src_mask */
1208214571Sdim	 0x3fffc00,		/* dst_mask */
1209214571Sdim	 TRUE),			/* pcrel_offset */
1210214571Sdim
1211214571Sdim  /* Used in MOVI and SHORI (x & 65536).  */
1212214571Sdim  HOWTO (R_SH_GOTOFF_LOW16,	/* type */
1213214571Sdim	 0,			/* rightshift */
1214214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1215214571Sdim	 64,			/* bitsize */
1216214571Sdim	 FALSE,			/* pc_relative */
1217214571Sdim	 10,			/* bitpos */
1218214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1219214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1220214571Sdim	 "R_SH_GOTOFF_LOW16",	/* name */
1221214571Sdim	 FALSE,			/* partial_inplace */
1222214571Sdim	 0,			/* src_mask */
1223214571Sdim	 0x3fffc00,		/* dst_mask */
1224214571Sdim	 FALSE),		/* pcrel_offset */
1225214571Sdim
1226214571Sdim  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
1227214571Sdim  HOWTO (R_SH_GOTOFF_MEDLOW16,	/* type */
1228214571Sdim	 16,			/* rightshift */
1229214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1230214571Sdim	 64,			/* bitsize */
1231214571Sdim	 FALSE,			/* pc_relative */
1232214571Sdim	 10,			/* bitpos */
1233214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1234214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1235214571Sdim	 "R_SH_GOTOFF_MEDLOW16", /* name */
1236214571Sdim	 FALSE,			/* partial_inplace */
1237214571Sdim	 0,			/* src_mask */
1238214571Sdim	 0x3fffc00,		/* dst_mask */
1239214571Sdim	 FALSE),		/* pcrel_offset */
1240214571Sdim
1241214571Sdim  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
1242214571Sdim  HOWTO (R_SH_GOTOFF_MEDHI16,	/* type */
1243214571Sdim	 32,			/* rightshift */
1244214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1245214571Sdim	 64,			/* bitsize */
1246214571Sdim	 FALSE,			/* pc_relative */
1247214571Sdim	 10,			/* bitpos */
1248214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1249214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1250214571Sdim	 "R_SH_GOTOFF_MEDHI16",	/* name */
1251214571Sdim	 FALSE,			/* partial_inplace */
1252214571Sdim	 0,			/* src_mask */
1253214571Sdim	 0x3fffc00,		/* dst_mask */
1254214571Sdim	 FALSE),		/* pcrel_offset */
1255214571Sdim
1256214571Sdim  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
1257214571Sdim  HOWTO (R_SH_GOTOFF_HI16,	/* type */
1258214571Sdim	 48,			/* rightshift */
1259214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1260214571Sdim	 64,			/* bitsize */
1261214571Sdim	 FALSE,			/* pc_relative */
1262214571Sdim	 10,			/* bitpos */
1263214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1264214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1265214571Sdim	 "R_SH_GOTOFF_HI16",	/* name */
1266214571Sdim	 FALSE,			/* partial_inplace */
1267214571Sdim	 0,			/* src_mask */
1268214571Sdim	 0x3fffc00,		/* dst_mask */
1269214571Sdim	 FALSE),		/* pcrel_offset */
1270214571Sdim
1271214571Sdim  /* Used in MOVI and SHORI (x & 65536).  */
1272214571Sdim  HOWTO (R_SH_GOTPC_LOW16,	/* type */
1273214571Sdim	 0,			/* rightshift */
1274214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1275214571Sdim	 64,			/* bitsize */
1276214571Sdim	 TRUE,			/* pc_relative */
1277214571Sdim	 10,			/* bitpos */
1278214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1279214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1280214571Sdim	 "R_SH_GOTPC_LOW16",	/* name */
1281214571Sdim	 FALSE,			/* partial_inplace */
1282214571Sdim	 0,			/* src_mask */
1283214571Sdim	 0x3fffc00,		/* dst_mask */
1284214571Sdim	 TRUE),			/* pcrel_offset */
1285214571Sdim
1286214571Sdim  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
1287214571Sdim  HOWTO (R_SH_GOTPC_MEDLOW16,	/* type */
1288214571Sdim	 16,			/* rightshift */
1289214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1290214571Sdim	 64,			/* bitsize */
1291214571Sdim	 TRUE,			/* pc_relative */
1292214571Sdim	 10,			/* bitpos */
1293214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1294214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1295214571Sdim	 "R_SH_GOTPC_MEDLOW16", /* name */
1296214571Sdim	 FALSE,			/* partial_inplace */
1297214571Sdim	 0,			/* src_mask */
1298214571Sdim	 0x3fffc00,		/* dst_mask */
1299214571Sdim	 TRUE),			/* pcrel_offset */
1300214571Sdim
1301214571Sdim  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
1302214571Sdim  HOWTO (R_SH_GOTPC_MEDHI16,	/* type */
1303214571Sdim	 32,			/* rightshift */
1304214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1305214571Sdim	 64,			/* bitsize */
1306214571Sdim	 TRUE,			/* pc_relative */
1307214571Sdim	 10,			/* bitpos */
1308214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1309214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1310214571Sdim	 "R_SH_GOTPC_MEDHI16",	/* name */
1311214571Sdim	 FALSE,			/* partial_inplace */
1312214571Sdim	 0,			/* src_mask */
1313214571Sdim	 0x3fffc00,		/* dst_mask */
1314214571Sdim	 TRUE),			/* pcrel_offset */
1315214571Sdim
1316214571Sdim  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
1317214571Sdim  HOWTO (R_SH_GOTPC_HI16,	/* type */
1318214571Sdim	 48,			/* rightshift */
1319214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1320214571Sdim	 64,			/* bitsize */
1321214571Sdim	 TRUE,			/* pc_relative */
1322214571Sdim	 10,			/* bitpos */
1323214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1324214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1325214571Sdim	 "R_SH_GOTPC_HI16",	/* name */
1326214571Sdim	 FALSE,			/* partial_inplace */
1327214571Sdim	 0,			/* src_mask */
1328214571Sdim	 0x3fffc00,		/* dst_mask */
1329214571Sdim	 TRUE),			/* pcrel_offset */
1330214571Sdim
1331214571Sdim  /* Used in LD.L, FLD.S et al.	 */
1332214571Sdim  HOWTO (R_SH_GOT10BY4,		/* type */
1333214571Sdim	 2,			/* rightshift */
1334214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1335214571Sdim	 12,			/* bitsize */
1336214571Sdim	 FALSE,			/* pc_relative */
1337214571Sdim	 10,			/* bitpos */
1338214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
1339214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1340214571Sdim	 "R_SH_GOT10BY4",	/* name */
1341214571Sdim	 FALSE,			/* partial_inplace */
1342214571Sdim	 0,			/* src_mask */
1343214571Sdim	 0xffc00,		/* dst_mask */
1344214571Sdim	 FALSE),		/* pcrel_offset */
1345214571Sdim
1346214571Sdim  /* Used in LD.L, FLD.S et al.	 */
1347214571Sdim  HOWTO (R_SH_GOTPLT10BY4,	/* type */
1348214571Sdim	 2,			/* rightshift */
1349214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1350214571Sdim	 12,			/* bitsize */
1351214571Sdim	 FALSE,			/* pc_relative */
1352214571Sdim	 10,			/* bitpos */
1353214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
1354214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1355214571Sdim	 "R_SH_GOTPLT10BY4",	/* name */
1356214571Sdim	 FALSE,			/* partial_inplace */
1357214571Sdim	 0,			/* src_mask */
1358214571Sdim	 0xffc00,		/* dst_mask */
1359214571Sdim	 FALSE),		/* pcrel_offset */
1360214571Sdim
1361214571Sdim  /* Used in FLD.D, FST.P et al.  */
1362214571Sdim  HOWTO (R_SH_GOT10BY8,		/* type */
1363214571Sdim	 3,			/* rightshift */
1364214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1365214571Sdim	 13,			/* bitsize */
1366214571Sdim	 FALSE,			/* pc_relative */
1367214571Sdim	 10,			/* bitpos */
1368214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
1369214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1370214571Sdim	 "R_SH_GOT10BY8",	/* name */
1371214571Sdim	 FALSE,			/* partial_inplace */
1372214571Sdim	 0,			/* src_mask */
1373214571Sdim	 0xffc00,		/* dst_mask */
1374214571Sdim	 FALSE),		/* pcrel_offset */
1375214571Sdim
1376214571Sdim  /* Used in FLD.D, FST.P et al.  */
1377214571Sdim  HOWTO (R_SH_GOTPLT10BY8,	/* type */
1378214571Sdim	 3,			/* rightshift */
1379214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1380214571Sdim	 13,			/* bitsize */
1381214571Sdim	 FALSE,			/* pc_relative */
1382214571Sdim	 10,			/* bitpos */
1383214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
1384214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1385214571Sdim	 "R_SH_GOTPLT10BY8",	/* name */
1386214571Sdim	 FALSE,			/* partial_inplace */
1387214571Sdim	 0,			/* src_mask */
1388214571Sdim	 0xffc00,		/* dst_mask */
1389214571Sdim	 FALSE),		/* pcrel_offset */
1390214571Sdim
1391214571Sdim  HOWTO (R_SH_COPY64,		/* type */
1392214571Sdim	 0,			/* rightshift */
1393214571Sdim	 4,			/* size (0 = byte, 1 = short, 2 = long) */
1394214571Sdim	 64,			/* bitsize */
1395214571Sdim	 FALSE,			/* pc_relative */
1396214571Sdim	 0,			/* bitpos */
1397214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1398214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1399214571Sdim	 "R_SH_COPY64",		/* name */
1400214571Sdim	 FALSE,			/* partial_inplace */
1401214571Sdim	 0,			/* src_mask */
1402214571Sdim	 ((bfd_vma) 0) - 1,	/* dst_mask */
1403214571Sdim	 FALSE),		/* pcrel_offset */
1404214571Sdim
1405214571Sdim  HOWTO (R_SH_GLOB_DAT64,	/* type */
1406214571Sdim	 0,			/* rightshift */
1407214571Sdim	 4,			/* size (0 = byte, 1 = short, 2 = long) */
1408214571Sdim	 64,			/* bitsize */
1409214571Sdim	 FALSE,			/* pc_relative */
1410214571Sdim	 0,			/* bitpos */
1411214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1412214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1413214571Sdim	 "R_SH_GLOB_DAT64",	/* name */
1414214571Sdim	 FALSE,			/* partial_inplace */
1415214571Sdim	 0,			/* src_mask */
1416214571Sdim	 ((bfd_vma) 0) - 1,	/* dst_mask */
1417214571Sdim	 FALSE),		/* pcrel_offset */
1418214571Sdim
1419214571Sdim  HOWTO (R_SH_JMP_SLOT64,	/* type */
1420214571Sdim	 0,			/* rightshift */
1421214571Sdim	 4,			/* size (0 = byte, 1 = short, 2 = long) */
1422214571Sdim	 64,			/* bitsize */
1423214571Sdim	 FALSE,			/* pc_relative */
1424214571Sdim	 0,			/* bitpos */
1425214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1426214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1427214571Sdim	 "R_SH_JMP_SLOT64",	/* name */
1428214571Sdim	 FALSE,			/* partial_inplace */
1429214571Sdim	 0,			/* src_mask */
1430214571Sdim	 ((bfd_vma) 0) - 1,	/* dst_mask */
1431214571Sdim	 FALSE),		/* pcrel_offset */
1432214571Sdim
1433214571Sdim  HOWTO (R_SH_RELATIVE64,	/* type */
1434214571Sdim	 0,			/* rightshift */
1435214571Sdim	 4,			/* size (0 = byte, 1 = short, 2 = long) */
1436214571Sdim	 64,			/* bitsize */
1437214571Sdim	 FALSE,			/* pc_relative */
1438214571Sdim	 0,			/* bitpos */
1439214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1440214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1441214571Sdim	 "R_SH_RELATIVE64",	/* name */
1442214571Sdim	 FALSE,			/* partial_inplace */
1443214571Sdim	 0,			/* src_mask */
1444214571Sdim	 ((bfd_vma) 0) - 1,	/* dst_mask */
1445214571Sdim	 FALSE),		/* pcrel_offset */
1446214571Sdim
1447214571Sdim  EMPTY_HOWTO (197),
1448214571Sdim  EMPTY_HOWTO (198),
1449214571Sdim  EMPTY_HOWTO (199),
1450214571Sdim  EMPTY_HOWTO (200),
1451214571Sdim  EMPTY_HOWTO (201),
1452214571Sdim  EMPTY_HOWTO (202),
1453214571Sdim  EMPTY_HOWTO (203),
1454214571Sdim  EMPTY_HOWTO (204),
1455214571Sdim  EMPTY_HOWTO (205),
1456214571Sdim  EMPTY_HOWTO (206),
1457214571Sdim  EMPTY_HOWTO (207),
1458214571Sdim  EMPTY_HOWTO (208),
1459214571Sdim  EMPTY_HOWTO (209),
1460214571Sdim  EMPTY_HOWTO (210),
1461214571Sdim  EMPTY_HOWTO (211),
1462214571Sdim  EMPTY_HOWTO (212),
1463214571Sdim  EMPTY_HOWTO (213),
1464214571Sdim  EMPTY_HOWTO (214),
1465214571Sdim  EMPTY_HOWTO (215),
1466214571Sdim  EMPTY_HOWTO (216),
1467214571Sdim  EMPTY_HOWTO (217),
1468214571Sdim  EMPTY_HOWTO (218),
1469214571Sdim  EMPTY_HOWTO (219),
1470214571Sdim  EMPTY_HOWTO (220),
1471214571Sdim  EMPTY_HOWTO (221),
1472214571Sdim  EMPTY_HOWTO (222),
1473214571Sdim  EMPTY_HOWTO (223),
1474214571Sdim  EMPTY_HOWTO (224),
1475214571Sdim  EMPTY_HOWTO (225),
1476214571Sdim  EMPTY_HOWTO (226),
1477214571Sdim  EMPTY_HOWTO (227),
1478214571Sdim  EMPTY_HOWTO (228),
1479214571Sdim  EMPTY_HOWTO (229),
1480214571Sdim  EMPTY_HOWTO (230),
1481214571Sdim  EMPTY_HOWTO (231),
1482214571Sdim  EMPTY_HOWTO (232),
1483214571Sdim  EMPTY_HOWTO (233),
1484214571Sdim  EMPTY_HOWTO (234),
1485214571Sdim  EMPTY_HOWTO (235),
1486214571Sdim  EMPTY_HOWTO (236),
1487214571Sdim  EMPTY_HOWTO (237),
1488214571Sdim  EMPTY_HOWTO (238),
1489214571Sdim  EMPTY_HOWTO (239),
1490214571Sdim  EMPTY_HOWTO (240),
1491214571Sdim  EMPTY_HOWTO (241),
1492214571Sdim
1493214571Sdim  /* Relocations for SHmedia code.  None of these are partial_inplace or
1494214571Sdim     use the field being relocated (except R_SH_PT_16).  */
1495214571Sdim
1496214571Sdim  /* The assembler will generate this reloc before a block of SHmedia
1497214571Sdim     instructions.  A section should be processed as assuming it contains
1498214571Sdim     data, unless this reloc is seen.  Note that a block of SHcompact
1499214571Sdim     instructions are instead preceded by R_SH_CODE.
1500214571Sdim     This is currently not implemented, but should be used for SHmedia
1501214571Sdim     linker relaxation.  */
1502214571Sdim  HOWTO (R_SH_SHMEDIA_CODE,	/* type */
1503214571Sdim	 0,			/* rightshift */
1504214571Sdim	 1,			/* size (0 = byte, 1 = short, 2 = long) */
1505214571Sdim	 0,			/* bitsize */
1506214571Sdim	 FALSE,			/* pc_relative */
1507214571Sdim	 0,			/* bitpos */
1508214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
1509214571Sdim	 sh_elf_ignore_reloc,	/* special_function */
1510214571Sdim	 "R_SH_SHMEDIA_CODE",	/* name */
1511214571Sdim	 FALSE,			/* partial_inplace */
1512214571Sdim	 0,			/* src_mask */
1513214571Sdim	 0,			/* dst_mask */
1514214571Sdim	 FALSE),		/* pcrel_offset */
1515214571Sdim
1516214571Sdim  /* The assembler will generate this reloc at a PTA or PTB instruction,
1517214571Sdim     and the linker checks the right type of target, or changes a PTA to a
1518214571Sdim     PTB, if the original insn was PT.  */
1519214571Sdim  HOWTO (R_SH_PT_16,		/* type */
1520214571Sdim	 2,			/* rightshift */
1521214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1522214571Sdim	 18,			/* bitsize */
1523214571Sdim	 TRUE,			/* pc_relative */
1524214571Sdim	 10,			/* bitpos */
1525214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
1526214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1527214571Sdim	 "R_SH_PT_16",		/* name */
1528214571Sdim	 FALSE,			/* partial_inplace */
1529214571Sdim	 0,			/* src_mask */
1530214571Sdim	 0x3fffc00,		/* dst_mask */
1531214571Sdim	 TRUE),			/* pcrel_offset */
1532214571Sdim
1533214571Sdim  /* Used in unexpanded MOVI.  */
1534214571Sdim  HOWTO (R_SH_IMMS16,		/* type */
1535214571Sdim	 0,			/* rightshift */
1536214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1537214571Sdim	 16,			/* bitsize */
1538214571Sdim	 FALSE,			/* pc_relative */
1539214571Sdim	 10,			/* bitpos */
1540214571Sdim	 complain_overflow_signed, /* complain_on_overflow */
1541214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1542214571Sdim	 "R_SH_IMMS16",		/* name */
1543214571Sdim	 FALSE,			/* partial_inplace */
1544214571Sdim	 0,			/* src_mask */
1545214571Sdim	 0x3fffc00,		/* dst_mask */
1546214571Sdim	 FALSE),		/* pcrel_offset */
1547214571Sdim
1548214571Sdim  /* Used in SHORI.  */
1549214571Sdim  HOWTO (R_SH_IMMU16,		/* type */
1550214571Sdim	 0,			/* rightshift */
1551214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1552214571Sdim	 16,			/* bitsize */
1553214571Sdim	 FALSE,			/* pc_relative */
1554214571Sdim	 10,			/* bitpos */
1555214571Sdim	 complain_overflow_unsigned, /* complain_on_overflow */
1556214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1557214571Sdim	 "R_SH_IMMU16",		/* name */
1558214571Sdim	 FALSE,			/* partial_inplace */
1559214571Sdim	 0,			/* src_mask */
1560214571Sdim	 0x3fffc00,		/* dst_mask */
1561214571Sdim	 FALSE),		/* pcrel_offset */
1562214571Sdim
1563214571Sdim  /* Used in MOVI and SHORI (x & 65536).  */
1564214571Sdim  HOWTO (R_SH_IMM_LOW16,	/* type */
1565214571Sdim	 0,			/* rightshift */
1566214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1567214571Sdim	 64,			/* bitsize */
1568214571Sdim	 FALSE,			/* pc_relative */
1569214571Sdim	 10,			/* bitpos */
1570214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1571214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1572214571Sdim	 "R_SH_IMM_LOW16",	/* name */
1573214571Sdim	 FALSE,			/* partial_inplace */
1574214571Sdim	 0,			/* src_mask */
1575214571Sdim	 0x3fffc00,		/* dst_mask */
1576214571Sdim	 FALSE),		/* pcrel_offset */
1577214571Sdim
1578214571Sdim  /* Used in MOVI and SHORI ((x - $) & 65536).  */
1579214571Sdim  HOWTO (R_SH_IMM_LOW16_PCREL,	/* type */
1580214571Sdim	 0,			/* rightshift */
1581214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1582214571Sdim	 64,			/* bitsize */
1583214571Sdim	 TRUE,			/* pc_relative */
1584214571Sdim	 10,			/* bitpos */
1585214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1586214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1587214571Sdim	 "R_SH_IMM_LOW16_PCREL", /* name */
1588214571Sdim	 FALSE,			/* partial_inplace */
1589214571Sdim	 0,			/* src_mask */
1590214571Sdim	 0x3fffc00,		/* dst_mask */
1591214571Sdim	 TRUE),			/* pcrel_offset */
1592214571Sdim
1593214571Sdim  /* Used in MOVI and SHORI ((x >> 16) & 65536).  */
1594214571Sdim  HOWTO (R_SH_IMM_MEDLOW16,	/* type */
1595214571Sdim	 16,			/* rightshift */
1596214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1597214571Sdim	 64,			/* bitsize */
1598214571Sdim	 FALSE,			/* pc_relative */
1599214571Sdim	 10,			/* bitpos */
1600214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1601214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1602214571Sdim	 "R_SH_IMM_MEDLOW16",	/* name */
1603214571Sdim	 FALSE,			/* partial_inplace */
1604214571Sdim	 0,			/* src_mask */
1605214571Sdim	 0x3fffc00,		/* dst_mask */
1606214571Sdim	 FALSE),		/* pcrel_offset */
1607214571Sdim
1608214571Sdim  /* Used in MOVI and SHORI (((x - $) >> 16) & 65536).  */
1609214571Sdim  HOWTO (R_SH_IMM_MEDLOW16_PCREL, /* type */
1610214571Sdim	 16,			/* rightshift */
1611214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1612214571Sdim	 64,			/* bitsize */
1613214571Sdim	 TRUE,			/* pc_relative */
1614214571Sdim	 10,			/* bitpos */
1615214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1616214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1617214571Sdim	 "R_SH_IMM_MEDLOW16_PCREL", /* name */
1618214571Sdim	 FALSE,			/* partial_inplace */
1619214571Sdim	 0,			/* src_mask */
1620214571Sdim	 0x3fffc00,		/* dst_mask */
1621214571Sdim	 TRUE),			/* pcrel_offset */
1622214571Sdim
1623214571Sdim  /* Used in MOVI and SHORI ((x >> 32) & 65536).  */
1624214571Sdim  HOWTO (R_SH_IMM_MEDHI16,	/* type */
1625214571Sdim	 32,			/* rightshift */
1626214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1627214571Sdim	 64,			/* bitsize */
1628214571Sdim	 FALSE,			/* pc_relative */
1629214571Sdim	 10,			/* bitpos */
1630214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1631214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1632214571Sdim	 "R_SH_IMM_MEDHI16",	/* name */
1633214571Sdim	 FALSE,			/* partial_inplace */
1634214571Sdim	 0,			/* src_mask */
1635214571Sdim	 0x3fffc00,		/* dst_mask */
1636214571Sdim	 FALSE),		/* pcrel_offset */
1637214571Sdim
1638214571Sdim  /* Used in MOVI and SHORI (((x - $) >> 32) & 65536).  */
1639214571Sdim  HOWTO (R_SH_IMM_MEDHI16_PCREL, /* type */
1640214571Sdim	 32,			/* rightshift */
1641214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1642214571Sdim	 64,			/* bitsize */
1643214571Sdim	 TRUE,			/* pc_relative */
1644214571Sdim	 10,			/* bitpos */
1645214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1646214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1647214571Sdim	 "R_SH_IMM_MEDHI16_PCREL", /* name */
1648214571Sdim	 FALSE,			/* partial_inplace */
1649214571Sdim	 0,			/* src_mask */
1650214571Sdim	 0x3fffc00,		/* dst_mask */
1651214571Sdim	 TRUE),			/* pcrel_offset */
1652214571Sdim
1653214571Sdim  /* Used in MOVI and SHORI ((x >> 48) & 65536).  */
1654214571Sdim  HOWTO (R_SH_IMM_HI16,		/* type */
1655214571Sdim	 48,			/* rightshift */
1656214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1657214571Sdim	 64,			/* bitsize */
1658214571Sdim	 FALSE,			/* pc_relative */
1659214571Sdim	 10,			/* bitpos */
1660214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1661214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1662214571Sdim	 "R_SH_IMM_HI16",	/* name */
1663214571Sdim	 FALSE,			/* partial_inplace */
1664214571Sdim	 0,			/* src_mask */
1665214571Sdim	 0x3fffc00,		/* dst_mask */
1666214571Sdim	 FALSE),		/* pcrel_offset */
1667214571Sdim
1668214571Sdim  /* Used in MOVI and SHORI (((x - $) >> 48) & 65536).  */
1669214571Sdim  HOWTO (R_SH_IMM_HI16_PCREL,	/* type */
1670214571Sdim	 48,			/* rightshift */
1671214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1672214571Sdim	 64,			/* bitsize */
1673214571Sdim	 TRUE,			/* pc_relative */
1674214571Sdim	 10,			/* bitpos */
1675214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1676214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1677214571Sdim	 "R_SH_IMM_HI16_PCREL", /* name */
1678214571Sdim	 FALSE,			/* partial_inplace */
1679214571Sdim	 0,			/* src_mask */
1680214571Sdim	 0x3fffc00,		/* dst_mask */
1681214571Sdim	 TRUE),			/* pcrel_offset */
1682214571Sdim
1683214571Sdim  /* For the .uaquad pseudo.  */
1684214571Sdim  HOWTO (R_SH_64,		/* type */
1685214571Sdim	 0,			/* rightshift */
1686214571Sdim	 4,			/* size (0 = byte, 1 = short, 2 = long) */
1687214571Sdim	 64,			/* bitsize */
1688214571Sdim	 FALSE,			/* pc_relative */
1689214571Sdim	 0,			/* bitpos */
1690214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1691214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1692214571Sdim	 "R_SH_64",		/* name */
1693214571Sdim	 FALSE,			/* partial_inplace */
1694214571Sdim	 0,			/* src_mask */
1695214571Sdim	 ((bfd_vma) 0) - 1,	/* dst_mask */
1696214571Sdim	 FALSE),		/* pcrel_offset */
1697214571Sdim
1698214571Sdim  /* For the .uaquad pseudo, (x - $).  */
1699214571Sdim  HOWTO (R_SH_64_PCREL,		/* type */
1700214571Sdim	 48,			/* rightshift */
1701214571Sdim	 2,			/* size (0 = byte, 1 = short, 2 = long) */
1702214571Sdim	 64,			/* bitsize */
1703214571Sdim	 TRUE,			/* pc_relative */
1704214571Sdim	 10,			/* bitpos */
1705214571Sdim	 complain_overflow_dont, /* complain_on_overflow */
1706214571Sdim	 bfd_elf_generic_reloc,	/* special_function */
1707214571Sdim	 "R_SH_64_PCREL",	/* name */
1708214571Sdim	 FALSE,			/* partial_inplace */
1709214571Sdim	 0,			/* src_mask */
1710214571Sdim	 ((bfd_vma) 0) - 1,	/* dst_mask */
1711214571Sdim	 TRUE),			/* pcrel_offset */
1712214571Sdim
1713214571Sdim#endif
1714214571Sdim#undef SH_PARTIAL32
1715214571Sdim#undef SH_SRC_MASK32
1716214571Sdim#undef SH_ELF_RELOC
1717