elf32-sh-relocs.h 33 KB

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