Line data Source code
1 : use std::marker::PhantomData;
2 :
3 : use lief_ffi as ffi;
4 :
5 : use crate::Error;
6 : use crate::generic;
7 : use crate::elf::Section;
8 :
9 : use crate::common::into_optional;
10 : use crate::common::FromFFI;
11 : use crate::{declare_iterator, to_result};
12 :
13 : use super::Symbol;
14 :
15 : /// Structure which reprents an ELF relocation
16 : pub struct Relocation<'a> {
17 : ptr: cxx::UniquePtr<ffi::ELF_Relocation>,
18 : _owner: PhantomData<&'a ffi::ELF_Binary>
19 : }
20 :
21 :
22 : #[allow(non_camel_case_types)]
23 16200 : #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
24 : /// The different types of the relocation
25 : pub enum Type {
26 : X86_64_NONE,
27 : X86_64_64,
28 : X86_64_PC32,
29 : X86_64_GOT32,
30 : X86_64_PLT32,
31 : X86_64_COPY,
32 : X86_64_GLOB_DAT,
33 : X86_64_JUMP_SLOT,
34 : X86_64_RELATIVE,
35 : X86_64_GOTPCREL,
36 : X86_64_32,
37 : X86_64_32S,
38 : X86_64_16,
39 : X86_64_PC16,
40 : X86_64_8,
41 : X86_64_PC8,
42 : X86_64_DTPMOD64,
43 : X86_64_DTPOFF64,
44 : X86_64_TPOFF64,
45 : X86_64_TLSGD,
46 : X86_64_TLSLD,
47 : X86_64_DTPOFF32,
48 : X86_64_GOTTPOFF,
49 : X86_64_TPOFF32,
50 : X86_64_PC64,
51 : X86_64_GOTOFF64,
52 : X86_64_GOTPC32,
53 : X86_64_GOT64,
54 : X86_64_GOTPCREL64,
55 : X86_64_GOTPC64,
56 : X86_64_GOTPLT64,
57 : X86_64_PLTOFF64,
58 : X86_64_SIZE32,
59 : X86_64_SIZE64,
60 : X86_64_GOTPC32_TLSDESC,
61 : X86_64_TLSDESC_CALL,
62 : X86_64_TLSDESC,
63 : X86_64_IRELATIVE,
64 : X86_64_RELATIVE64,
65 : X86_64_PC32_BND,
66 : X86_64_PLT32_BND,
67 : X86_64_GOTPCRELX,
68 : X86_64_REX_GOTPCRELX,
69 : AARCH64_NONE,
70 : AARCH64_ABS64,
71 : AARCH64_ABS32,
72 : AARCH64_ABS16,
73 : AARCH64_PREL64,
74 : AARCH64_PREL32,
75 : AARCH64_PREL16,
76 : AARCH64_MOVW_UABS_G0,
77 : AARCH64_MOVW_UABS_G0_NC,
78 : AARCH64_MOVW_UABS_G1,
79 : AARCH64_MOVW_UABS_G1_NC,
80 : AARCH64_MOVW_UABS_G2,
81 : AARCH64_MOVW_UABS_G2_NC,
82 : AARCH64_MOVW_UABS_G3,
83 : AARCH64_MOVW_SABS_G0,
84 : AARCH64_MOVW_SABS_G1,
85 : AARCH64_MOVW_SABS_G2,
86 : AARCH64_LD_PREL_LO19,
87 : AARCH64_ADR_PREL_LO21,
88 : AARCH64_ADR_PREL_PG_HI21,
89 : AARCH64_ADR_PREL_PG_HI21_NC,
90 : AARCH64_ADD_ABS_LO12_NC,
91 : AARCH64_LDST8_ABS_LO12_NC,
92 : AARCH64_TSTBR14,
93 : AARCH64_CONDBR19,
94 : AARCH64_JUMP26,
95 : AARCH64_CALL26,
96 : AARCH64_LDST16_ABS_LO12_NC,
97 : AARCH64_LDST32_ABS_LO12_NC,
98 : AARCH64_LDST64_ABS_LO12_NC,
99 : AARCH64_MOVW_PREL_G0,
100 : AARCH64_MOVW_PREL_G0_NC,
101 : AARCH64_MOVW_PREL_G1,
102 : AARCH64_MOVW_PREL_G1_NC,
103 : AARCH64_MOVW_PREL_G2,
104 : AARCH64_MOVW_PREL_G2_NC,
105 : AARCH64_MOVW_PREL_G3,
106 : AARCH64_LDST128_ABS_LO12_NC,
107 : AARCH64_MOVW_GOTOFF_G0,
108 : AARCH64_MOVW_GOTOFF_G0_NC,
109 : AARCH64_MOVW_GOTOFF_G1,
110 : AARCH64_MOVW_GOTOFF_G1_NC,
111 : AARCH64_MOVW_GOTOFF_G2,
112 : AARCH64_MOVW_GOTOFF_G2_NC,
113 : AARCH64_MOVW_GOTOFF_G3,
114 : AARCH64_GOTREL64,
115 : AARCH64_GOTREL32,
116 : AARCH64_GOT_LD_PREL19,
117 : AARCH64_LD64_GOTOFF_LO15,
118 : AARCH64_ADR_GOT_PAGE,
119 : AARCH64_LD64_GOT_LO12_NC,
120 : AARCH64_LD64_GOTPAGE_LO15,
121 : AARCH64_TLSGD_ADR_PREL21,
122 : AARCH64_TLSGD_ADR_PAGE21,
123 : AARCH64_TLSGD_ADD_LO12_NC,
124 : AARCH64_TLSGD_MOVW_G1,
125 : AARCH64_TLSGD_MOVW_G0_NC,
126 : AARCH64_TLSLD_ADR_PREL21,
127 : AARCH64_TLSLD_ADR_PAGE21,
128 : AARCH64_TLSLD_ADD_LO12_NC,
129 : AARCH64_TLSLD_MOVW_G1,
130 : AARCH64_TLSLD_MOVW_G0_NC,
131 : AARCH64_TLSLD_LD_PREL19,
132 : AARCH64_TLSLD_MOVW_DTPREL_G2,
133 : AARCH64_TLSLD_MOVW_DTPREL_G1,
134 : AARCH64_TLSLD_MOVW_DTPREL_G1_NC,
135 : AARCH64_TLSLD_MOVW_DTPREL_G0,
136 : AARCH64_TLSLD_MOVW_DTPREL_G0_NC,
137 : AARCH64_TLSLD_ADD_DTPREL_HI12,
138 : AARCH64_TLSLD_ADD_DTPREL_LO12,
139 : AARCH64_TLSLD_ADD_DTPREL_LO12_NC,
140 : AARCH64_TLSLD_LDST8_DTPREL_LO12,
141 : AARCH64_TLSLD_LDST8_DTPREL_LO12_NC,
142 : AARCH64_TLSLD_LDST16_DTPREL_LO12,
143 : AARCH64_TLSLD_LDST16_DTPREL_LO12_NC,
144 : AARCH64_TLSLD_LDST32_DTPREL_LO12,
145 : AARCH64_TLSLD_LDST32_DTPREL_LO12_NC,
146 : AARCH64_TLSLD_LDST64_DTPREL_LO12,
147 : AARCH64_TLSLD_LDST64_DTPREL_LO12_NC,
148 : AARCH64_TLSIE_MOVW_GOTTPREL_G1,
149 : AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
150 : AARCH64_TLSIE_ADR_GOTTPREL_PAGE21,
151 : AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC,
152 : AARCH64_TLSIE_LD_GOTTPREL_PREL19,
153 : AARCH64_TLSLE_MOVW_TPREL_G2,
154 : AARCH64_TLSLE_MOVW_TPREL_G1,
155 : AARCH64_TLSLE_MOVW_TPREL_G1_NC,
156 : AARCH64_TLSLE_MOVW_TPREL_G0,
157 : AARCH64_TLSLE_MOVW_TPREL_G0_NC,
158 : AARCH64_TLSLE_ADD_TPREL_HI12,
159 : AARCH64_TLSLE_ADD_TPREL_LO12,
160 : AARCH64_TLSLE_ADD_TPREL_LO12_NC,
161 : AARCH64_TLSLE_LDST8_TPREL_LO12,
162 : AARCH64_TLSLE_LDST8_TPREL_LO12_NC,
163 : AARCH64_TLSLE_LDST16_TPREL_LO12,
164 : AARCH64_TLSLE_LDST16_TPREL_LO12_NC,
165 : AARCH64_TLSLE_LDST32_TPREL_LO12,
166 : AARCH64_TLSLE_LDST32_TPREL_LO12_NC,
167 : AARCH64_TLSLE_LDST64_TPREL_LO12,
168 : AARCH64_TLSLE_LDST64_TPREL_LO12_NC,
169 : AARCH64_TLSDESC_LD_PREL19,
170 : AARCH64_TLSDESC_ADR_PREL21,
171 : AARCH64_TLSDESC_ADR_PAGE21,
172 : AARCH64_TLSDESC_LD64_LO12_NC,
173 : AARCH64_TLSDESC_ADD_LO12_NC,
174 : AARCH64_TLSDESC_OFF_G1,
175 : AARCH64_TLSDESC_OFF_G0_NC,
176 : AARCH64_TLSDESC_LDR,
177 : AARCH64_TLSDESC_ADD,
178 : AARCH64_TLSDESC_CALL,
179 : AARCH64_TLSLE_LDST128_TPREL_LO12,
180 : AARCH64_TLSLE_LDST128_TPREL_LO12_NC,
181 : AARCH64_TLSLD_LDST128_DTPREL_LO12,
182 : AARCH64_TLSLD_LDST128_DTPREL_LO12_NC,
183 : AARCH64_COPY,
184 : AARCH64_GLOB_DAT,
185 : AARCH64_JUMP_SLOT,
186 : AARCH64_RELATIVE,
187 : AARCH64_TLS_DTPREL64,
188 : AARCH64_TLS_DTPMOD64,
189 : AARCH64_TLS_TPREL64,
190 : AARCH64_TLSDESC,
191 : AARCH64_IRELATIVE,
192 : ARM_NONE,
193 : ARM_PC24,
194 : ARM_ABS32,
195 : ARM_REL32,
196 : ARM_LDR_PC_G0,
197 : ARM_ABS16,
198 : ARM_ABS12,
199 : ARM_THM_ABS5,
200 : ARM_ABS8,
201 : ARM_SBREL32,
202 : ARM_THM_CALL,
203 : ARM_THM_PC8,
204 : ARM_BREL_ADJ,
205 : ARM_TLS_DESC,
206 : ARM_THM_SWI8,
207 : ARM_XPC25,
208 : ARM_THM_XPC22,
209 : ARM_TLS_DTPMOD32,
210 : ARM_TLS_DTPOFF32,
211 : ARM_TLS_TPOFF32,
212 : ARM_COPY,
213 : ARM_GLOB_DAT,
214 : ARM_JUMP_SLOT,
215 : ARM_RELATIVE,
216 : ARM_GOTOFF32,
217 : ARM_BASE_PREL,
218 : ARM_GOT_BREL,
219 : ARM_PLT32,
220 : ARM_CALL,
221 : ARM_JUMP24,
222 : ARM_THM_JUMP24,
223 : ARM_BASE_ABS,
224 : ARM_ALU_PCREL_7_0,
225 : ARM_ALU_PCREL_15_8,
226 : ARM_ALU_PCREL_23_15,
227 : ARM_LDR_SBREL_11_0_NC,
228 : ARM_ALU_SBREL_19_12_NC,
229 : ARM_ALU_SBREL_27_20_CK,
230 : ARM_TARGET1,
231 : ARM_SBREL31,
232 : ARM_V4BX,
233 : ARM_TARGET2,
234 : ARM_PREL31,
235 : ARM_MOVW_ABS_NC,
236 : ARM_MOVT_ABS,
237 : ARM_MOVW_PREL_NC,
238 : ARM_MOVT_PREL,
239 : ARM_THM_MOVW_ABS_NC,
240 : ARM_THM_MOVT_ABS,
241 : ARM_THM_MOVW_PREL_NC,
242 : ARM_THM_MOVT_PREL,
243 : ARM_THM_JUMP19,
244 : ARM_THM_JUMP6,
245 : ARM_THM_ALU_PREL_11_0,
246 : ARM_THM_PC12,
247 : ARM_ABS32_NOI,
248 : ARM_REL32_NOI,
249 : ARM_ALU_PC_G0_NC,
250 : ARM_ALU_PC_G0,
251 : ARM_ALU_PC_G1_NC,
252 : ARM_ALU_PC_G1,
253 : ARM_ALU_PC_G2,
254 : ARM_LDR_PC_G1,
255 : ARM_LDR_PC_G2,
256 : ARM_LDRS_PC_G0,
257 : ARM_LDRS_PC_G1,
258 : ARM_LDRS_PC_G2,
259 : ARM_LDC_PC_G0,
260 : ARM_LDC_PC_G1,
261 : ARM_LDC_PC_G2,
262 : ARM_ALU_SB_G0_NC,
263 : ARM_ALU_SB_G0,
264 : ARM_ALU_SB_G1_NC,
265 : ARM_ALU_SB_G1,
266 : ARM_ALU_SB_G2,
267 : ARM_LDR_SB_G0,
268 : ARM_LDR_SB_G1,
269 : ARM_LDR_SB_G2,
270 : ARM_LDRS_SB_G0,
271 : ARM_LDRS_SB_G1,
272 : ARM_LDRS_SB_G2,
273 : ARM_LDC_SB_G0,
274 : ARM_LDC_SB_G1,
275 : ARM_LDC_SB_G2,
276 : ARM_MOVW_BREL_NC,
277 : ARM_MOVT_BREL,
278 : ARM_MOVW_BREL,
279 : ARM_THM_MOVW_BREL_NC,
280 : ARM_THM_MOVT_BREL,
281 : ARM_THM_MOVW_BREL,
282 : ARM_TLS_GOTDESC,
283 : ARM_TLS_CALL,
284 : ARM_TLS_DESCSEQ,
285 : ARM_THM_TLS_CALL,
286 : ARM_PLT32_ABS,
287 : ARM_GOT_ABS,
288 : ARM_GOT_PREL,
289 : ARM_GOT_BREL12,
290 : ARM_GOTOFF12,
291 : ARM_GOTRELAX,
292 : ARM_GNU_VTENTRY,
293 : ARM_GNU_VTINHERIT,
294 : ARM_THM_JUMP11,
295 : ARM_THM_JUMP8,
296 : ARM_TLS_GD32,
297 : ARM_TLS_LDM32,
298 : ARM_TLS_LDO32,
299 : ARM_TLS_IE32,
300 : ARM_TLS_LE32,
301 : ARM_TLS_LDO12,
302 : ARM_TLS_LE12,
303 : ARM_TLS_IE12GP,
304 : ARM_PRIVATE_0,
305 : ARM_PRIVATE_1,
306 : ARM_PRIVATE_2,
307 : ARM_PRIVATE_3,
308 : ARM_PRIVATE_4,
309 : ARM_PRIVATE_5,
310 : ARM_PRIVATE_6,
311 : ARM_PRIVATE_7,
312 : ARM_PRIVATE_8,
313 : ARM_PRIVATE_9,
314 : ARM_PRIVATE_10,
315 : ARM_PRIVATE_11,
316 : ARM_PRIVATE_12,
317 : ARM_PRIVATE_13,
318 : ARM_PRIVATE_14,
319 : ARM_PRIVATE_15,
320 : ARM_ME_TOO,
321 : ARM_THM_TLS_DESCSEQ16,
322 : ARM_THM_TLS_DESCSEQ32,
323 : ARM_IRELATIVE,
324 : ARM_RXPC25,
325 : ARM_RSBREL32,
326 : ARM_THM_RPC22,
327 : ARM_RREL32,
328 : ARM_RPC24,
329 : ARM_RBASE,
330 : HEX_NONE,
331 : HEX_B22_PCREL,
332 : HEX_B15_PCREL,
333 : HEX_B7_PCREL,
334 : HEX_LO16,
335 : HEX_HI16,
336 : HEX_32,
337 : HEX_16,
338 : HEX_8,
339 : HEX_GPREL16_0,
340 : HEX_GPREL16_1,
341 : HEX_GPREL16_2,
342 : HEX_GPREL16_3,
343 : HEX_HL16,
344 : HEX_B13_PCREL,
345 : HEX_B9_PCREL,
346 : HEX_B32_PCREL_X,
347 : HEX_32_6_X,
348 : HEX_B22_PCREL_X,
349 : HEX_B15_PCREL_X,
350 : HEX_B13_PCREL_X,
351 : HEX_B9_PCREL_X,
352 : HEX_B7_PCREL_X,
353 : HEX_16_X,
354 : HEX_12_X,
355 : HEX_11_X,
356 : HEX_10_X,
357 : HEX_9_X,
358 : HEX_8_X,
359 : HEX_7_X,
360 : HEX_6_X,
361 : HEX_32_PCREL,
362 : HEX_COPY,
363 : HEX_GLOB_DAT,
364 : HEX_JMP_SLOT,
365 : HEX_RELATIVE,
366 : HEX_PLT_B22_PCREL,
367 : HEX_GOTREL_LO16,
368 : HEX_GOTREL_HI16,
369 : HEX_GOTREL_32,
370 : HEX_GOT_LO16,
371 : HEX_GOT_HI16,
372 : HEX_GOT_32,
373 : HEX_GOT_16,
374 : HEX_DTPMOD_32,
375 : HEX_DTPREL_LO16,
376 : HEX_DTPREL_HI16,
377 : HEX_DTPREL_32,
378 : HEX_DTPREL_16,
379 : HEX_GD_PLT_B22_PCREL,
380 : HEX_GD_GOT_LO16,
381 : HEX_GD_GOT_HI16,
382 : HEX_GD_GOT_32,
383 : HEX_GD_GOT_16,
384 : HEX_IE_LO16,
385 : HEX_IE_HI16,
386 : HEX_IE_32,
387 : HEX_IE_GOT_LO16,
388 : HEX_IE_GOT_HI16,
389 : HEX_IE_GOT_32,
390 : HEX_IE_GOT_16,
391 : HEX_TPREL_LO16,
392 : HEX_TPREL_HI16,
393 : HEX_TPREL_32,
394 : HEX_TPREL_16,
395 : HEX_6_PCREL_X,
396 : HEX_GOTREL_32_6_X,
397 : HEX_GOTREL_16_X,
398 : HEX_GOTREL_11_X,
399 : HEX_GOT_32_6_X,
400 : HEX_GOT_16_X,
401 : HEX_GOT_11_X,
402 : HEX_DTPREL_32_6_X,
403 : HEX_DTPREL_16_X,
404 : HEX_DTPREL_11_X,
405 : HEX_GD_GOT_32_6_X,
406 : HEX_GD_GOT_16_X,
407 : HEX_GD_GOT_11_X,
408 : HEX_IE_32_6_X,
409 : HEX_IE_16_X,
410 : HEX_IE_GOT_32_6_X,
411 : HEX_IE_GOT_16_X,
412 : HEX_IE_GOT_11_X,
413 : HEX_TPREL_32_6_X,
414 : HEX_TPREL_16_X,
415 : HEX_TPREL_11_X,
416 : HEX_LD_PLT_B22_PCREL,
417 : HEX_LD_GOT_LO16,
418 : HEX_LD_GOT_HI16,
419 : HEX_LD_GOT_32,
420 : HEX_LD_GOT_16,
421 : HEX_LD_GOT_32_6_X,
422 : HEX_LD_GOT_16_X,
423 : HEX_LD_GOT_11_X,
424 : X86_NONE,
425 : X86_32,
426 : X86_PC32,
427 : X86_GOT32,
428 : X86_PLT32,
429 : X86_COPY,
430 : X86_GLOB_DAT,
431 : X86_JUMP_SLOT,
432 : X86_RELATIVE,
433 : X86_GOTOFF,
434 : X86_GOTPC,
435 : X86_32PLT,
436 : X86_TLS_TPOFF,
437 : X86_TLS_IE,
438 : X86_TLS_GOTIE,
439 : X86_TLS_LE,
440 : X86_TLS_GD,
441 : X86_TLS_LDM,
442 : X86_16,
443 : X86_PC16,
444 : X86_8,
445 : X86_PC8,
446 : X86_TLS_GD_32,
447 : X86_TLS_GD_PUSH,
448 : X86_TLS_GD_CALL,
449 : X86_TLS_GD_POP,
450 : X86_TLS_LDM_32,
451 : X86_TLS_LDM_PUSH,
452 : X86_TLS_LDM_CALL,
453 : X86_TLS_LDM_POP,
454 : X86_TLS_LDO_32,
455 : X86_TLS_IE_32,
456 : X86_TLS_LE_32,
457 : X86_TLS_DTPMOD32,
458 : X86_TLS_DTPOFF32,
459 : X86_TLS_TPOFF32,
460 : X86_TLS_GOTDESC,
461 : X86_TLS_DESC_CALL,
462 : X86_TLS_DESC,
463 : X86_IRELATIVE,
464 : LARCH_NONE,
465 : LARCH_32,
466 : LARCH_64,
467 : LARCH_RELATIVE,
468 : LARCH_COPY,
469 : LARCH_JUMP_SLOT,
470 : LARCH_TLS_DTPMOD32,
471 : LARCH_TLS_DTPMOD64,
472 : LARCH_TLS_DTPREL32,
473 : LARCH_TLS_DTPREL64,
474 : LARCH_TLS_TPREL32,
475 : LARCH_TLS_TPREL64,
476 : LARCH_IRELATIVE,
477 : LARCH_MARK_LA,
478 : LARCH_MARK_PCREL,
479 : LARCH_SOP_PUSH_PCREL,
480 : LARCH_SOP_PUSH_ABSOLUTE,
481 : LARCH_SOP_PUSH_DUP,
482 : LARCH_SOP_PUSH_GPREL,
483 : LARCH_SOP_PUSH_TLS_TPREL,
484 : LARCH_SOP_PUSH_TLS_GOT,
485 : LARCH_SOP_PUSH_TLS_GD,
486 : LARCH_SOP_PUSH_PLT_PCREL,
487 : LARCH_SOP_ASSERT,
488 : LARCH_SOP_NOT,
489 : LARCH_SOP_SUB,
490 : LARCH_SOP_SL,
491 : LARCH_SOP_SR,
492 : LARCH_SOP_ADD,
493 : LARCH_SOP_AND,
494 : LARCH_SOP_IF_ELSE,
495 : LARCH_SOP_POP_32_S_10_5,
496 : LARCH_SOP_POP_32_U_10_12,
497 : LARCH_SOP_POP_32_S_10_12,
498 : LARCH_SOP_POP_32_S_10_16,
499 : LARCH_SOP_POP_32_S_10_16_S2,
500 : LARCH_SOP_POP_32_S_5_20,
501 : LARCH_SOP_POP_32_S_0_5_10_16_S2,
502 : LARCH_SOP_POP_32_S_0_10_10_16_S2,
503 : LARCH_SOP_POP_32_U,
504 : LARCH_ADD8,
505 : LARCH_ADD16,
506 : LARCH_ADD24,
507 : LARCH_ADD32,
508 : LARCH_ADD64,
509 : LARCH_SUB8,
510 : LARCH_SUB16,
511 : LARCH_SUB24,
512 : LARCH_SUB32,
513 : LARCH_SUB64,
514 : LARCH_GNU_VTINHERIT,
515 : LARCH_GNU_VTENTRY,
516 : LARCH_B16,
517 : LARCH_B21,
518 : LARCH_B26,
519 : LARCH_ABS_HI20,
520 : LARCH_ABS_LO12,
521 : LARCH_ABS64_LO20,
522 : LARCH_ABS64_HI12,
523 : LARCH_PCALA_HI20,
524 : LARCH_PCALA_LO12,
525 : LARCH_PCALA64_LO20,
526 : LARCH_PCALA64_HI12,
527 : LARCH_GOT_PC_HI20,
528 : LARCH_GOT_PC_LO12,
529 : LARCH_GOT64_PC_LO20,
530 : LARCH_GOT64_PC_HI12,
531 : LARCH_GOT_HI20,
532 : LARCH_GOT_LO12,
533 : LARCH_GOT64_LO20,
534 : LARCH_GOT64_HI12,
535 : LARCH_TLS_LE_HI20,
536 : LARCH_TLS_LE_LO12,
537 : LARCH_TLS_LE64_LO20,
538 : LARCH_TLS_LE64_HI12,
539 : LARCH_TLS_IE_PC_HI20,
540 : LARCH_TLS_IE_PC_LO12,
541 : LARCH_TLS_IE64_PC_LO20,
542 : LARCH_TLS_IE64_PC_HI12,
543 : LARCH_TLS_IE_HI20,
544 : LARCH_TLS_IE_LO12,
545 : LARCH_TLS_IE64_LO20,
546 : LARCH_TLS_IE64_HI12,
547 : LARCH_TLS_LD_PC_HI20,
548 : LARCH_TLS_LD_HI20,
549 : LARCH_TLS_GD_PC_HI20,
550 : LARCH_TLS_GD_HI20,
551 : LARCH_32_PCREL,
552 : LARCH_RELAX,
553 : LARCH_ALIGN,
554 : LARCH_PCREL20_S2,
555 : LARCH_ADD6,
556 : LARCH_SUB6,
557 : LARCH_ADD_ULEB128,
558 : LARCH_SUB_ULEB128,
559 : LARCH_64_PCREL,
560 : LARCH_CALL36,
561 : LARCH_TLS_DESC32,
562 : LARCH_TLS_DESC64,
563 : LARCH_TLS_DESC_PC_HI20,
564 : LARCH_TLS_DESC_PC_LO12,
565 : LARCH_TLS_DESC64_PC_LO20,
566 : LARCH_TLS_DESC64_PC_HI12,
567 : LARCH_TLS_DESC_HI20,
568 : LARCH_TLS_DESC_LO12,
569 : LARCH_TLS_DESC64_LO20,
570 : LARCH_TLS_DESC64_HI12,
571 : LARCH_TLS_DESC_LD,
572 : LARCH_TLS_DESC_CALL,
573 : LARCH_TLS_LE_HI20_R,
574 : LARCH_TLS_LE_ADD_R,
575 : LARCH_TLS_LE_LO12_R,
576 : LARCH_TLS_LD_PCREL20_S2,
577 : LARCH_TLS_GD_PCREL20_S2,
578 : LARCH_TLS_DESC_PCREL20_S2,
579 : MIPS_NONE,
580 : MIPS_16,
581 : MIPS_32,
582 : MIPS_REL32,
583 : MIPS_26,
584 : MIPS_HI16,
585 : MIPS_LO16,
586 : MIPS_GPREL16,
587 : MIPS_LITERAL,
588 : MIPS_GOT16,
589 : MIPS_PC16,
590 : MIPS_CALL16,
591 : MIPS_GPREL32,
592 : MIPS_UNUSED1,
593 : MIPS_UNUSED2,
594 : MIPS_UNUSED3,
595 : MIPS_SHIFT5,
596 : MIPS_SHIFT6,
597 : MIPS_64,
598 : MIPS_GOT_DISP,
599 : MIPS_GOT_PAGE,
600 : MIPS_GOT_OFST,
601 : MIPS_GOT_HI16,
602 : MIPS_GOT_LO16,
603 : MIPS_SUB,
604 : MIPS_INSERT_A,
605 : MIPS_INSERT_B,
606 : MIPS_DELETE,
607 : MIPS_HIGHER,
608 : MIPS_HIGHEST,
609 : MIPS_CALL_HI16,
610 : MIPS_CALL_LO16,
611 : MIPS_SCN_DISP,
612 : MIPS_REL16,
613 : MIPS_ADD_IMMEDIATE,
614 : MIPS_PJUMP,
615 : MIPS_RELGOT,
616 : MIPS_JALR,
617 : MIPS_TLS_DTPMOD32,
618 : MIPS_TLS_DTPREL32,
619 : MIPS_TLS_DTPMOD64,
620 : MIPS_TLS_DTPREL64,
621 : MIPS_TLS_GD,
622 : MIPS_TLS_LDM,
623 : MIPS_TLS_DTPREL_HI16,
624 : MIPS_TLS_DTPREL_LO16,
625 : MIPS_TLS_GOTTPREL,
626 : MIPS_TLS_TPREL32,
627 : MIPS_TLS_TPREL64,
628 : MIPS_TLS_TPREL_HI16,
629 : MIPS_TLS_TPREL_LO16,
630 : MIPS_GLOB_DAT,
631 : MIPS_PC21_S2,
632 : MIPS_PC26_S2,
633 : MIPS_PC18_S3,
634 : MIPS_PC19_S2,
635 : MIPS_PCHI16,
636 : MIPS_PCLO16,
637 : MIPS16_26,
638 : MIPS16_GPREL,
639 : MIPS16_GOT16,
640 : MIPS16_CALL16,
641 : MIPS16_HI16,
642 : MIPS16_LO16,
643 : MIPS16_TLS_GD,
644 : MIPS16_TLS_LDM,
645 : MIPS16_TLS_DTPREL_HI16,
646 : MIPS16_TLS_DTPREL_LO16,
647 : MIPS16_TLS_GOTTPREL,
648 : MIPS16_TLS_TPREL_HI16,
649 : MIPS16_TLS_TPREL_LO16,
650 : MIPS_COPY,
651 : MIPS_JUMP_SLOT,
652 : MICROMIPS_26_S1,
653 : MICROMIPS_HI16,
654 : MICROMIPS_LO16,
655 : MICROMIPS_GPREL16,
656 : MICROMIPS_LITERAL,
657 : MICROMIPS_GOT16,
658 : MICROMIPS_PC7_S1,
659 : MICROMIPS_PC10_S1,
660 : MICROMIPS_PC16_S1,
661 : MICROMIPS_CALL16,
662 : MICROMIPS_GOT_DISP,
663 : MICROMIPS_GOT_PAGE,
664 : MICROMIPS_GOT_OFST,
665 : MICROMIPS_GOT_HI16,
666 : MICROMIPS_GOT_LO16,
667 : MICROMIPS_SUB,
668 : MICROMIPS_HIGHER,
669 : MICROMIPS_HIGHEST,
670 : MICROMIPS_CALL_HI16,
671 : MICROMIPS_CALL_LO16,
672 : MICROMIPS_SCN_DISP,
673 : MICROMIPS_JALR,
674 : MICROMIPS_HI0_LO16,
675 : MICROMIPS_TLS_GD,
676 : MICROMIPS_TLS_LDM,
677 : MICROMIPS_TLS_DTPREL_HI16,
678 : MICROMIPS_TLS_DTPREL_LO16,
679 : MICROMIPS_TLS_GOTTPREL,
680 : MICROMIPS_TLS_TPREL_HI16,
681 : MICROMIPS_TLS_TPREL_LO16,
682 : MICROMIPS_GPREL7_S2,
683 : MICROMIPS_PC23_S2,
684 : MICROMIPS_PC21_S2,
685 : MICROMIPS_PC26_S2,
686 : MICROMIPS_PC18_S3,
687 : MICROMIPS_PC19_S2,
688 : MIPS_NUM,
689 : MIPS_PC32,
690 : MIPS_EH,
691 : PPC_NONE,
692 : PPC_ADDR32,
693 : PPC_ADDR24,
694 : PPC_ADDR16,
695 : PPC_ADDR16_LO,
696 : PPC_ADDR16_HI,
697 : PPC_ADDR16_HA,
698 : PPC_ADDR14,
699 : PPC_ADDR14_BRTAKEN,
700 : PPC_ADDR14_BRNTAKEN,
701 : PPC_REL24,
702 : PPC_REL14,
703 : PPC_REL14_BRTAKEN,
704 : PPC_REL14_BRNTAKEN,
705 : PPC_GOT16,
706 : PPC_GOT16_LO,
707 : PPC_GOT16_HI,
708 : PPC_GOT16_HA,
709 : PPC_PLTREL24,
710 : PPC_JMP_SLOT,
711 : PPC_RELATIVE,
712 : PPC_LOCAL24PC,
713 : PPC_REL32,
714 : PPC_TLS,
715 : PPC_DTPMOD32,
716 : PPC_TPREL16,
717 : PPC_TPREL16_LO,
718 : PPC_TPREL16_HI,
719 : PPC_TPREL16_HA,
720 : PPC_TPREL32,
721 : PPC_DTPREL16,
722 : PPC_DTPREL16_LO,
723 : PPC_DTPREL16_HI,
724 : PPC_DTPREL16_HA,
725 : PPC_DTPREL32,
726 : PPC_GOT_TLSGD16,
727 : PPC_GOT_TLSGD16_LO,
728 : PPC_GOT_TLSGD16_HI,
729 : PPC_GOT_TLSGD16_HA,
730 : PPC_GOT_TLSLD16,
731 : PPC_GOT_TLSLD16_LO,
732 : PPC_GOT_TLSLD16_HI,
733 : PPC_GOT_TLSLD16_HA,
734 : PPC_GOT_TPREL16,
735 : PPC_GOT_TPREL16_LO,
736 : PPC_GOT_TPREL16_HI,
737 : PPC_GOT_TPREL16_HA,
738 : PPC_GOT_DTPREL16,
739 : PPC_GOT_DTPREL16_LO,
740 : PPC_GOT_DTPREL16_HI,
741 : PPC_GOT_DTPREL16_HA,
742 : PPC_TLSGD,
743 : PPC_TLSLD,
744 : PPC_REL16,
745 : PPC_REL16_LO,
746 : PPC_REL16_HI,
747 : PPC_REL16_HA,
748 : PPC64_NONE,
749 : PPC64_ADDR32,
750 : PPC64_ADDR24,
751 : PPC64_ADDR16,
752 : PPC64_ADDR16_LO,
753 : PPC64_ADDR16_HI,
754 : PPC64_ADDR16_HA,
755 : PPC64_ADDR14,
756 : PPC64_ADDR14_BRTAKEN,
757 : PPC64_ADDR14_BRNTAKEN,
758 : PPC64_REL24,
759 : PPC64_REL14,
760 : PPC64_REL14_BRTAKEN,
761 : PPC64_REL14_BRNTAKEN,
762 : PPC64_GOT16,
763 : PPC64_GOT16_LO,
764 : PPC64_GOT16_HI,
765 : PPC64_GOT16_HA,
766 : PPC64_JMP_SLOT,
767 : PPC64_RELATIVE,
768 : PPC64_REL32,
769 : PPC64_ADDR64,
770 : PPC64_ADDR16_HIGHER,
771 : PPC64_ADDR16_HIGHERA,
772 : PPC64_ADDR16_HIGHEST,
773 : PPC64_ADDR16_HIGHESTA,
774 : PPC64_REL64,
775 : PPC64_TOC16,
776 : PPC64_TOC16_LO,
777 : PPC64_TOC16_HI,
778 : PPC64_TOC16_HA,
779 : PPC64_TOC,
780 : PPC64_ADDR16_DS,
781 : PPC64_ADDR16_LO_DS,
782 : PPC64_GOT16_DS,
783 : PPC64_GOT16_LO_DS,
784 : PPC64_TOC16_DS,
785 : PPC64_TOC16_LO_DS,
786 : PPC64_TLS,
787 : PPC64_DTPMOD64,
788 : PPC64_TPREL16,
789 : PPC64_TPREL16_LO,
790 : PPC64_TPREL16_HI,
791 : PPC64_TPREL16_HA,
792 : PPC64_TPREL64,
793 : PPC64_DTPREL16,
794 : PPC64_DTPREL16_LO,
795 : PPC64_DTPREL16_HI,
796 : PPC64_DTPREL16_HA,
797 : PPC64_DTPREL64,
798 : PPC64_GOT_TLSGD16,
799 : PPC64_GOT_TLSGD16_LO,
800 : PPC64_GOT_TLSGD16_HI,
801 : PPC64_GOT_TLSGD16_HA,
802 : PPC64_GOT_TLSLD16,
803 : PPC64_GOT_TLSLD16_LO,
804 : PPC64_GOT_TLSLD16_HI,
805 : PPC64_GOT_TLSLD16_HA,
806 : PPC64_GOT_TPREL16_DS,
807 : PPC64_GOT_TPREL16_LO_DS,
808 : PPC64_GOT_TPREL16_HI,
809 : PPC64_GOT_TPREL16_HA,
810 : PPC64_GOT_DTPREL16_DS,
811 : PPC64_GOT_DTPREL16_LO_DS,
812 : PPC64_GOT_DTPREL16_HI,
813 : PPC64_GOT_DTPREL16_HA,
814 : PPC64_TPREL16_DS,
815 : PPC64_TPREL16_LO_DS,
816 : PPC64_TPREL16_HIGHER,
817 : PPC64_TPREL16_HIGHERA,
818 : PPC64_TPREL16_HIGHEST,
819 : PPC64_TPREL16_HIGHESTA,
820 : PPC64_DTPREL16_DS,
821 : PPC64_DTPREL16_LO_DS,
822 : PPC64_DTPREL16_HIGHER,
823 : PPC64_DTPREL16_HIGHERA,
824 : PPC64_DTPREL16_HIGHEST,
825 : PPC64_DTPREL16_HIGHESTA,
826 : PPC64_TLSGD,
827 : PPC64_TLSLD,
828 : PPC64_REL16,
829 : PPC64_REL16_LO,
830 : PPC64_REL16_HI,
831 : PPC64_REL16_HA,
832 : SPARC_NONE,
833 : SPARC_8,
834 : SPARC_16,
835 : SPARC_32,
836 : SPARC_DISP8,
837 : SPARC_DISP16,
838 : SPARC_DISP32,
839 : SPARC_WDISP30,
840 : SPARC_WDISP22,
841 : SPARC_HI22,
842 : SPARC_22,
843 : SPARC_13,
844 : SPARC_LO10,
845 : SPARC_GOT10,
846 : SPARC_GOT13,
847 : SPARC_GOT22,
848 : SPARC_PC10,
849 : SPARC_PC22,
850 : SPARC_WPLT30,
851 : SPARC_COPY,
852 : SPARC_GLOB_DAT,
853 : SPARC_JMP_SLOT,
854 : SPARC_RELATIVE,
855 : SPARC_UA32,
856 : SPARC_PLT32,
857 : SPARC_HIPLT22,
858 : SPARC_LOPLT10,
859 : SPARC_PCPLT32,
860 : SPARC_PCPLT22,
861 : SPARC_PCPLT10,
862 : SPARC_10,
863 : SPARC_11,
864 : SPARC_64,
865 : SPARC_OLO10,
866 : SPARC_HH22,
867 : SPARC_HM10,
868 : SPARC_LM22,
869 : SPARC_PC_HH22,
870 : SPARC_PC_HM10,
871 : SPARC_PC_LM22,
872 : SPARC_WDISP16,
873 : SPARC_WDISP19,
874 : SPARC_7,
875 : SPARC_5,
876 : SPARC_6,
877 : SPARC_DISP64,
878 : SPARC_PLT64,
879 : SPARC_HIX22,
880 : SPARC_LOX10,
881 : SPARC_H44,
882 : SPARC_M44,
883 : SPARC_L44,
884 : SPARC_REGISTER,
885 : SPARC_UA64,
886 : SPARC_UA16,
887 : SPARC_TLS_GD_HI22,
888 : SPARC_TLS_GD_LO10,
889 : SPARC_TLS_GD_ADD,
890 : SPARC_TLS_GD_CALL,
891 : SPARC_TLS_LDM_HI22,
892 : SPARC_TLS_LDM_LO10,
893 : SPARC_TLS_LDM_ADD,
894 : SPARC_TLS_LDM_CALL,
895 : SPARC_TLS_LDO_HIX22,
896 : SPARC_TLS_LDO_LOX10,
897 : SPARC_TLS_LDO_ADD,
898 : SPARC_TLS_IE_HI22,
899 : SPARC_TLS_IE_LO10,
900 : SPARC_TLS_IE_LD,
901 : SPARC_TLS_IE_LDX,
902 : SPARC_TLS_IE_ADD,
903 : SPARC_TLS_LE_HIX22,
904 : SPARC_TLS_LE_LOX10,
905 : SPARC_TLS_DTPMOD32,
906 : SPARC_TLS_DTPMOD64,
907 : SPARC_TLS_DTPOFF32,
908 : SPARC_TLS_DTPOFF64,
909 : SPARC_TLS_TPOFF32,
910 : SPARC_TLS_TPOFF64,
911 : SPARC_GOTDATA_HIX22,
912 : SPARC_GOTDATA_LOX10,
913 : SPARC_GOTDATA_OP_HIX22,
914 : SPARC_GOTDATA_OP_LOX10,
915 : SPARC_GOTDATA_OP,
916 : SYSZ_NONE,
917 : SYSZ_8,
918 : SYSZ_12,
919 : SYSZ_16,
920 : SYSZ_32,
921 : SYSZ_PC32,
922 : SYSZ_GOT12,
923 : SYSZ_GOT32,
924 : SYSZ_PLT32,
925 : SYSZ_COPY,
926 : SYSZ_GLOB_DAT,
927 : SYSZ_JMP_SLOT,
928 : SYSZ_RELATIVE,
929 : SYSZ_GOTOFF,
930 : SYSZ_GOTPC,
931 : SYSZ_GOT16,
932 : SYSZ_PC16,
933 : SYSZ_PC16DBL,
934 : SYSZ_PLT16DBL,
935 : SYSZ_PC32DBL,
936 : SYSZ_PLT32DBL,
937 : SYSZ_GOTPCDBL,
938 : SYSZ_64,
939 : SYSZ_PC64,
940 : SYSZ_GOT64,
941 : SYSZ_PLT64,
942 : SYSZ_GOTENT,
943 : SYSZ_GOTOFF16,
944 : SYSZ_GOTOFF64,
945 : SYSZ_GOTPLT12,
946 : SYSZ_GOTPLT16,
947 : SYSZ_GOTPLT32,
948 : SYSZ_GOTPLT64,
949 : SYSZ_GOTPLTENT,
950 : SYSZ_PLTOFF16,
951 : SYSZ_PLTOFF32,
952 : SYSZ_PLTOFF64,
953 : SYSZ_TLS_LOAD,
954 : SYSZ_TLS_GDCALL,
955 : SYSZ_TLS_LDCALL,
956 : SYSZ_TLS_GD32,
957 : SYSZ_TLS_GD64,
958 : SYSZ_TLS_GOTIE12,
959 : SYSZ_TLS_GOTIE32,
960 : SYSZ_TLS_GOTIE64,
961 : SYSZ_TLS_LDM32,
962 : SYSZ_TLS_LDM64,
963 : SYSZ_TLS_IE32,
964 : SYSZ_TLS_IE64,
965 : SYSZ_TLS_IEENT,
966 : SYSZ_TLS_LE32,
967 : SYSZ_TLS_LE64,
968 : SYSZ_TLS_LDO32,
969 : SYSZ_TLS_LDO64,
970 : SYSZ_TLS_DTPMOD,
971 : SYSZ_TLS_DTPOFF,
972 : SYSZ_TLS_TPOFF,
973 : SYSZ_20,
974 : SYSZ_GOT20,
975 : SYSZ_GOTPLT20,
976 : SYSZ_TLS_GOTIE20,
977 : SYSZ_IRELATIVE,
978 : RISCV_NONE,
979 : RISCV_32,
980 : RISCV_64,
981 : RISCV_RELATIVE,
982 : RISCV_COPY,
983 : RISCV_JUMP_SLOT,
984 : RISCV_TLS_DTPMOD32,
985 : RISCV_TLS_DTPMOD64,
986 : RISCV_TLS_DTPREL32,
987 : RISCV_TLS_DTPREL64,
988 : RISCV_TLS_TPREL32,
989 : RISCV_TLS_TPREL64,
990 : RISCV_TLSDESC,
991 : RISCV_BRANCH,
992 : RISCV_JAL,
993 : RISCV_CALL,
994 : RISCV_CALL_PLT,
995 : RISCV_GOT_HI20,
996 : RISCV_TLS_GOT_HI20,
997 : RISCV_TLS_GD_HI20,
998 : RISCV_PCREL_HI20,
999 : RISCV_PCREL_LO12_I,
1000 : RISCV_PCREL_LO12_S,
1001 : RISCV_HI20,
1002 : RISCV_LO12_I,
1003 : RISCV_LO12_S,
1004 : RISCV_TPREL_HI20,
1005 : RISCV_TPREL_LO12_I,
1006 : RISCV_TPREL_LO12_S,
1007 : RISCV_TPREL_ADD,
1008 : RISCV_ADD8,
1009 : RISCV_ADD16,
1010 : RISCV_ADD32,
1011 : RISCV_ADD64,
1012 : RISCV_SUB8,
1013 : RISCV_SUB16,
1014 : RISCV_SUB32,
1015 : RISCV_SUB64,
1016 : RISCV_GOT32_PCREL,
1017 : RISCV_ALIGN,
1018 : RISCV_RVC_BRANCH,
1019 : RISCV_RVC_JUMP,
1020 : RISCV_RVC_LUI,
1021 : RISCV_RELAX,
1022 : RISCV_SUB6,
1023 : RISCV_SET6,
1024 : RISCV_SET8,
1025 : RISCV_SET16,
1026 : RISCV_SET32,
1027 : RISCV_32_PCREL,
1028 : RISCV_IRELATIVE,
1029 : RISCV_PLT32,
1030 : RISCV_SET_ULEB128,
1031 : RISCV_SUB_ULEB128,
1032 : RISCV_TLSDESC_HI20,
1033 : RISCV_TLSDESC_LOAD_LO12,
1034 : RISCV_TLSDESC_ADD_LO12,
1035 : RISCV_TLSDESC_CALL,
1036 : BPF_NONE,
1037 : BPF_64_64,
1038 : BPF_64_ABS64,
1039 : BPF_64_ABS32,
1040 : BPF_64_NODYLD32,
1041 : BPF_64_32,
1042 : UNKNOWN(u32),
1043 : }
1044 :
1045 : impl From<u32> for Type {
1046 16200 : fn from(value: u32) -> Self {
1047 16200 : match value {
1048 0 : 0x08000000 => Type::X86_64_NONE,
1049 0 : 0x08000001 => Type::X86_64_64,
1050 0 : 0x08000002 => Type::X86_64_PC32,
1051 0 : 0x08000003 => Type::X86_64_GOT32,
1052 0 : 0x08000004 => Type::X86_64_PLT32,
1053 180 : 0x08000005 => Type::X86_64_COPY,
1054 240 : 0x08000006 => Type::X86_64_GLOB_DAT,
1055 4360 : 0x08000007 => Type::X86_64_JUMP_SLOT,
1056 2880 : 0x08000008 => Type::X86_64_RELATIVE,
1057 0 : 0x08000009 => Type::X86_64_GOTPCREL,
1058 0 : 0x0800000a => Type::X86_64_32,
1059 0 : 0x0800000b => Type::X86_64_32S,
1060 0 : 0x0800000c => Type::X86_64_16,
1061 0 : 0x0800000d => Type::X86_64_PC16,
1062 0 : 0x0800000e => Type::X86_64_8,
1063 0 : 0x0800000f => Type::X86_64_PC8,
1064 0 : 0x08000010 => Type::X86_64_DTPMOD64,
1065 0 : 0x08000011 => Type::X86_64_DTPOFF64,
1066 0 : 0x08000012 => Type::X86_64_TPOFF64,
1067 0 : 0x08000013 => Type::X86_64_TLSGD,
1068 0 : 0x08000014 => Type::X86_64_TLSLD,
1069 0 : 0x08000015 => Type::X86_64_DTPOFF32,
1070 0 : 0x08000016 => Type::X86_64_GOTTPOFF,
1071 0 : 0x08000017 => Type::X86_64_TPOFF32,
1072 0 : 0x08000018 => Type::X86_64_PC64,
1073 0 : 0x08000019 => Type::X86_64_GOTOFF64,
1074 0 : 0x0800001a => Type::X86_64_GOTPC32,
1075 0 : 0x0800001b => Type::X86_64_GOT64,
1076 0 : 0x0800001c => Type::X86_64_GOTPCREL64,
1077 0 : 0x0800001d => Type::X86_64_GOTPC64,
1078 0 : 0x0800001e => Type::X86_64_GOTPLT64,
1079 0 : 0x0800001f => Type::X86_64_PLTOFF64,
1080 0 : 0x08000020 => Type::X86_64_SIZE32,
1081 0 : 0x08000021 => Type::X86_64_SIZE64,
1082 0 : 0x08000022 => Type::X86_64_GOTPC32_TLSDESC,
1083 0 : 0x08000023 => Type::X86_64_TLSDESC_CALL,
1084 0 : 0x08000024 => Type::X86_64_TLSDESC,
1085 0 : 0x08000025 => Type::X86_64_IRELATIVE,
1086 0 : 0x08000026 => Type::X86_64_RELATIVE64,
1087 0 : 0x08000027 => Type::X86_64_PC32_BND,
1088 0 : 0x08000028 => Type::X86_64_PLT32_BND,
1089 0 : 0x08000029 => Type::X86_64_GOTPCRELX,
1090 0 : 0x0800002a => Type::X86_64_REX_GOTPCRELX,
1091 0 : 0x10000000 => Type::AARCH64_NONE,
1092 0 : 0x10000101 => Type::AARCH64_ABS64,
1093 0 : 0x10000102 => Type::AARCH64_ABS32,
1094 0 : 0x10000103 => Type::AARCH64_ABS16,
1095 0 : 0x10000104 => Type::AARCH64_PREL64,
1096 20 : 0x10000105 => Type::AARCH64_PREL32,
1097 0 : 0x10000106 => Type::AARCH64_PREL16,
1098 0 : 0x10000107 => Type::AARCH64_MOVW_UABS_G0,
1099 0 : 0x10000108 => Type::AARCH64_MOVW_UABS_G0_NC,
1100 0 : 0x10000109 => Type::AARCH64_MOVW_UABS_G1,
1101 0 : 0x1000010a => Type::AARCH64_MOVW_UABS_G1_NC,
1102 0 : 0x1000010b => Type::AARCH64_MOVW_UABS_G2,
1103 0 : 0x1000010c => Type::AARCH64_MOVW_UABS_G2_NC,
1104 0 : 0x1000010d => Type::AARCH64_MOVW_UABS_G3,
1105 0 : 0x1000010e => Type::AARCH64_MOVW_SABS_G0,
1106 0 : 0x1000010f => Type::AARCH64_MOVW_SABS_G1,
1107 0 : 0x10000110 => Type::AARCH64_MOVW_SABS_G2,
1108 0 : 0x10000111 => Type::AARCH64_LD_PREL_LO19,
1109 0 : 0x10000112 => Type::AARCH64_ADR_PREL_LO21,
1110 0 : 0x10000113 => Type::AARCH64_ADR_PREL_PG_HI21,
1111 0 : 0x10000114 => Type::AARCH64_ADR_PREL_PG_HI21_NC,
1112 0 : 0x10000115 => Type::AARCH64_ADD_ABS_LO12_NC,
1113 0 : 0x10000116 => Type::AARCH64_LDST8_ABS_LO12_NC,
1114 0 : 0x10000117 => Type::AARCH64_TSTBR14,
1115 0 : 0x10000118 => Type::AARCH64_CONDBR19,
1116 0 : 0x1000011a => Type::AARCH64_JUMP26,
1117 0 : 0x1000011b => Type::AARCH64_CALL26,
1118 0 : 0x1000011c => Type::AARCH64_LDST16_ABS_LO12_NC,
1119 0 : 0x1000011d => Type::AARCH64_LDST32_ABS_LO12_NC,
1120 0 : 0x1000011e => Type::AARCH64_LDST64_ABS_LO12_NC,
1121 0 : 0x1000011f => Type::AARCH64_MOVW_PREL_G0,
1122 0 : 0x10000120 => Type::AARCH64_MOVW_PREL_G0_NC,
1123 0 : 0x10000121 => Type::AARCH64_MOVW_PREL_G1,
1124 0 : 0x10000122 => Type::AARCH64_MOVW_PREL_G1_NC,
1125 0 : 0x10000123 => Type::AARCH64_MOVW_PREL_G2,
1126 0 : 0x10000124 => Type::AARCH64_MOVW_PREL_G2_NC,
1127 0 : 0x10000125 => Type::AARCH64_MOVW_PREL_G3,
1128 0 : 0x1000012b => Type::AARCH64_LDST128_ABS_LO12_NC,
1129 0 : 0x1000012c => Type::AARCH64_MOVW_GOTOFF_G0,
1130 0 : 0x1000012d => Type::AARCH64_MOVW_GOTOFF_G0_NC,
1131 0 : 0x1000012e => Type::AARCH64_MOVW_GOTOFF_G1,
1132 0 : 0x1000012f => Type::AARCH64_MOVW_GOTOFF_G1_NC,
1133 0 : 0x10000130 => Type::AARCH64_MOVW_GOTOFF_G2,
1134 0 : 0x10000131 => Type::AARCH64_MOVW_GOTOFF_G2_NC,
1135 0 : 0x10000132 => Type::AARCH64_MOVW_GOTOFF_G3,
1136 0 : 0x10000133 => Type::AARCH64_GOTREL64,
1137 0 : 0x10000134 => Type::AARCH64_GOTREL32,
1138 0 : 0x10000135 => Type::AARCH64_GOT_LD_PREL19,
1139 0 : 0x10000136 => Type::AARCH64_LD64_GOTOFF_LO15,
1140 0 : 0x10000137 => Type::AARCH64_ADR_GOT_PAGE,
1141 0 : 0x10000138 => Type::AARCH64_LD64_GOT_LO12_NC,
1142 0 : 0x10000139 => Type::AARCH64_LD64_GOTPAGE_LO15,
1143 0 : 0x10000200 => Type::AARCH64_TLSGD_ADR_PREL21,
1144 0 : 0x10000201 => Type::AARCH64_TLSGD_ADR_PAGE21,
1145 0 : 0x10000202 => Type::AARCH64_TLSGD_ADD_LO12_NC,
1146 0 : 0x10000203 => Type::AARCH64_TLSGD_MOVW_G1,
1147 0 : 0x10000204 => Type::AARCH64_TLSGD_MOVW_G0_NC,
1148 0 : 0x10000205 => Type::AARCH64_TLSLD_ADR_PREL21,
1149 0 : 0x10000206 => Type::AARCH64_TLSLD_ADR_PAGE21,
1150 0 : 0x10000207 => Type::AARCH64_TLSLD_ADD_LO12_NC,
1151 0 : 0x10000208 => Type::AARCH64_TLSLD_MOVW_G1,
1152 0 : 0x10000209 => Type::AARCH64_TLSLD_MOVW_G0_NC,
1153 0 : 0x1000020a => Type::AARCH64_TLSLD_LD_PREL19,
1154 0 : 0x1000020b => Type::AARCH64_TLSLD_MOVW_DTPREL_G2,
1155 0 : 0x1000020c => Type::AARCH64_TLSLD_MOVW_DTPREL_G1,
1156 0 : 0x1000020d => Type::AARCH64_TLSLD_MOVW_DTPREL_G1_NC,
1157 0 : 0x1000020e => Type::AARCH64_TLSLD_MOVW_DTPREL_G0,
1158 0 : 0x1000020f => Type::AARCH64_TLSLD_MOVW_DTPREL_G0_NC,
1159 0 : 0x10000210 => Type::AARCH64_TLSLD_ADD_DTPREL_HI12,
1160 0 : 0x10000211 => Type::AARCH64_TLSLD_ADD_DTPREL_LO12,
1161 0 : 0x10000212 => Type::AARCH64_TLSLD_ADD_DTPREL_LO12_NC,
1162 0 : 0x10000213 => Type::AARCH64_TLSLD_LDST8_DTPREL_LO12,
1163 0 : 0x10000214 => Type::AARCH64_TLSLD_LDST8_DTPREL_LO12_NC,
1164 0 : 0x10000215 => Type::AARCH64_TLSLD_LDST16_DTPREL_LO12,
1165 0 : 0x10000216 => Type::AARCH64_TLSLD_LDST16_DTPREL_LO12_NC,
1166 0 : 0x10000217 => Type::AARCH64_TLSLD_LDST32_DTPREL_LO12,
1167 0 : 0x10000218 => Type::AARCH64_TLSLD_LDST32_DTPREL_LO12_NC,
1168 0 : 0x10000219 => Type::AARCH64_TLSLD_LDST64_DTPREL_LO12,
1169 0 : 0x1000021a => Type::AARCH64_TLSLD_LDST64_DTPREL_LO12_NC,
1170 0 : 0x1000021b => Type::AARCH64_TLSIE_MOVW_GOTTPREL_G1,
1171 0 : 0x1000021c => Type::AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
1172 0 : 0x1000021d => Type::AARCH64_TLSIE_ADR_GOTTPREL_PAGE21,
1173 0 : 0x1000021e => Type::AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC,
1174 0 : 0x1000021f => Type::AARCH64_TLSIE_LD_GOTTPREL_PREL19,
1175 0 : 0x10000220 => Type::AARCH64_TLSLE_MOVW_TPREL_G2,
1176 0 : 0x10000221 => Type::AARCH64_TLSLE_MOVW_TPREL_G1,
1177 0 : 0x10000222 => Type::AARCH64_TLSLE_MOVW_TPREL_G1_NC,
1178 0 : 0x10000223 => Type::AARCH64_TLSLE_MOVW_TPREL_G0,
1179 0 : 0x10000224 => Type::AARCH64_TLSLE_MOVW_TPREL_G0_NC,
1180 0 : 0x10000225 => Type::AARCH64_TLSLE_ADD_TPREL_HI12,
1181 0 : 0x10000226 => Type::AARCH64_TLSLE_ADD_TPREL_LO12,
1182 0 : 0x10000227 => Type::AARCH64_TLSLE_ADD_TPREL_LO12_NC,
1183 0 : 0x10000228 => Type::AARCH64_TLSLE_LDST8_TPREL_LO12,
1184 0 : 0x10000229 => Type::AARCH64_TLSLE_LDST8_TPREL_LO12_NC,
1185 0 : 0x1000022a => Type::AARCH64_TLSLE_LDST16_TPREL_LO12,
1186 0 : 0x1000022b => Type::AARCH64_TLSLE_LDST16_TPREL_LO12_NC,
1187 0 : 0x1000022c => Type::AARCH64_TLSLE_LDST32_TPREL_LO12,
1188 0 : 0x1000022d => Type::AARCH64_TLSLE_LDST32_TPREL_LO12_NC,
1189 0 : 0x1000022e => Type::AARCH64_TLSLE_LDST64_TPREL_LO12,
1190 0 : 0x1000022f => Type::AARCH64_TLSLE_LDST64_TPREL_LO12_NC,
1191 0 : 0x10000230 => Type::AARCH64_TLSDESC_LD_PREL19,
1192 0 : 0x10000231 => Type::AARCH64_TLSDESC_ADR_PREL21,
1193 0 : 0x10000232 => Type::AARCH64_TLSDESC_ADR_PAGE21,
1194 0 : 0x10000233 => Type::AARCH64_TLSDESC_LD64_LO12_NC,
1195 0 : 0x10000234 => Type::AARCH64_TLSDESC_ADD_LO12_NC,
1196 0 : 0x10000235 => Type::AARCH64_TLSDESC_OFF_G1,
1197 0 : 0x10000236 => Type::AARCH64_TLSDESC_OFF_G0_NC,
1198 0 : 0x10000237 => Type::AARCH64_TLSDESC_LDR,
1199 0 : 0x10000238 => Type::AARCH64_TLSDESC_ADD,
1200 0 : 0x10000239 => Type::AARCH64_TLSDESC_CALL,
1201 0 : 0x1000023a => Type::AARCH64_TLSLE_LDST128_TPREL_LO12,
1202 0 : 0x1000023b => Type::AARCH64_TLSLE_LDST128_TPREL_LO12_NC,
1203 0 : 0x1000023c => Type::AARCH64_TLSLD_LDST128_DTPREL_LO12,
1204 0 : 0x1000023d => Type::AARCH64_TLSLD_LDST128_DTPREL_LO12_NC,
1205 0 : 0x10000400 => Type::AARCH64_COPY,
1206 0 : 0x10000401 => Type::AARCH64_GLOB_DAT,
1207 0 : 0x10000402 => Type::AARCH64_JUMP_SLOT,
1208 0 : 0x10000403 => Type::AARCH64_RELATIVE,
1209 0 : 0x10000404 => Type::AARCH64_TLS_DTPREL64,
1210 0 : 0x10000405 => Type::AARCH64_TLS_DTPMOD64,
1211 0 : 0x10000406 => Type::AARCH64_TLS_TPREL64,
1212 0 : 0x10000407 => Type::AARCH64_TLSDESC,
1213 0 : 0x10000408 => Type::AARCH64_IRELATIVE,
1214 0 : 0x18000000 => Type::ARM_NONE,
1215 0 : 0x18000001 => Type::ARM_PC24,
1216 0 : 0x18000002 => Type::ARM_ABS32,
1217 0 : 0x18000003 => Type::ARM_REL32,
1218 0 : 0x18000004 => Type::ARM_LDR_PC_G0,
1219 0 : 0x18000005 => Type::ARM_ABS16,
1220 0 : 0x18000006 => Type::ARM_ABS12,
1221 0 : 0x18000007 => Type::ARM_THM_ABS5,
1222 0 : 0x18000008 => Type::ARM_ABS8,
1223 0 : 0x18000009 => Type::ARM_SBREL32,
1224 0 : 0x1800000a => Type::ARM_THM_CALL,
1225 0 : 0x1800000b => Type::ARM_THM_PC8,
1226 0 : 0x1800000c => Type::ARM_BREL_ADJ,
1227 0 : 0x1800000d => Type::ARM_TLS_DESC,
1228 0 : 0x1800000e => Type::ARM_THM_SWI8,
1229 0 : 0x1800000f => Type::ARM_XPC25,
1230 0 : 0x18000010 => Type::ARM_THM_XPC22,
1231 0 : 0x18000011 => Type::ARM_TLS_DTPMOD32,
1232 0 : 0x18000012 => Type::ARM_TLS_DTPOFF32,
1233 0 : 0x18000013 => Type::ARM_TLS_TPOFF32,
1234 0 : 0x18000014 => Type::ARM_COPY,
1235 0 : 0x18000015 => Type::ARM_GLOB_DAT,
1236 0 : 0x18000016 => Type::ARM_JUMP_SLOT,
1237 0 : 0x18000017 => Type::ARM_RELATIVE,
1238 0 : 0x18000018 => Type::ARM_GOTOFF32,
1239 0 : 0x18000019 => Type::ARM_BASE_PREL,
1240 0 : 0x1800001a => Type::ARM_GOT_BREL,
1241 0 : 0x1800001b => Type::ARM_PLT32,
1242 0 : 0x1800001c => Type::ARM_CALL,
1243 0 : 0x1800001d => Type::ARM_JUMP24,
1244 0 : 0x1800001e => Type::ARM_THM_JUMP24,
1245 0 : 0x1800001f => Type::ARM_BASE_ABS,
1246 0 : 0x18000020 => Type::ARM_ALU_PCREL_7_0,
1247 0 : 0x18000021 => Type::ARM_ALU_PCREL_15_8,
1248 0 : 0x18000022 => Type::ARM_ALU_PCREL_23_15,
1249 0 : 0x18000023 => Type::ARM_LDR_SBREL_11_0_NC,
1250 0 : 0x18000024 => Type::ARM_ALU_SBREL_19_12_NC,
1251 0 : 0x18000025 => Type::ARM_ALU_SBREL_27_20_CK,
1252 0 : 0x18000026 => Type::ARM_TARGET1,
1253 0 : 0x18000027 => Type::ARM_SBREL31,
1254 0 : 0x18000028 => Type::ARM_V4BX,
1255 0 : 0x18000029 => Type::ARM_TARGET2,
1256 0 : 0x1800002a => Type::ARM_PREL31,
1257 0 : 0x1800002b => Type::ARM_MOVW_ABS_NC,
1258 0 : 0x1800002c => Type::ARM_MOVT_ABS,
1259 0 : 0x1800002d => Type::ARM_MOVW_PREL_NC,
1260 0 : 0x1800002e => Type::ARM_MOVT_PREL,
1261 0 : 0x1800002f => Type::ARM_THM_MOVW_ABS_NC,
1262 0 : 0x18000030 => Type::ARM_THM_MOVT_ABS,
1263 0 : 0x18000031 => Type::ARM_THM_MOVW_PREL_NC,
1264 0 : 0x18000032 => Type::ARM_THM_MOVT_PREL,
1265 0 : 0x18000033 => Type::ARM_THM_JUMP19,
1266 0 : 0x18000034 => Type::ARM_THM_JUMP6,
1267 0 : 0x18000035 => Type::ARM_THM_ALU_PREL_11_0,
1268 0 : 0x18000036 => Type::ARM_THM_PC12,
1269 0 : 0x18000037 => Type::ARM_ABS32_NOI,
1270 0 : 0x18000038 => Type::ARM_REL32_NOI,
1271 0 : 0x18000039 => Type::ARM_ALU_PC_G0_NC,
1272 0 : 0x1800003a => Type::ARM_ALU_PC_G0,
1273 0 : 0x1800003b => Type::ARM_ALU_PC_G1_NC,
1274 0 : 0x1800003c => Type::ARM_ALU_PC_G1,
1275 0 : 0x1800003d => Type::ARM_ALU_PC_G2,
1276 0 : 0x1800003e => Type::ARM_LDR_PC_G1,
1277 0 : 0x1800003f => Type::ARM_LDR_PC_G2,
1278 0 : 0x18000040 => Type::ARM_LDRS_PC_G0,
1279 0 : 0x18000041 => Type::ARM_LDRS_PC_G1,
1280 0 : 0x18000042 => Type::ARM_LDRS_PC_G2,
1281 0 : 0x18000043 => Type::ARM_LDC_PC_G0,
1282 0 : 0x18000044 => Type::ARM_LDC_PC_G1,
1283 0 : 0x18000045 => Type::ARM_LDC_PC_G2,
1284 0 : 0x18000046 => Type::ARM_ALU_SB_G0_NC,
1285 0 : 0x18000047 => Type::ARM_ALU_SB_G0,
1286 0 : 0x18000048 => Type::ARM_ALU_SB_G1_NC,
1287 0 : 0x18000049 => Type::ARM_ALU_SB_G1,
1288 0 : 0x1800004a => Type::ARM_ALU_SB_G2,
1289 0 : 0x1800004b => Type::ARM_LDR_SB_G0,
1290 0 : 0x1800004c => Type::ARM_LDR_SB_G1,
1291 0 : 0x1800004d => Type::ARM_LDR_SB_G2,
1292 0 : 0x1800004e => Type::ARM_LDRS_SB_G0,
1293 0 : 0x1800004f => Type::ARM_LDRS_SB_G1,
1294 0 : 0x18000050 => Type::ARM_LDRS_SB_G2,
1295 0 : 0x18000051 => Type::ARM_LDC_SB_G0,
1296 0 : 0x18000052 => Type::ARM_LDC_SB_G1,
1297 0 : 0x18000053 => Type::ARM_LDC_SB_G2,
1298 0 : 0x18000054 => Type::ARM_MOVW_BREL_NC,
1299 0 : 0x18000055 => Type::ARM_MOVT_BREL,
1300 0 : 0x18000056 => Type::ARM_MOVW_BREL,
1301 0 : 0x18000057 => Type::ARM_THM_MOVW_BREL_NC,
1302 0 : 0x18000058 => Type::ARM_THM_MOVT_BREL,
1303 0 : 0x18000059 => Type::ARM_THM_MOVW_BREL,
1304 0 : 0x1800005a => Type::ARM_TLS_GOTDESC,
1305 0 : 0x1800005b => Type::ARM_TLS_CALL,
1306 0 : 0x1800005c => Type::ARM_TLS_DESCSEQ,
1307 0 : 0x1800005d => Type::ARM_THM_TLS_CALL,
1308 0 : 0x1800005e => Type::ARM_PLT32_ABS,
1309 0 : 0x1800005f => Type::ARM_GOT_ABS,
1310 0 : 0x18000060 => Type::ARM_GOT_PREL,
1311 0 : 0x18000061 => Type::ARM_GOT_BREL12,
1312 0 : 0x18000062 => Type::ARM_GOTOFF12,
1313 0 : 0x18000063 => Type::ARM_GOTRELAX,
1314 0 : 0x18000064 => Type::ARM_GNU_VTENTRY,
1315 0 : 0x18000065 => Type::ARM_GNU_VTINHERIT,
1316 0 : 0x18000066 => Type::ARM_THM_JUMP11,
1317 0 : 0x18000067 => Type::ARM_THM_JUMP8,
1318 0 : 0x18000068 => Type::ARM_TLS_GD32,
1319 0 : 0x18000069 => Type::ARM_TLS_LDM32,
1320 0 : 0x1800006a => Type::ARM_TLS_LDO32,
1321 0 : 0x1800006b => Type::ARM_TLS_IE32,
1322 0 : 0x1800006c => Type::ARM_TLS_LE32,
1323 0 : 0x1800006d => Type::ARM_TLS_LDO12,
1324 0 : 0x1800006e => Type::ARM_TLS_LE12,
1325 0 : 0x1800006f => Type::ARM_TLS_IE12GP,
1326 0 : 0x18000070 => Type::ARM_PRIVATE_0,
1327 0 : 0x18000071 => Type::ARM_PRIVATE_1,
1328 0 : 0x18000072 => Type::ARM_PRIVATE_2,
1329 0 : 0x18000073 => Type::ARM_PRIVATE_3,
1330 0 : 0x18000074 => Type::ARM_PRIVATE_4,
1331 0 : 0x18000075 => Type::ARM_PRIVATE_5,
1332 0 : 0x18000076 => Type::ARM_PRIVATE_6,
1333 0 : 0x18000077 => Type::ARM_PRIVATE_7,
1334 0 : 0x18000078 => Type::ARM_PRIVATE_8,
1335 0 : 0x18000079 => Type::ARM_PRIVATE_9,
1336 0 : 0x1800007a => Type::ARM_PRIVATE_10,
1337 0 : 0x1800007b => Type::ARM_PRIVATE_11,
1338 0 : 0x1800007c => Type::ARM_PRIVATE_12,
1339 0 : 0x1800007d => Type::ARM_PRIVATE_13,
1340 0 : 0x1800007e => Type::ARM_PRIVATE_14,
1341 0 : 0x1800007f => Type::ARM_PRIVATE_15,
1342 0 : 0x18000080 => Type::ARM_ME_TOO,
1343 0 : 0x18000081 => Type::ARM_THM_TLS_DESCSEQ16,
1344 0 : 0x18000082 => Type::ARM_THM_TLS_DESCSEQ32,
1345 0 : 0x180000a0 => Type::ARM_IRELATIVE,
1346 0 : 0x180000f9 => Type::ARM_RXPC25,
1347 0 : 0x180000fa => Type::ARM_RSBREL32,
1348 0 : 0x180000fb => Type::ARM_THM_RPC22,
1349 0 : 0x180000fc => Type::ARM_RREL32,
1350 0 : 0x180000fd => Type::ARM_RPC24,
1351 0 : 0x180000fe => Type::ARM_RBASE,
1352 0 : 0x20000000 => Type::HEX_NONE,
1353 0 : 0x20000001 => Type::HEX_B22_PCREL,
1354 0 : 0x20000002 => Type::HEX_B15_PCREL,
1355 0 : 0x20000003 => Type::HEX_B7_PCREL,
1356 0 : 0x20000004 => Type::HEX_LO16,
1357 0 : 0x20000005 => Type::HEX_HI16,
1358 0 : 0x20000006 => Type::HEX_32,
1359 0 : 0x20000007 => Type::HEX_16,
1360 0 : 0x20000008 => Type::HEX_8,
1361 0 : 0x20000009 => Type::HEX_GPREL16_0,
1362 0 : 0x2000000a => Type::HEX_GPREL16_1,
1363 0 : 0x2000000b => Type::HEX_GPREL16_2,
1364 0 : 0x2000000c => Type::HEX_GPREL16_3,
1365 0 : 0x2000000d => Type::HEX_HL16,
1366 0 : 0x2000000e => Type::HEX_B13_PCREL,
1367 0 : 0x2000000f => Type::HEX_B9_PCREL,
1368 0 : 0x20000010 => Type::HEX_B32_PCREL_X,
1369 0 : 0x20000011 => Type::HEX_32_6_X,
1370 0 : 0x20000012 => Type::HEX_B22_PCREL_X,
1371 0 : 0x20000013 => Type::HEX_B15_PCREL_X,
1372 0 : 0x20000014 => Type::HEX_B13_PCREL_X,
1373 0 : 0x20000015 => Type::HEX_B9_PCREL_X,
1374 0 : 0x20000016 => Type::HEX_B7_PCREL_X,
1375 0 : 0x20000017 => Type::HEX_16_X,
1376 0 : 0x20000018 => Type::HEX_12_X,
1377 0 : 0x20000019 => Type::HEX_11_X,
1378 0 : 0x2000001a => Type::HEX_10_X,
1379 0 : 0x2000001b => Type::HEX_9_X,
1380 0 : 0x2000001c => Type::HEX_8_X,
1381 0 : 0x2000001d => Type::HEX_7_X,
1382 0 : 0x2000001e => Type::HEX_6_X,
1383 0 : 0x2000001f => Type::HEX_32_PCREL,
1384 0 : 0x20000020 => Type::HEX_COPY,
1385 0 : 0x20000021 => Type::HEX_GLOB_DAT,
1386 0 : 0x20000022 => Type::HEX_JMP_SLOT,
1387 0 : 0x20000023 => Type::HEX_RELATIVE,
1388 0 : 0x20000024 => Type::HEX_PLT_B22_PCREL,
1389 0 : 0x20000025 => Type::HEX_GOTREL_LO16,
1390 0 : 0x20000026 => Type::HEX_GOTREL_HI16,
1391 0 : 0x20000027 => Type::HEX_GOTREL_32,
1392 0 : 0x20000028 => Type::HEX_GOT_LO16,
1393 0 : 0x20000029 => Type::HEX_GOT_HI16,
1394 0 : 0x2000002a => Type::HEX_GOT_32,
1395 0 : 0x2000002b => Type::HEX_GOT_16,
1396 0 : 0x2000002c => Type::HEX_DTPMOD_32,
1397 0 : 0x2000002d => Type::HEX_DTPREL_LO16,
1398 0 : 0x2000002e => Type::HEX_DTPREL_HI16,
1399 0 : 0x2000002f => Type::HEX_DTPREL_32,
1400 0 : 0x20000030 => Type::HEX_DTPREL_16,
1401 0 : 0x20000031 => Type::HEX_GD_PLT_B22_PCREL,
1402 0 : 0x20000032 => Type::HEX_GD_GOT_LO16,
1403 0 : 0x20000033 => Type::HEX_GD_GOT_HI16,
1404 0 : 0x20000034 => Type::HEX_GD_GOT_32,
1405 0 : 0x20000035 => Type::HEX_GD_GOT_16,
1406 0 : 0x20000036 => Type::HEX_IE_LO16,
1407 0 : 0x20000037 => Type::HEX_IE_HI16,
1408 0 : 0x20000038 => Type::HEX_IE_32,
1409 0 : 0x20000039 => Type::HEX_IE_GOT_LO16,
1410 0 : 0x2000003a => Type::HEX_IE_GOT_HI16,
1411 0 : 0x2000003b => Type::HEX_IE_GOT_32,
1412 0 : 0x2000003c => Type::HEX_IE_GOT_16,
1413 0 : 0x2000003d => Type::HEX_TPREL_LO16,
1414 0 : 0x2000003e => Type::HEX_TPREL_HI16,
1415 0 : 0x2000003f => Type::HEX_TPREL_32,
1416 0 : 0x20000040 => Type::HEX_TPREL_16,
1417 0 : 0x20000041 => Type::HEX_6_PCREL_X,
1418 0 : 0x20000042 => Type::HEX_GOTREL_32_6_X,
1419 0 : 0x20000043 => Type::HEX_GOTREL_16_X,
1420 0 : 0x20000044 => Type::HEX_GOTREL_11_X,
1421 0 : 0x20000045 => Type::HEX_GOT_32_6_X,
1422 0 : 0x20000046 => Type::HEX_GOT_16_X,
1423 0 : 0x20000047 => Type::HEX_GOT_11_X,
1424 0 : 0x20000048 => Type::HEX_DTPREL_32_6_X,
1425 0 : 0x20000049 => Type::HEX_DTPREL_16_X,
1426 0 : 0x2000004a => Type::HEX_DTPREL_11_X,
1427 0 : 0x2000004b => Type::HEX_GD_GOT_32_6_X,
1428 0 : 0x2000004c => Type::HEX_GD_GOT_16_X,
1429 0 : 0x2000004d => Type::HEX_GD_GOT_11_X,
1430 0 : 0x2000004e => Type::HEX_IE_32_6_X,
1431 0 : 0x2000004f => Type::HEX_IE_16_X,
1432 0 : 0x20000050 => Type::HEX_IE_GOT_32_6_X,
1433 0 : 0x20000051 => Type::HEX_IE_GOT_16_X,
1434 0 : 0x20000052 => Type::HEX_IE_GOT_11_X,
1435 0 : 0x20000053 => Type::HEX_TPREL_32_6_X,
1436 0 : 0x20000054 => Type::HEX_TPREL_16_X,
1437 0 : 0x20000055 => Type::HEX_TPREL_11_X,
1438 0 : 0x20000056 => Type::HEX_LD_PLT_B22_PCREL,
1439 0 : 0x20000057 => Type::HEX_LD_GOT_LO16,
1440 0 : 0x20000058 => Type::HEX_LD_GOT_HI16,
1441 0 : 0x20000059 => Type::HEX_LD_GOT_32,
1442 0 : 0x2000005a => Type::HEX_LD_GOT_16,
1443 0 : 0x2000005b => Type::HEX_LD_GOT_32_6_X,
1444 0 : 0x2000005c => Type::HEX_LD_GOT_16_X,
1445 0 : 0x2000005d => Type::HEX_LD_GOT_11_X,
1446 0 : 0x28000000 => Type::X86_NONE,
1447 0 : 0x28000001 => Type::X86_32,
1448 0 : 0x28000002 => Type::X86_PC32,
1449 0 : 0x28000003 => Type::X86_GOT32,
1450 0 : 0x28000004 => Type::X86_PLT32,
1451 0 : 0x28000005 => Type::X86_COPY,
1452 0 : 0x28000006 => Type::X86_GLOB_DAT,
1453 0 : 0x28000007 => Type::X86_JUMP_SLOT,
1454 0 : 0x28000008 => Type::X86_RELATIVE,
1455 0 : 0x28000009 => Type::X86_GOTOFF,
1456 0 : 0x2800000a => Type::X86_GOTPC,
1457 0 : 0x2800000b => Type::X86_32PLT,
1458 0 : 0x2800000e => Type::X86_TLS_TPOFF,
1459 0 : 0x2800000f => Type::X86_TLS_IE,
1460 0 : 0x28000010 => Type::X86_TLS_GOTIE,
1461 0 : 0x28000011 => Type::X86_TLS_LE,
1462 0 : 0x28000012 => Type::X86_TLS_GD,
1463 0 : 0x28000013 => Type::X86_TLS_LDM,
1464 0 : 0x28000014 => Type::X86_16,
1465 0 : 0x28000015 => Type::X86_PC16,
1466 0 : 0x28000016 => Type::X86_8,
1467 0 : 0x28000017 => Type::X86_PC8,
1468 0 : 0x28000018 => Type::X86_TLS_GD_32,
1469 0 : 0x28000019 => Type::X86_TLS_GD_PUSH,
1470 0 : 0x2800001a => Type::X86_TLS_GD_CALL,
1471 0 : 0x2800001b => Type::X86_TLS_GD_POP,
1472 0 : 0x2800001c => Type::X86_TLS_LDM_32,
1473 0 : 0x2800001d => Type::X86_TLS_LDM_PUSH,
1474 0 : 0x2800001e => Type::X86_TLS_LDM_CALL,
1475 0 : 0x2800001f => Type::X86_TLS_LDM_POP,
1476 0 : 0x28000020 => Type::X86_TLS_LDO_32,
1477 0 : 0x28000021 => Type::X86_TLS_IE_32,
1478 0 : 0x28000022 => Type::X86_TLS_LE_32,
1479 0 : 0x28000023 => Type::X86_TLS_DTPMOD32,
1480 0 : 0x28000024 => Type::X86_TLS_DTPOFF32,
1481 0 : 0x28000025 => Type::X86_TLS_TPOFF32,
1482 0 : 0x28000027 => Type::X86_TLS_GOTDESC,
1483 0 : 0x28000028 => Type::X86_TLS_DESC_CALL,
1484 0 : 0x28000029 => Type::X86_TLS_DESC,
1485 0 : 0x2800002a => Type::X86_IRELATIVE,
1486 0 : 0x30000000 => Type::LARCH_NONE,
1487 0 : 0x30000001 => Type::LARCH_32,
1488 40 : 0x30000002 => Type::LARCH_64,
1489 0 : 0x30000003 => Type::LARCH_RELATIVE,
1490 0 : 0x30000004 => Type::LARCH_COPY,
1491 0 : 0x30000005 => Type::LARCH_JUMP_SLOT,
1492 0 : 0x30000006 => Type::LARCH_TLS_DTPMOD32,
1493 0 : 0x30000007 => Type::LARCH_TLS_DTPMOD64,
1494 0 : 0x30000008 => Type::LARCH_TLS_DTPREL32,
1495 0 : 0x30000009 => Type::LARCH_TLS_DTPREL64,
1496 0 : 0x3000000a => Type::LARCH_TLS_TPREL32,
1497 0 : 0x3000000b => Type::LARCH_TLS_TPREL64,
1498 0 : 0x3000000c => Type::LARCH_IRELATIVE,
1499 0 : 0x30000014 => Type::LARCH_MARK_LA,
1500 0 : 0x30000015 => Type::LARCH_MARK_PCREL,
1501 0 : 0x30000016 => Type::LARCH_SOP_PUSH_PCREL,
1502 0 : 0x30000017 => Type::LARCH_SOP_PUSH_ABSOLUTE,
1503 0 : 0x30000018 => Type::LARCH_SOP_PUSH_DUP,
1504 0 : 0x30000019 => Type::LARCH_SOP_PUSH_GPREL,
1505 0 : 0x3000001a => Type::LARCH_SOP_PUSH_TLS_TPREL,
1506 0 : 0x3000001b => Type::LARCH_SOP_PUSH_TLS_GOT,
1507 0 : 0x3000001c => Type::LARCH_SOP_PUSH_TLS_GD,
1508 0 : 0x3000001d => Type::LARCH_SOP_PUSH_PLT_PCREL,
1509 0 : 0x3000001e => Type::LARCH_SOP_ASSERT,
1510 0 : 0x3000001f => Type::LARCH_SOP_NOT,
1511 0 : 0x30000020 => Type::LARCH_SOP_SUB,
1512 0 : 0x30000021 => Type::LARCH_SOP_SL,
1513 0 : 0x30000022 => Type::LARCH_SOP_SR,
1514 0 : 0x30000023 => Type::LARCH_SOP_ADD,
1515 0 : 0x30000024 => Type::LARCH_SOP_AND,
1516 0 : 0x30000025 => Type::LARCH_SOP_IF_ELSE,
1517 0 : 0x30000026 => Type::LARCH_SOP_POP_32_S_10_5,
1518 0 : 0x30000027 => Type::LARCH_SOP_POP_32_U_10_12,
1519 0 : 0x30000028 => Type::LARCH_SOP_POP_32_S_10_12,
1520 0 : 0x30000029 => Type::LARCH_SOP_POP_32_S_10_16,
1521 0 : 0x3000002a => Type::LARCH_SOP_POP_32_S_10_16_S2,
1522 0 : 0x3000002b => Type::LARCH_SOP_POP_32_S_5_20,
1523 0 : 0x3000002c => Type::LARCH_SOP_POP_32_S_0_5_10_16_S2,
1524 0 : 0x3000002d => Type::LARCH_SOP_POP_32_S_0_10_10_16_S2,
1525 0 : 0x3000002e => Type::LARCH_SOP_POP_32_U,
1526 0 : 0x3000002f => Type::LARCH_ADD8,
1527 0 : 0x30000030 => Type::LARCH_ADD16,
1528 0 : 0x30000031 => Type::LARCH_ADD24,
1529 0 : 0x30000032 => Type::LARCH_ADD32,
1530 0 : 0x30000033 => Type::LARCH_ADD64,
1531 0 : 0x30000034 => Type::LARCH_SUB8,
1532 0 : 0x30000035 => Type::LARCH_SUB16,
1533 0 : 0x30000036 => Type::LARCH_SUB24,
1534 0 : 0x30000037 => Type::LARCH_SUB32,
1535 0 : 0x30000038 => Type::LARCH_SUB64,
1536 0 : 0x30000039 => Type::LARCH_GNU_VTINHERIT,
1537 0 : 0x3000003a => Type::LARCH_GNU_VTENTRY,
1538 0 : 0x30000040 => Type::LARCH_B16,
1539 0 : 0x30000041 => Type::LARCH_B21,
1540 400 : 0x30000042 => Type::LARCH_B26,
1541 0 : 0x30000043 => Type::LARCH_ABS_HI20,
1542 0 : 0x30000044 => Type::LARCH_ABS_LO12,
1543 0 : 0x30000045 => Type::LARCH_ABS64_LO20,
1544 0 : 0x30000046 => Type::LARCH_ABS64_HI12,
1545 120 : 0x30000047 => Type::LARCH_PCALA_HI20,
1546 120 : 0x30000048 => Type::LARCH_PCALA_LO12,
1547 0 : 0x30000049 => Type::LARCH_PCALA64_LO20,
1548 0 : 0x3000004a => Type::LARCH_PCALA64_HI12,
1549 60 : 0x3000004b => Type::LARCH_GOT_PC_HI20,
1550 60 : 0x3000004c => Type::LARCH_GOT_PC_LO12,
1551 0 : 0x3000004d => Type::LARCH_GOT64_PC_LO20,
1552 0 : 0x3000004e => Type::LARCH_GOT64_PC_HI12,
1553 0 : 0x3000004f => Type::LARCH_GOT_HI20,
1554 0 : 0x30000050 => Type::LARCH_GOT_LO12,
1555 0 : 0x30000051 => Type::LARCH_GOT64_LO20,
1556 0 : 0x30000052 => Type::LARCH_GOT64_HI12,
1557 0 : 0x30000053 => Type::LARCH_TLS_LE_HI20,
1558 0 : 0x30000054 => Type::LARCH_TLS_LE_LO12,
1559 0 : 0x30000055 => Type::LARCH_TLS_LE64_LO20,
1560 0 : 0x30000056 => Type::LARCH_TLS_LE64_HI12,
1561 0 : 0x30000057 => Type::LARCH_TLS_IE_PC_HI20,
1562 0 : 0x30000058 => Type::LARCH_TLS_IE_PC_LO12,
1563 0 : 0x30000059 => Type::LARCH_TLS_IE64_PC_LO20,
1564 0 : 0x3000005a => Type::LARCH_TLS_IE64_PC_HI12,
1565 0 : 0x3000005b => Type::LARCH_TLS_IE_HI20,
1566 0 : 0x3000005c => Type::LARCH_TLS_IE_LO12,
1567 0 : 0x3000005d => Type::LARCH_TLS_IE64_LO20,
1568 0 : 0x3000005e => Type::LARCH_TLS_IE64_HI12,
1569 0 : 0x3000005f => Type::LARCH_TLS_LD_PC_HI20,
1570 0 : 0x30000060 => Type::LARCH_TLS_LD_HI20,
1571 0 : 0x30000061 => Type::LARCH_TLS_GD_PC_HI20,
1572 0 : 0x30000062 => Type::LARCH_TLS_GD_HI20,
1573 100 : 0x30000063 => Type::LARCH_32_PCREL,
1574 0 : 0x30000064 => Type::LARCH_RELAX,
1575 0 : 0x30000066 => Type::LARCH_ALIGN,
1576 0 : 0x30000067 => Type::LARCH_PCREL20_S2,
1577 0 : 0x30000069 => Type::LARCH_ADD6,
1578 0 : 0x3000006a => Type::LARCH_SUB6,
1579 0 : 0x3000006b => Type::LARCH_ADD_ULEB128,
1580 0 : 0x3000006c => Type::LARCH_SUB_ULEB128,
1581 0 : 0x3000006d => Type::LARCH_64_PCREL,
1582 0 : 0x3000006e => Type::LARCH_CALL36,
1583 0 : 0x3000000d => Type::LARCH_TLS_DESC32,
1584 0 : 0x3000000e => Type::LARCH_TLS_DESC64,
1585 0 : 0x3000006f => Type::LARCH_TLS_DESC_PC_HI20,
1586 0 : 0x30000070 => Type::LARCH_TLS_DESC_PC_LO12,
1587 0 : 0x30000071 => Type::LARCH_TLS_DESC64_PC_LO20,
1588 0 : 0x30000072 => Type::LARCH_TLS_DESC64_PC_HI12,
1589 0 : 0x30000073 => Type::LARCH_TLS_DESC_HI20,
1590 0 : 0x30000074 => Type::LARCH_TLS_DESC_LO12,
1591 0 : 0x30000075 => Type::LARCH_TLS_DESC64_LO20,
1592 0 : 0x30000076 => Type::LARCH_TLS_DESC64_HI12,
1593 0 : 0x30000077 => Type::LARCH_TLS_DESC_LD,
1594 0 : 0x30000078 => Type::LARCH_TLS_DESC_CALL,
1595 0 : 0x30000079 => Type::LARCH_TLS_LE_HI20_R,
1596 0 : 0x3000007a => Type::LARCH_TLS_LE_ADD_R,
1597 0 : 0x3000007b => Type::LARCH_TLS_LE_LO12_R,
1598 0 : 0x3000007c => Type::LARCH_TLS_LD_PCREL20_S2,
1599 0 : 0x3000007d => Type::LARCH_TLS_GD_PCREL20_S2,
1600 0 : 0x3000007e => Type::LARCH_TLS_DESC_PCREL20_S2,
1601 20 : 0x38000000 => Type::MIPS_NONE,
1602 0 : 0x38000001 => Type::MIPS_16,
1603 0 : 0x38000002 => Type::MIPS_32,
1604 7580 : 0x38000003 => Type::MIPS_REL32,
1605 0 : 0x38000004 => Type::MIPS_26,
1606 0 : 0x38000005 => Type::MIPS_HI16,
1607 0 : 0x38000006 => Type::MIPS_LO16,
1608 0 : 0x38000007 => Type::MIPS_GPREL16,
1609 0 : 0x38000008 => Type::MIPS_LITERAL,
1610 0 : 0x38000009 => Type::MIPS_GOT16,
1611 0 : 0x3800000a => Type::MIPS_PC16,
1612 0 : 0x3800000b => Type::MIPS_CALL16,
1613 0 : 0x3800000c => Type::MIPS_GPREL32,
1614 0 : 0x3800000d => Type::MIPS_UNUSED1,
1615 0 : 0x3800000e => Type::MIPS_UNUSED2,
1616 0 : 0x3800000f => Type::MIPS_UNUSED3,
1617 0 : 0x38000010 => Type::MIPS_SHIFT5,
1618 0 : 0x38000011 => Type::MIPS_SHIFT6,
1619 0 : 0x38000012 => Type::MIPS_64,
1620 0 : 0x38000013 => Type::MIPS_GOT_DISP,
1621 0 : 0x38000014 => Type::MIPS_GOT_PAGE,
1622 0 : 0x38000015 => Type::MIPS_GOT_OFST,
1623 0 : 0x38000016 => Type::MIPS_GOT_HI16,
1624 0 : 0x38000017 => Type::MIPS_GOT_LO16,
1625 0 : 0x38000018 => Type::MIPS_SUB,
1626 0 : 0x38000019 => Type::MIPS_INSERT_A,
1627 0 : 0x3800001a => Type::MIPS_INSERT_B,
1628 0 : 0x3800001b => Type::MIPS_DELETE,
1629 0 : 0x3800001c => Type::MIPS_HIGHER,
1630 0 : 0x3800001d => Type::MIPS_HIGHEST,
1631 0 : 0x3800001e => Type::MIPS_CALL_HI16,
1632 0 : 0x3800001f => Type::MIPS_CALL_LO16,
1633 0 : 0x38000020 => Type::MIPS_SCN_DISP,
1634 0 : 0x38000021 => Type::MIPS_REL16,
1635 0 : 0x38000022 => Type::MIPS_ADD_IMMEDIATE,
1636 0 : 0x38000023 => Type::MIPS_PJUMP,
1637 0 : 0x38000024 => Type::MIPS_RELGOT,
1638 0 : 0x38000025 => Type::MIPS_JALR,
1639 0 : 0x38000026 => Type::MIPS_TLS_DTPMOD32,
1640 0 : 0x38000027 => Type::MIPS_TLS_DTPREL32,
1641 0 : 0x38000028 => Type::MIPS_TLS_DTPMOD64,
1642 0 : 0x38000029 => Type::MIPS_TLS_DTPREL64,
1643 0 : 0x3800002a => Type::MIPS_TLS_GD,
1644 0 : 0x3800002b => Type::MIPS_TLS_LDM,
1645 0 : 0x3800002c => Type::MIPS_TLS_DTPREL_HI16,
1646 0 : 0x3800002d => Type::MIPS_TLS_DTPREL_LO16,
1647 0 : 0x3800002e => Type::MIPS_TLS_GOTTPREL,
1648 0 : 0x3800002f => Type::MIPS_TLS_TPREL32,
1649 0 : 0x38000030 => Type::MIPS_TLS_TPREL64,
1650 0 : 0x38000031 => Type::MIPS_TLS_TPREL_HI16,
1651 0 : 0x38000032 => Type::MIPS_TLS_TPREL_LO16,
1652 0 : 0x38000033 => Type::MIPS_GLOB_DAT,
1653 0 : 0x3800003c => Type::MIPS_PC21_S2,
1654 0 : 0x3800003d => Type::MIPS_PC26_S2,
1655 0 : 0x3800003e => Type::MIPS_PC18_S3,
1656 0 : 0x3800003f => Type::MIPS_PC19_S2,
1657 0 : 0x38000040 => Type::MIPS_PCHI16,
1658 0 : 0x38000041 => Type::MIPS_PCLO16,
1659 0 : 0x38000064 => Type::MIPS16_26,
1660 0 : 0x38000065 => Type::MIPS16_GPREL,
1661 0 : 0x38000066 => Type::MIPS16_GOT16,
1662 0 : 0x38000067 => Type::MIPS16_CALL16,
1663 0 : 0x38000068 => Type::MIPS16_HI16,
1664 0 : 0x38000069 => Type::MIPS16_LO16,
1665 0 : 0x3800006a => Type::MIPS16_TLS_GD,
1666 0 : 0x3800006b => Type::MIPS16_TLS_LDM,
1667 0 : 0x3800006c => Type::MIPS16_TLS_DTPREL_HI16,
1668 0 : 0x3800006d => Type::MIPS16_TLS_DTPREL_LO16,
1669 0 : 0x3800006e => Type::MIPS16_TLS_GOTTPREL,
1670 0 : 0x3800006f => Type::MIPS16_TLS_TPREL_HI16,
1671 0 : 0x38000070 => Type::MIPS16_TLS_TPREL_LO16,
1672 0 : 0x3800007e => Type::MIPS_COPY,
1673 20 : 0x3800007f => Type::MIPS_JUMP_SLOT,
1674 0 : 0x38000085 => Type::MICROMIPS_26_S1,
1675 0 : 0x38000086 => Type::MICROMIPS_HI16,
1676 0 : 0x38000087 => Type::MICROMIPS_LO16,
1677 0 : 0x38000088 => Type::MICROMIPS_GPREL16,
1678 0 : 0x38000089 => Type::MICROMIPS_LITERAL,
1679 0 : 0x3800008a => Type::MICROMIPS_GOT16,
1680 0 : 0x3800008b => Type::MICROMIPS_PC7_S1,
1681 0 : 0x3800008c => Type::MICROMIPS_PC10_S1,
1682 0 : 0x3800008d => Type::MICROMIPS_PC16_S1,
1683 0 : 0x3800008e => Type::MICROMIPS_CALL16,
1684 0 : 0x38000091 => Type::MICROMIPS_GOT_DISP,
1685 0 : 0x38000092 => Type::MICROMIPS_GOT_PAGE,
1686 0 : 0x38000093 => Type::MICROMIPS_GOT_OFST,
1687 0 : 0x38000094 => Type::MICROMIPS_GOT_HI16,
1688 0 : 0x38000095 => Type::MICROMIPS_GOT_LO16,
1689 0 : 0x38000096 => Type::MICROMIPS_SUB,
1690 0 : 0x38000097 => Type::MICROMIPS_HIGHER,
1691 0 : 0x38000098 => Type::MICROMIPS_HIGHEST,
1692 0 : 0x38000099 => Type::MICROMIPS_CALL_HI16,
1693 0 : 0x3800009a => Type::MICROMIPS_CALL_LO16,
1694 0 : 0x3800009b => Type::MICROMIPS_SCN_DISP,
1695 0 : 0x3800009c => Type::MICROMIPS_JALR,
1696 0 : 0x3800009d => Type::MICROMIPS_HI0_LO16,
1697 0 : 0x380000a2 => Type::MICROMIPS_TLS_GD,
1698 0 : 0x380000a3 => Type::MICROMIPS_TLS_LDM,
1699 0 : 0x380000a4 => Type::MICROMIPS_TLS_DTPREL_HI16,
1700 0 : 0x380000a5 => Type::MICROMIPS_TLS_DTPREL_LO16,
1701 0 : 0x380000a6 => Type::MICROMIPS_TLS_GOTTPREL,
1702 0 : 0x380000a9 => Type::MICROMIPS_TLS_TPREL_HI16,
1703 0 : 0x380000aa => Type::MICROMIPS_TLS_TPREL_LO16,
1704 0 : 0x380000ac => Type::MICROMIPS_GPREL7_S2,
1705 0 : 0x380000ad => Type::MICROMIPS_PC23_S2,
1706 0 : 0x380000ae => Type::MICROMIPS_PC21_S2,
1707 0 : 0x380000af => Type::MICROMIPS_PC26_S2,
1708 0 : 0x380000b0 => Type::MICROMIPS_PC18_S3,
1709 0 : 0x380000b1 => Type::MICROMIPS_PC19_S2,
1710 0 : 0x380000da => Type::MIPS_NUM,
1711 0 : 0x380000f8 => Type::MIPS_PC32,
1712 0 : 0x380000f9 => Type::MIPS_EH,
1713 0 : 0x40000000 => Type::PPC_NONE,
1714 0 : 0x40000001 => Type::PPC_ADDR32,
1715 0 : 0x40000002 => Type::PPC_ADDR24,
1716 0 : 0x40000003 => Type::PPC_ADDR16,
1717 0 : 0x40000004 => Type::PPC_ADDR16_LO,
1718 0 : 0x40000005 => Type::PPC_ADDR16_HI,
1719 0 : 0x40000006 => Type::PPC_ADDR16_HA,
1720 0 : 0x40000007 => Type::PPC_ADDR14,
1721 0 : 0x40000008 => Type::PPC_ADDR14_BRTAKEN,
1722 0 : 0x40000009 => Type::PPC_ADDR14_BRNTAKEN,
1723 0 : 0x4000000a => Type::PPC_REL24,
1724 0 : 0x4000000b => Type::PPC_REL14,
1725 0 : 0x4000000c => Type::PPC_REL14_BRTAKEN,
1726 0 : 0x4000000d => Type::PPC_REL14_BRNTAKEN,
1727 0 : 0x4000000e => Type::PPC_GOT16,
1728 0 : 0x4000000f => Type::PPC_GOT16_LO,
1729 0 : 0x40000010 => Type::PPC_GOT16_HI,
1730 0 : 0x40000011 => Type::PPC_GOT16_HA,
1731 0 : 0x40000012 => Type::PPC_PLTREL24,
1732 0 : 0x40000015 => Type::PPC_JMP_SLOT,
1733 0 : 0x40000016 => Type::PPC_RELATIVE,
1734 0 : 0x40000017 => Type::PPC_LOCAL24PC,
1735 0 : 0x4000001a => Type::PPC_REL32,
1736 0 : 0x40000043 => Type::PPC_TLS,
1737 0 : 0x40000044 => Type::PPC_DTPMOD32,
1738 0 : 0x40000045 => Type::PPC_TPREL16,
1739 0 : 0x40000046 => Type::PPC_TPREL16_LO,
1740 0 : 0x40000047 => Type::PPC_TPREL16_HI,
1741 0 : 0x40000048 => Type::PPC_TPREL16_HA,
1742 0 : 0x40000049 => Type::PPC_TPREL32,
1743 0 : 0x4000004a => Type::PPC_DTPREL16,
1744 0 : 0x4000004b => Type::PPC_DTPREL16_LO,
1745 0 : 0x4000004c => Type::PPC_DTPREL16_HI,
1746 0 : 0x4000004d => Type::PPC_DTPREL16_HA,
1747 0 : 0x4000004e => Type::PPC_DTPREL32,
1748 0 : 0x4000004f => Type::PPC_GOT_TLSGD16,
1749 0 : 0x40000050 => Type::PPC_GOT_TLSGD16_LO,
1750 0 : 0x40000051 => Type::PPC_GOT_TLSGD16_HI,
1751 0 : 0x40000052 => Type::PPC_GOT_TLSGD16_HA,
1752 0 : 0x40000053 => Type::PPC_GOT_TLSLD16,
1753 0 : 0x40000054 => Type::PPC_GOT_TLSLD16_LO,
1754 0 : 0x40000055 => Type::PPC_GOT_TLSLD16_HI,
1755 0 : 0x40000056 => Type::PPC_GOT_TLSLD16_HA,
1756 0 : 0x40000057 => Type::PPC_GOT_TPREL16,
1757 0 : 0x40000058 => Type::PPC_GOT_TPREL16_LO,
1758 0 : 0x40000059 => Type::PPC_GOT_TPREL16_HI,
1759 0 : 0x4000005a => Type::PPC_GOT_TPREL16_HA,
1760 0 : 0x4000005b => Type::PPC_GOT_DTPREL16,
1761 0 : 0x4000005c => Type::PPC_GOT_DTPREL16_LO,
1762 0 : 0x4000005d => Type::PPC_GOT_DTPREL16_HI,
1763 0 : 0x4000005e => Type::PPC_GOT_DTPREL16_HA,
1764 0 : 0x4000005f => Type::PPC_TLSGD,
1765 0 : 0x40000060 => Type::PPC_TLSLD,
1766 0 : 0x400000f9 => Type::PPC_REL16,
1767 0 : 0x400000fa => Type::PPC_REL16_LO,
1768 0 : 0x400000fb => Type::PPC_REL16_HI,
1769 0 : 0x400000fc => Type::PPC_REL16_HA,
1770 0 : 0x48000000 => Type::PPC64_NONE,
1771 0 : 0x48000001 => Type::PPC64_ADDR32,
1772 0 : 0x48000002 => Type::PPC64_ADDR24,
1773 0 : 0x48000003 => Type::PPC64_ADDR16,
1774 0 : 0x48000004 => Type::PPC64_ADDR16_LO,
1775 0 : 0x48000005 => Type::PPC64_ADDR16_HI,
1776 0 : 0x48000006 => Type::PPC64_ADDR16_HA,
1777 0 : 0x48000007 => Type::PPC64_ADDR14,
1778 0 : 0x48000008 => Type::PPC64_ADDR14_BRTAKEN,
1779 0 : 0x48000009 => Type::PPC64_ADDR14_BRNTAKEN,
1780 0 : 0x4800000a => Type::PPC64_REL24,
1781 0 : 0x4800000b => Type::PPC64_REL14,
1782 0 : 0x4800000c => Type::PPC64_REL14_BRTAKEN,
1783 0 : 0x4800000d => Type::PPC64_REL14_BRNTAKEN,
1784 0 : 0x4800000e => Type::PPC64_GOT16,
1785 0 : 0x4800000f => Type::PPC64_GOT16_LO,
1786 0 : 0x48000010 => Type::PPC64_GOT16_HI,
1787 0 : 0x48000011 => Type::PPC64_GOT16_HA,
1788 0 : 0x48000015 => Type::PPC64_JMP_SLOT,
1789 0 : 0x48000016 => Type::PPC64_RELATIVE,
1790 0 : 0x4800001a => Type::PPC64_REL32,
1791 0 : 0x48000026 => Type::PPC64_ADDR64,
1792 0 : 0x48000027 => Type::PPC64_ADDR16_HIGHER,
1793 0 : 0x48000028 => Type::PPC64_ADDR16_HIGHERA,
1794 0 : 0x48000029 => Type::PPC64_ADDR16_HIGHEST,
1795 0 : 0x4800002a => Type::PPC64_ADDR16_HIGHESTA,
1796 0 : 0x4800002c => Type::PPC64_REL64,
1797 0 : 0x4800002f => Type::PPC64_TOC16,
1798 0 : 0x48000030 => Type::PPC64_TOC16_LO,
1799 0 : 0x48000031 => Type::PPC64_TOC16_HI,
1800 0 : 0x48000032 => Type::PPC64_TOC16_HA,
1801 0 : 0x48000033 => Type::PPC64_TOC,
1802 0 : 0x48000038 => Type::PPC64_ADDR16_DS,
1803 0 : 0x48000039 => Type::PPC64_ADDR16_LO_DS,
1804 0 : 0x4800003a => Type::PPC64_GOT16_DS,
1805 0 : 0x4800003b => Type::PPC64_GOT16_LO_DS,
1806 0 : 0x4800003f => Type::PPC64_TOC16_DS,
1807 0 : 0x48000040 => Type::PPC64_TOC16_LO_DS,
1808 0 : 0x48000043 => Type::PPC64_TLS,
1809 0 : 0x48000044 => Type::PPC64_DTPMOD64,
1810 0 : 0x48000045 => Type::PPC64_TPREL16,
1811 0 : 0x48000046 => Type::PPC64_TPREL16_LO,
1812 0 : 0x48000047 => Type::PPC64_TPREL16_HI,
1813 0 : 0x48000048 => Type::PPC64_TPREL16_HA,
1814 0 : 0x48000049 => Type::PPC64_TPREL64,
1815 0 : 0x4800004a => Type::PPC64_DTPREL16,
1816 0 : 0x4800004b => Type::PPC64_DTPREL16_LO,
1817 0 : 0x4800004c => Type::PPC64_DTPREL16_HI,
1818 0 : 0x4800004d => Type::PPC64_DTPREL16_HA,
1819 0 : 0x4800004e => Type::PPC64_DTPREL64,
1820 0 : 0x4800004f => Type::PPC64_GOT_TLSGD16,
1821 0 : 0x48000050 => Type::PPC64_GOT_TLSGD16_LO,
1822 0 : 0x48000051 => Type::PPC64_GOT_TLSGD16_HI,
1823 0 : 0x48000052 => Type::PPC64_GOT_TLSGD16_HA,
1824 0 : 0x48000053 => Type::PPC64_GOT_TLSLD16,
1825 0 : 0x48000054 => Type::PPC64_GOT_TLSLD16_LO,
1826 0 : 0x48000055 => Type::PPC64_GOT_TLSLD16_HI,
1827 0 : 0x48000056 => Type::PPC64_GOT_TLSLD16_HA,
1828 0 : 0x48000057 => Type::PPC64_GOT_TPREL16_DS,
1829 0 : 0x48000058 => Type::PPC64_GOT_TPREL16_LO_DS,
1830 0 : 0x48000059 => Type::PPC64_GOT_TPREL16_HI,
1831 0 : 0x4800005a => Type::PPC64_GOT_TPREL16_HA,
1832 0 : 0x4800005b => Type::PPC64_GOT_DTPREL16_DS,
1833 0 : 0x4800005c => Type::PPC64_GOT_DTPREL16_LO_DS,
1834 0 : 0x4800005d => Type::PPC64_GOT_DTPREL16_HI,
1835 0 : 0x4800005e => Type::PPC64_GOT_DTPREL16_HA,
1836 0 : 0x4800005f => Type::PPC64_TPREL16_DS,
1837 0 : 0x48000060 => Type::PPC64_TPREL16_LO_DS,
1838 0 : 0x48000061 => Type::PPC64_TPREL16_HIGHER,
1839 0 : 0x48000062 => Type::PPC64_TPREL16_HIGHERA,
1840 0 : 0x48000063 => Type::PPC64_TPREL16_HIGHEST,
1841 0 : 0x48000064 => Type::PPC64_TPREL16_HIGHESTA,
1842 0 : 0x48000065 => Type::PPC64_DTPREL16_DS,
1843 0 : 0x48000066 => Type::PPC64_DTPREL16_LO_DS,
1844 0 : 0x48000067 => Type::PPC64_DTPREL16_HIGHER,
1845 0 : 0x48000068 => Type::PPC64_DTPREL16_HIGHERA,
1846 0 : 0x48000069 => Type::PPC64_DTPREL16_HIGHEST,
1847 0 : 0x4800006a => Type::PPC64_DTPREL16_HIGHESTA,
1848 0 : 0x4800006b => Type::PPC64_TLSGD,
1849 0 : 0x4800006c => Type::PPC64_TLSLD,
1850 0 : 0x480000f9 => Type::PPC64_REL16,
1851 0 : 0x480000fa => Type::PPC64_REL16_LO,
1852 0 : 0x480000fb => Type::PPC64_REL16_HI,
1853 0 : 0x480000fc => Type::PPC64_REL16_HA,
1854 0 : 0x50000000 => Type::SPARC_NONE,
1855 0 : 0x50000001 => Type::SPARC_8,
1856 0 : 0x50000002 => Type::SPARC_16,
1857 0 : 0x50000003 => Type::SPARC_32,
1858 0 : 0x50000004 => Type::SPARC_DISP8,
1859 0 : 0x50000005 => Type::SPARC_DISP16,
1860 0 : 0x50000006 => Type::SPARC_DISP32,
1861 0 : 0x50000007 => Type::SPARC_WDISP30,
1862 0 : 0x50000008 => Type::SPARC_WDISP22,
1863 0 : 0x50000009 => Type::SPARC_HI22,
1864 0 : 0x5000000a => Type::SPARC_22,
1865 0 : 0x5000000b => Type::SPARC_13,
1866 0 : 0x5000000c => Type::SPARC_LO10,
1867 0 : 0x5000000d => Type::SPARC_GOT10,
1868 0 : 0x5000000e => Type::SPARC_GOT13,
1869 0 : 0x5000000f => Type::SPARC_GOT22,
1870 0 : 0x50000010 => Type::SPARC_PC10,
1871 0 : 0x50000011 => Type::SPARC_PC22,
1872 0 : 0x50000012 => Type::SPARC_WPLT30,
1873 0 : 0x50000013 => Type::SPARC_COPY,
1874 0 : 0x50000014 => Type::SPARC_GLOB_DAT,
1875 0 : 0x50000015 => Type::SPARC_JMP_SLOT,
1876 0 : 0x50000016 => Type::SPARC_RELATIVE,
1877 0 : 0x50000017 => Type::SPARC_UA32,
1878 0 : 0x50000018 => Type::SPARC_PLT32,
1879 0 : 0x50000019 => Type::SPARC_HIPLT22,
1880 0 : 0x5000001a => Type::SPARC_LOPLT10,
1881 0 : 0x5000001b => Type::SPARC_PCPLT32,
1882 0 : 0x5000001c => Type::SPARC_PCPLT22,
1883 0 : 0x5000001d => Type::SPARC_PCPLT10,
1884 0 : 0x5000001e => Type::SPARC_10,
1885 0 : 0x5000001f => Type::SPARC_11,
1886 0 : 0x50000020 => Type::SPARC_64,
1887 0 : 0x50000021 => Type::SPARC_OLO10,
1888 0 : 0x50000022 => Type::SPARC_HH22,
1889 0 : 0x50000023 => Type::SPARC_HM10,
1890 0 : 0x50000024 => Type::SPARC_LM22,
1891 0 : 0x50000025 => Type::SPARC_PC_HH22,
1892 0 : 0x50000026 => Type::SPARC_PC_HM10,
1893 0 : 0x50000027 => Type::SPARC_PC_LM22,
1894 0 : 0x50000028 => Type::SPARC_WDISP16,
1895 0 : 0x50000029 => Type::SPARC_WDISP19,
1896 0 : 0x5000002b => Type::SPARC_7,
1897 0 : 0x5000002c => Type::SPARC_5,
1898 0 : 0x5000002d => Type::SPARC_6,
1899 0 : 0x5000002e => Type::SPARC_DISP64,
1900 0 : 0x5000002f => Type::SPARC_PLT64,
1901 0 : 0x50000030 => Type::SPARC_HIX22,
1902 0 : 0x50000031 => Type::SPARC_LOX10,
1903 0 : 0x50000032 => Type::SPARC_H44,
1904 0 : 0x50000033 => Type::SPARC_M44,
1905 0 : 0x50000034 => Type::SPARC_L44,
1906 0 : 0x50000035 => Type::SPARC_REGISTER,
1907 0 : 0x50000036 => Type::SPARC_UA64,
1908 0 : 0x50000037 => Type::SPARC_UA16,
1909 0 : 0x50000038 => Type::SPARC_TLS_GD_HI22,
1910 0 : 0x50000039 => Type::SPARC_TLS_GD_LO10,
1911 0 : 0x5000003a => Type::SPARC_TLS_GD_ADD,
1912 0 : 0x5000003b => Type::SPARC_TLS_GD_CALL,
1913 0 : 0x5000003c => Type::SPARC_TLS_LDM_HI22,
1914 0 : 0x5000003d => Type::SPARC_TLS_LDM_LO10,
1915 0 : 0x5000003e => Type::SPARC_TLS_LDM_ADD,
1916 0 : 0x5000003f => Type::SPARC_TLS_LDM_CALL,
1917 0 : 0x50000040 => Type::SPARC_TLS_LDO_HIX22,
1918 0 : 0x50000041 => Type::SPARC_TLS_LDO_LOX10,
1919 0 : 0x50000042 => Type::SPARC_TLS_LDO_ADD,
1920 0 : 0x50000043 => Type::SPARC_TLS_IE_HI22,
1921 0 : 0x50000044 => Type::SPARC_TLS_IE_LO10,
1922 0 : 0x50000045 => Type::SPARC_TLS_IE_LD,
1923 0 : 0x50000046 => Type::SPARC_TLS_IE_LDX,
1924 0 : 0x50000047 => Type::SPARC_TLS_IE_ADD,
1925 0 : 0x50000048 => Type::SPARC_TLS_LE_HIX22,
1926 0 : 0x50000049 => Type::SPARC_TLS_LE_LOX10,
1927 0 : 0x5000004a => Type::SPARC_TLS_DTPMOD32,
1928 0 : 0x5000004b => Type::SPARC_TLS_DTPMOD64,
1929 0 : 0x5000004c => Type::SPARC_TLS_DTPOFF32,
1930 0 : 0x5000004d => Type::SPARC_TLS_DTPOFF64,
1931 0 : 0x5000004e => Type::SPARC_TLS_TPOFF32,
1932 0 : 0x5000004f => Type::SPARC_TLS_TPOFF64,
1933 0 : 0x50000050 => Type::SPARC_GOTDATA_HIX22,
1934 0 : 0x50000051 => Type::SPARC_GOTDATA_LOX10,
1935 0 : 0x50000052 => Type::SPARC_GOTDATA_OP_HIX22,
1936 0 : 0x50000053 => Type::SPARC_GOTDATA_OP_LOX10,
1937 0 : 0x50000054 => Type::SPARC_GOTDATA_OP,
1938 0 : 0x58000000 => Type::SYSZ_NONE,
1939 0 : 0x58000001 => Type::SYSZ_8,
1940 0 : 0x58000002 => Type::SYSZ_12,
1941 0 : 0x58000003 => Type::SYSZ_16,
1942 0 : 0x58000004 => Type::SYSZ_32,
1943 0 : 0x58000005 => Type::SYSZ_PC32,
1944 0 : 0x58000006 => Type::SYSZ_GOT12,
1945 0 : 0x58000007 => Type::SYSZ_GOT32,
1946 0 : 0x58000008 => Type::SYSZ_PLT32,
1947 0 : 0x58000009 => Type::SYSZ_COPY,
1948 0 : 0x5800000a => Type::SYSZ_GLOB_DAT,
1949 0 : 0x5800000b => Type::SYSZ_JMP_SLOT,
1950 0 : 0x5800000c => Type::SYSZ_RELATIVE,
1951 0 : 0x5800000d => Type::SYSZ_GOTOFF,
1952 0 : 0x5800000e => Type::SYSZ_GOTPC,
1953 0 : 0x5800000f => Type::SYSZ_GOT16,
1954 0 : 0x58000010 => Type::SYSZ_PC16,
1955 0 : 0x58000011 => Type::SYSZ_PC16DBL,
1956 0 : 0x58000012 => Type::SYSZ_PLT16DBL,
1957 0 : 0x58000013 => Type::SYSZ_PC32DBL,
1958 0 : 0x58000014 => Type::SYSZ_PLT32DBL,
1959 0 : 0x58000015 => Type::SYSZ_GOTPCDBL,
1960 0 : 0x58000016 => Type::SYSZ_64,
1961 0 : 0x58000017 => Type::SYSZ_PC64,
1962 0 : 0x58000018 => Type::SYSZ_GOT64,
1963 0 : 0x58000019 => Type::SYSZ_PLT64,
1964 0 : 0x5800001a => Type::SYSZ_GOTENT,
1965 0 : 0x5800001b => Type::SYSZ_GOTOFF16,
1966 0 : 0x5800001c => Type::SYSZ_GOTOFF64,
1967 0 : 0x5800001d => Type::SYSZ_GOTPLT12,
1968 0 : 0x5800001e => Type::SYSZ_GOTPLT16,
1969 0 : 0x5800001f => Type::SYSZ_GOTPLT32,
1970 0 : 0x58000020 => Type::SYSZ_GOTPLT64,
1971 0 : 0x58000021 => Type::SYSZ_GOTPLTENT,
1972 0 : 0x58000022 => Type::SYSZ_PLTOFF16,
1973 0 : 0x58000023 => Type::SYSZ_PLTOFF32,
1974 0 : 0x58000024 => Type::SYSZ_PLTOFF64,
1975 0 : 0x58000025 => Type::SYSZ_TLS_LOAD,
1976 0 : 0x58000026 => Type::SYSZ_TLS_GDCALL,
1977 0 : 0x58000027 => Type::SYSZ_TLS_LDCALL,
1978 0 : 0x58000028 => Type::SYSZ_TLS_GD32,
1979 0 : 0x58000029 => Type::SYSZ_TLS_GD64,
1980 0 : 0x5800002a => Type::SYSZ_TLS_GOTIE12,
1981 0 : 0x5800002b => Type::SYSZ_TLS_GOTIE32,
1982 0 : 0x5800002c => Type::SYSZ_TLS_GOTIE64,
1983 0 : 0x5800002d => Type::SYSZ_TLS_LDM32,
1984 0 : 0x5800002e => Type::SYSZ_TLS_LDM64,
1985 0 : 0x5800002f => Type::SYSZ_TLS_IE32,
1986 0 : 0x58000030 => Type::SYSZ_TLS_IE64,
1987 0 : 0x58000031 => Type::SYSZ_TLS_IEENT,
1988 0 : 0x58000032 => Type::SYSZ_TLS_LE32,
1989 0 : 0x58000033 => Type::SYSZ_TLS_LE64,
1990 0 : 0x58000034 => Type::SYSZ_TLS_LDO32,
1991 0 : 0x58000035 => Type::SYSZ_TLS_LDO64,
1992 0 : 0x58000036 => Type::SYSZ_TLS_DTPMOD,
1993 0 : 0x58000037 => Type::SYSZ_TLS_DTPOFF,
1994 0 : 0x58000038 => Type::SYSZ_TLS_TPOFF,
1995 0 : 0x58000039 => Type::SYSZ_20,
1996 0 : 0x5800003a => Type::SYSZ_GOT20,
1997 0 : 0x5800003b => Type::SYSZ_GOTPLT20,
1998 0 : 0x5800003c => Type::SYSZ_TLS_GOTIE20,
1999 0 : 0x5800003d => Type::SYSZ_IRELATIVE,
2000 0 : 0x60000000 => Type::RISCV_NONE,
2001 0 : 0x60000001 => Type::RISCV_32,
2002 0 : 0x60000002 => Type::RISCV_64,
2003 0 : 0x60000003 => Type::RISCV_RELATIVE,
2004 0 : 0x60000004 => Type::RISCV_COPY,
2005 0 : 0x60000005 => Type::RISCV_JUMP_SLOT,
2006 0 : 0x60000006 => Type::RISCV_TLS_DTPMOD32,
2007 0 : 0x60000007 => Type::RISCV_TLS_DTPMOD64,
2008 0 : 0x60000008 => Type::RISCV_TLS_DTPREL32,
2009 0 : 0x60000009 => Type::RISCV_TLS_DTPREL64,
2010 0 : 0x6000000a => Type::RISCV_TLS_TPREL32,
2011 0 : 0x6000000b => Type::RISCV_TLS_TPREL64,
2012 0 : 0x6000000c => Type::RISCV_TLSDESC,
2013 0 : 0x60000010 => Type::RISCV_BRANCH,
2014 0 : 0x60000011 => Type::RISCV_JAL,
2015 0 : 0x60000012 => Type::RISCV_CALL,
2016 0 : 0x60000013 => Type::RISCV_CALL_PLT,
2017 0 : 0x60000014 => Type::RISCV_GOT_HI20,
2018 0 : 0x60000015 => Type::RISCV_TLS_GOT_HI20,
2019 0 : 0x60000016 => Type::RISCV_TLS_GD_HI20,
2020 0 : 0x60000017 => Type::RISCV_PCREL_HI20,
2021 0 : 0x60000018 => Type::RISCV_PCREL_LO12_I,
2022 0 : 0x60000019 => Type::RISCV_PCREL_LO12_S,
2023 0 : 0x6000001a => Type::RISCV_HI20,
2024 0 : 0x6000001b => Type::RISCV_LO12_I,
2025 0 : 0x6000001c => Type::RISCV_LO12_S,
2026 0 : 0x6000001d => Type::RISCV_TPREL_HI20,
2027 0 : 0x6000001e => Type::RISCV_TPREL_LO12_I,
2028 0 : 0x6000001f => Type::RISCV_TPREL_LO12_S,
2029 0 : 0x60000020 => Type::RISCV_TPREL_ADD,
2030 0 : 0x60000021 => Type::RISCV_ADD8,
2031 0 : 0x60000022 => Type::RISCV_ADD16,
2032 0 : 0x60000023 => Type::RISCV_ADD32,
2033 0 : 0x60000024 => Type::RISCV_ADD64,
2034 0 : 0x60000025 => Type::RISCV_SUB8,
2035 0 : 0x60000026 => Type::RISCV_SUB16,
2036 0 : 0x60000027 => Type::RISCV_SUB32,
2037 0 : 0x60000028 => Type::RISCV_SUB64,
2038 0 : 0x60000029 => Type::RISCV_GOT32_PCREL,
2039 0 : 0x6000002b => Type::RISCV_ALIGN,
2040 0 : 0x6000002c => Type::RISCV_RVC_BRANCH,
2041 0 : 0x6000002d => Type::RISCV_RVC_JUMP,
2042 0 : 0x6000002e => Type::RISCV_RVC_LUI,
2043 0 : 0x60000033 => Type::RISCV_RELAX,
2044 0 : 0x60000034 => Type::RISCV_SUB6,
2045 0 : 0x60000035 => Type::RISCV_SET6,
2046 0 : 0x60000036 => Type::RISCV_SET8,
2047 0 : 0x60000037 => Type::RISCV_SET16,
2048 0 : 0x60000038 => Type::RISCV_SET32,
2049 0 : 0x60000039 => Type::RISCV_32_PCREL,
2050 0 : 0x6000003a => Type::RISCV_IRELATIVE,
2051 0 : 0x6000003b => Type::RISCV_PLT32,
2052 0 : 0x6000003c => Type::RISCV_SET_ULEB128,
2053 0 : 0x6000003d => Type::RISCV_SUB_ULEB128,
2054 0 : 0x6000003e => Type::RISCV_TLSDESC_HI20,
2055 0 : 0x6000003f => Type::RISCV_TLSDESC_LOAD_LO12,
2056 0 : 0x60000040 => Type::RISCV_TLSDESC_ADD_LO12,
2057 0 : 0x60000041 => Type::RISCV_TLSDESC_CALL,
2058 0 : 0x68000000 => Type::BPF_NONE,
2059 0 : 0x68000001 => Type::BPF_64_64,
2060 0 : 0x68000002 => Type::BPF_64_ABS64,
2061 0 : 0x68000003 => Type::BPF_64_ABS32,
2062 0 : 0x68000004 => Type::BPF_64_NODYLD32,
2063 0 : 0x6800000a => Type::BPF_64_32,
2064 0 : _ => Type::UNKNOWN(value),
2065 :
2066 : }
2067 16200 : }
2068 : }
2069 :
2070 : impl From<Type> for u32 {
2071 0 : fn from(value: Type) -> u32 {
2072 0 : match value {
2073 0 : Type::X86_64_NONE => 0x08000000,
2074 0 : Type::X86_64_64 => 0x08000001,
2075 0 : Type::X86_64_PC32 => 0x08000002,
2076 0 : Type::X86_64_GOT32 => 0x08000003,
2077 0 : Type::X86_64_PLT32 => 0x08000004,
2078 0 : Type::X86_64_COPY => 0x08000005,
2079 0 : Type::X86_64_GLOB_DAT => 0x08000006,
2080 0 : Type::X86_64_JUMP_SLOT => 0x08000007,
2081 0 : Type::X86_64_RELATIVE => 0x08000008,
2082 0 : Type::X86_64_GOTPCREL => 0x08000009,
2083 0 : Type::X86_64_32 => 0x0800000a,
2084 0 : Type::X86_64_32S => 0x0800000b,
2085 0 : Type::X86_64_16 => 0x0800000c,
2086 0 : Type::X86_64_PC16 => 0x0800000d,
2087 0 : Type::X86_64_8 => 0x0800000e,
2088 0 : Type::X86_64_PC8 => 0x0800000f,
2089 0 : Type::X86_64_DTPMOD64 => 0x08000010,
2090 0 : Type::X86_64_DTPOFF64 => 0x08000011,
2091 0 : Type::X86_64_TPOFF64 => 0x08000012,
2092 0 : Type::X86_64_TLSGD => 0x08000013,
2093 0 : Type::X86_64_TLSLD => 0x08000014,
2094 0 : Type::X86_64_DTPOFF32 => 0x08000015,
2095 0 : Type::X86_64_GOTTPOFF => 0x08000016,
2096 0 : Type::X86_64_TPOFF32 => 0x08000017,
2097 0 : Type::X86_64_PC64 => 0x08000018,
2098 0 : Type::X86_64_GOTOFF64 => 0x08000019,
2099 0 : Type::X86_64_GOTPC32 => 0x0800001a,
2100 0 : Type::X86_64_GOT64 => 0x0800001b,
2101 0 : Type::X86_64_GOTPCREL64 => 0x0800001c,
2102 0 : Type::X86_64_GOTPC64 => 0x0800001d,
2103 0 : Type::X86_64_GOTPLT64 => 0x0800001e,
2104 0 : Type::X86_64_PLTOFF64 => 0x0800001f,
2105 0 : Type::X86_64_SIZE32 => 0x08000020,
2106 0 : Type::X86_64_SIZE64 => 0x08000021,
2107 0 : Type::X86_64_GOTPC32_TLSDESC => 0x08000022,
2108 0 : Type::X86_64_TLSDESC_CALL => 0x08000023,
2109 0 : Type::X86_64_TLSDESC => 0x08000024,
2110 0 : Type::X86_64_IRELATIVE => 0x08000025,
2111 0 : Type::X86_64_RELATIVE64 => 0x08000026,
2112 0 : Type::X86_64_PC32_BND => 0x08000027,
2113 0 : Type::X86_64_PLT32_BND => 0x08000028,
2114 0 : Type::X86_64_GOTPCRELX => 0x08000029,
2115 0 : Type::X86_64_REX_GOTPCRELX => 0x0800002a,
2116 0 : Type::AARCH64_NONE => 0x10000000,
2117 0 : Type::AARCH64_ABS64 => 0x10000101,
2118 0 : Type::AARCH64_ABS32 => 0x10000102,
2119 0 : Type::AARCH64_ABS16 => 0x10000103,
2120 0 : Type::AARCH64_PREL64 => 0x10000104,
2121 0 : Type::AARCH64_PREL32 => 0x10000105,
2122 0 : Type::AARCH64_PREL16 => 0x10000106,
2123 0 : Type::AARCH64_MOVW_UABS_G0 => 0x10000107,
2124 0 : Type::AARCH64_MOVW_UABS_G0_NC => 0x10000108,
2125 0 : Type::AARCH64_MOVW_UABS_G1 => 0x10000109,
2126 0 : Type::AARCH64_MOVW_UABS_G1_NC => 0x1000010a,
2127 0 : Type::AARCH64_MOVW_UABS_G2 => 0x1000010b,
2128 0 : Type::AARCH64_MOVW_UABS_G2_NC => 0x1000010c,
2129 0 : Type::AARCH64_MOVW_UABS_G3 => 0x1000010d,
2130 0 : Type::AARCH64_MOVW_SABS_G0 => 0x1000010e,
2131 0 : Type::AARCH64_MOVW_SABS_G1 => 0x1000010f,
2132 0 : Type::AARCH64_MOVW_SABS_G2 => 0x10000110,
2133 0 : Type::AARCH64_LD_PREL_LO19 => 0x10000111,
2134 0 : Type::AARCH64_ADR_PREL_LO21 => 0x10000112,
2135 0 : Type::AARCH64_ADR_PREL_PG_HI21 => 0x10000113,
2136 0 : Type::AARCH64_ADR_PREL_PG_HI21_NC => 0x10000114,
2137 0 : Type::AARCH64_ADD_ABS_LO12_NC => 0x10000115,
2138 0 : Type::AARCH64_LDST8_ABS_LO12_NC => 0x10000116,
2139 0 : Type::AARCH64_TSTBR14 => 0x10000117,
2140 0 : Type::AARCH64_CONDBR19 => 0x10000118,
2141 0 : Type::AARCH64_JUMP26 => 0x1000011a,
2142 0 : Type::AARCH64_CALL26 => 0x1000011b,
2143 0 : Type::AARCH64_LDST16_ABS_LO12_NC => 0x1000011c,
2144 0 : Type::AARCH64_LDST32_ABS_LO12_NC => 0x1000011d,
2145 0 : Type::AARCH64_LDST64_ABS_LO12_NC => 0x1000011e,
2146 0 : Type::AARCH64_MOVW_PREL_G0 => 0x1000011f,
2147 0 : Type::AARCH64_MOVW_PREL_G0_NC => 0x10000120,
2148 0 : Type::AARCH64_MOVW_PREL_G1 => 0x10000121,
2149 0 : Type::AARCH64_MOVW_PREL_G1_NC => 0x10000122,
2150 0 : Type::AARCH64_MOVW_PREL_G2 => 0x10000123,
2151 0 : Type::AARCH64_MOVW_PREL_G2_NC => 0x10000124,
2152 0 : Type::AARCH64_MOVW_PREL_G3 => 0x10000125,
2153 0 : Type::AARCH64_LDST128_ABS_LO12_NC => 0x1000012b,
2154 0 : Type::AARCH64_MOVW_GOTOFF_G0 => 0x1000012c,
2155 0 : Type::AARCH64_MOVW_GOTOFF_G0_NC => 0x1000012d,
2156 0 : Type::AARCH64_MOVW_GOTOFF_G1 => 0x1000012e,
2157 0 : Type::AARCH64_MOVW_GOTOFF_G1_NC => 0x1000012f,
2158 0 : Type::AARCH64_MOVW_GOTOFF_G2 => 0x10000130,
2159 0 : Type::AARCH64_MOVW_GOTOFF_G2_NC => 0x10000131,
2160 0 : Type::AARCH64_MOVW_GOTOFF_G3 => 0x10000132,
2161 0 : Type::AARCH64_GOTREL64 => 0x10000133,
2162 0 : Type::AARCH64_GOTREL32 => 0x10000134,
2163 0 : Type::AARCH64_GOT_LD_PREL19 => 0x10000135,
2164 0 : Type::AARCH64_LD64_GOTOFF_LO15 => 0x10000136,
2165 0 : Type::AARCH64_ADR_GOT_PAGE => 0x10000137,
2166 0 : Type::AARCH64_LD64_GOT_LO12_NC => 0x10000138,
2167 0 : Type::AARCH64_LD64_GOTPAGE_LO15 => 0x10000139,
2168 0 : Type::AARCH64_TLSGD_ADR_PREL21 => 0x10000200,
2169 0 : Type::AARCH64_TLSGD_ADR_PAGE21 => 0x10000201,
2170 0 : Type::AARCH64_TLSGD_ADD_LO12_NC => 0x10000202,
2171 0 : Type::AARCH64_TLSGD_MOVW_G1 => 0x10000203,
2172 0 : Type::AARCH64_TLSGD_MOVW_G0_NC => 0x10000204,
2173 0 : Type::AARCH64_TLSLD_ADR_PREL21 => 0x10000205,
2174 0 : Type::AARCH64_TLSLD_ADR_PAGE21 => 0x10000206,
2175 0 : Type::AARCH64_TLSLD_ADD_LO12_NC => 0x10000207,
2176 0 : Type::AARCH64_TLSLD_MOVW_G1 => 0x10000208,
2177 0 : Type::AARCH64_TLSLD_MOVW_G0_NC => 0x10000209,
2178 0 : Type::AARCH64_TLSLD_LD_PREL19 => 0x1000020a,
2179 0 : Type::AARCH64_TLSLD_MOVW_DTPREL_G2 => 0x1000020b,
2180 0 : Type::AARCH64_TLSLD_MOVW_DTPREL_G1 => 0x1000020c,
2181 0 : Type::AARCH64_TLSLD_MOVW_DTPREL_G1_NC => 0x1000020d,
2182 0 : Type::AARCH64_TLSLD_MOVW_DTPREL_G0 => 0x1000020e,
2183 0 : Type::AARCH64_TLSLD_MOVW_DTPREL_G0_NC => 0x1000020f,
2184 0 : Type::AARCH64_TLSLD_ADD_DTPREL_HI12 => 0x10000210,
2185 0 : Type::AARCH64_TLSLD_ADD_DTPREL_LO12 => 0x10000211,
2186 0 : Type::AARCH64_TLSLD_ADD_DTPREL_LO12_NC => 0x10000212,
2187 0 : Type::AARCH64_TLSLD_LDST8_DTPREL_LO12 => 0x10000213,
2188 0 : Type::AARCH64_TLSLD_LDST8_DTPREL_LO12_NC => 0x10000214,
2189 0 : Type::AARCH64_TLSLD_LDST16_DTPREL_LO12 => 0x10000215,
2190 0 : Type::AARCH64_TLSLD_LDST16_DTPREL_LO12_NC => 0x10000216,
2191 0 : Type::AARCH64_TLSLD_LDST32_DTPREL_LO12 => 0x10000217,
2192 0 : Type::AARCH64_TLSLD_LDST32_DTPREL_LO12_NC => 0x10000218,
2193 0 : Type::AARCH64_TLSLD_LDST64_DTPREL_LO12 => 0x10000219,
2194 0 : Type::AARCH64_TLSLD_LDST64_DTPREL_LO12_NC => 0x1000021a,
2195 0 : Type::AARCH64_TLSIE_MOVW_GOTTPREL_G1 => 0x1000021b,
2196 0 : Type::AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC => 0x1000021c,
2197 0 : Type::AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 => 0x1000021d,
2198 0 : Type::AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC => 0x1000021e,
2199 0 : Type::AARCH64_TLSIE_LD_GOTTPREL_PREL19 => 0x1000021f,
2200 0 : Type::AARCH64_TLSLE_MOVW_TPREL_G2 => 0x10000220,
2201 0 : Type::AARCH64_TLSLE_MOVW_TPREL_G1 => 0x10000221,
2202 0 : Type::AARCH64_TLSLE_MOVW_TPREL_G1_NC => 0x10000222,
2203 0 : Type::AARCH64_TLSLE_MOVW_TPREL_G0 => 0x10000223,
2204 0 : Type::AARCH64_TLSLE_MOVW_TPREL_G0_NC => 0x10000224,
2205 0 : Type::AARCH64_TLSLE_ADD_TPREL_HI12 => 0x10000225,
2206 0 : Type::AARCH64_TLSLE_ADD_TPREL_LO12 => 0x10000226,
2207 0 : Type::AARCH64_TLSLE_ADD_TPREL_LO12_NC => 0x10000227,
2208 0 : Type::AARCH64_TLSLE_LDST8_TPREL_LO12 => 0x10000228,
2209 0 : Type::AARCH64_TLSLE_LDST8_TPREL_LO12_NC => 0x10000229,
2210 0 : Type::AARCH64_TLSLE_LDST16_TPREL_LO12 => 0x1000022a,
2211 0 : Type::AARCH64_TLSLE_LDST16_TPREL_LO12_NC => 0x1000022b,
2212 0 : Type::AARCH64_TLSLE_LDST32_TPREL_LO12 => 0x1000022c,
2213 0 : Type::AARCH64_TLSLE_LDST32_TPREL_LO12_NC => 0x1000022d,
2214 0 : Type::AARCH64_TLSLE_LDST64_TPREL_LO12 => 0x1000022e,
2215 0 : Type::AARCH64_TLSLE_LDST64_TPREL_LO12_NC => 0x1000022f,
2216 0 : Type::AARCH64_TLSDESC_LD_PREL19 => 0x10000230,
2217 0 : Type::AARCH64_TLSDESC_ADR_PREL21 => 0x10000231,
2218 0 : Type::AARCH64_TLSDESC_ADR_PAGE21 => 0x10000232,
2219 0 : Type::AARCH64_TLSDESC_LD64_LO12_NC => 0x10000233,
2220 0 : Type::AARCH64_TLSDESC_ADD_LO12_NC => 0x10000234,
2221 0 : Type::AARCH64_TLSDESC_OFF_G1 => 0x10000235,
2222 0 : Type::AARCH64_TLSDESC_OFF_G0_NC => 0x10000236,
2223 0 : Type::AARCH64_TLSDESC_LDR => 0x10000237,
2224 0 : Type::AARCH64_TLSDESC_ADD => 0x10000238,
2225 0 : Type::AARCH64_TLSDESC_CALL => 0x10000239,
2226 0 : Type::AARCH64_TLSLE_LDST128_TPREL_LO12 => 0x1000023a,
2227 0 : Type::AARCH64_TLSLE_LDST128_TPREL_LO12_NC => 0x1000023b,
2228 0 : Type::AARCH64_TLSLD_LDST128_DTPREL_LO12 => 0x1000023c,
2229 0 : Type::AARCH64_TLSLD_LDST128_DTPREL_LO12_NC => 0x1000023d,
2230 0 : Type::AARCH64_COPY => 0x10000400,
2231 0 : Type::AARCH64_GLOB_DAT => 0x10000401,
2232 0 : Type::AARCH64_JUMP_SLOT => 0x10000402,
2233 0 : Type::AARCH64_RELATIVE => 0x10000403,
2234 0 : Type::AARCH64_TLS_DTPREL64 => 0x10000404,
2235 0 : Type::AARCH64_TLS_DTPMOD64 => 0x10000405,
2236 0 : Type::AARCH64_TLS_TPREL64 => 0x10000406,
2237 0 : Type::AARCH64_TLSDESC => 0x10000407,
2238 0 : Type::AARCH64_IRELATIVE => 0x10000408,
2239 0 : Type::ARM_NONE => 0x18000000,
2240 0 : Type::ARM_PC24 => 0x18000001,
2241 0 : Type::ARM_ABS32 => 0x18000002,
2242 0 : Type::ARM_REL32 => 0x18000003,
2243 0 : Type::ARM_LDR_PC_G0 => 0x18000004,
2244 0 : Type::ARM_ABS16 => 0x18000005,
2245 0 : Type::ARM_ABS12 => 0x18000006,
2246 0 : Type::ARM_THM_ABS5 => 0x18000007,
2247 0 : Type::ARM_ABS8 => 0x18000008,
2248 0 : Type::ARM_SBREL32 => 0x18000009,
2249 0 : Type::ARM_THM_CALL => 0x1800000a,
2250 0 : Type::ARM_THM_PC8 => 0x1800000b,
2251 0 : Type::ARM_BREL_ADJ => 0x1800000c,
2252 0 : Type::ARM_TLS_DESC => 0x1800000d,
2253 0 : Type::ARM_THM_SWI8 => 0x1800000e,
2254 0 : Type::ARM_XPC25 => 0x1800000f,
2255 0 : Type::ARM_THM_XPC22 => 0x18000010,
2256 0 : Type::ARM_TLS_DTPMOD32 => 0x18000011,
2257 0 : Type::ARM_TLS_DTPOFF32 => 0x18000012,
2258 0 : Type::ARM_TLS_TPOFF32 => 0x18000013,
2259 0 : Type::ARM_COPY => 0x18000014,
2260 0 : Type::ARM_GLOB_DAT => 0x18000015,
2261 0 : Type::ARM_JUMP_SLOT => 0x18000016,
2262 0 : Type::ARM_RELATIVE => 0x18000017,
2263 0 : Type::ARM_GOTOFF32 => 0x18000018,
2264 0 : Type::ARM_BASE_PREL => 0x18000019,
2265 0 : Type::ARM_GOT_BREL => 0x1800001a,
2266 0 : Type::ARM_PLT32 => 0x1800001b,
2267 0 : Type::ARM_CALL => 0x1800001c,
2268 0 : Type::ARM_JUMP24 => 0x1800001d,
2269 0 : Type::ARM_THM_JUMP24 => 0x1800001e,
2270 0 : Type::ARM_BASE_ABS => 0x1800001f,
2271 0 : Type::ARM_ALU_PCREL_7_0 => 0x18000020,
2272 0 : Type::ARM_ALU_PCREL_15_8 => 0x18000021,
2273 0 : Type::ARM_ALU_PCREL_23_15 => 0x18000022,
2274 0 : Type::ARM_LDR_SBREL_11_0_NC => 0x18000023,
2275 0 : Type::ARM_ALU_SBREL_19_12_NC => 0x18000024,
2276 0 : Type::ARM_ALU_SBREL_27_20_CK => 0x18000025,
2277 0 : Type::ARM_TARGET1 => 0x18000026,
2278 0 : Type::ARM_SBREL31 => 0x18000027,
2279 0 : Type::ARM_V4BX => 0x18000028,
2280 0 : Type::ARM_TARGET2 => 0x18000029,
2281 0 : Type::ARM_PREL31 => 0x1800002a,
2282 0 : Type::ARM_MOVW_ABS_NC => 0x1800002b,
2283 0 : Type::ARM_MOVT_ABS => 0x1800002c,
2284 0 : Type::ARM_MOVW_PREL_NC => 0x1800002d,
2285 0 : Type::ARM_MOVT_PREL => 0x1800002e,
2286 0 : Type::ARM_THM_MOVW_ABS_NC => 0x1800002f,
2287 0 : Type::ARM_THM_MOVT_ABS => 0x18000030,
2288 0 : Type::ARM_THM_MOVW_PREL_NC => 0x18000031,
2289 0 : Type::ARM_THM_MOVT_PREL => 0x18000032,
2290 0 : Type::ARM_THM_JUMP19 => 0x18000033,
2291 0 : Type::ARM_THM_JUMP6 => 0x18000034,
2292 0 : Type::ARM_THM_ALU_PREL_11_0 => 0x18000035,
2293 0 : Type::ARM_THM_PC12 => 0x18000036,
2294 0 : Type::ARM_ABS32_NOI => 0x18000037,
2295 0 : Type::ARM_REL32_NOI => 0x18000038,
2296 0 : Type::ARM_ALU_PC_G0_NC => 0x18000039,
2297 0 : Type::ARM_ALU_PC_G0 => 0x1800003a,
2298 0 : Type::ARM_ALU_PC_G1_NC => 0x1800003b,
2299 0 : Type::ARM_ALU_PC_G1 => 0x1800003c,
2300 0 : Type::ARM_ALU_PC_G2 => 0x1800003d,
2301 0 : Type::ARM_LDR_PC_G1 => 0x1800003e,
2302 0 : Type::ARM_LDR_PC_G2 => 0x1800003f,
2303 0 : Type::ARM_LDRS_PC_G0 => 0x18000040,
2304 0 : Type::ARM_LDRS_PC_G1 => 0x18000041,
2305 0 : Type::ARM_LDRS_PC_G2 => 0x18000042,
2306 0 : Type::ARM_LDC_PC_G0 => 0x18000043,
2307 0 : Type::ARM_LDC_PC_G1 => 0x18000044,
2308 0 : Type::ARM_LDC_PC_G2 => 0x18000045,
2309 0 : Type::ARM_ALU_SB_G0_NC => 0x18000046,
2310 0 : Type::ARM_ALU_SB_G0 => 0x18000047,
2311 0 : Type::ARM_ALU_SB_G1_NC => 0x18000048,
2312 0 : Type::ARM_ALU_SB_G1 => 0x18000049,
2313 0 : Type::ARM_ALU_SB_G2 => 0x1800004a,
2314 0 : Type::ARM_LDR_SB_G0 => 0x1800004b,
2315 0 : Type::ARM_LDR_SB_G1 => 0x1800004c,
2316 0 : Type::ARM_LDR_SB_G2 => 0x1800004d,
2317 0 : Type::ARM_LDRS_SB_G0 => 0x1800004e,
2318 0 : Type::ARM_LDRS_SB_G1 => 0x1800004f,
2319 0 : Type::ARM_LDRS_SB_G2 => 0x18000050,
2320 0 : Type::ARM_LDC_SB_G0 => 0x18000051,
2321 0 : Type::ARM_LDC_SB_G1 => 0x18000052,
2322 0 : Type::ARM_LDC_SB_G2 => 0x18000053,
2323 0 : Type::ARM_MOVW_BREL_NC => 0x18000054,
2324 0 : Type::ARM_MOVT_BREL => 0x18000055,
2325 0 : Type::ARM_MOVW_BREL => 0x18000056,
2326 0 : Type::ARM_THM_MOVW_BREL_NC => 0x18000057,
2327 0 : Type::ARM_THM_MOVT_BREL => 0x18000058,
2328 0 : Type::ARM_THM_MOVW_BREL => 0x18000059,
2329 0 : Type::ARM_TLS_GOTDESC => 0x1800005a,
2330 0 : Type::ARM_TLS_CALL => 0x1800005b,
2331 0 : Type::ARM_TLS_DESCSEQ => 0x1800005c,
2332 0 : Type::ARM_THM_TLS_CALL => 0x1800005d,
2333 0 : Type::ARM_PLT32_ABS => 0x1800005e,
2334 0 : Type::ARM_GOT_ABS => 0x1800005f,
2335 0 : Type::ARM_GOT_PREL => 0x18000060,
2336 0 : Type::ARM_GOT_BREL12 => 0x18000061,
2337 0 : Type::ARM_GOTOFF12 => 0x18000062,
2338 0 : Type::ARM_GOTRELAX => 0x18000063,
2339 0 : Type::ARM_GNU_VTENTRY => 0x18000064,
2340 0 : Type::ARM_GNU_VTINHERIT => 0x18000065,
2341 0 : Type::ARM_THM_JUMP11 => 0x18000066,
2342 0 : Type::ARM_THM_JUMP8 => 0x18000067,
2343 0 : Type::ARM_TLS_GD32 => 0x18000068,
2344 0 : Type::ARM_TLS_LDM32 => 0x18000069,
2345 0 : Type::ARM_TLS_LDO32 => 0x1800006a,
2346 0 : Type::ARM_TLS_IE32 => 0x1800006b,
2347 0 : Type::ARM_TLS_LE32 => 0x1800006c,
2348 0 : Type::ARM_TLS_LDO12 => 0x1800006d,
2349 0 : Type::ARM_TLS_LE12 => 0x1800006e,
2350 0 : Type::ARM_TLS_IE12GP => 0x1800006f,
2351 0 : Type::ARM_PRIVATE_0 => 0x18000070,
2352 0 : Type::ARM_PRIVATE_1 => 0x18000071,
2353 0 : Type::ARM_PRIVATE_2 => 0x18000072,
2354 0 : Type::ARM_PRIVATE_3 => 0x18000073,
2355 0 : Type::ARM_PRIVATE_4 => 0x18000074,
2356 0 : Type::ARM_PRIVATE_5 => 0x18000075,
2357 0 : Type::ARM_PRIVATE_6 => 0x18000076,
2358 0 : Type::ARM_PRIVATE_7 => 0x18000077,
2359 0 : Type::ARM_PRIVATE_8 => 0x18000078,
2360 0 : Type::ARM_PRIVATE_9 => 0x18000079,
2361 0 : Type::ARM_PRIVATE_10 => 0x1800007a,
2362 0 : Type::ARM_PRIVATE_11 => 0x1800007b,
2363 0 : Type::ARM_PRIVATE_12 => 0x1800007c,
2364 0 : Type::ARM_PRIVATE_13 => 0x1800007d,
2365 0 : Type::ARM_PRIVATE_14 => 0x1800007e,
2366 0 : Type::ARM_PRIVATE_15 => 0x1800007f,
2367 0 : Type::ARM_ME_TOO => 0x18000080,
2368 0 : Type::ARM_THM_TLS_DESCSEQ16 => 0x18000081,
2369 0 : Type::ARM_THM_TLS_DESCSEQ32 => 0x18000082,
2370 0 : Type::ARM_IRELATIVE => 0x180000a0,
2371 0 : Type::ARM_RXPC25 => 0x180000f9,
2372 0 : Type::ARM_RSBREL32 => 0x180000fa,
2373 0 : Type::ARM_THM_RPC22 => 0x180000fb,
2374 0 : Type::ARM_RREL32 => 0x180000fc,
2375 0 : Type::ARM_RPC24 => 0x180000fd,
2376 0 : Type::ARM_RBASE => 0x180000fe,
2377 0 : Type::HEX_NONE => 0x20000000,
2378 0 : Type::HEX_B22_PCREL => 0x20000001,
2379 0 : Type::HEX_B15_PCREL => 0x20000002,
2380 0 : Type::HEX_B7_PCREL => 0x20000003,
2381 0 : Type::HEX_LO16 => 0x20000004,
2382 0 : Type::HEX_HI16 => 0x20000005,
2383 0 : Type::HEX_32 => 0x20000006,
2384 0 : Type::HEX_16 => 0x20000007,
2385 0 : Type::HEX_8 => 0x20000008,
2386 0 : Type::HEX_GPREL16_0 => 0x20000009,
2387 0 : Type::HEX_GPREL16_1 => 0x2000000a,
2388 0 : Type::HEX_GPREL16_2 => 0x2000000b,
2389 0 : Type::HEX_GPREL16_3 => 0x2000000c,
2390 0 : Type::HEX_HL16 => 0x2000000d,
2391 0 : Type::HEX_B13_PCREL => 0x2000000e,
2392 0 : Type::HEX_B9_PCREL => 0x2000000f,
2393 0 : Type::HEX_B32_PCREL_X => 0x20000010,
2394 0 : Type::HEX_32_6_X => 0x20000011,
2395 0 : Type::HEX_B22_PCREL_X => 0x20000012,
2396 0 : Type::HEX_B15_PCREL_X => 0x20000013,
2397 0 : Type::HEX_B13_PCREL_X => 0x20000014,
2398 0 : Type::HEX_B9_PCREL_X => 0x20000015,
2399 0 : Type::HEX_B7_PCREL_X => 0x20000016,
2400 0 : Type::HEX_16_X => 0x20000017,
2401 0 : Type::HEX_12_X => 0x20000018,
2402 0 : Type::HEX_11_X => 0x20000019,
2403 0 : Type::HEX_10_X => 0x2000001a,
2404 0 : Type::HEX_9_X => 0x2000001b,
2405 0 : Type::HEX_8_X => 0x2000001c,
2406 0 : Type::HEX_7_X => 0x2000001d,
2407 0 : Type::HEX_6_X => 0x2000001e,
2408 0 : Type::HEX_32_PCREL => 0x2000001f,
2409 0 : Type::HEX_COPY => 0x20000020,
2410 0 : Type::HEX_GLOB_DAT => 0x20000021,
2411 0 : Type::HEX_JMP_SLOT => 0x20000022,
2412 0 : Type::HEX_RELATIVE => 0x20000023,
2413 0 : Type::HEX_PLT_B22_PCREL => 0x20000024,
2414 0 : Type::HEX_GOTREL_LO16 => 0x20000025,
2415 0 : Type::HEX_GOTREL_HI16 => 0x20000026,
2416 0 : Type::HEX_GOTREL_32 => 0x20000027,
2417 0 : Type::HEX_GOT_LO16 => 0x20000028,
2418 0 : Type::HEX_GOT_HI16 => 0x20000029,
2419 0 : Type::HEX_GOT_32 => 0x2000002a,
2420 0 : Type::HEX_GOT_16 => 0x2000002b,
2421 0 : Type::HEX_DTPMOD_32 => 0x2000002c,
2422 0 : Type::HEX_DTPREL_LO16 => 0x2000002d,
2423 0 : Type::HEX_DTPREL_HI16 => 0x2000002e,
2424 0 : Type::HEX_DTPREL_32 => 0x2000002f,
2425 0 : Type::HEX_DTPREL_16 => 0x20000030,
2426 0 : Type::HEX_GD_PLT_B22_PCREL => 0x20000031,
2427 0 : Type::HEX_GD_GOT_LO16 => 0x20000032,
2428 0 : Type::HEX_GD_GOT_HI16 => 0x20000033,
2429 0 : Type::HEX_GD_GOT_32 => 0x20000034,
2430 0 : Type::HEX_GD_GOT_16 => 0x20000035,
2431 0 : Type::HEX_IE_LO16 => 0x20000036,
2432 0 : Type::HEX_IE_HI16 => 0x20000037,
2433 0 : Type::HEX_IE_32 => 0x20000038,
2434 0 : Type::HEX_IE_GOT_LO16 => 0x20000039,
2435 0 : Type::HEX_IE_GOT_HI16 => 0x2000003a,
2436 0 : Type::HEX_IE_GOT_32 => 0x2000003b,
2437 0 : Type::HEX_IE_GOT_16 => 0x2000003c,
2438 0 : Type::HEX_TPREL_LO16 => 0x2000003d,
2439 0 : Type::HEX_TPREL_HI16 => 0x2000003e,
2440 0 : Type::HEX_TPREL_32 => 0x2000003f,
2441 0 : Type::HEX_TPREL_16 => 0x20000040,
2442 0 : Type::HEX_6_PCREL_X => 0x20000041,
2443 0 : Type::HEX_GOTREL_32_6_X => 0x20000042,
2444 0 : Type::HEX_GOTREL_16_X => 0x20000043,
2445 0 : Type::HEX_GOTREL_11_X => 0x20000044,
2446 0 : Type::HEX_GOT_32_6_X => 0x20000045,
2447 0 : Type::HEX_GOT_16_X => 0x20000046,
2448 0 : Type::HEX_GOT_11_X => 0x20000047,
2449 0 : Type::HEX_DTPREL_32_6_X => 0x20000048,
2450 0 : Type::HEX_DTPREL_16_X => 0x20000049,
2451 0 : Type::HEX_DTPREL_11_X => 0x2000004a,
2452 0 : Type::HEX_GD_GOT_32_6_X => 0x2000004b,
2453 0 : Type::HEX_GD_GOT_16_X => 0x2000004c,
2454 0 : Type::HEX_GD_GOT_11_X => 0x2000004d,
2455 0 : Type::HEX_IE_32_6_X => 0x2000004e,
2456 0 : Type::HEX_IE_16_X => 0x2000004f,
2457 0 : Type::HEX_IE_GOT_32_6_X => 0x20000050,
2458 0 : Type::HEX_IE_GOT_16_X => 0x20000051,
2459 0 : Type::HEX_IE_GOT_11_X => 0x20000052,
2460 0 : Type::HEX_TPREL_32_6_X => 0x20000053,
2461 0 : Type::HEX_TPREL_16_X => 0x20000054,
2462 0 : Type::HEX_TPREL_11_X => 0x20000055,
2463 0 : Type::HEX_LD_PLT_B22_PCREL => 0x20000056,
2464 0 : Type::HEX_LD_GOT_LO16 => 0x20000057,
2465 0 : Type::HEX_LD_GOT_HI16 => 0x20000058,
2466 0 : Type::HEX_LD_GOT_32 => 0x20000059,
2467 0 : Type::HEX_LD_GOT_16 => 0x2000005a,
2468 0 : Type::HEX_LD_GOT_32_6_X => 0x2000005b,
2469 0 : Type::HEX_LD_GOT_16_X => 0x2000005c,
2470 0 : Type::HEX_LD_GOT_11_X => 0x2000005d,
2471 0 : Type::X86_NONE => 0x28000000,
2472 0 : Type::X86_32 => 0x28000001,
2473 0 : Type::X86_PC32 => 0x28000002,
2474 0 : Type::X86_GOT32 => 0x28000003,
2475 0 : Type::X86_PLT32 => 0x28000004,
2476 0 : Type::X86_COPY => 0x28000005,
2477 0 : Type::X86_GLOB_DAT => 0x28000006,
2478 0 : Type::X86_JUMP_SLOT => 0x28000007,
2479 0 : Type::X86_RELATIVE => 0x28000008,
2480 0 : Type::X86_GOTOFF => 0x28000009,
2481 0 : Type::X86_GOTPC => 0x2800000a,
2482 0 : Type::X86_32PLT => 0x2800000b,
2483 0 : Type::X86_TLS_TPOFF => 0x2800000e,
2484 0 : Type::X86_TLS_IE => 0x2800000f,
2485 0 : Type::X86_TLS_GOTIE => 0x28000010,
2486 0 : Type::X86_TLS_LE => 0x28000011,
2487 0 : Type::X86_TLS_GD => 0x28000012,
2488 0 : Type::X86_TLS_LDM => 0x28000013,
2489 0 : Type::X86_16 => 0x28000014,
2490 0 : Type::X86_PC16 => 0x28000015,
2491 0 : Type::X86_8 => 0x28000016,
2492 0 : Type::X86_PC8 => 0x28000017,
2493 0 : Type::X86_TLS_GD_32 => 0x28000018,
2494 0 : Type::X86_TLS_GD_PUSH => 0x28000019,
2495 0 : Type::X86_TLS_GD_CALL => 0x2800001a,
2496 0 : Type::X86_TLS_GD_POP => 0x2800001b,
2497 0 : Type::X86_TLS_LDM_32 => 0x2800001c,
2498 0 : Type::X86_TLS_LDM_PUSH => 0x2800001d,
2499 0 : Type::X86_TLS_LDM_CALL => 0x2800001e,
2500 0 : Type::X86_TLS_LDM_POP => 0x2800001f,
2501 0 : Type::X86_TLS_LDO_32 => 0x28000020,
2502 0 : Type::X86_TLS_IE_32 => 0x28000021,
2503 0 : Type::X86_TLS_LE_32 => 0x28000022,
2504 0 : Type::X86_TLS_DTPMOD32 => 0x28000023,
2505 0 : Type::X86_TLS_DTPOFF32 => 0x28000024,
2506 0 : Type::X86_TLS_TPOFF32 => 0x28000025,
2507 0 : Type::X86_TLS_GOTDESC => 0x28000027,
2508 0 : Type::X86_TLS_DESC_CALL => 0x28000028,
2509 0 : Type::X86_TLS_DESC => 0x28000029,
2510 0 : Type::X86_IRELATIVE => 0x2800002a,
2511 0 : Type::LARCH_NONE => 0x30000000,
2512 0 : Type::LARCH_32 => 0x30000001,
2513 0 : Type::LARCH_64 => 0x30000002,
2514 0 : Type::LARCH_RELATIVE => 0x30000003,
2515 0 : Type::LARCH_COPY => 0x30000004,
2516 0 : Type::LARCH_JUMP_SLOT => 0x30000005,
2517 0 : Type::LARCH_TLS_DTPMOD32 => 0x30000006,
2518 0 : Type::LARCH_TLS_DTPMOD64 => 0x30000007,
2519 0 : Type::LARCH_TLS_DTPREL32 => 0x30000008,
2520 0 : Type::LARCH_TLS_DTPREL64 => 0x30000009,
2521 0 : Type::LARCH_TLS_TPREL32 => 0x3000000a,
2522 0 : Type::LARCH_TLS_TPREL64 => 0x3000000b,
2523 0 : Type::LARCH_IRELATIVE => 0x3000000c,
2524 0 : Type::LARCH_MARK_LA => 0x30000014,
2525 0 : Type::LARCH_MARK_PCREL => 0x30000015,
2526 0 : Type::LARCH_SOP_PUSH_PCREL => 0x30000016,
2527 0 : Type::LARCH_SOP_PUSH_ABSOLUTE => 0x30000017,
2528 0 : Type::LARCH_SOP_PUSH_DUP => 0x30000018,
2529 0 : Type::LARCH_SOP_PUSH_GPREL => 0x30000019,
2530 0 : Type::LARCH_SOP_PUSH_TLS_TPREL => 0x3000001a,
2531 0 : Type::LARCH_SOP_PUSH_TLS_GOT => 0x3000001b,
2532 0 : Type::LARCH_SOP_PUSH_TLS_GD => 0x3000001c,
2533 0 : Type::LARCH_SOP_PUSH_PLT_PCREL => 0x3000001d,
2534 0 : Type::LARCH_SOP_ASSERT => 0x3000001e,
2535 0 : Type::LARCH_SOP_NOT => 0x3000001f,
2536 0 : Type::LARCH_SOP_SUB => 0x30000020,
2537 0 : Type::LARCH_SOP_SL => 0x30000021,
2538 0 : Type::LARCH_SOP_SR => 0x30000022,
2539 0 : Type::LARCH_SOP_ADD => 0x30000023,
2540 0 : Type::LARCH_SOP_AND => 0x30000024,
2541 0 : Type::LARCH_SOP_IF_ELSE => 0x30000025,
2542 0 : Type::LARCH_SOP_POP_32_S_10_5 => 0x30000026,
2543 0 : Type::LARCH_SOP_POP_32_U_10_12 => 0x30000027,
2544 0 : Type::LARCH_SOP_POP_32_S_10_12 => 0x30000028,
2545 0 : Type::LARCH_SOP_POP_32_S_10_16 => 0x30000029,
2546 0 : Type::LARCH_SOP_POP_32_S_10_16_S2 => 0x3000002a,
2547 0 : Type::LARCH_SOP_POP_32_S_5_20 => 0x3000002b,
2548 0 : Type::LARCH_SOP_POP_32_S_0_5_10_16_S2 => 0x3000002c,
2549 0 : Type::LARCH_SOP_POP_32_S_0_10_10_16_S2 => 0x3000002d,
2550 0 : Type::LARCH_SOP_POP_32_U => 0x3000002e,
2551 0 : Type::LARCH_ADD8 => 0x3000002f,
2552 0 : Type::LARCH_ADD16 => 0x30000030,
2553 0 : Type::LARCH_ADD24 => 0x30000031,
2554 0 : Type::LARCH_ADD32 => 0x30000032,
2555 0 : Type::LARCH_ADD64 => 0x30000033,
2556 0 : Type::LARCH_SUB8 => 0x30000034,
2557 0 : Type::LARCH_SUB16 => 0x30000035,
2558 0 : Type::LARCH_SUB24 => 0x30000036,
2559 0 : Type::LARCH_SUB32 => 0x30000037,
2560 0 : Type::LARCH_SUB64 => 0x30000038,
2561 0 : Type::LARCH_GNU_VTINHERIT => 0x30000039,
2562 0 : Type::LARCH_GNU_VTENTRY => 0x3000003a,
2563 0 : Type::LARCH_B16 => 0x30000040,
2564 0 : Type::LARCH_B21 => 0x30000041,
2565 0 : Type::LARCH_B26 => 0x30000042,
2566 0 : Type::LARCH_ABS_HI20 => 0x30000043,
2567 0 : Type::LARCH_ABS_LO12 => 0x30000044,
2568 0 : Type::LARCH_ABS64_LO20 => 0x30000045,
2569 0 : Type::LARCH_ABS64_HI12 => 0x30000046,
2570 0 : Type::LARCH_PCALA_HI20 => 0x30000047,
2571 0 : Type::LARCH_PCALA_LO12 => 0x30000048,
2572 0 : Type::LARCH_PCALA64_LO20 => 0x30000049,
2573 0 : Type::LARCH_PCALA64_HI12 => 0x3000004a,
2574 0 : Type::LARCH_GOT_PC_HI20 => 0x3000004b,
2575 0 : Type::LARCH_GOT_PC_LO12 => 0x3000004c,
2576 0 : Type::LARCH_GOT64_PC_LO20 => 0x3000004d,
2577 0 : Type::LARCH_GOT64_PC_HI12 => 0x3000004e,
2578 0 : Type::LARCH_GOT_HI20 => 0x3000004f,
2579 0 : Type::LARCH_GOT_LO12 => 0x30000050,
2580 0 : Type::LARCH_GOT64_LO20 => 0x30000051,
2581 0 : Type::LARCH_GOT64_HI12 => 0x30000052,
2582 0 : Type::LARCH_TLS_LE_HI20 => 0x30000053,
2583 0 : Type::LARCH_TLS_LE_LO12 => 0x30000054,
2584 0 : Type::LARCH_TLS_LE64_LO20 => 0x30000055,
2585 0 : Type::LARCH_TLS_LE64_HI12 => 0x30000056,
2586 0 : Type::LARCH_TLS_IE_PC_HI20 => 0x30000057,
2587 0 : Type::LARCH_TLS_IE_PC_LO12 => 0x30000058,
2588 0 : Type::LARCH_TLS_IE64_PC_LO20 => 0x30000059,
2589 0 : Type::LARCH_TLS_IE64_PC_HI12 => 0x3000005a,
2590 0 : Type::LARCH_TLS_IE_HI20 => 0x3000005b,
2591 0 : Type::LARCH_TLS_IE_LO12 => 0x3000005c,
2592 0 : Type::LARCH_TLS_IE64_LO20 => 0x3000005d,
2593 0 : Type::LARCH_TLS_IE64_HI12 => 0x3000005e,
2594 0 : Type::LARCH_TLS_LD_PC_HI20 => 0x3000005f,
2595 0 : Type::LARCH_TLS_LD_HI20 => 0x30000060,
2596 0 : Type::LARCH_TLS_GD_PC_HI20 => 0x30000061,
2597 0 : Type::LARCH_TLS_GD_HI20 => 0x30000062,
2598 0 : Type::LARCH_32_PCREL => 0x30000063,
2599 0 : Type::LARCH_RELAX => 0x30000064,
2600 0 : Type::LARCH_ALIGN => 0x30000066,
2601 0 : Type::LARCH_PCREL20_S2 => 0x30000067,
2602 0 : Type::LARCH_ADD6 => 0x30000069,
2603 0 : Type::LARCH_SUB6 => 0x3000006a,
2604 0 : Type::LARCH_ADD_ULEB128 => 0x3000006b,
2605 0 : Type::LARCH_SUB_ULEB128 => 0x3000006c,
2606 0 : Type::LARCH_64_PCREL => 0x3000006d,
2607 0 : Type::LARCH_CALL36 => 0x3000006e,
2608 0 : Type::LARCH_TLS_DESC32 => 0x3000000d,
2609 0 : Type::LARCH_TLS_DESC64 => 0x3000000e,
2610 0 : Type::LARCH_TLS_DESC_PC_HI20 => 0x3000006f,
2611 0 : Type::LARCH_TLS_DESC_PC_LO12 => 0x30000070,
2612 0 : Type::LARCH_TLS_DESC64_PC_LO20 => 0x30000071,
2613 0 : Type::LARCH_TLS_DESC64_PC_HI12 => 0x30000072,
2614 0 : Type::LARCH_TLS_DESC_HI20 => 0x30000073,
2615 0 : Type::LARCH_TLS_DESC_LO12 => 0x30000074,
2616 0 : Type::LARCH_TLS_DESC64_LO20 => 0x30000075,
2617 0 : Type::LARCH_TLS_DESC64_HI12 => 0x30000076,
2618 0 : Type::LARCH_TLS_DESC_LD => 0x30000077,
2619 0 : Type::LARCH_TLS_DESC_CALL => 0x30000078,
2620 0 : Type::LARCH_TLS_LE_HI20_R => 0x30000079,
2621 0 : Type::LARCH_TLS_LE_ADD_R => 0x3000007a,
2622 0 : Type::LARCH_TLS_LE_LO12_R => 0x3000007b,
2623 0 : Type::LARCH_TLS_LD_PCREL20_S2 => 0x3000007c,
2624 0 : Type::LARCH_TLS_GD_PCREL20_S2 => 0x3000007d,
2625 0 : Type::LARCH_TLS_DESC_PCREL20_S2 => 0x3000007e,
2626 0 : Type::MIPS_NONE => 0x38000000,
2627 0 : Type::MIPS_16 => 0x38000001,
2628 0 : Type::MIPS_32 => 0x38000002,
2629 0 : Type::MIPS_REL32 => 0x38000003,
2630 0 : Type::MIPS_26 => 0x38000004,
2631 0 : Type::MIPS_HI16 => 0x38000005,
2632 0 : Type::MIPS_LO16 => 0x38000006,
2633 0 : Type::MIPS_GPREL16 => 0x38000007,
2634 0 : Type::MIPS_LITERAL => 0x38000008,
2635 0 : Type::MIPS_GOT16 => 0x38000009,
2636 0 : Type::MIPS_PC16 => 0x3800000a,
2637 0 : Type::MIPS_CALL16 => 0x3800000b,
2638 0 : Type::MIPS_GPREL32 => 0x3800000c,
2639 0 : Type::MIPS_UNUSED1 => 0x3800000d,
2640 0 : Type::MIPS_UNUSED2 => 0x3800000e,
2641 0 : Type::MIPS_UNUSED3 => 0x3800000f,
2642 0 : Type::MIPS_SHIFT5 => 0x38000010,
2643 0 : Type::MIPS_SHIFT6 => 0x38000011,
2644 0 : Type::MIPS_64 => 0x38000012,
2645 0 : Type::MIPS_GOT_DISP => 0x38000013,
2646 0 : Type::MIPS_GOT_PAGE => 0x38000014,
2647 0 : Type::MIPS_GOT_OFST => 0x38000015,
2648 0 : Type::MIPS_GOT_HI16 => 0x38000016,
2649 0 : Type::MIPS_GOT_LO16 => 0x38000017,
2650 0 : Type::MIPS_SUB => 0x38000018,
2651 0 : Type::MIPS_INSERT_A => 0x38000019,
2652 0 : Type::MIPS_INSERT_B => 0x3800001a,
2653 0 : Type::MIPS_DELETE => 0x3800001b,
2654 0 : Type::MIPS_HIGHER => 0x3800001c,
2655 0 : Type::MIPS_HIGHEST => 0x3800001d,
2656 0 : Type::MIPS_CALL_HI16 => 0x3800001e,
2657 0 : Type::MIPS_CALL_LO16 => 0x3800001f,
2658 0 : Type::MIPS_SCN_DISP => 0x38000020,
2659 0 : Type::MIPS_REL16 => 0x38000021,
2660 0 : Type::MIPS_ADD_IMMEDIATE => 0x38000022,
2661 0 : Type::MIPS_PJUMP => 0x38000023,
2662 0 : Type::MIPS_RELGOT => 0x38000024,
2663 0 : Type::MIPS_JALR => 0x38000025,
2664 0 : Type::MIPS_TLS_DTPMOD32 => 0x38000026,
2665 0 : Type::MIPS_TLS_DTPREL32 => 0x38000027,
2666 0 : Type::MIPS_TLS_DTPMOD64 => 0x38000028,
2667 0 : Type::MIPS_TLS_DTPREL64 => 0x38000029,
2668 0 : Type::MIPS_TLS_GD => 0x3800002a,
2669 0 : Type::MIPS_TLS_LDM => 0x3800002b,
2670 0 : Type::MIPS_TLS_DTPREL_HI16 => 0x3800002c,
2671 0 : Type::MIPS_TLS_DTPREL_LO16 => 0x3800002d,
2672 0 : Type::MIPS_TLS_GOTTPREL => 0x3800002e,
2673 0 : Type::MIPS_TLS_TPREL32 => 0x3800002f,
2674 0 : Type::MIPS_TLS_TPREL64 => 0x38000030,
2675 0 : Type::MIPS_TLS_TPREL_HI16 => 0x38000031,
2676 0 : Type::MIPS_TLS_TPREL_LO16 => 0x38000032,
2677 0 : Type::MIPS_GLOB_DAT => 0x38000033,
2678 0 : Type::MIPS_PC21_S2 => 0x3800003c,
2679 0 : Type::MIPS_PC26_S2 => 0x3800003d,
2680 0 : Type::MIPS_PC18_S3 => 0x3800003e,
2681 0 : Type::MIPS_PC19_S2 => 0x3800003f,
2682 0 : Type::MIPS_PCHI16 => 0x38000040,
2683 0 : Type::MIPS_PCLO16 => 0x38000041,
2684 0 : Type::MIPS16_26 => 0x38000064,
2685 0 : Type::MIPS16_GPREL => 0x38000065,
2686 0 : Type::MIPS16_GOT16 => 0x38000066,
2687 0 : Type::MIPS16_CALL16 => 0x38000067,
2688 0 : Type::MIPS16_HI16 => 0x38000068,
2689 0 : Type::MIPS16_LO16 => 0x38000069,
2690 0 : Type::MIPS16_TLS_GD => 0x3800006a,
2691 0 : Type::MIPS16_TLS_LDM => 0x3800006b,
2692 0 : Type::MIPS16_TLS_DTPREL_HI16 => 0x3800006c,
2693 0 : Type::MIPS16_TLS_DTPREL_LO16 => 0x3800006d,
2694 0 : Type::MIPS16_TLS_GOTTPREL => 0x3800006e,
2695 0 : Type::MIPS16_TLS_TPREL_HI16 => 0x3800006f,
2696 0 : Type::MIPS16_TLS_TPREL_LO16 => 0x38000070,
2697 0 : Type::MIPS_COPY => 0x3800007e,
2698 0 : Type::MIPS_JUMP_SLOT => 0x3800007f,
2699 0 : Type::MICROMIPS_26_S1 => 0x38000085,
2700 0 : Type::MICROMIPS_HI16 => 0x38000086,
2701 0 : Type::MICROMIPS_LO16 => 0x38000087,
2702 0 : Type::MICROMIPS_GPREL16 => 0x38000088,
2703 0 : Type::MICROMIPS_LITERAL => 0x38000089,
2704 0 : Type::MICROMIPS_GOT16 => 0x3800008a,
2705 0 : Type::MICROMIPS_PC7_S1 => 0x3800008b,
2706 0 : Type::MICROMIPS_PC10_S1 => 0x3800008c,
2707 0 : Type::MICROMIPS_PC16_S1 => 0x3800008d,
2708 0 : Type::MICROMIPS_CALL16 => 0x3800008e,
2709 0 : Type::MICROMIPS_GOT_DISP => 0x38000091,
2710 0 : Type::MICROMIPS_GOT_PAGE => 0x38000092,
2711 0 : Type::MICROMIPS_GOT_OFST => 0x38000093,
2712 0 : Type::MICROMIPS_GOT_HI16 => 0x38000094,
2713 0 : Type::MICROMIPS_GOT_LO16 => 0x38000095,
2714 0 : Type::MICROMIPS_SUB => 0x38000096,
2715 0 : Type::MICROMIPS_HIGHER => 0x38000097,
2716 0 : Type::MICROMIPS_HIGHEST => 0x38000098,
2717 0 : Type::MICROMIPS_CALL_HI16 => 0x38000099,
2718 0 : Type::MICROMIPS_CALL_LO16 => 0x3800009a,
2719 0 : Type::MICROMIPS_SCN_DISP => 0x3800009b,
2720 0 : Type::MICROMIPS_JALR => 0x3800009c,
2721 0 : Type::MICROMIPS_HI0_LO16 => 0x3800009d,
2722 0 : Type::MICROMIPS_TLS_GD => 0x380000a2,
2723 0 : Type::MICROMIPS_TLS_LDM => 0x380000a3,
2724 0 : Type::MICROMIPS_TLS_DTPREL_HI16 => 0x380000a4,
2725 0 : Type::MICROMIPS_TLS_DTPREL_LO16 => 0x380000a5,
2726 0 : Type::MICROMIPS_TLS_GOTTPREL => 0x380000a6,
2727 0 : Type::MICROMIPS_TLS_TPREL_HI16 => 0x380000a9,
2728 0 : Type::MICROMIPS_TLS_TPREL_LO16 => 0x380000aa,
2729 0 : Type::MICROMIPS_GPREL7_S2 => 0x380000ac,
2730 0 : Type::MICROMIPS_PC23_S2 => 0x380000ad,
2731 0 : Type::MICROMIPS_PC21_S2 => 0x380000ae,
2732 0 : Type::MICROMIPS_PC26_S2 => 0x380000af,
2733 0 : Type::MICROMIPS_PC18_S3 => 0x380000b0,
2734 0 : Type::MICROMIPS_PC19_S2 => 0x380000b1,
2735 0 : Type::MIPS_NUM => 0x380000da,
2736 0 : Type::MIPS_PC32 => 0x380000f8,
2737 0 : Type::MIPS_EH => 0x380000f9,
2738 0 : Type::PPC_NONE => 0x40000000,
2739 0 : Type::PPC_ADDR32 => 0x40000001,
2740 0 : Type::PPC_ADDR24 => 0x40000002,
2741 0 : Type::PPC_ADDR16 => 0x40000003,
2742 0 : Type::PPC_ADDR16_LO => 0x40000004,
2743 0 : Type::PPC_ADDR16_HI => 0x40000005,
2744 0 : Type::PPC_ADDR16_HA => 0x40000006,
2745 0 : Type::PPC_ADDR14 => 0x40000007,
2746 0 : Type::PPC_ADDR14_BRTAKEN => 0x40000008,
2747 0 : Type::PPC_ADDR14_BRNTAKEN => 0x40000009,
2748 0 : Type::PPC_REL24 => 0x4000000a,
2749 0 : Type::PPC_REL14 => 0x4000000b,
2750 0 : Type::PPC_REL14_BRTAKEN => 0x4000000c,
2751 0 : Type::PPC_REL14_BRNTAKEN => 0x4000000d,
2752 0 : Type::PPC_GOT16 => 0x4000000e,
2753 0 : Type::PPC_GOT16_LO => 0x4000000f,
2754 0 : Type::PPC_GOT16_HI => 0x40000010,
2755 0 : Type::PPC_GOT16_HA => 0x40000011,
2756 0 : Type::PPC_PLTREL24 => 0x40000012,
2757 0 : Type::PPC_JMP_SLOT => 0x40000015,
2758 0 : Type::PPC_RELATIVE => 0x40000016,
2759 0 : Type::PPC_LOCAL24PC => 0x40000017,
2760 0 : Type::PPC_REL32 => 0x4000001a,
2761 0 : Type::PPC_TLS => 0x40000043,
2762 0 : Type::PPC_DTPMOD32 => 0x40000044,
2763 0 : Type::PPC_TPREL16 => 0x40000045,
2764 0 : Type::PPC_TPREL16_LO => 0x40000046,
2765 0 : Type::PPC_TPREL16_HI => 0x40000047,
2766 0 : Type::PPC_TPREL16_HA => 0x40000048,
2767 0 : Type::PPC_TPREL32 => 0x40000049,
2768 0 : Type::PPC_DTPREL16 => 0x4000004a,
2769 0 : Type::PPC_DTPREL16_LO => 0x4000004b,
2770 0 : Type::PPC_DTPREL16_HI => 0x4000004c,
2771 0 : Type::PPC_DTPREL16_HA => 0x4000004d,
2772 0 : Type::PPC_DTPREL32 => 0x4000004e,
2773 0 : Type::PPC_GOT_TLSGD16 => 0x4000004f,
2774 0 : Type::PPC_GOT_TLSGD16_LO => 0x40000050,
2775 0 : Type::PPC_GOT_TLSGD16_HI => 0x40000051,
2776 0 : Type::PPC_GOT_TLSGD16_HA => 0x40000052,
2777 0 : Type::PPC_GOT_TLSLD16 => 0x40000053,
2778 0 : Type::PPC_GOT_TLSLD16_LO => 0x40000054,
2779 0 : Type::PPC_GOT_TLSLD16_HI => 0x40000055,
2780 0 : Type::PPC_GOT_TLSLD16_HA => 0x40000056,
2781 0 : Type::PPC_GOT_TPREL16 => 0x40000057,
2782 0 : Type::PPC_GOT_TPREL16_LO => 0x40000058,
2783 0 : Type::PPC_GOT_TPREL16_HI => 0x40000059,
2784 0 : Type::PPC_GOT_TPREL16_HA => 0x4000005a,
2785 0 : Type::PPC_GOT_DTPREL16 => 0x4000005b,
2786 0 : Type::PPC_GOT_DTPREL16_LO => 0x4000005c,
2787 0 : Type::PPC_GOT_DTPREL16_HI => 0x4000005d,
2788 0 : Type::PPC_GOT_DTPREL16_HA => 0x4000005e,
2789 0 : Type::PPC_TLSGD => 0x4000005f,
2790 0 : Type::PPC_TLSLD => 0x40000060,
2791 0 : Type::PPC_REL16 => 0x400000f9,
2792 0 : Type::PPC_REL16_LO => 0x400000fa,
2793 0 : Type::PPC_REL16_HI => 0x400000fb,
2794 0 : Type::PPC_REL16_HA => 0x400000fc,
2795 0 : Type::PPC64_NONE => 0x48000000,
2796 0 : Type::PPC64_ADDR32 => 0x48000001,
2797 0 : Type::PPC64_ADDR24 => 0x48000002,
2798 0 : Type::PPC64_ADDR16 => 0x48000003,
2799 0 : Type::PPC64_ADDR16_LO => 0x48000004,
2800 0 : Type::PPC64_ADDR16_HI => 0x48000005,
2801 0 : Type::PPC64_ADDR16_HA => 0x48000006,
2802 0 : Type::PPC64_ADDR14 => 0x48000007,
2803 0 : Type::PPC64_ADDR14_BRTAKEN => 0x48000008,
2804 0 : Type::PPC64_ADDR14_BRNTAKEN => 0x48000009,
2805 0 : Type::PPC64_REL24 => 0x4800000a,
2806 0 : Type::PPC64_REL14 => 0x4800000b,
2807 0 : Type::PPC64_REL14_BRTAKEN => 0x4800000c,
2808 0 : Type::PPC64_REL14_BRNTAKEN => 0x4800000d,
2809 0 : Type::PPC64_GOT16 => 0x4800000e,
2810 0 : Type::PPC64_GOT16_LO => 0x4800000f,
2811 0 : Type::PPC64_GOT16_HI => 0x48000010,
2812 0 : Type::PPC64_GOT16_HA => 0x48000011,
2813 0 : Type::PPC64_JMP_SLOT => 0x48000015,
2814 0 : Type::PPC64_RELATIVE => 0x48000016,
2815 0 : Type::PPC64_REL32 => 0x4800001a,
2816 0 : Type::PPC64_ADDR64 => 0x48000026,
2817 0 : Type::PPC64_ADDR16_HIGHER => 0x48000027,
2818 0 : Type::PPC64_ADDR16_HIGHERA => 0x48000028,
2819 0 : Type::PPC64_ADDR16_HIGHEST => 0x48000029,
2820 0 : Type::PPC64_ADDR16_HIGHESTA => 0x4800002a,
2821 0 : Type::PPC64_REL64 => 0x4800002c,
2822 0 : Type::PPC64_TOC16 => 0x4800002f,
2823 0 : Type::PPC64_TOC16_LO => 0x48000030,
2824 0 : Type::PPC64_TOC16_HI => 0x48000031,
2825 0 : Type::PPC64_TOC16_HA => 0x48000032,
2826 0 : Type::PPC64_TOC => 0x48000033,
2827 0 : Type::PPC64_ADDR16_DS => 0x48000038,
2828 0 : Type::PPC64_ADDR16_LO_DS => 0x48000039,
2829 0 : Type::PPC64_GOT16_DS => 0x4800003a,
2830 0 : Type::PPC64_GOT16_LO_DS => 0x4800003b,
2831 0 : Type::PPC64_TOC16_DS => 0x4800003f,
2832 0 : Type::PPC64_TOC16_LO_DS => 0x48000040,
2833 0 : Type::PPC64_TLS => 0x48000043,
2834 0 : Type::PPC64_DTPMOD64 => 0x48000044,
2835 0 : Type::PPC64_TPREL16 => 0x48000045,
2836 0 : Type::PPC64_TPREL16_LO => 0x48000046,
2837 0 : Type::PPC64_TPREL16_HI => 0x48000047,
2838 0 : Type::PPC64_TPREL16_HA => 0x48000048,
2839 0 : Type::PPC64_TPREL64 => 0x48000049,
2840 0 : Type::PPC64_DTPREL16 => 0x4800004a,
2841 0 : Type::PPC64_DTPREL16_LO => 0x4800004b,
2842 0 : Type::PPC64_DTPREL16_HI => 0x4800004c,
2843 0 : Type::PPC64_DTPREL16_HA => 0x4800004d,
2844 0 : Type::PPC64_DTPREL64 => 0x4800004e,
2845 0 : Type::PPC64_GOT_TLSGD16 => 0x4800004f,
2846 0 : Type::PPC64_GOT_TLSGD16_LO => 0x48000050,
2847 0 : Type::PPC64_GOT_TLSGD16_HI => 0x48000051,
2848 0 : Type::PPC64_GOT_TLSGD16_HA => 0x48000052,
2849 0 : Type::PPC64_GOT_TLSLD16 => 0x48000053,
2850 0 : Type::PPC64_GOT_TLSLD16_LO => 0x48000054,
2851 0 : Type::PPC64_GOT_TLSLD16_HI => 0x48000055,
2852 0 : Type::PPC64_GOT_TLSLD16_HA => 0x48000056,
2853 0 : Type::PPC64_GOT_TPREL16_DS => 0x48000057,
2854 0 : Type::PPC64_GOT_TPREL16_LO_DS => 0x48000058,
2855 0 : Type::PPC64_GOT_TPREL16_HI => 0x48000059,
2856 0 : Type::PPC64_GOT_TPREL16_HA => 0x4800005a,
2857 0 : Type::PPC64_GOT_DTPREL16_DS => 0x4800005b,
2858 0 : Type::PPC64_GOT_DTPREL16_LO_DS => 0x4800005c,
2859 0 : Type::PPC64_GOT_DTPREL16_HI => 0x4800005d,
2860 0 : Type::PPC64_GOT_DTPREL16_HA => 0x4800005e,
2861 0 : Type::PPC64_TPREL16_DS => 0x4800005f,
2862 0 : Type::PPC64_TPREL16_LO_DS => 0x48000060,
2863 0 : Type::PPC64_TPREL16_HIGHER => 0x48000061,
2864 0 : Type::PPC64_TPREL16_HIGHERA => 0x48000062,
2865 0 : Type::PPC64_TPREL16_HIGHEST => 0x48000063,
2866 0 : Type::PPC64_TPREL16_HIGHESTA => 0x48000064,
2867 0 : Type::PPC64_DTPREL16_DS => 0x48000065,
2868 0 : Type::PPC64_DTPREL16_LO_DS => 0x48000066,
2869 0 : Type::PPC64_DTPREL16_HIGHER => 0x48000067,
2870 0 : Type::PPC64_DTPREL16_HIGHERA => 0x48000068,
2871 0 : Type::PPC64_DTPREL16_HIGHEST => 0x48000069,
2872 0 : Type::PPC64_DTPREL16_HIGHESTA => 0x4800006a,
2873 0 : Type::PPC64_TLSGD => 0x4800006b,
2874 0 : Type::PPC64_TLSLD => 0x4800006c,
2875 0 : Type::PPC64_REL16 => 0x480000f9,
2876 0 : Type::PPC64_REL16_LO => 0x480000fa,
2877 0 : Type::PPC64_REL16_HI => 0x480000fb,
2878 0 : Type::PPC64_REL16_HA => 0x480000fc,
2879 0 : Type::SPARC_NONE => 0x50000000,
2880 0 : Type::SPARC_8 => 0x50000001,
2881 0 : Type::SPARC_16 => 0x50000002,
2882 0 : Type::SPARC_32 => 0x50000003,
2883 0 : Type::SPARC_DISP8 => 0x50000004,
2884 0 : Type::SPARC_DISP16 => 0x50000005,
2885 0 : Type::SPARC_DISP32 => 0x50000006,
2886 0 : Type::SPARC_WDISP30 => 0x50000007,
2887 0 : Type::SPARC_WDISP22 => 0x50000008,
2888 0 : Type::SPARC_HI22 => 0x50000009,
2889 0 : Type::SPARC_22 => 0x5000000a,
2890 0 : Type::SPARC_13 => 0x5000000b,
2891 0 : Type::SPARC_LO10 => 0x5000000c,
2892 0 : Type::SPARC_GOT10 => 0x5000000d,
2893 0 : Type::SPARC_GOT13 => 0x5000000e,
2894 0 : Type::SPARC_GOT22 => 0x5000000f,
2895 0 : Type::SPARC_PC10 => 0x50000010,
2896 0 : Type::SPARC_PC22 => 0x50000011,
2897 0 : Type::SPARC_WPLT30 => 0x50000012,
2898 0 : Type::SPARC_COPY => 0x50000013,
2899 0 : Type::SPARC_GLOB_DAT => 0x50000014,
2900 0 : Type::SPARC_JMP_SLOT => 0x50000015,
2901 0 : Type::SPARC_RELATIVE => 0x50000016,
2902 0 : Type::SPARC_UA32 => 0x50000017,
2903 0 : Type::SPARC_PLT32 => 0x50000018,
2904 0 : Type::SPARC_HIPLT22 => 0x50000019,
2905 0 : Type::SPARC_LOPLT10 => 0x5000001a,
2906 0 : Type::SPARC_PCPLT32 => 0x5000001b,
2907 0 : Type::SPARC_PCPLT22 => 0x5000001c,
2908 0 : Type::SPARC_PCPLT10 => 0x5000001d,
2909 0 : Type::SPARC_10 => 0x5000001e,
2910 0 : Type::SPARC_11 => 0x5000001f,
2911 0 : Type::SPARC_64 => 0x50000020,
2912 0 : Type::SPARC_OLO10 => 0x50000021,
2913 0 : Type::SPARC_HH22 => 0x50000022,
2914 0 : Type::SPARC_HM10 => 0x50000023,
2915 0 : Type::SPARC_LM22 => 0x50000024,
2916 0 : Type::SPARC_PC_HH22 => 0x50000025,
2917 0 : Type::SPARC_PC_HM10 => 0x50000026,
2918 0 : Type::SPARC_PC_LM22 => 0x50000027,
2919 0 : Type::SPARC_WDISP16 => 0x50000028,
2920 0 : Type::SPARC_WDISP19 => 0x50000029,
2921 0 : Type::SPARC_7 => 0x5000002b,
2922 0 : Type::SPARC_5 => 0x5000002c,
2923 0 : Type::SPARC_6 => 0x5000002d,
2924 0 : Type::SPARC_DISP64 => 0x5000002e,
2925 0 : Type::SPARC_PLT64 => 0x5000002f,
2926 0 : Type::SPARC_HIX22 => 0x50000030,
2927 0 : Type::SPARC_LOX10 => 0x50000031,
2928 0 : Type::SPARC_H44 => 0x50000032,
2929 0 : Type::SPARC_M44 => 0x50000033,
2930 0 : Type::SPARC_L44 => 0x50000034,
2931 0 : Type::SPARC_REGISTER => 0x50000035,
2932 0 : Type::SPARC_UA64 => 0x50000036,
2933 0 : Type::SPARC_UA16 => 0x50000037,
2934 0 : Type::SPARC_TLS_GD_HI22 => 0x50000038,
2935 0 : Type::SPARC_TLS_GD_LO10 => 0x50000039,
2936 0 : Type::SPARC_TLS_GD_ADD => 0x5000003a,
2937 0 : Type::SPARC_TLS_GD_CALL => 0x5000003b,
2938 0 : Type::SPARC_TLS_LDM_HI22 => 0x5000003c,
2939 0 : Type::SPARC_TLS_LDM_LO10 => 0x5000003d,
2940 0 : Type::SPARC_TLS_LDM_ADD => 0x5000003e,
2941 0 : Type::SPARC_TLS_LDM_CALL => 0x5000003f,
2942 0 : Type::SPARC_TLS_LDO_HIX22 => 0x50000040,
2943 0 : Type::SPARC_TLS_LDO_LOX10 => 0x50000041,
2944 0 : Type::SPARC_TLS_LDO_ADD => 0x50000042,
2945 0 : Type::SPARC_TLS_IE_HI22 => 0x50000043,
2946 0 : Type::SPARC_TLS_IE_LO10 => 0x50000044,
2947 0 : Type::SPARC_TLS_IE_LD => 0x50000045,
2948 0 : Type::SPARC_TLS_IE_LDX => 0x50000046,
2949 0 : Type::SPARC_TLS_IE_ADD => 0x50000047,
2950 0 : Type::SPARC_TLS_LE_HIX22 => 0x50000048,
2951 0 : Type::SPARC_TLS_LE_LOX10 => 0x50000049,
2952 0 : Type::SPARC_TLS_DTPMOD32 => 0x5000004a,
2953 0 : Type::SPARC_TLS_DTPMOD64 => 0x5000004b,
2954 0 : Type::SPARC_TLS_DTPOFF32 => 0x5000004c,
2955 0 : Type::SPARC_TLS_DTPOFF64 => 0x5000004d,
2956 0 : Type::SPARC_TLS_TPOFF32 => 0x5000004e,
2957 0 : Type::SPARC_TLS_TPOFF64 => 0x5000004f,
2958 0 : Type::SPARC_GOTDATA_HIX22 => 0x50000050,
2959 0 : Type::SPARC_GOTDATA_LOX10 => 0x50000051,
2960 0 : Type::SPARC_GOTDATA_OP_HIX22 => 0x50000052,
2961 0 : Type::SPARC_GOTDATA_OP_LOX10 => 0x50000053,
2962 0 : Type::SPARC_GOTDATA_OP => 0x50000054,
2963 0 : Type::SYSZ_NONE => 0x58000000,
2964 0 : Type::SYSZ_8 => 0x58000001,
2965 0 : Type::SYSZ_12 => 0x58000002,
2966 0 : Type::SYSZ_16 => 0x58000003,
2967 0 : Type::SYSZ_32 => 0x58000004,
2968 0 : Type::SYSZ_PC32 => 0x58000005,
2969 0 : Type::SYSZ_GOT12 => 0x58000006,
2970 0 : Type::SYSZ_GOT32 => 0x58000007,
2971 0 : Type::SYSZ_PLT32 => 0x58000008,
2972 0 : Type::SYSZ_COPY => 0x58000009,
2973 0 : Type::SYSZ_GLOB_DAT => 0x5800000a,
2974 0 : Type::SYSZ_JMP_SLOT => 0x5800000b,
2975 0 : Type::SYSZ_RELATIVE => 0x5800000c,
2976 0 : Type::SYSZ_GOTOFF => 0x5800000d,
2977 0 : Type::SYSZ_GOTPC => 0x5800000e,
2978 0 : Type::SYSZ_GOT16 => 0x5800000f,
2979 0 : Type::SYSZ_PC16 => 0x58000010,
2980 0 : Type::SYSZ_PC16DBL => 0x58000011,
2981 0 : Type::SYSZ_PLT16DBL => 0x58000012,
2982 0 : Type::SYSZ_PC32DBL => 0x58000013,
2983 0 : Type::SYSZ_PLT32DBL => 0x58000014,
2984 0 : Type::SYSZ_GOTPCDBL => 0x58000015,
2985 0 : Type::SYSZ_64 => 0x58000016,
2986 0 : Type::SYSZ_PC64 => 0x58000017,
2987 0 : Type::SYSZ_GOT64 => 0x58000018,
2988 0 : Type::SYSZ_PLT64 => 0x58000019,
2989 0 : Type::SYSZ_GOTENT => 0x5800001a,
2990 0 : Type::SYSZ_GOTOFF16 => 0x5800001b,
2991 0 : Type::SYSZ_GOTOFF64 => 0x5800001c,
2992 0 : Type::SYSZ_GOTPLT12 => 0x5800001d,
2993 0 : Type::SYSZ_GOTPLT16 => 0x5800001e,
2994 0 : Type::SYSZ_GOTPLT32 => 0x5800001f,
2995 0 : Type::SYSZ_GOTPLT64 => 0x58000020,
2996 0 : Type::SYSZ_GOTPLTENT => 0x58000021,
2997 0 : Type::SYSZ_PLTOFF16 => 0x58000022,
2998 0 : Type::SYSZ_PLTOFF32 => 0x58000023,
2999 0 : Type::SYSZ_PLTOFF64 => 0x58000024,
3000 0 : Type::SYSZ_TLS_LOAD => 0x58000025,
3001 0 : Type::SYSZ_TLS_GDCALL => 0x58000026,
3002 0 : Type::SYSZ_TLS_LDCALL => 0x58000027,
3003 0 : Type::SYSZ_TLS_GD32 => 0x58000028,
3004 0 : Type::SYSZ_TLS_GD64 => 0x58000029,
3005 0 : Type::SYSZ_TLS_GOTIE12 => 0x5800002a,
3006 0 : Type::SYSZ_TLS_GOTIE32 => 0x5800002b,
3007 0 : Type::SYSZ_TLS_GOTIE64 => 0x5800002c,
3008 0 : Type::SYSZ_TLS_LDM32 => 0x5800002d,
3009 0 : Type::SYSZ_TLS_LDM64 => 0x5800002e,
3010 0 : Type::SYSZ_TLS_IE32 => 0x5800002f,
3011 0 : Type::SYSZ_TLS_IE64 => 0x58000030,
3012 0 : Type::SYSZ_TLS_IEENT => 0x58000031,
3013 0 : Type::SYSZ_TLS_LE32 => 0x58000032,
3014 0 : Type::SYSZ_TLS_LE64 => 0x58000033,
3015 0 : Type::SYSZ_TLS_LDO32 => 0x58000034,
3016 0 : Type::SYSZ_TLS_LDO64 => 0x58000035,
3017 0 : Type::SYSZ_TLS_DTPMOD => 0x58000036,
3018 0 : Type::SYSZ_TLS_DTPOFF => 0x58000037,
3019 0 : Type::SYSZ_TLS_TPOFF => 0x58000038,
3020 0 : Type::SYSZ_20 => 0x58000039,
3021 0 : Type::SYSZ_GOT20 => 0x5800003a,
3022 0 : Type::SYSZ_GOTPLT20 => 0x5800003b,
3023 0 : Type::SYSZ_TLS_GOTIE20 => 0x5800003c,
3024 0 : Type::SYSZ_IRELATIVE => 0x5800003d,
3025 0 : Type::RISCV_NONE => 0x60000000,
3026 0 : Type::RISCV_32 => 0x60000001,
3027 0 : Type::RISCV_64 => 0x60000002,
3028 0 : Type::RISCV_RELATIVE => 0x60000003,
3029 0 : Type::RISCV_COPY => 0x60000004,
3030 0 : Type::RISCV_JUMP_SLOT => 0x60000005,
3031 0 : Type::RISCV_TLS_DTPMOD32 => 0x60000006,
3032 0 : Type::RISCV_TLS_DTPMOD64 => 0x60000007,
3033 0 : Type::RISCV_TLS_DTPREL32 => 0x60000008,
3034 0 : Type::RISCV_TLS_DTPREL64 => 0x60000009,
3035 0 : Type::RISCV_TLS_TPREL32 => 0x6000000a,
3036 0 : Type::RISCV_TLS_TPREL64 => 0x6000000b,
3037 0 : Type::RISCV_TLSDESC => 0x6000000c,
3038 0 : Type::RISCV_BRANCH => 0x60000010,
3039 0 : Type::RISCV_JAL => 0x60000011,
3040 0 : Type::RISCV_CALL => 0x60000012,
3041 0 : Type::RISCV_CALL_PLT => 0x60000013,
3042 0 : Type::RISCV_GOT_HI20 => 0x60000014,
3043 0 : Type::RISCV_TLS_GOT_HI20 => 0x60000015,
3044 0 : Type::RISCV_TLS_GD_HI20 => 0x60000016,
3045 0 : Type::RISCV_PCREL_HI20 => 0x60000017,
3046 0 : Type::RISCV_PCREL_LO12_I => 0x60000018,
3047 0 : Type::RISCV_PCREL_LO12_S => 0x60000019,
3048 0 : Type::RISCV_HI20 => 0x6000001a,
3049 0 : Type::RISCV_LO12_I => 0x6000001b,
3050 0 : Type::RISCV_LO12_S => 0x6000001c,
3051 0 : Type::RISCV_TPREL_HI20 => 0x6000001d,
3052 0 : Type::RISCV_TPREL_LO12_I => 0x6000001e,
3053 0 : Type::RISCV_TPREL_LO12_S => 0x6000001f,
3054 0 : Type::RISCV_TPREL_ADD => 0x60000020,
3055 0 : Type::RISCV_ADD8 => 0x60000021,
3056 0 : Type::RISCV_ADD16 => 0x60000022,
3057 0 : Type::RISCV_ADD32 => 0x60000023,
3058 0 : Type::RISCV_ADD64 => 0x60000024,
3059 0 : Type::RISCV_SUB8 => 0x60000025,
3060 0 : Type::RISCV_SUB16 => 0x60000026,
3061 0 : Type::RISCV_SUB32 => 0x60000027,
3062 0 : Type::RISCV_SUB64 => 0x60000028,
3063 0 : Type::RISCV_GOT32_PCREL => 0x60000029,
3064 0 : Type::RISCV_ALIGN => 0x6000002b,
3065 0 : Type::RISCV_RVC_BRANCH => 0x6000002c,
3066 0 : Type::RISCV_RVC_JUMP => 0x6000002d,
3067 0 : Type::RISCV_RVC_LUI => 0x6000002e,
3068 0 : Type::RISCV_RELAX => 0x60000033,
3069 0 : Type::RISCV_SUB6 => 0x60000034,
3070 0 : Type::RISCV_SET6 => 0x60000035,
3071 0 : Type::RISCV_SET8 => 0x60000036,
3072 0 : Type::RISCV_SET16 => 0x60000037,
3073 0 : Type::RISCV_SET32 => 0x60000038,
3074 0 : Type::RISCV_32_PCREL => 0x60000039,
3075 0 : Type::RISCV_IRELATIVE => 0x6000003a,
3076 0 : Type::RISCV_PLT32 => 0x6000003b,
3077 0 : Type::RISCV_SET_ULEB128 => 0x6000003c,
3078 0 : Type::RISCV_SUB_ULEB128 => 0x6000003d,
3079 0 : Type::RISCV_TLSDESC_HI20 => 0x6000003e,
3080 0 : Type::RISCV_TLSDESC_LOAD_LO12 => 0x6000003f,
3081 0 : Type::RISCV_TLSDESC_ADD_LO12 => 0x60000040,
3082 0 : Type::RISCV_TLSDESC_CALL => 0x60000041,
3083 0 : Type::BPF_NONE => 0x68000000,
3084 0 : Type::BPF_64_64 => 0x68000001,
3085 0 : Type::BPF_64_ABS64 => 0x68000002,
3086 0 : Type::BPF_64_ABS32 => 0x68000003,
3087 0 : Type::BPF_64_NODYLD32 => 0x68000004,
3088 0 : Type::BPF_64_32 => 0x6800000a,
3089 0 : Type::UNKNOWN(value) => value,
3090 :
3091 : }
3092 0 : }
3093 : }
3094 :
3095 : #[allow(non_camel_case_types)]
3096 16200 : #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
3097 : /// The *purpose* of a relocation defines how this relocation is used by the
3098 : /// loader.
3099 : pub enum Purpose {
3100 : NONE,
3101 : /// The relocation is associated with the PLT/GOT resolution
3102 : PLTGOT,
3103 : /// The relocation is used for regulard data/code relocation
3104 : DYNAMIC,
3105 : /// The relocation is used in an object file
3106 : OBJECT,
3107 : UNKNOWN(u32),
3108 : }
3109 :
3110 : impl Purpose {
3111 16200 : pub fn from_value(value: u32) -> Self {
3112 16200 : match value {
3113 0 : 0x00000000 => Purpose::NONE,
3114 4380 : 0x00000001 => Purpose::PLTGOT,
3115 10900 : 0x00000002 => Purpose::DYNAMIC,
3116 920 : 0x00000003 => Purpose::OBJECT,
3117 0 : _ => Purpose::UNKNOWN(value),
3118 :
3119 : }
3120 16200 : }
3121 : }
3122 :
3123 :
3124 : #[allow(non_camel_case_types)]
3125 16200 : #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
3126 : pub enum Encoding {
3127 : /// The relocation is using the regular Elf_Rel structure
3128 : REL,
3129 : /// The relocation is using the regular Elf_Rela structure
3130 : RELA,
3131 : /// The relocation is using the relative relocation format
3132 : RELR,
3133 : /// The relocation is using the packed Android-SLEB128 format
3134 : ANDROID_SLEB,
3135 : UNKNOWN(u32),
3136 : }
3137 :
3138 : impl Encoding {
3139 27100 : pub fn from_value(value: u32) -> Self {
3140 27100 : match value {
3141 15220 : 0x00000001 => Encoding::REL,
3142 11880 : 0x00000002 => Encoding::RELA,
3143 0 : 0x00000003 => Encoding::RELR,
3144 0 : 0x00000004 => Encoding::ANDROID_SLEB,
3145 0 : _ => Encoding::UNKNOWN(value),
3146 :
3147 : }
3148 27100 : }
3149 : }
3150 :
3151 : impl Relocation<'_> {
3152 : /// Additional value that can be involved in the relocation processing
3153 16200 : pub fn addend(&self) -> i64 {
3154 16200 : self.ptr.addend()
3155 16200 : }
3156 :
3157 : /// Type of the relocation
3158 16200 : pub fn get_type(&self) -> Type {
3159 16200 : Type::from(self.ptr.get_type())
3160 16200 : }
3161 :
3162 : /// Check if the relocation uses the explicit [`Relocation::addend`] field
3163 : /// (this is usually the case for 64 bits binaries)
3164 1650 : pub fn is_rela(&self) -> bool {
3165 1650 : self.ptr.is_rela()
3166 1650 : }
3167 :
3168 : /// Check if the relocation uses the implicit addend
3169 : /// (i.e. not present in the ELF structure)
3170 3800 : pub fn is_rel(&self) -> bool {
3171 3800 : self.ptr.is_rel()
3172 3800 : }
3173 :
3174 : /// Relocation info which contains, for instance, the symbol index
3175 16200 : pub fn info(&self) -> u32 {
3176 16200 : self.ptr.info()
3177 16200 : }
3178 :
3179 : /// Target architecture for this relocation
3180 16200 : pub fn architecture(&self) -> u32 {
3181 16200 : self.ptr.architecture()
3182 16200 : }
3183 :
3184 : /// The purpose of the relocation
3185 16200 : pub fn purpose(&self) -> Purpose {
3186 16200 : Purpose::from_value(self.ptr.purpose())
3187 16200 : }
3188 :
3189 : /// The encoding of the relocation
3190 27100 : pub fn encoding(&self) -> Encoding {
3191 27100 : Encoding::from_value(self.ptr.encoding())
3192 27100 : }
3193 :
3194 : /// Symbol associated with the relocation (if any)
3195 16200 : pub fn symbol(&self) -> Option<Symbol> {
3196 16200 : into_optional(self.ptr.symbol())
3197 16200 : }
3198 :
3199 : /// The section in which the relocation is applied (if any)
3200 16200 : pub fn section(&self) -> Option<Section> {
3201 16200 : into_optional(self.ptr.section())
3202 16200 : }
3203 :
3204 : /// The associated symbol table (if any)
3205 16200 : pub fn symbol_table(&self) -> Option<Section> {
3206 16200 : into_optional(self.ptr.symbol_table())
3207 16200 : }
3208 :
3209 : /// Try to resolve the value of the relocation with the provided base address.
3210 : ///
3211 : /// The returned value could be used such as: `*address = resolve_with_base_address(...)`
3212 : ///
3213 : /// See: [`Relocation::resolve`]
3214 0 : pub fn resolve_with_base_address(&self, base_address: u64) -> Result<u64, Error> {
3215 0 : to_result!(ffi::ELF_Relocation::resolve, &self, base_address);
3216 0 : }
3217 :
3218 : /// Try to resolve the value of the relocation.
3219 : /// The returned value could be used such as: `*address = resolve(...)`
3220 : ///
3221 : /// See: [`Relocation::resolve_with_base_address`]
3222 0 : pub fn resolve(&self) -> Result<u64, Error> {
3223 0 : self.resolve_with_base_address(0)
3224 0 : }
3225 : }
3226 :
3227 : impl std::fmt::Debug for Relocation<'_> {
3228 16200 : fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
3229 16200 : let base = self as &dyn generic::Relocation;
3230 16200 : f.debug_struct("Relocation")
3231 16200 : .field("base", &base)
3232 16200 : .field("addend", &self.addend())
3233 16200 : .field("type", &self.get_type())
3234 16200 : .field("info", &self.info())
3235 16200 : .field("architecture", &self.architecture())
3236 16200 : .field("purpose", &self.purpose())
3237 16200 : .field("encoding", &self.encoding())
3238 16200 : .field("symbol", &self.symbol())
3239 16200 : .field("section", &self.section())
3240 16200 : .field("symbol_table", &self.symbol_table())
3241 16200 : .finish()
3242 16200 : }
3243 : }
3244 :
3245 : impl FromFFI<ffi::ELF_Relocation> for Relocation<'_> {
3246 16220 : fn from_ffi(ptr: cxx::UniquePtr<ffi::ELF_Relocation>) -> Self {
3247 16220 : Relocation {
3248 16220 : ptr,
3249 16220 : _owner: PhantomData
3250 16220 : }
3251 16220 : }
3252 : }
3253 :
3254 : impl generic::Relocation for Relocation<'_> {
3255 32400 : fn as_generic(&self) -> &ffi::AbstractRelocation {
3256 32400 : self.ptr.as_ref().unwrap().as_ref()
3257 32400 : }
3258 : }
3259 :
3260 8100 : declare_iterator!(Relocations, Relocation<'a>, ffi::ELF_Relocation, ffi::ELF_Binary, ffi::ELF_Binary_it_relocations);
3261 2190 : declare_iterator!(PltGotRelocations, Relocation<'a>, ffi::ELF_Relocation, ffi::ELF_Binary, ffi::ELF_Binary_it_pltgot_relocations);
3262 5450 : declare_iterator!(DynamicRelocations, Relocation<'a>, ffi::ELF_Relocation, ffi::ELF_Binary, ffi::ELF_Binary_it_dynamic_relocations);
3263 460 : declare_iterator!(ObjectRelocations, Relocation<'a>, ffi::ELF_Relocation, ffi::ELF_Binary, ffi::ELF_Binary_it_object_relocations);
|