arc-reloc.def 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. ARC_RELOC_HOWTO(ARC_NONE, 0, \
  2. 2, \
  3. 32, \
  4. replace_none, \
  5. bitfield, \
  6. 0)
  7. ARC_RELOC_HOWTO(ARC_8, 1, \
  8. 0, \
  9. 8, \
  10. replace_bits8, \
  11. bitfield, \
  12. ( S + A ))
  13. ARC_RELOC_HOWTO(ARC_16, 2, \
  14. 1, \
  15. 16, \
  16. replace_bits16, \
  17. bitfield, \
  18. ( S + A ))
  19. ARC_RELOC_HOWTO(ARC_24, 3, \
  20. 2, \
  21. 24, \
  22. replace_bits24, \
  23. bitfield, \
  24. ( S + A ))
  25. ARC_RELOC_HOWTO(ARC_32, 4, \
  26. 2, \
  27. 32, \
  28. replace_word32, \
  29. bitfield, \
  30. ( S + A ))
  31. ARC_RELOC_HOWTO(ARC_N8, 8, \
  32. 0, \
  33. 8, \
  34. replace_bits8, \
  35. bitfield, \
  36. ( S - A ))
  37. ARC_RELOC_HOWTO(ARC_N16, 9, \
  38. 1, \
  39. 16, \
  40. replace_bits16, \
  41. bitfield, \
  42. ( S - A ))
  43. ARC_RELOC_HOWTO(ARC_N24, 10, \
  44. 2, \
  45. 24, \
  46. replace_bits24, \
  47. bitfield, \
  48. ( S - A ))
  49. ARC_RELOC_HOWTO(ARC_N32, 11, \
  50. 2, \
  51. 32, \
  52. replace_word32, \
  53. bitfield, \
  54. ( S - A ))
  55. ARC_RELOC_HOWTO(ARC_SDA, 12, \
  56. 2, \
  57. 9, \
  58. replace_disp9, \
  59. bitfield, \
  60. ( S + A ))
  61. ARC_RELOC_HOWTO(ARC_SECTOFF, 13, \
  62. 2, \
  63. 32, \
  64. replace_word32, \
  65. bitfield, \
  66. ( ( S - SECTSTART ) + A ))
  67. ARC_RELOC_HOWTO(ARC_S21H_PCREL, 14, \
  68. 2, \
  69. 20, \
  70. replace_disp21h, \
  71. signed, \
  72. ( ( ( S + A ) - P ) >> 1 ))
  73. ARC_RELOC_HOWTO(ARC_S21W_PCREL, 15, \
  74. 2, \
  75. 19, \
  76. replace_disp21w, \
  77. signed, \
  78. ( ( ( S + A ) - P ) >> 2 ))
  79. ARC_RELOC_HOWTO(ARC_S25H_PCREL, 16, \
  80. 2, \
  81. 24, \
  82. replace_disp25h, \
  83. signed, \
  84. ( ( ( S + A ) - P ) >> 1 ))
  85. ARC_RELOC_HOWTO(ARC_S25W_PCREL, 17, \
  86. 2, \
  87. 23, \
  88. replace_disp25w, \
  89. signed, \
  90. ( ( ( S + A ) - P ) >> 2 ))
  91. ARC_RELOC_HOWTO(ARC_SDA32, 18, \
  92. 2, \
  93. 32, \
  94. replace_word32, \
  95. signed, \
  96. ( ( S + A ) - _SDA_BASE_ ))
  97. ARC_RELOC_HOWTO(ARC_SDA_LDST, 19, \
  98. 2, \
  99. 9, \
  100. replace_disp9ls, \
  101. signed, \
  102. ( ( S + A ) - _SDA_BASE_ ))
  103. ARC_RELOC_HOWTO(ARC_SDA_LDST1, 20, \
  104. 2, \
  105. 9, \
  106. replace_disp9ls, \
  107. signed, \
  108. ( ( ( S + A ) - _SDA_BASE_ ) >> 1 ))
  109. ARC_RELOC_HOWTO(ARC_SDA_LDST2, 21, \
  110. 2, \
  111. 9, \
  112. replace_disp9ls, \
  113. signed, \
  114. ( ( ( S + A ) - _SDA_BASE_ ) >> 2 ))
  115. ARC_RELOC_HOWTO(ARC_SDA16_LD, 22, \
  116. 1, \
  117. 9, \
  118. replace_disp9s, \
  119. signed, \
  120. ( ( S + A ) - _SDA_BASE_ ))
  121. ARC_RELOC_HOWTO(ARC_SDA16_LD1, 23, \
  122. 1, \
  123. 9, \
  124. replace_disp9s, \
  125. signed, \
  126. ( ( ( S + A ) - _SDA_BASE_ ) >> 1 ))
  127. ARC_RELOC_HOWTO(ARC_SDA16_LD2, 24, \
  128. 1, \
  129. 9, \
  130. replace_disp9s, \
  131. signed, \
  132. ( ( ( S + A ) - _SDA_BASE_ ) >> 2 ))
  133. ARC_RELOC_HOWTO(ARC_S13_PCREL, 25, \
  134. 1, \
  135. 11, \
  136. replace_disp13s, \
  137. signed, \
  138. ( ( ( S + A ) - P ) >> 2 ))
  139. ARC_RELOC_HOWTO(ARC_W, 26, \
  140. 2, \
  141. 32, \
  142. replace_word32, \
  143. bitfield, \
  144. ( ( S + A ) & ( ~3 ) ))
  145. ARC_RELOC_HOWTO(ARC_32_ME, 27, \
  146. 2, \
  147. 32, \
  148. replace_limm, \
  149. signed, \
  150. ( S + A ))
  151. ARC_RELOC_HOWTO(ARC_32_ME_S, 105, \
  152. 2, \
  153. 32, \
  154. replace_limms, \
  155. signed, \
  156. ( S + A ))
  157. ARC_RELOC_HOWTO(ARC_N32_ME, 28, \
  158. 2, \
  159. 32, \
  160. replace_word32, \
  161. bitfield, \
  162. ( S - A ))
  163. ARC_RELOC_HOWTO(ARC_SECTOFF_ME, 29, \
  164. 2, \
  165. 32, \
  166. replace_word32, \
  167. bitfield, \
  168. ( ( S - SECTSTART ) + A ))
  169. ARC_RELOC_HOWTO(ARC_SDA32_ME, 30, \
  170. 2, \
  171. 32, \
  172. replace_limm, \
  173. signed, \
  174. ( ( S + A ) - _SDA_BASE_ ))
  175. ARC_RELOC_HOWTO(ARC_W_ME, 31, \
  176. 2, \
  177. 32, \
  178. replace_word32, \
  179. bitfield, \
  180. ( S + A ))
  181. ARC_RELOC_HOWTO(AC_SECTOFF_U8, 35, \
  182. 2, \
  183. 9, \
  184. replace_disp9ls, \
  185. bitfield, \
  186. ( ( S + A ) - SECTSTART ))
  187. ARC_RELOC_HOWTO(AC_SECTOFF_U8_1, 36, \
  188. 2, \
  189. 9, \
  190. replace_disp9ls, \
  191. bitfield, \
  192. ( ( ( S + A ) - SECTSTART ) >> 1 ))
  193. ARC_RELOC_HOWTO(AC_SECTOFF_U8_2, 37, \
  194. 2, \
  195. 9, \
  196. replace_disp9ls, \
  197. bitfield, \
  198. ( ( ( S + A ) - SECTSTART ) >> 2 ))
  199. ARC_RELOC_HOWTO(AC_SECTFOFF_S9, 38, \
  200. 2, \
  201. 9, \
  202. replace_disp9ls, \
  203. bitfield, \
  204. ( ( S + A ) - SECTSTART ))
  205. ARC_RELOC_HOWTO(AC_SECTFOFF_S9_1, 39, \
  206. 2, \
  207. 9, \
  208. replace_disp9ls, \
  209. bitfield, \
  210. ( ( ( S + A ) - SECTSTART ) >> 1 ))
  211. ARC_RELOC_HOWTO(AC_SECTFOFF_S9_2, 40, \
  212. 2, \
  213. 9, \
  214. replace_disp9ls, \
  215. bitfield, \
  216. ( ( ( S + A ) - SECTSTART ) >> 2 ))
  217. ARC_RELOC_HOWTO(ARC_SECTOFF_ME_1, 41, \
  218. 2, \
  219. 32, \
  220. replace_word32, \
  221. bitfield, \
  222. ( ( ( S - SECTSTART ) + A ) >> 1 ))
  223. ARC_RELOC_HOWTO(ARC_SECTOFF_ME_2, 42, \
  224. 2, \
  225. 32, \
  226. replace_word32, \
  227. bitfield, \
  228. ( ( ( S - SECTSTART ) + A ) >> 2 ))
  229. ARC_RELOC_HOWTO(ARC_SECTOFF_1, 43, \
  230. 2, \
  231. 32, \
  232. replace_word32, \
  233. bitfield, \
  234. ( ( ( S - SECTSTART ) + A ) >> 1 ))
  235. ARC_RELOC_HOWTO(ARC_SECTOFF_2, 44, \
  236. 2, \
  237. 32, \
  238. replace_word32, \
  239. bitfield, \
  240. ( ( ( S - SECTSTART ) + A ) >> 2 ))
  241. ARC_RELOC_HOWTO(ARC_SDA16_ST2, 48, \
  242. 1, \
  243. 9, \
  244. replace_disp9s1, \
  245. signed, \
  246. ( ( ( S + A ) - _SDA_BASE_ ) >> 2 ))
  247. ARC_RELOC_HOWTO(ARC_PC32, 50, \
  248. 2, \
  249. 32, \
  250. replace_word32, \
  251. signed, \
  252. ( ( S + A ) - P ))
  253. ARC_RELOC_HOWTO(ARC_GOT32, 59, \
  254. 2, \
  255. 32, \
  256. replace_word32, \
  257. dont, \
  258. ( G + A ))
  259. ARC_RELOC_HOWTO(ARC_GOTPC32, 51, \
  260. 2, \
  261. 32, \
  262. replace_word32, \
  263. signed, \
  264. ( ( ( GOT + G ) + A ) - P ))
  265. ARC_RELOC_HOWTO(ARC_PLT32, 52, \
  266. 2, \
  267. 32, \
  268. replace_word32, \
  269. signed, \
  270. ( ( L + A ) - P ))
  271. ARC_RELOC_HOWTO(ARC_COPY, 53, \
  272. 2, \
  273. 0, \
  274. replace_none, \
  275. signed, \
  276. none)
  277. ARC_RELOC_HOWTO(ARC_GLOB_DAT, 54, \
  278. 2, \
  279. 32, \
  280. replace_word32, \
  281. signed, \
  282. S)
  283. ARC_RELOC_HOWTO(ARC_JMP_SLOT, 55, \
  284. 2, \
  285. 32, \
  286. replace_word32, \
  287. signed, \
  288. S)
  289. ARC_RELOC_HOWTO(ARC_RELATIVE, 56, \
  290. 2, \
  291. 32, \
  292. replace_word32, \
  293. signed, \
  294. ( B + A ))
  295. ARC_RELOC_HOWTO(ARC_GOTOFF, 57, \
  296. 2, \
  297. 32, \
  298. replace_word32, \
  299. signed, \
  300. ( ( S + A ) - GOT ))
  301. ARC_RELOC_HOWTO(ARC_GOTPC, 58, \
  302. 2, \
  303. 32, \
  304. replace_word32, \
  305. signed, \
  306. ( ( GOT + A ) - P ))
  307. ARC_RELOC_HOWTO(ARC_S21W_PCREL_PLT, 60, \
  308. 2, \
  309. 19, \
  310. replace_disp21w, \
  311. signed, \
  312. ( ( ( L + A ) - P ) >> 2 ))
  313. ARC_RELOC_HOWTO(ARC_S25H_PCREL_PLT, 61, \
  314. 2, \
  315. 24, \
  316. replace_disp25h, \
  317. signed, \
  318. ( ( ( L + A ) - P ) >> 1 ))
  319. ARC_RELOC_HOWTO(ARC_TLS_DTPMOD, 66, \
  320. 2, \
  321. 32, \
  322. replace_word32, \
  323. dont, \
  324. 0)
  325. ARC_RELOC_HOWTO(ARC_TLS_DTPOFF, 67, \
  326. 2, \
  327. 32, \
  328. replace_word32, \
  329. dont, \
  330. 0)
  331. ARC_RELOC_HOWTO(ARC_TLS_TPOFF, 68, \
  332. 2, \
  333. 32, \
  334. replace_word32, \
  335. dont, \
  336. 0)
  337. ARC_RELOC_HOWTO(ARC_TLS_GD_GOT, 69, \
  338. 2, \
  339. 32, \
  340. replace_word32, \
  341. dont, \
  342. 0)
  343. ARC_RELOC_HOWTO(ARC_TLS_GD_LD, 70, \
  344. 2, \
  345. 32, \
  346. replace_word32, \
  347. dont, \
  348. 0)
  349. ARC_RELOC_HOWTO(ARC_TLS_GD_CALL, 71, \
  350. 2, \
  351. 32, \
  352. replace_word32, \
  353. dont, \
  354. 0)
  355. ARC_RELOC_HOWTO(ARC_TLS_IE_GOT, 72, \
  356. 2, \
  357. 32, \
  358. replace_word32, \
  359. dont, \
  360. 0)
  361. ARC_RELOC_HOWTO(ARC_TLS_DTPOFF_S9, 73, \
  362. 2, \
  363. 32, \
  364. replace_word32, \
  365. dont, \
  366. 0)
  367. ARC_RELOC_HOWTO(ARC_TLS_LE_S9, 74, \
  368. 2, \
  369. 32, \
  370. replace_word32, \
  371. dont, \
  372. 0)
  373. ARC_RELOC_HOWTO(ARC_TLS_LE_32, 75, \
  374. 2, \
  375. 32, \
  376. replace_word32, \
  377. dont, \
  378. 0)
  379. ARC_RELOC_HOWTO(ARC_S25W_PCREL_PLT, 76, \
  380. 2, \
  381. 23, \
  382. replace_disp25w, \
  383. signed, \
  384. ( ( ( L + A ) - P ) >> 2 ))
  385. ARC_RELOC_HOWTO(ARC_S21H_PCREL_PLT, 77, \
  386. 2, \
  387. 20, \
  388. replace_disp21h, \
  389. signed, \
  390. ( ( ( L + A ) - P ) >> 1 ))