1
44
45 package elf
46
47 import "strconv"
48
49
52
53
54 const (
55 EI_CLASS = 4
56 EI_DATA = 5
57 EI_VERSION = 6
58 EI_OSABI = 7
59 EI_ABIVERSION = 8
60 EI_PAD = 9
61 EI_NIDENT = 16
62 )
63
64
65 const ELFMAG = "\177ELF"
66
67
68 type Version byte
69
70 const (
71 EV_NONE Version = 0
72 EV_CURRENT Version = 1
73 )
74
75 var versionStrings = []intName{
76 {0, "EV_NONE"},
77 {1, "EV_CURRENT"},
78 }
79
80 func (i Version) String() string { return stringName(uint32(i), versionStrings, false) }
81 func (i Version) GoString() string { return stringName(uint32(i), versionStrings, true) }
82
83
84 type Class byte
85
86 const (
87 ELFCLASSNONE Class = 0
88 ELFCLASS32 Class = 1
89 ELFCLASS64 Class = 2
90 )
91
92 var classStrings = []intName{
93 {0, "ELFCLASSNONE"},
94 {1, "ELFCLASS32"},
95 {2, "ELFCLASS64"},
96 }
97
98 func (i Class) String() string { return stringName(uint32(i), classStrings, false) }
99 func (i Class) GoString() string { return stringName(uint32(i), classStrings, true) }
100
101
102 type Data byte
103
104 const (
105 ELFDATANONE Data = 0
106 ELFDATA2LSB Data = 1
107 ELFDATA2MSB Data = 2
108 )
109
110 var dataStrings = []intName{
111 {0, "ELFDATANONE"},
112 {1, "ELFDATA2LSB"},
113 {2, "ELFDATA2MSB"},
114 }
115
116 func (i Data) String() string { return stringName(uint32(i), dataStrings, false) }
117 func (i Data) GoString() string { return stringName(uint32(i), dataStrings, true) }
118
119
120 type OSABI byte
121
122 const (
123 ELFOSABI_NONE OSABI = 0
124 ELFOSABI_HPUX OSABI = 1
125 ELFOSABI_NETBSD OSABI = 2
126 ELFOSABI_LINUX OSABI = 3
127 ELFOSABI_HURD OSABI = 4
128 ELFOSABI_86OPEN OSABI = 5
129 ELFOSABI_SOLARIS OSABI = 6
130 ELFOSABI_AIX OSABI = 7
131 ELFOSABI_IRIX OSABI = 8
132 ELFOSABI_FREEBSD OSABI = 9
133 ELFOSABI_TRU64 OSABI = 10
134 ELFOSABI_MODESTO OSABI = 11
135 ELFOSABI_OPENBSD OSABI = 12
136 ELFOSABI_OPENVMS OSABI = 13
137 ELFOSABI_NSK OSABI = 14
138 ELFOSABI_AROS OSABI = 15
139 ELFOSABI_FENIXOS OSABI = 16
140 ELFOSABI_CLOUDABI OSABI = 17
141 ELFOSABI_ARM OSABI = 97
142 ELFOSABI_STANDALONE OSABI = 255
143 )
144
145 var osabiStrings = []intName{
146 {0, "ELFOSABI_NONE"},
147 {1, "ELFOSABI_HPUX"},
148 {2, "ELFOSABI_NETBSD"},
149 {3, "ELFOSABI_LINUX"},
150 {4, "ELFOSABI_HURD"},
151 {5, "ELFOSABI_86OPEN"},
152 {6, "ELFOSABI_SOLARIS"},
153 {7, "ELFOSABI_AIX"},
154 {8, "ELFOSABI_IRIX"},
155 {9, "ELFOSABI_FREEBSD"},
156 {10, "ELFOSABI_TRU64"},
157 {11, "ELFOSABI_MODESTO"},
158 {12, "ELFOSABI_OPENBSD"},
159 {13, "ELFOSABI_OPENVMS"},
160 {14, "ELFOSABI_NSK"},
161 {15, "ELFOSABI_AROS"},
162 {16, "ELFOSABI_FENIXOS"},
163 {17, "ELFOSABI_CLOUDABI"},
164 {97, "ELFOSABI_ARM"},
165 {255, "ELFOSABI_STANDALONE"},
166 }
167
168 func (i OSABI) String() string { return stringName(uint32(i), osabiStrings, false) }
169 func (i OSABI) GoString() string { return stringName(uint32(i), osabiStrings, true) }
170
171
172 type Type uint16
173
174 const (
175 ET_NONE Type = 0
176 ET_REL Type = 1
177 ET_EXEC Type = 2
178 ET_DYN Type = 3
179 ET_CORE Type = 4
180 ET_LOOS Type = 0xfe00
181 ET_HIOS Type = 0xfeff
182 ET_LOPROC Type = 0xff00
183 ET_HIPROC Type = 0xffff
184 )
185
186 var typeStrings = []intName{
187 {0, "ET_NONE"},
188 {1, "ET_REL"},
189 {2, "ET_EXEC"},
190 {3, "ET_DYN"},
191 {4, "ET_CORE"},
192 {0xfe00, "ET_LOOS"},
193 {0xfeff, "ET_HIOS"},
194 {0xff00, "ET_LOPROC"},
195 {0xffff, "ET_HIPROC"},
196 }
197
198 func (i Type) String() string { return stringName(uint32(i), typeStrings, false) }
199 func (i Type) GoString() string { return stringName(uint32(i), typeStrings, true) }
200
201
202 type Machine uint16
203
204 const (
205 EM_NONE Machine = 0
206 EM_M32 Machine = 1
207 EM_SPARC Machine = 2
208 EM_386 Machine = 3
209 EM_68K Machine = 4
210 EM_88K Machine = 5
211 EM_860 Machine = 7
212 EM_MIPS Machine = 8
213 EM_S370 Machine = 9
214 EM_MIPS_RS3_LE Machine = 10
215 EM_PARISC Machine = 15
216 EM_VPP500 Machine = 17
217 EM_SPARC32PLUS Machine = 18
218 EM_960 Machine = 19
219 EM_PPC Machine = 20
220 EM_PPC64 Machine = 21
221 EM_S390 Machine = 22
222 EM_V800 Machine = 36
223 EM_FR20 Machine = 37
224 EM_RH32 Machine = 38
225 EM_RCE Machine = 39
226 EM_ARM Machine = 40
227 EM_SH Machine = 42
228 EM_SPARCV9 Machine = 43
229 EM_TRICORE Machine = 44
230 EM_ARC Machine = 45
231 EM_H8_300 Machine = 46
232 EM_H8_300H Machine = 47
233 EM_H8S Machine = 48
234 EM_H8_500 Machine = 49
235 EM_IA_64 Machine = 50
236 EM_MIPS_X Machine = 51
237 EM_COLDFIRE Machine = 52
238 EM_68HC12 Machine = 53
239 EM_MMA Machine = 54
240 EM_PCP Machine = 55
241 EM_NCPU Machine = 56
242 EM_NDR1 Machine = 57
243 EM_STARCORE Machine = 58
244 EM_ME16 Machine = 59
245 EM_ST100 Machine = 60
246 EM_TINYJ Machine = 61
247 EM_X86_64 Machine = 62
248 EM_PDSP Machine = 63
249 EM_PDP10 Machine = 64
250 EM_PDP11 Machine = 65
251 EM_FX66 Machine = 66
252 EM_ST9PLUS Machine = 67
253 EM_ST7 Machine = 68
254 EM_68HC16 Machine = 69
255 EM_68HC11 Machine = 70
256 EM_68HC08 Machine = 71
257 EM_68HC05 Machine = 72
258 EM_SVX Machine = 73
259 EM_ST19 Machine = 74
260 EM_VAX Machine = 75
261 EM_CRIS Machine = 76
262 EM_JAVELIN Machine = 77
263 EM_FIREPATH Machine = 78
264 EM_ZSP Machine = 79
265 EM_MMIX Machine = 80
266 EM_HUANY Machine = 81
267 EM_PRISM Machine = 82
268 EM_AVR Machine = 83
269 EM_FR30 Machine = 84
270 EM_D10V Machine = 85
271 EM_D30V Machine = 86
272 EM_V850 Machine = 87
273 EM_M32R Machine = 88
274 EM_MN10300 Machine = 89
275 EM_MN10200 Machine = 90
276 EM_PJ Machine = 91
277 EM_OPENRISC Machine = 92
278 EM_ARC_COMPACT Machine = 93
279 EM_XTENSA Machine = 94
280 EM_VIDEOCORE Machine = 95
281 EM_TMM_GPP Machine = 96
282 EM_NS32K Machine = 97
283 EM_TPC Machine = 98
284 EM_SNP1K Machine = 99
285 EM_ST200 Machine = 100
286 EM_IP2K Machine = 101
287 EM_MAX Machine = 102
288 EM_CR Machine = 103
289 EM_F2MC16 Machine = 104
290 EM_MSP430 Machine = 105
291 EM_BLACKFIN Machine = 106
292 EM_SE_C33 Machine = 107
293 EM_SEP Machine = 108
294 EM_ARCA Machine = 109
295 EM_UNICORE Machine = 110
296 EM_EXCESS Machine = 111
297 EM_DXP Machine = 112
298 EM_ALTERA_NIOS2 Machine = 113
299 EM_CRX Machine = 114
300 EM_XGATE Machine = 115
301 EM_C166 Machine = 116
302 EM_M16C Machine = 117
303 EM_DSPIC30F Machine = 118
304 EM_CE Machine = 119
305 EM_M32C Machine = 120
306 EM_TSK3000 Machine = 131
307 EM_RS08 Machine = 132
308 EM_SHARC Machine = 133
309 EM_ECOG2 Machine = 134
310 EM_SCORE7 Machine = 135
311 EM_DSP24 Machine = 136
312 EM_VIDEOCORE3 Machine = 137
313 EM_LATTICEMICO32 Machine = 138
314 EM_SE_C17 Machine = 139
315 EM_TI_C6000 Machine = 140
316 EM_TI_C2000 Machine = 141
317 EM_TI_C5500 Machine = 142
318 EM_TI_ARP32 Machine = 143
319 EM_TI_PRU Machine = 144
320 EM_MMDSP_PLUS Machine = 160
321 EM_CYPRESS_M8C Machine = 161
322 EM_R32C Machine = 162
323 EM_TRIMEDIA Machine = 163
324 EM_QDSP6 Machine = 164
325 EM_8051 Machine = 165
326 EM_STXP7X Machine = 166
327 EM_NDS32 Machine = 167
328 EM_ECOG1 Machine = 168
329 EM_ECOG1X Machine = 168
330 EM_MAXQ30 Machine = 169
331 EM_XIMO16 Machine = 170
332 EM_MANIK Machine = 171
333 EM_CRAYNV2 Machine = 172
334 EM_RX Machine = 173
335 EM_METAG Machine = 174
336 EM_MCST_ELBRUS Machine = 175
337 EM_ECOG16 Machine = 176
338 EM_CR16 Machine = 177
339 EM_ETPU Machine = 178
340 EM_SLE9X Machine = 179
341 EM_L10M Machine = 180
342 EM_K10M Machine = 181
343 EM_AARCH64 Machine = 183
344 EM_AVR32 Machine = 185
345 EM_STM8 Machine = 186
346 EM_TILE64 Machine = 187
347 EM_TILEPRO Machine = 188
348 EM_MICROBLAZE Machine = 189
349 EM_CUDA Machine = 190
350 EM_TILEGX Machine = 191
351 EM_CLOUDSHIELD Machine = 192
352 EM_COREA_1ST Machine = 193
353 EM_COREA_2ND Machine = 194
354 EM_ARC_COMPACT2 Machine = 195
355 EM_OPEN8 Machine = 196
356 EM_RL78 Machine = 197
357 EM_VIDEOCORE5 Machine = 198
358 EM_78KOR Machine = 199
359 EM_56800EX Machine = 200
360 EM_BA1 Machine = 201
361 EM_BA2 Machine = 202
362 EM_XCORE Machine = 203
363 EM_MCHP_PIC Machine = 204
364 EM_INTEL205 Machine = 205
365 EM_INTEL206 Machine = 206
366 EM_INTEL207 Machine = 207
367 EM_INTEL208 Machine = 208
368 EM_INTEL209 Machine = 209
369 EM_KM32 Machine = 210
370 EM_KMX32 Machine = 211
371 EM_KMX16 Machine = 212
372 EM_KMX8 Machine = 213
373 EM_KVARC Machine = 214
374 EM_CDP Machine = 215
375 EM_COGE Machine = 216
376 EM_COOL Machine = 217
377 EM_NORC Machine = 218
378 EM_CSR_KALIMBA Machine = 219
379 EM_Z80 Machine = 220
380 EM_VISIUM Machine = 221
381 EM_FT32 Machine = 222
382 EM_MOXIE Machine = 223
383 EM_AMDGPU Machine = 224
384 EM_RISCV Machine = 243
385 EM_LANAI Machine = 244
386 EM_BPF Machine = 247
387 EM_LOONGARCH Machine = 258
388
389
390 EM_486 Machine = 6
391 EM_MIPS_RS4_BE Machine = 10
392 EM_ALPHA_STD Machine = 41
393 EM_ALPHA Machine = 0x9026
394 )
395
396 var machineStrings = []intName{
397 {0, "EM_NONE"},
398 {1, "EM_M32"},
399 {2, "EM_SPARC"},
400 {3, "EM_386"},
401 {4, "EM_68K"},
402 {5, "EM_88K"},
403 {7, "EM_860"},
404 {8, "EM_MIPS"},
405 {9, "EM_S370"},
406 {10, "EM_MIPS_RS3_LE"},
407 {15, "EM_PARISC"},
408 {17, "EM_VPP500"},
409 {18, "EM_SPARC32PLUS"},
410 {19, "EM_960"},
411 {20, "EM_PPC"},
412 {21, "EM_PPC64"},
413 {22, "EM_S390"},
414 {36, "EM_V800"},
415 {37, "EM_FR20"},
416 {38, "EM_RH32"},
417 {39, "EM_RCE"},
418 {40, "EM_ARM"},
419 {42, "EM_SH"},
420 {43, "EM_SPARCV9"},
421 {44, "EM_TRICORE"},
422 {45, "EM_ARC"},
423 {46, "EM_H8_300"},
424 {47, "EM_H8_300H"},
425 {48, "EM_H8S"},
426 {49, "EM_H8_500"},
427 {50, "EM_IA_64"},
428 {51, "EM_MIPS_X"},
429 {52, "EM_COLDFIRE"},
430 {53, "EM_68HC12"},
431 {54, "EM_MMA"},
432 {55, "EM_PCP"},
433 {56, "EM_NCPU"},
434 {57, "EM_NDR1"},
435 {58, "EM_STARCORE"},
436 {59, "EM_ME16"},
437 {60, "EM_ST100"},
438 {61, "EM_TINYJ"},
439 {62, "EM_X86_64"},
440 {63, "EM_PDSP"},
441 {64, "EM_PDP10"},
442 {65, "EM_PDP11"},
443 {66, "EM_FX66"},
444 {67, "EM_ST9PLUS"},
445 {68, "EM_ST7"},
446 {69, "EM_68HC16"},
447 {70, "EM_68HC11"},
448 {71, "EM_68HC08"},
449 {72, "EM_68HC05"},
450 {73, "EM_SVX"},
451 {74, "EM_ST19"},
452 {75, "EM_VAX"},
453 {76, "EM_CRIS"},
454 {77, "EM_JAVELIN"},
455 {78, "EM_FIREPATH"},
456 {79, "EM_ZSP"},
457 {80, "EM_MMIX"},
458 {81, "EM_HUANY"},
459 {82, "EM_PRISM"},
460 {83, "EM_AVR"},
461 {84, "EM_FR30"},
462 {85, "EM_D10V"},
463 {86, "EM_D30V"},
464 {87, "EM_V850"},
465 {88, "EM_M32R"},
466 {89, "EM_MN10300"},
467 {90, "EM_MN10200"},
468 {91, "EM_PJ"},
469 {92, "EM_OPENRISC"},
470 {93, "EM_ARC_COMPACT"},
471 {94, "EM_XTENSA"},
472 {95, "EM_VIDEOCORE"},
473 {96, "EM_TMM_GPP"},
474 {97, "EM_NS32K"},
475 {98, "EM_TPC"},
476 {99, "EM_SNP1K"},
477 {100, "EM_ST200"},
478 {101, "EM_IP2K"},
479 {102, "EM_MAX"},
480 {103, "EM_CR"},
481 {104, "EM_F2MC16"},
482 {105, "EM_MSP430"},
483 {106, "EM_BLACKFIN"},
484 {107, "EM_SE_C33"},
485 {108, "EM_SEP"},
486 {109, "EM_ARCA"},
487 {110, "EM_UNICORE"},
488 {111, "EM_EXCESS"},
489 {112, "EM_DXP"},
490 {113, "EM_ALTERA_NIOS2"},
491 {114, "EM_CRX"},
492 {115, "EM_XGATE"},
493 {116, "EM_C166"},
494 {117, "EM_M16C"},
495 {118, "EM_DSPIC30F"},
496 {119, "EM_CE"},
497 {120, "EM_M32C"},
498 {131, "EM_TSK3000"},
499 {132, "EM_RS08"},
500 {133, "EM_SHARC"},
501 {134, "EM_ECOG2"},
502 {135, "EM_SCORE7"},
503 {136, "EM_DSP24"},
504 {137, "EM_VIDEOCORE3"},
505 {138, "EM_LATTICEMICO32"},
506 {139, "EM_SE_C17"},
507 {140, "EM_TI_C6000"},
508 {141, "EM_TI_C2000"},
509 {142, "EM_TI_C5500"},
510 {143, "EM_TI_ARP32"},
511 {144, "EM_TI_PRU"},
512 {160, "EM_MMDSP_PLUS"},
513 {161, "EM_CYPRESS_M8C"},
514 {162, "EM_R32C"},
515 {163, "EM_TRIMEDIA"},
516 {164, "EM_QDSP6"},
517 {165, "EM_8051"},
518 {166, "EM_STXP7X"},
519 {167, "EM_NDS32"},
520 {168, "EM_ECOG1"},
521 {168, "EM_ECOG1X"},
522 {169, "EM_MAXQ30"},
523 {170, "EM_XIMO16"},
524 {171, "EM_MANIK"},
525 {172, "EM_CRAYNV2"},
526 {173, "EM_RX"},
527 {174, "EM_METAG"},
528 {175, "EM_MCST_ELBRUS"},
529 {176, "EM_ECOG16"},
530 {177, "EM_CR16"},
531 {178, "EM_ETPU"},
532 {179, "EM_SLE9X"},
533 {180, "EM_L10M"},
534 {181, "EM_K10M"},
535 {183, "EM_AARCH64"},
536 {185, "EM_AVR32"},
537 {186, "EM_STM8"},
538 {187, "EM_TILE64"},
539 {188, "EM_TILEPRO"},
540 {189, "EM_MICROBLAZE"},
541 {190, "EM_CUDA"},
542 {191, "EM_TILEGX"},
543 {192, "EM_CLOUDSHIELD"},
544 {193, "EM_COREA_1ST"},
545 {194, "EM_COREA_2ND"},
546 {195, "EM_ARC_COMPACT2"},
547 {196, "EM_OPEN8"},
548 {197, "EM_RL78"},
549 {198, "EM_VIDEOCORE5"},
550 {199, "EM_78KOR"},
551 {200, "EM_56800EX"},
552 {201, "EM_BA1"},
553 {202, "EM_BA2"},
554 {203, "EM_XCORE"},
555 {204, "EM_MCHP_PIC"},
556 {205, "EM_INTEL205"},
557 {206, "EM_INTEL206"},
558 {207, "EM_INTEL207"},
559 {208, "EM_INTEL208"},
560 {209, "EM_INTEL209"},
561 {210, "EM_KM32"},
562 {211, "EM_KMX32"},
563 {212, "EM_KMX16"},
564 {213, "EM_KMX8"},
565 {214, "EM_KVARC"},
566 {215, "EM_CDP"},
567 {216, "EM_COGE"},
568 {217, "EM_COOL"},
569 {218, "EM_NORC"},
570 {219, "EM_CSR_KALIMBA "},
571 {220, "EM_Z80 "},
572 {221, "EM_VISIUM "},
573 {222, "EM_FT32 "},
574 {223, "EM_MOXIE"},
575 {224, "EM_AMDGPU"},
576 {243, "EM_RISCV"},
577 {244, "EM_LANAI"},
578 {247, "EM_BPF"},
579 {258, "EM_LOONGARCH"},
580
581
582 {6, "EM_486"},
583 {10, "EM_MIPS_RS4_BE"},
584 {41, "EM_ALPHA_STD"},
585 {0x9026, "EM_ALPHA"},
586 }
587
588 func (i Machine) String() string { return stringName(uint32(i), machineStrings, false) }
589 func (i Machine) GoString() string { return stringName(uint32(i), machineStrings, true) }
590
591
592 type SectionIndex int
593
594 const (
595 SHN_UNDEF SectionIndex = 0
596 SHN_LORESERVE SectionIndex = 0xff00
597 SHN_LOPROC SectionIndex = 0xff00
598 SHN_HIPROC SectionIndex = 0xff1f
599 SHN_LOOS SectionIndex = 0xff20
600 SHN_HIOS SectionIndex = 0xff3f
601 SHN_ABS SectionIndex = 0xfff1
602 SHN_COMMON SectionIndex = 0xfff2
603 SHN_XINDEX SectionIndex = 0xffff
604 SHN_HIRESERVE SectionIndex = 0xffff
605 )
606
607 var shnStrings = []intName{
608 {0, "SHN_UNDEF"},
609 {0xff00, "SHN_LOPROC"},
610 {0xff20, "SHN_LOOS"},
611 {0xfff1, "SHN_ABS"},
612 {0xfff2, "SHN_COMMON"},
613 {0xffff, "SHN_XINDEX"},
614 }
615
616 func (i SectionIndex) String() string { return stringName(uint32(i), shnStrings, false) }
617 func (i SectionIndex) GoString() string { return stringName(uint32(i), shnStrings, true) }
618
619
620 type SectionType uint32
621
622 const (
623 SHT_NULL SectionType = 0
624 SHT_PROGBITS SectionType = 1
625 SHT_SYMTAB SectionType = 2
626 SHT_STRTAB SectionType = 3
627 SHT_RELA SectionType = 4
628 SHT_HASH SectionType = 5
629 SHT_DYNAMIC SectionType = 6
630 SHT_NOTE SectionType = 7
631 SHT_NOBITS SectionType = 8
632 SHT_REL SectionType = 9
633 SHT_SHLIB SectionType = 10
634 SHT_DYNSYM SectionType = 11
635 SHT_INIT_ARRAY SectionType = 14
636 SHT_FINI_ARRAY SectionType = 15
637 SHT_PREINIT_ARRAY SectionType = 16
638 SHT_GROUP SectionType = 17
639 SHT_SYMTAB_SHNDX SectionType = 18
640 SHT_LOOS SectionType = 0x60000000
641 SHT_GNU_ATTRIBUTES SectionType = 0x6ffffff5
642 SHT_GNU_HASH SectionType = 0x6ffffff6
643 SHT_GNU_LIBLIST SectionType = 0x6ffffff7
644 SHT_GNU_VERDEF SectionType = 0x6ffffffd
645 SHT_GNU_VERNEED SectionType = 0x6ffffffe
646 SHT_GNU_VERSYM SectionType = 0x6fffffff
647 SHT_HIOS SectionType = 0x6fffffff
648 SHT_LOPROC SectionType = 0x70000000
649 SHT_MIPS_ABIFLAGS SectionType = 0x7000002a
650 SHT_HIPROC SectionType = 0x7fffffff
651 SHT_LOUSER SectionType = 0x80000000
652 SHT_HIUSER SectionType = 0xffffffff
653 )
654
655 var shtStrings = []intName{
656 {0, "SHT_NULL"},
657 {1, "SHT_PROGBITS"},
658 {2, "SHT_SYMTAB"},
659 {3, "SHT_STRTAB"},
660 {4, "SHT_RELA"},
661 {5, "SHT_HASH"},
662 {6, "SHT_DYNAMIC"},
663 {7, "SHT_NOTE"},
664 {8, "SHT_NOBITS"},
665 {9, "SHT_REL"},
666 {10, "SHT_SHLIB"},
667 {11, "SHT_DYNSYM"},
668 {14, "SHT_INIT_ARRAY"},
669 {15, "SHT_FINI_ARRAY"},
670 {16, "SHT_PREINIT_ARRAY"},
671 {17, "SHT_GROUP"},
672 {18, "SHT_SYMTAB_SHNDX"},
673 {0x60000000, "SHT_LOOS"},
674 {0x6ffffff5, "SHT_GNU_ATTRIBUTES"},
675 {0x6ffffff6, "SHT_GNU_HASH"},
676 {0x6ffffff7, "SHT_GNU_LIBLIST"},
677 {0x6ffffffd, "SHT_GNU_VERDEF"},
678 {0x6ffffffe, "SHT_GNU_VERNEED"},
679 {0x6fffffff, "SHT_GNU_VERSYM"},
680 {0x70000000, "SHT_LOPROC"},
681 {0x7000002a, "SHT_MIPS_ABIFLAGS"},
682 {0x7fffffff, "SHT_HIPROC"},
683 {0x80000000, "SHT_LOUSER"},
684 {0xffffffff, "SHT_HIUSER"},
685 }
686
687 func (i SectionType) String() string { return stringName(uint32(i), shtStrings, false) }
688 func (i SectionType) GoString() string { return stringName(uint32(i), shtStrings, true) }
689
690
691 type SectionFlag uint32
692
693 const (
694 SHF_WRITE SectionFlag = 0x1
695 SHF_ALLOC SectionFlag = 0x2
696 SHF_EXECINSTR SectionFlag = 0x4
697 SHF_MERGE SectionFlag = 0x10
698 SHF_STRINGS SectionFlag = 0x20
699 SHF_INFO_LINK SectionFlag = 0x40
700 SHF_LINK_ORDER SectionFlag = 0x80
701 SHF_OS_NONCONFORMING SectionFlag = 0x100
702 SHF_GROUP SectionFlag = 0x200
703 SHF_TLS SectionFlag = 0x400
704 SHF_COMPRESSED SectionFlag = 0x800
705 SHF_MASKOS SectionFlag = 0x0ff00000
706 SHF_MASKPROC SectionFlag = 0xf0000000
707 )
708
709 var shfStrings = []intName{
710 {0x1, "SHF_WRITE"},
711 {0x2, "SHF_ALLOC"},
712 {0x4, "SHF_EXECINSTR"},
713 {0x10, "SHF_MERGE"},
714 {0x20, "SHF_STRINGS"},
715 {0x40, "SHF_INFO_LINK"},
716 {0x80, "SHF_LINK_ORDER"},
717 {0x100, "SHF_OS_NONCONFORMING"},
718 {0x200, "SHF_GROUP"},
719 {0x400, "SHF_TLS"},
720 {0x800, "SHF_COMPRESSED"},
721 }
722
723 func (i SectionFlag) String() string { return flagName(uint32(i), shfStrings, false) }
724 func (i SectionFlag) GoString() string { return flagName(uint32(i), shfStrings, true) }
725
726
727 type CompressionType int
728
729 const (
730 COMPRESS_ZLIB CompressionType = 1
731 COMPRESS_LOOS CompressionType = 0x60000000
732 COMPRESS_HIOS CompressionType = 0x6fffffff
733 COMPRESS_LOPROC CompressionType = 0x70000000
734 COMPRESS_HIPROC CompressionType = 0x7fffffff
735 )
736
737 var compressionStrings = []intName{
738 {1, "COMPRESS_ZLIB"},
739 {0x60000000, "COMPRESS_LOOS"},
740 {0x6fffffff, "COMPRESS_HIOS"},
741 {0x70000000, "COMPRESS_LOPROC"},
742 {0x7fffffff, "COMPRESS_HIPROC"},
743 }
744
745 func (i CompressionType) String() string { return stringName(uint32(i), compressionStrings, false) }
746 func (i CompressionType) GoString() string { return stringName(uint32(i), compressionStrings, true) }
747
748
749 type ProgType int
750
751 const (
752 PT_NULL ProgType = 0
753 PT_LOAD ProgType = 1
754 PT_DYNAMIC ProgType = 2
755 PT_INTERP ProgType = 3
756 PT_NOTE ProgType = 4
757 PT_SHLIB ProgType = 5
758 PT_PHDR ProgType = 6
759 PT_TLS ProgType = 7
760
761 PT_LOOS ProgType = 0x60000000
762
763 PT_GNU_EH_FRAME ProgType = 0x6474e550
764 PT_GNU_STACK ProgType = 0x6474e551
765 PT_GNU_RELRO ProgType = 0x6474e552
766 PT_GNU_PROPERTY ProgType = 0x6474e553
767 PT_GNU_MBIND_LO ProgType = 0x6474e555
768 PT_GNU_MBIND_HI ProgType = 0x6474f554
769
770 PT_PAX_FLAGS ProgType = 0x65041580
771
772 PT_OPENBSD_RANDOMIZE ProgType = 0x65a3dbe6
773 PT_OPENBSD_WXNEEDED ProgType = 0x65a3dbe7
774 PT_OPENBSD_BOOTDATA ProgType = 0x65a41be6
775
776 PT_SUNW_EH_FRAME ProgType = 0x6474e550
777 PT_SUNWSTACK ProgType = 0x6ffffffb
778
779 PT_HIOS ProgType = 0x6fffffff
780
781 PT_LOPROC ProgType = 0x70000000
782
783 PT_ARM_ARCHEXT ProgType = 0x70000000
784 PT_ARM_EXIDX ProgType = 0x70000001
785
786 PT_AARCH64_ARCHEXT ProgType = 0x70000000
787 PT_AARCH64_UNWIND ProgType = 0x70000001
788
789 PT_MIPS_REGINFO ProgType = 0x70000000
790 PT_MIPS_RTPROC ProgType = 0x70000001
791 PT_MIPS_OPTIONS ProgType = 0x70000002
792 PT_MIPS_ABIFLAGS ProgType = 0x70000003
793
794 PT_S390_PGSTE ProgType = 0x70000000
795
796 PT_HIPROC ProgType = 0x7fffffff
797 )
798
799 var ptStrings = []intName{
800 {0, "PT_NULL"},
801 {1, "PT_LOAD"},
802 {2, "PT_DYNAMIC"},
803 {3, "PT_INTERP"},
804 {4, "PT_NOTE"},
805 {5, "PT_SHLIB"},
806 {6, "PT_PHDR"},
807 {7, "PT_TLS"},
808 {0x60000000, "PT_LOOS"},
809 {0x6474e550, "PT_GNU_EH_FRAME"},
810 {0x6474e551, "PT_GNU_STACK"},
811 {0x6474e552, "PT_GNU_RELRO"},
812 {0x6474e553, "PT_GNU_PROPERTY"},
813 {0x65041580, "PT_PAX_FLAGS"},
814 {0x65a3dbe6, "PT_OPENBSD_RANDOMIZE"},
815 {0x65a3dbe7, "PT_OPENBSD_WXNEEDED"},
816 {0x65a41be6, "PT_OPENBSD_BOOTDATA"},
817 {0x6ffffffb, "PT_SUNWSTACK"},
818 {0x6fffffff, "PT_HIOS"},
819 {0x70000000, "PT_LOPROC"},
820
821
822 {0x7fffffff, "PT_HIPROC"},
823 }
824
825 func (i ProgType) String() string { return stringName(uint32(i), ptStrings, false) }
826 func (i ProgType) GoString() string { return stringName(uint32(i), ptStrings, true) }
827
828
829 type ProgFlag uint32
830
831 const (
832 PF_X ProgFlag = 0x1
833 PF_W ProgFlag = 0x2
834 PF_R ProgFlag = 0x4
835 PF_MASKOS ProgFlag = 0x0ff00000
836 PF_MASKPROC ProgFlag = 0xf0000000
837 )
838
839 var pfStrings = []intName{
840 {0x1, "PF_X"},
841 {0x2, "PF_W"},
842 {0x4, "PF_R"},
843 }
844
845 func (i ProgFlag) String() string { return flagName(uint32(i), pfStrings, false) }
846 func (i ProgFlag) GoString() string { return flagName(uint32(i), pfStrings, true) }
847
848
849 type DynTag int
850
851 const (
852 DT_NULL DynTag = 0
853 DT_NEEDED DynTag = 1
854 DT_PLTRELSZ DynTag = 2
855 DT_PLTGOT DynTag = 3
856 DT_HASH DynTag = 4
857 DT_STRTAB DynTag = 5
858 DT_SYMTAB DynTag = 6
859 DT_RELA DynTag = 7
860 DT_RELASZ DynTag = 8
861 DT_RELAENT DynTag = 9
862 DT_STRSZ DynTag = 10
863 DT_SYMENT DynTag = 11
864 DT_INIT DynTag = 12
865 DT_FINI DynTag = 13
866 DT_SONAME DynTag = 14
867 DT_RPATH DynTag = 15
868 DT_SYMBOLIC DynTag = 16
869 DT_REL DynTag = 17
870 DT_RELSZ DynTag = 18
871 DT_RELENT DynTag = 19
872 DT_PLTREL DynTag = 20
873 DT_DEBUG DynTag = 21
874 DT_TEXTREL DynTag = 22
875 DT_JMPREL DynTag = 23
876 DT_BIND_NOW DynTag = 24
877 DT_INIT_ARRAY DynTag = 25
878 DT_FINI_ARRAY DynTag = 26
879 DT_INIT_ARRAYSZ DynTag = 27
880 DT_FINI_ARRAYSZ DynTag = 28
881 DT_RUNPATH DynTag = 29
882 DT_FLAGS DynTag = 30
883 DT_ENCODING DynTag = 32
888 DT_PREINIT_ARRAY DynTag = 32
889 DT_PREINIT_ARRAYSZ DynTag = 33
890 DT_SYMTAB_SHNDX DynTag = 34
891
892 DT_LOOS DynTag = 0x6000000d
893 DT_HIOS DynTag = 0x6ffff000
894
895 DT_VALRNGLO DynTag = 0x6ffffd00
896 DT_GNU_PRELINKED DynTag = 0x6ffffdf5
897 DT_GNU_CONFLICTSZ DynTag = 0x6ffffdf6
898 DT_GNU_LIBLISTSZ DynTag = 0x6ffffdf7
899 DT_CHECKSUM DynTag = 0x6ffffdf8
900 DT_PLTPADSZ DynTag = 0x6ffffdf9
901 DT_MOVEENT DynTag = 0x6ffffdfa
902 DT_MOVESZ DynTag = 0x6ffffdfb
903 DT_FEATURE DynTag = 0x6ffffdfc
904 DT_POSFLAG_1 DynTag = 0x6ffffdfd
905 DT_SYMINSZ DynTag = 0x6ffffdfe
906 DT_SYMINENT DynTag = 0x6ffffdff
907 DT_VALRNGHI DynTag = 0x6ffffdff
908
909 DT_ADDRRNGLO DynTag = 0x6ffffe00
910 DT_GNU_HASH DynTag = 0x6ffffef5
911 DT_TLSDESC_PLT DynTag = 0x6ffffef6
912 DT_TLSDESC_GOT DynTag = 0x6ffffef7
913 DT_GNU_CONFLICT DynTag = 0x6ffffef8
914 DT_GNU_LIBLIST DynTag = 0x6ffffef9
915 DT_CONFIG DynTag = 0x6ffffefa
916 DT_DEPAUDIT DynTag = 0x6ffffefb
917 DT_AUDIT DynTag = 0x6ffffefc
918 DT_PLTPAD DynTag = 0x6ffffefd
919 DT_MOVETAB DynTag = 0x6ffffefe
920 DT_SYMINFO DynTag = 0x6ffffeff
921 DT_ADDRRNGHI DynTag = 0x6ffffeff
922
923 DT_VERSYM DynTag = 0x6ffffff0
924 DT_RELACOUNT DynTag = 0x6ffffff9
925 DT_RELCOUNT DynTag = 0x6ffffffa
926 DT_FLAGS_1 DynTag = 0x6ffffffb
927 DT_VERDEF DynTag = 0x6ffffffc
928 DT_VERDEFNUM DynTag = 0x6ffffffd
929 DT_VERNEED DynTag = 0x6ffffffe
930 DT_VERNEEDNUM DynTag = 0x6fffffff
931
932 DT_LOPROC DynTag = 0x70000000
933
934 DT_MIPS_RLD_VERSION DynTag = 0x70000001
935 DT_MIPS_TIME_STAMP DynTag = 0x70000002
936 DT_MIPS_ICHECKSUM DynTag = 0x70000003
937 DT_MIPS_IVERSION DynTag = 0x70000004
938 DT_MIPS_FLAGS DynTag = 0x70000005
939 DT_MIPS_BASE_ADDRESS DynTag = 0x70000006
940 DT_MIPS_MSYM DynTag = 0x70000007
941 DT_MIPS_CONFLICT DynTag = 0x70000008
942 DT_MIPS_LIBLIST DynTag = 0x70000009
943 DT_MIPS_LOCAL_GOTNO DynTag = 0x7000000a
944 DT_MIPS_CONFLICTNO DynTag = 0x7000000b
945 DT_MIPS_LIBLISTNO DynTag = 0x70000010
946 DT_MIPS_SYMTABNO DynTag = 0x70000011
947 DT_MIPS_UNREFEXTNO DynTag = 0x70000012
948 DT_MIPS_GOTSYM DynTag = 0x70000013
949 DT_MIPS_HIPAGENO DynTag = 0x70000014
950 DT_MIPS_RLD_MAP DynTag = 0x70000016
951 DT_MIPS_DELTA_CLASS DynTag = 0x70000017
952 DT_MIPS_DELTA_CLASS_NO DynTag = 0x70000018
953 DT_MIPS_DELTA_INSTANCE DynTag = 0x70000019
954 DT_MIPS_DELTA_INSTANCE_NO DynTag = 0x7000001a
955 DT_MIPS_DELTA_RELOC DynTag = 0x7000001b
956 DT_MIPS_DELTA_RELOC_NO DynTag = 0x7000001c
957 DT_MIPS_DELTA_SYM DynTag = 0x7000001d
958 DT_MIPS_DELTA_SYM_NO DynTag = 0x7000001e
959 DT_MIPS_DELTA_CLASSSYM DynTag = 0x70000020
960 DT_MIPS_DELTA_CLASSSYM_NO DynTag = 0x70000021
961 DT_MIPS_CXX_FLAGS DynTag = 0x70000022
962 DT_MIPS_PIXIE_INIT DynTag = 0x70000023
963 DT_MIPS_SYMBOL_LIB DynTag = 0x70000024
964 DT_MIPS_LOCALPAGE_GOTIDX DynTag = 0x70000025
965 DT_MIPS_LOCAL_GOTIDX DynTag = 0x70000026
966 DT_MIPS_HIDDEN_GOTIDX DynTag = 0x70000027
967 DT_MIPS_PROTECTED_GOTIDX DynTag = 0x70000028
968 DT_MIPS_OPTIONS DynTag = 0x70000029
969 DT_MIPS_INTERFACE DynTag = 0x7000002a
970 DT_MIPS_DYNSTR_ALIGN DynTag = 0x7000002b
971 DT_MIPS_INTERFACE_SIZE DynTag = 0x7000002c
972 DT_MIPS_RLD_TEXT_RESOLVE_ADDR DynTag = 0x7000002d
973 DT_MIPS_PERF_SUFFIX DynTag = 0x7000002e
974 DT_MIPS_COMPACT_SIZE DynTag = 0x7000002f
975 DT_MIPS_GP_VALUE DynTag = 0x70000030
976 DT_MIPS_AUX_DYNAMIC DynTag = 0x70000031
977 DT_MIPS_PLTGOT DynTag = 0x70000032
978 DT_MIPS_RWPLT DynTag = 0x70000034
979 DT_MIPS_RLD_MAP_REL DynTag = 0x70000035
980
981 DT_PPC_GOT DynTag = 0x70000000
982 DT_PPC_OPT DynTag = 0x70000001
983
984 DT_PPC64_GLINK DynTag = 0x70000000
985 DT_PPC64_OPD DynTag = 0x70000001
986 DT_PPC64_OPDSZ DynTag = 0x70000002
987 DT_PPC64_OPT DynTag = 0x70000003
988
989 DT_SPARC_REGISTER DynTag = 0x70000001
990
991 DT_AUXILIARY DynTag = 0x7ffffffd
992 DT_USED DynTag = 0x7ffffffe
993 DT_FILTER DynTag = 0x7fffffff
994
995 DT_HIPROC DynTag = 0x7fffffff
996 )
997
998 var dtStrings = []intName{
999 {0, "DT_NULL"},
1000 {1, "DT_NEEDED"},
1001 {2, "DT_PLTRELSZ"},
1002 {3, "DT_PLTGOT"},
1003 {4, "DT_HASH"},
1004 {5, "DT_STRTAB"},
1005 {6, "DT_SYMTAB"},
1006 {7, "DT_RELA"},
1007 {8, "DT_RELASZ"},
1008 {9, "DT_RELAENT"},
1009 {10, "DT_STRSZ"},
1010 {11, "DT_SYMENT"},
1011 {12, "DT_INIT"},
1012 {13, "DT_FINI"},
1013 {14, "DT_SONAME"},
1014 {15, "DT_RPATH"},
1015 {16, "DT_SYMBOLIC"},
1016 {17, "DT_REL"},
1017 {18, "DT_RELSZ"},
1018 {19, "DT_RELENT"},
1019 {20, "DT_PLTREL"},
1020 {21, "DT_DEBUG"},
1021 {22, "DT_TEXTREL"},
1022 {23, "DT_JMPREL"},
1023 {24, "DT_BIND_NOW"},
1024 {25, "DT_INIT_ARRAY"},
1025 {26, "DT_FINI_ARRAY"},
1026 {27, "DT_INIT_ARRAYSZ"},
1027 {28, "DT_FINI_ARRAYSZ"},
1028 {29, "DT_RUNPATH"},
1029 {30, "DT_FLAGS"},
1030 {32, "DT_ENCODING"},
1031 {32, "DT_PREINIT_ARRAY"},
1032 {33, "DT_PREINIT_ARRAYSZ"},
1033 {34, "DT_SYMTAB_SHNDX"},
1034 {0x6000000d, "DT_LOOS"},
1035 {0x6ffff000, "DT_HIOS"},
1036 {0x6ffffd00, "DT_VALRNGLO"},
1037 {0x6ffffdf5, "DT_GNU_PRELINKED"},
1038 {0x6ffffdf6, "DT_GNU_CONFLICTSZ"},
1039 {0x6ffffdf7, "DT_GNU_LIBLISTSZ"},
1040 {0x6ffffdf8, "DT_CHECKSUM"},
1041 {0x6ffffdf9, "DT_PLTPADSZ"},
1042 {0x6ffffdfa, "DT_MOVEENT"},
1043 {0x6ffffdfb, "DT_MOVESZ"},
1044 {0x6ffffdfc, "DT_FEATURE"},
1045 {0x6ffffdfd, "DT_POSFLAG_1"},
1046 {0x6ffffdfe, "DT_SYMINSZ"},
1047 {0x6ffffdff, "DT_SYMINENT"},
1048 {0x6ffffdff, "DT_VALRNGHI"},
1049 {0x6ffffe00, "DT_ADDRRNGLO"},
1050 {0x6ffffef5, "DT_GNU_HASH"},
1051 {0x6ffffef6, "DT_TLSDESC_PLT"},
1052 {0x6ffffef7, "DT_TLSDESC_GOT"},
1053 {0x6ffffef8, "DT_GNU_CONFLICT"},
1054 {0x6ffffef9, "DT_GNU_LIBLIST"},
1055 {0x6ffffefa, "DT_CONFIG"},
1056 {0x6ffffefb, "DT_DEPAUDIT"},
1057 {0x6ffffefc, "DT_AUDIT"},
1058 {0x6ffffefd, "DT_PLTPAD"},
1059 {0x6ffffefe, "DT_MOVETAB"},
1060 {0x6ffffeff, "DT_SYMINFO"},
1061 {0x6ffffeff, "DT_ADDRRNGHI"},
1062 {0x6ffffff0, "DT_VERSYM"},
1063 {0x6ffffff9, "DT_RELACOUNT"},
1064 {0x6ffffffa, "DT_RELCOUNT"},
1065 {0x6ffffffb, "DT_FLAGS_1"},
1066 {0x6ffffffc, "DT_VERDEF"},
1067 {0x6ffffffd, "DT_VERDEFNUM"},
1068 {0x6ffffffe, "DT_VERNEED"},
1069 {0x6fffffff, "DT_VERNEEDNUM"},
1070 {0x70000000, "DT_LOPROC"},
1071
1072
1073 {0x7ffffffd, "DT_AUXILIARY"},
1074 {0x7ffffffe, "DT_USED"},
1075 {0x7fffffff, "DT_FILTER"},
1076 }
1077
1078 func (i DynTag) String() string { return stringName(uint32(i), dtStrings, false) }
1079 func (i DynTag) GoString() string { return stringName(uint32(i), dtStrings, true) }
1080
1081
1082 type DynFlag int
1083
1084 const (
1085 DF_ORIGIN DynFlag = 0x0001
1088 DF_SYMBOLIC DynFlag = 0x0002
1089 DF_TEXTREL DynFlag = 0x0004
1090 DF_BIND_NOW DynFlag = 0x0008
1094 DF_STATIC_TLS DynFlag = 0x0010
1097 )
1098
1099 var dflagStrings = []intName{
1100 {0x0001, "DF_ORIGIN"},
1101 {0x0002, "DF_SYMBOLIC"},
1102 {0x0004, "DF_TEXTREL"},
1103 {0x0008, "DF_BIND_NOW"},
1104 {0x0010, "DF_STATIC_TLS"},
1105 }
1106
1107 func (i DynFlag) String() string { return flagName(uint32(i), dflagStrings, false) }
1108 func (i DynFlag) GoString() string { return flagName(uint32(i), dflagStrings, true) }
1109
1110
1111 type NType int
1112
1113 const (
1114 NT_PRSTATUS NType = 1
1115 NT_FPREGSET NType = 2
1116 NT_PRPSINFO NType = 3
1117 )
1118
1119 var ntypeStrings = []intName{
1120 {1, "NT_PRSTATUS"},
1121 {2, "NT_FPREGSET"},
1122 {3, "NT_PRPSINFO"},
1123 }
1124
1125 func (i NType) String() string { return stringName(uint32(i), ntypeStrings, false) }
1126 func (i NType) GoString() string { return stringName(uint32(i), ntypeStrings, true) }
1127
1128
1129 type SymBind int
1130
1131 const (
1132 STB_LOCAL SymBind = 0
1133 STB_GLOBAL SymBind = 1
1134 STB_WEAK SymBind = 2
1135 STB_LOOS SymBind = 10
1136 STB_HIOS SymBind = 12
1137 STB_LOPROC SymBind = 13
1138 STB_HIPROC SymBind = 15
1139 )
1140
1141 var stbStrings = []intName{
1142 {0, "STB_LOCAL"},
1143 {1, "STB_GLOBAL"},
1144 {2, "STB_WEAK"},
1145 {10, "STB_LOOS"},
1146 {12, "STB_HIOS"},
1147 {13, "STB_LOPROC"},
1148 {15, "STB_HIPROC"},
1149 }
1150
1151 func (i SymBind) String() string { return stringName(uint32(i), stbStrings, false) }
1152 func (i SymBind) GoString() string { return stringName(uint32(i), stbStrings, true) }
1153
1154
1155 type SymType int
1156
1157 const (
1158 STT_NOTYPE SymType = 0
1159 STT_OBJECT SymType = 1
1160 STT_FUNC SymType = 2
1161 STT_SECTION SymType = 3
1162 STT_FILE SymType = 4
1163 STT_COMMON SymType = 5
1164 STT_TLS SymType = 6
1165 STT_LOOS SymType = 10
1166 STT_HIOS SymType = 12
1167 STT_LOPROC SymType = 13
1168 STT_HIPROC SymType = 15
1169 )
1170
1171 var sttStrings = []intName{
1172 {0, "STT_NOTYPE"},
1173 {1, "STT_OBJECT"},
1174 {2, "STT_FUNC"},
1175 {3, "STT_SECTION"},
1176 {4, "STT_FILE"},
1177 {5, "STT_COMMON"},
1178 {6, "STT_TLS"},
1179 {10, "STT_LOOS"},
1180 {12, "STT_HIOS"},
1181 {13, "STT_LOPROC"},
1182 {15, "STT_HIPROC"},
1183 }
1184
1185 func (i SymType) String() string { return stringName(uint32(i), sttStrings, false) }
1186 func (i SymType) GoString() string { return stringName(uint32(i), sttStrings, true) }
1187
1188
1189 type SymVis int
1190
1191 const (
1192 STV_DEFAULT SymVis = 0x0
1193 STV_INTERNAL SymVis = 0x1
1194 STV_HIDDEN SymVis = 0x2
1195 STV_PROTECTED SymVis = 0x3
1196 )
1197
1198 var stvStrings = []intName{
1199 {0x0, "STV_DEFAULT"},
1200 {0x1, "STV_INTERNAL"},
1201 {0x2, "STV_HIDDEN"},
1202 {0x3, "STV_PROTECTED"},
1203 }
1204
1205 func (i SymVis) String() string { return stringName(uint32(i), stvStrings, false) }
1206 func (i SymVis) GoString() string { return stringName(uint32(i), stvStrings, true) }
1207
1208
1211
1212
1213 type R_X86_64 int
1214
1215 const (
1216 R_X86_64_NONE R_X86_64 = 0
1217 R_X86_64_64 R_X86_64 = 1
1218 R_X86_64_PC32 R_X86_64 = 2
1219 R_X86_64_GOT32 R_X86_64 = 3
1220 R_X86_64_PLT32 R_X86_64 = 4
1221 R_X86_64_COPY R_X86_64 = 5
1222 R_X86_64_GLOB_DAT R_X86_64 = 6
1223 R_X86_64_JMP_SLOT R_X86_64 = 7
1224 R_X86_64_RELATIVE R_X86_64 = 8
1225 R_X86_64_GOTPCREL R_X86_64 = 9
1226 R_X86_64_32 R_X86_64 = 10
1227 R_X86_64_32S R_X86_64 = 11
1228 R_X86_64_16 R_X86_64 = 12
1229 R_X86_64_PC16 R_X86_64 = 13
1230 R_X86_64_8 R_X86_64 = 14
1231 R_X86_64_PC8 R_X86_64 = 15
1232 R_X86_64_DTPMOD64 R_X86_64 = 16
1233 R_X86_64_DTPOFF64 R_X86_64 = 17
1234 R_X86_64_TPOFF64 R_X86_64 = 18
1235 R_X86_64_TLSGD R_X86_64 = 19
1236 R_X86_64_TLSLD R_X86_64 = 20
1237 R_X86_64_DTPOFF32 R_X86_64 = 21
1238 R_X86_64_GOTTPOFF R_X86_64 = 22
1239 R_X86_64_TPOFF32 R_X86_64 = 23
1240 R_X86_64_PC64 R_X86_64 = 24
1241 R_X86_64_GOTOFF64 R_X86_64 = 25
1242 R_X86_64_GOTPC32 R_X86_64 = 26
1243 R_X86_64_GOT64 R_X86_64 = 27
1244 R_X86_64_GOTPCREL64 R_X86_64 = 28
1245 R_X86_64_GOTPC64 R_X86_64 = 29
1246 R_X86_64_GOTPLT64 R_X86_64 = 30
1247 R_X86_64_PLTOFF64 R_X86_64 = 31
1248 R_X86_64_SIZE32 R_X86_64 = 32
1249 R_X86_64_SIZE64 R_X86_64 = 33
1250 R_X86_64_GOTPC32_TLSDESC R_X86_64 = 34
1251 R_X86_64_TLSDESC_CALL R_X86_64 = 35
1252 R_X86_64_TLSDESC R_X86_64 = 36
1253 R_X86_64_IRELATIVE R_X86_64 = 37
1254 R_X86_64_RELATIVE64 R_X86_64 = 38
1255 R_X86_64_PC32_BND R_X86_64 = 39
1256 R_X86_64_PLT32_BND R_X86_64 = 40
1257 R_X86_64_GOTPCRELX R_X86_64 = 41
1258 R_X86_64_REX_GOTPCRELX R_X86_64 = 42
1259 )
1260
1261 var rx86_64Strings = []intName{
1262 {0, "R_X86_64_NONE"},
1263 {1, "R_X86_64_64"},
1264 {2, "R_X86_64_PC32"},
1265 {3, "R_X86_64_GOT32"},
1266 {4, "R_X86_64_PLT32"},
1267 {5, "R_X86_64_COPY"},
1268 {6, "R_X86_64_GLOB_DAT"},
1269 {7, "R_X86_64_JMP_SLOT"},
1270 {8, "R_X86_64_RELATIVE"},
1271 {9, "R_X86_64_GOTPCREL"},
1272 {10, "R_X86_64_32"},
1273 {11, "R_X86_64_32S"},
1274 {12, "R_X86_64_16"},
1275 {13, "R_X86_64_PC16"},
1276 {14, "R_X86_64_8"},
1277 {15, "R_X86_64_PC8"},
1278 {16, "R_X86_64_DTPMOD64"},
1279 {17, "R_X86_64_DTPOFF64"},
1280 {18, "R_X86_64_TPOFF64"},
1281 {19, "R_X86_64_TLSGD"},
1282 {20, "R_X86_64_TLSLD"},
1283 {21, "R_X86_64_DTPOFF32"},
1284 {22, "R_X86_64_GOTTPOFF"},
1285 {23, "R_X86_64_TPOFF32"},
1286 {24, "R_X86_64_PC64"},
1287 {25, "R_X86_64_GOTOFF64"},
1288 {26, "R_X86_64_GOTPC32"},
1289 {27, "R_X86_64_GOT64"},
1290 {28, "R_X86_64_GOTPCREL64"},
1291 {29, "R_X86_64_GOTPC64"},
1292 {30, "R_X86_64_GOTPLT64"},
1293 {31, "R_X86_64_PLTOFF64"},
1294 {32, "R_X86_64_SIZE32"},
1295 {33, "R_X86_64_SIZE64"},
1296 {34, "R_X86_64_GOTPC32_TLSDESC"},
1297 {35, "R_X86_64_TLSDESC_CALL"},
1298 {36, "R_X86_64_TLSDESC"},
1299 {37, "R_X86_64_IRELATIVE"},
1300 {38, "R_X86_64_RELATIVE64"},
1301 {39, "R_X86_64_PC32_BND"},
1302 {40, "R_X86_64_PLT32_BND"},
1303 {41, "R_X86_64_GOTPCRELX"},
1304 {42, "R_X86_64_REX_GOTPCRELX"},
1305 }
1306
1307 func (i R_X86_64) String() string { return stringName(uint32(i), rx86_64Strings, false) }
1308 func (i R_X86_64) GoString() string { return stringName(uint32(i), rx86_64Strings, true) }
1309
1310
1311 type R_AARCH64 int
1312
1313 const (
1314 R_AARCH64_NONE R_AARCH64 = 0
1315 R_AARCH64_P32_ABS32 R_AARCH64 = 1
1316 R_AARCH64_P32_ABS16 R_AARCH64 = 2
1317 R_AARCH64_P32_PREL32 R_AARCH64 = 3
1318 R_AARCH64_P32_PREL16 R_AARCH64 = 4
1319 R_AARCH64_P32_MOVW_UABS_G0 R_AARCH64 = 5
1320 R_AARCH64_P32_MOVW_UABS_G0_NC R_AARCH64 = 6
1321 R_AARCH64_P32_MOVW_UABS_G1 R_AARCH64 = 7
1322 R_AARCH64_P32_MOVW_SABS_G0 R_AARCH64 = 8
1323 R_AARCH64_P32_LD_PREL_LO19 R_AARCH64 = 9
1324 R_AARCH64_P32_ADR_PREL_LO21 R_AARCH64 = 10
1325 R_AARCH64_P32_ADR_PREL_PG_HI21 R_AARCH64 = 11
1326 R_AARCH64_P32_ADD_ABS_LO12_NC R_AARCH64 = 12
1327 R_AARCH64_P32_LDST8_ABS_LO12_NC R_AARCH64 = 13
1328 R_AARCH64_P32_LDST16_ABS_LO12_NC R_AARCH64 = 14
1329 R_AARCH64_P32_LDST32_ABS_LO12_NC R_AARCH64 = 15
1330 R_AARCH64_P32_LDST64_ABS_LO12_NC R_AARCH64 = 16
1331 R_AARCH64_P32_LDST128_ABS_LO12_NC R_AARCH64 = 17
1332 R_AARCH64_P32_TSTBR14 R_AARCH64 = 18
1333 R_AARCH64_P32_CONDBR19 R_AARCH64 = 19
1334 R_AARCH64_P32_JUMP26 R_AARCH64 = 20
1335 R_AARCH64_P32_CALL26 R_AARCH64 = 21
1336 R_AARCH64_P32_GOT_LD_PREL19 R_AARCH64 = 25
1337 R_AARCH64_P32_ADR_GOT_PAGE R_AARCH64 = 26
1338 R_AARCH64_P32_LD32_GOT_LO12_NC R_AARCH64 = 27
1339 R_AARCH64_P32_TLSGD_ADR_PAGE21 R_AARCH64 = 81
1340 R_AARCH64_P32_TLSGD_ADD_LO12_NC R_AARCH64 = 82
1341 R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21 R_AARCH64 = 103
1342 R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC R_AARCH64 = 104
1343 R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19 R_AARCH64 = 105
1344 R_AARCH64_P32_TLSLE_MOVW_TPREL_G1 R_AARCH64 = 106
1345 R_AARCH64_P32_TLSLE_MOVW_TPREL_G0 R_AARCH64 = 107
1346 R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC R_AARCH64 = 108
1347 R_AARCH64_P32_TLSLE_ADD_TPREL_HI12 R_AARCH64 = 109
1348 R_AARCH64_P32_TLSLE_ADD_TPREL_LO12 R_AARCH64 = 110
1349 R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC R_AARCH64 = 111
1350 R_AARCH64_P32_TLSDESC_LD_PREL19 R_AARCH64 = 122
1351 R_AARCH64_P32_TLSDESC_ADR_PREL21 R_AARCH64 = 123
1352 R_AARCH64_P32_TLSDESC_ADR_PAGE21 R_AARCH64 = 124
1353 R_AARCH64_P32_TLSDESC_LD32_LO12_NC R_AARCH64 = 125
1354 R_AARCH64_P32_TLSDESC_ADD_LO12_NC R_AARCH64 = 126
1355 R_AARCH64_P32_TLSDESC_CALL R_AARCH64 = 127
1356 R_AARCH64_P32_COPY R_AARCH64 = 180
1357 R_AARCH64_P32_GLOB_DAT R_AARCH64 = 181
1358 R_AARCH64_P32_JUMP_SLOT R_AARCH64 = 182
1359 R_AARCH64_P32_RELATIVE R_AARCH64 = 183
1360 R_AARCH64_P32_TLS_DTPMOD R_AARCH64 = 184
1361 R_AARCH64_P32_TLS_DTPREL R_AARCH64 = 185
1362 R_AARCH64_P32_TLS_TPREL R_AARCH64 = 186
1363 R_AARCH64_P32_TLSDESC R_AARCH64 = 187
1364 R_AARCH64_P32_IRELATIVE R_AARCH64 = 188
1365 R_AARCH64_NULL R_AARCH64 = 256
1366 R_AARCH64_ABS64 R_AARCH64 = 257
1367 R_AARCH64_ABS32 R_AARCH64 = 258
1368 R_AARCH64_ABS16 R_AARCH64 = 259
1369 R_AARCH64_PREL64 R_AARCH64 = 260
1370 R_AARCH64_PREL32 R_AARCH64 = 261
1371 R_AARCH64_PREL16 R_AARCH64 = 262
1372 R_AARCH64_MOVW_UABS_G0 R_AARCH64 = 263
1373 R_AARCH64_MOVW_UABS_G0_NC R_AARCH64 = 264
1374 R_AARCH64_MOVW_UABS_G1 R_AARCH64 = 265
1375 R_AARCH64_MOVW_UABS_G1_NC R_AARCH64 = 266
1376 R_AARCH64_MOVW_UABS_G2 R_AARCH64 = 267
1377 R_AARCH64_MOVW_UABS_G2_NC R_AARCH64 = 268
1378 R_AARCH64_MOVW_UABS_G3 R_AARCH64 = 269
1379 R_AARCH64_MOVW_SABS_G0 R_AARCH64 = 270
1380 R_AARCH64_MOVW_SABS_G1 R_AARCH64 = 271
1381 R_AARCH64_MOVW_SABS_G2 R_AARCH64 = 272
1382 R_AARCH64_LD_PREL_LO19 R_AARCH64 = 273
1383 R_AARCH64_ADR_PREL_LO21 R_AARCH64 = 274
1384 R_AARCH64_ADR_PREL_PG_HI21 R_AARCH64 = 275
1385 R_AARCH64_ADR_PREL_PG_HI21_NC R_AARCH64 = 276
1386 R_AARCH64_ADD_ABS_LO12_NC R_AARCH64 = 277
1387 R_AARCH64_LDST8_ABS_LO12_NC R_AARCH64 = 278
1388 R_AARCH64_TSTBR14 R_AARCH64 = 279
1389 R_AARCH64_CONDBR19 R_AARCH64 = 280
1390 R_AARCH64_JUMP26 R_AARCH64 = 282
1391 R_AARCH64_CALL26 R_AARCH64 = 283
1392 R_AARCH64_LDST16_ABS_LO12_NC R_AARCH64 = 284
1393 R_AARCH64_LDST32_ABS_LO12_NC R_AARCH64 = 285
1394 R_AARCH64_LDST64_ABS_LO12_NC R_AARCH64 = 286
1395 R_AARCH64_LDST128_ABS_LO12_NC R_AARCH64 = 299
1396 R_AARCH64_GOT_LD_PREL19 R_AARCH64 = 309
1397 R_AARCH64_LD64_GOTOFF_LO15 R_AARCH64 = 310
1398 R_AARCH64_ADR_GOT_PAGE R_AARCH64 = 311
1399 R_AARCH64_LD64_GOT_LO12_NC R_AARCH64 = 312
1400 R_AARCH64_LD64_GOTPAGE_LO15 R_AARCH64 = 313
1401 R_AARCH64_TLSGD_ADR_PREL21 R_AARCH64 = 512
1402 R_AARCH64_TLSGD_ADR_PAGE21 R_AARCH64 = 513
1403 R_AARCH64_TLSGD_ADD_LO12_NC R_AARCH64 = 514
1404 R_AARCH64_TLSGD_MOVW_G1 R_AARCH64 = 515
1405 R_AARCH64_TLSGD_MOVW_G0_NC R_AARCH64 = 516
1406 R_AARCH64_TLSLD_ADR_PREL21 R_AARCH64 = 517
1407 R_AARCH64_TLSLD_ADR_PAGE21 R_AARCH64 = 518
1408 R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 R_AARCH64 = 539
1409 R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC R_AARCH64 = 540
1410 R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 R_AARCH64 = 541
1411 R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC R_AARCH64 = 542
1412 R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 R_AARCH64 = 543
1413 R_AARCH64_TLSLE_MOVW_TPREL_G2 R_AARCH64 = 544
1414 R_AARCH64_TLSLE_MOVW_TPREL_G1 R_AARCH64 = 545
1415 R_AARCH64_TLSLE_MOVW_TPREL_G1_NC R_AARCH64 = 546
1416 R_AARCH64_TLSLE_MOVW_TPREL_G0 R_AARCH64 = 547
1417 R_AARCH64_TLSLE_MOVW_TPREL_G0_NC R_AARCH64 = 548
1418 R_AARCH64_TLSLE_ADD_TPREL_HI12 R_AARCH64 = 549
1419 R_AARCH64_TLSLE_ADD_TPREL_LO12 R_AARCH64 = 550
1420 R_AARCH64_TLSLE_ADD_TPREL_LO12_NC R_AARCH64 = 551
1421 R_AARCH64_TLSDESC_LD_PREL19 R_AARCH64 = 560
1422 R_AARCH64_TLSDESC_ADR_PREL21 R_AARCH64 = 561
1423 R_AARCH64_TLSDESC_ADR_PAGE21 R_AARCH64 = 562
1424 R_AARCH64_TLSDESC_LD64_LO12_NC R_AARCH64 = 563
1425 R_AARCH64_TLSDESC_ADD_LO12_NC R_AARCH64 = 564
1426 R_AARCH64_TLSDESC_OFF_G1 R_AARCH64 = 565
1427 R_AARCH64_TLSDESC_OFF_G0_NC R_AARCH64 = 566
1428 R_AARCH64_TLSDESC_LDR R_AARCH64 = 567
1429 R_AARCH64_TLSDESC_ADD R_AARCH64 = 568
1430 R_AARCH64_TLSDESC_CALL R_AARCH64 = 569
1431 R_AARCH64_TLSLE_LDST128_TPREL_LO12 R_AARCH64 = 570
1432 R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC R_AARCH64 = 571
1433 R_AARCH64_TLSLD_LDST128_DTPREL_LO12 R_AARCH64 = 572
1434 R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC R_AARCH64 = 573
1435 R_AARCH64_COPY R_AARCH64 = 1024
1436 R_AARCH64_GLOB_DAT R_AARCH64 = 1025
1437 R_AARCH64_JUMP_SLOT R_AARCH64 = 1026
1438 R_AARCH64_RELATIVE R_AARCH64 = 1027
1439 R_AARCH64_TLS_DTPMOD64 R_AARCH64 = 1028
1440 R_AARCH64_TLS_DTPREL64 R_AARCH64 = 1029
1441 R_AARCH64_TLS_TPREL64 R_AARCH64 = 1030
1442 R_AARCH64_TLSDESC R_AARCH64 = 1031
1443 R_AARCH64_IRELATIVE R_AARCH64 = 1032
1444 )
1445
1446 var raarch64Strings = []intName{
1447 {0, "R_AARCH64_NONE"},
1448 {1, "R_AARCH64_P32_ABS32"},
1449 {2, "R_AARCH64_P32_ABS16"},
1450 {3, "R_AARCH64_P32_PREL32"},
1451 {4, "R_AARCH64_P32_PREL16"},
1452 {5, "R_AARCH64_P32_MOVW_UABS_G0"},
1453 {6, "R_AARCH64_P32_MOVW_UABS_G0_NC"},
1454 {7, "R_AARCH64_P32_MOVW_UABS_G1"},
1455 {8, "R_AARCH64_P32_MOVW_SABS_G0"},
1456 {9, "R_AARCH64_P32_LD_PREL_LO19"},
1457 {10, "R_AARCH64_P32_ADR_PREL_LO21"},
1458 {11, "R_AARCH64_P32_ADR_PREL_PG_HI21"},
1459 {12, "R_AARCH64_P32_ADD_ABS_LO12_NC"},
1460 {13, "R_AARCH64_P32_LDST8_ABS_LO12_NC"},
1461 {14, "R_AARCH64_P32_LDST16_ABS_LO12_NC"},
1462 {15, "R_AARCH64_P32_LDST32_ABS_LO12_NC"},
1463 {16, "R_AARCH64_P32_LDST64_ABS_LO12_NC"},
1464 {17, "R_AARCH64_P32_LDST128_ABS_LO12_NC"},
1465 {18, "R_AARCH64_P32_TSTBR14"},
1466 {19, "R_AARCH64_P32_CONDBR19"},
1467 {20, "R_AARCH64_P32_JUMP26"},
1468 {21, "R_AARCH64_P32_CALL26"},
1469 {25, "R_AARCH64_P32_GOT_LD_PREL19"},
1470 {26, "R_AARCH64_P32_ADR_GOT_PAGE"},
1471 {27, "R_AARCH64_P32_LD32_GOT_LO12_NC"},
1472 {81, "R_AARCH64_P32_TLSGD_ADR_PAGE21"},
1473 {82, "R_AARCH64_P32_TLSGD_ADD_LO12_NC"},
1474 {103, "R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21"},
1475 {104, "R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC"},
1476 {105, "R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19"},
1477 {106, "R_AARCH64_P32_TLSLE_MOVW_TPREL_G1"},
1478 {107, "R_AARCH64_P32_TLSLE_MOVW_TPREL_G0"},
1479 {108, "R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC"},
1480 {109, "R_AARCH64_P32_TLSLE_ADD_TPREL_HI12"},
1481 {110, "R_AARCH64_P32_TLSLE_ADD_TPREL_LO12"},
1482 {111, "R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC"},
1483 {122, "R_AARCH64_P32_TLSDESC_LD_PREL19"},
1484 {123, "R_AARCH64_P32_TLSDESC_ADR_PREL21"},
1485 {124, "R_AARCH64_P32_TLSDESC_ADR_PAGE21"},
1486 {125, "R_AARCH64_P32_TLSDESC_LD32_LO12_NC"},
1487 {126, "R_AARCH64_P32_TLSDESC_ADD_LO12_NC"},
1488 {127, "R_AARCH64_P32_TLSDESC_CALL"},
1489 {180, "R_AARCH64_P32_COPY"},
1490 {181, "R_AARCH64_P32_GLOB_DAT"},
1491 {182, "R_AARCH64_P32_JUMP_SLOT"},
1492 {183, "R_AARCH64_P32_RELATIVE"},
1493 {184, "R_AARCH64_P32_TLS_DTPMOD"},
1494 {185, "R_AARCH64_P32_TLS_DTPREL"},
1495 {186, "R_AARCH64_P32_TLS_TPREL"},
1496 {187, "R_AARCH64_P32_TLSDESC"},
1497 {188, "R_AARCH64_P32_IRELATIVE"},
1498 {256, "R_AARCH64_NULL"},
1499 {257, "R_AARCH64_ABS64"},
1500 {258, "R_AARCH64_ABS32"},
1501 {259, "R_AARCH64_ABS16"},
1502 {260, "R_AARCH64_PREL64"},
1503 {261, "R_AARCH64_PREL32"},
1504 {262, "R_AARCH64_PREL16"},
1505 {263, "R_AARCH64_MOVW_UABS_G0"},
1506 {264, "R_AARCH64_MOVW_UABS_G0_NC"},
1507 {265, "R_AARCH64_MOVW_UABS_G1"},
1508 {266, "R_AARCH64_MOVW_UABS_G1_NC"},
1509 {267, "R_AARCH64_MOVW_UABS_G2"},
1510 {268, "R_AARCH64_MOVW_UABS_G2_NC"},
1511 {269, "R_AARCH64_MOVW_UABS_G3"},
1512 {270, "R_AARCH64_MOVW_SABS_G0"},
1513 {271, "R_AARCH64_MOVW_SABS_G1"},
1514 {272, "R_AARCH64_MOVW_SABS_G2"},
1515 {273, "R_AARCH64_LD_PREL_LO19"},
1516 {274, "R_AARCH64_ADR_PREL_LO21"},
1517 {275, "R_AARCH64_ADR_PREL_PG_HI21"},
1518 {276, "R_AARCH64_ADR_PREL_PG_HI21_NC"},
1519 {277, "R_AARCH64_ADD_ABS_LO12_NC"},
1520 {278, "R_AARCH64_LDST8_ABS_LO12_NC"},
1521 {279, "R_AARCH64_TSTBR14"},
1522 {280, "R_AARCH64_CONDBR19"},
1523 {282, "R_AARCH64_JUMP26"},
1524 {283, "R_AARCH64_CALL26"},
1525 {284, "R_AARCH64_LDST16_ABS_LO12_NC"},
1526 {285, "R_AARCH64_LDST32_ABS_LO12_NC"},
1527 {286, "R_AARCH64_LDST64_ABS_LO12_NC"},
1528 {299, "R_AARCH64_LDST128_ABS_LO12_NC"},
1529 {309, "R_AARCH64_GOT_LD_PREL19"},
1530 {310, "R_AARCH64_LD64_GOTOFF_LO15"},
1531 {311, "R_AARCH64_ADR_GOT_PAGE"},
1532 {312, "R_AARCH64_LD64_GOT_LO12_NC"},
1533 {313, "R_AARCH64_LD64_GOTPAGE_LO15"},
1534 {512, "R_AARCH64_TLSGD_ADR_PREL21"},
1535 {513, "R_AARCH64_TLSGD_ADR_PAGE21"},
1536 {514, "R_AARCH64_TLSGD_ADD_LO12_NC"},
1537 {515, "R_AARCH64_TLSGD_MOVW_G1"},
1538 {516, "R_AARCH64_TLSGD_MOVW_G0_NC"},
1539 {517, "R_AARCH64_TLSLD_ADR_PREL21"},
1540 {518, "R_AARCH64_TLSLD_ADR_PAGE21"},
1541 {539, "R_AARCH64_TLSIE_MOVW_GOTTPREL_G1"},
1542 {540, "R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC"},
1543 {541, "R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21"},
1544 {542, "R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC"},
1545 {543, "R_AARCH64_TLSIE_LD_GOTTPREL_PREL19"},
1546 {544, "R_AARCH64_TLSLE_MOVW_TPREL_G2"},
1547 {545, "R_AARCH64_TLSLE_MOVW_TPREL_G1"},
1548 {546, "R_AARCH64_TLSLE_MOVW_TPREL_G1_NC"},
1549 {547, "R_AARCH64_TLSLE_MOVW_TPREL_G0"},
1550 {548, "R_AARCH64_TLSLE_MOVW_TPREL_G0_NC"},
1551 {549, "R_AARCH64_TLSLE_ADD_TPREL_HI12"},
1552 {550, "R_AARCH64_TLSLE_ADD_TPREL_LO12"},
1553 {551, "R_AARCH64_TLSLE_ADD_TPREL_LO12_NC"},
1554 {560, "R_AARCH64_TLSDESC_LD_PREL19"},
1555 {561, "R_AARCH64_TLSDESC_ADR_PREL21"},
1556 {562, "R_AARCH64_TLSDESC_ADR_PAGE21"},
1557 {563, "R_AARCH64_TLSDESC_LD64_LO12_NC"},
1558 {564, "R_AARCH64_TLSDESC_ADD_LO12_NC"},
1559 {565, "R_AARCH64_TLSDESC_OFF_G1"},
1560 {566, "R_AARCH64_TLSDESC_OFF_G0_NC"},
1561 {567, "R_AARCH64_TLSDESC_LDR"},
1562 {568, "R_AARCH64_TLSDESC_ADD"},
1563 {569, "R_AARCH64_TLSDESC_CALL"},
1564 {570, "R_AARCH64_TLSLE_LDST128_TPREL_LO12"},
1565 {571, "R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC"},
1566 {572, "R_AARCH64_TLSLD_LDST128_DTPREL_LO12"},
1567 {573, "R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC"},
1568 {1024, "R_AARCH64_COPY"},
1569 {1025, "R_AARCH64_GLOB_DAT"},
1570 {1026, "R_AARCH64_JUMP_SLOT"},
1571 {1027, "R_AARCH64_RELATIVE"},
1572 {1028, "R_AARCH64_TLS_DTPMOD64"},
1573 {1029, "R_AARCH64_TLS_DTPREL64"},
1574 {1030, "R_AARCH64_TLS_TPREL64"},
1575 {1031, "R_AARCH64_TLSDESC"},
1576 {1032, "R_AARCH64_IRELATIVE"},
1577 }
1578
1579 func (i R_AARCH64) String() string { return stringName(uint32(i), raarch64Strings, false) }
1580 func (i R_AARCH64) GoString() string { return stringName(uint32(i), raarch64Strings, true) }
1581
1582
1583 type R_ALPHA int
1584
1585 const (
1586 R_ALPHA_NONE R_ALPHA = 0
1587 R_ALPHA_REFLONG R_ALPHA = 1
1588 R_ALPHA_REFQUAD R_ALPHA = 2
1589 R_ALPHA_GPREL32 R_ALPHA = 3
1590 R_ALPHA_LITERAL R_ALPHA = 4
1591 R_ALPHA_LITUSE R_ALPHA = 5
1592 R_ALPHA_GPDISP R_ALPHA = 6
1593 R_ALPHA_BRADDR R_ALPHA = 7
1594 R_ALPHA_HINT R_ALPHA = 8
1595 R_ALPHA_SREL16 R_ALPHA = 9
1596 R_ALPHA_SREL32 R_ALPHA = 10
1597 R_ALPHA_SREL64 R_ALPHA = 11
1598 R_ALPHA_OP_PUSH R_ALPHA = 12
1599 R_ALPHA_OP_STORE R_ALPHA = 13
1600 R_ALPHA_OP_PSUB R_ALPHA = 14
1601 R_ALPHA_OP_PRSHIFT R_ALPHA = 15
1602 R_ALPHA_GPVALUE R_ALPHA = 16
1603 R_ALPHA_GPRELHIGH R_ALPHA = 17
1604 R_ALPHA_GPRELLOW R_ALPHA = 18
1605 R_ALPHA_IMMED_GP_16 R_ALPHA = 19
1606 R_ALPHA_IMMED_GP_HI32 R_ALPHA = 20
1607 R_ALPHA_IMMED_SCN_HI32 R_ALPHA = 21
1608 R_ALPHA_IMMED_BR_HI32 R_ALPHA = 22
1609 R_ALPHA_IMMED_LO32 R_ALPHA = 23
1610 R_ALPHA_COPY R_ALPHA = 24
1611 R_ALPHA_GLOB_DAT R_ALPHA = 25
1612 R_ALPHA_JMP_SLOT R_ALPHA = 26
1613 R_ALPHA_RELATIVE R_ALPHA = 27
1614 )
1615
1616 var ralphaStrings = []intName{
1617 {0, "R_ALPHA_NONE"},
1618 {1, "R_ALPHA_REFLONG"},
1619 {2, "R_ALPHA_REFQUAD"},
1620 {3, "R_ALPHA_GPREL32"},
1621 {4, "R_ALPHA_LITERAL"},
1622 {5, "R_ALPHA_LITUSE"},
1623 {6, "R_ALPHA_GPDISP"},
1624 {7, "R_ALPHA_BRADDR"},
1625 {8, "R_ALPHA_HINT"},
1626 {9, "R_ALPHA_SREL16"},
1627 {10, "R_ALPHA_SREL32"},
1628 {11, "R_ALPHA_SREL64"},
1629 {12, "R_ALPHA_OP_PUSH"},
1630 {13, "R_ALPHA_OP_STORE"},
1631 {14, "R_ALPHA_OP_PSUB"},
1632 {15, "R_ALPHA_OP_PRSHIFT"},
1633 {16, "R_ALPHA_GPVALUE"},
1634 {17, "R_ALPHA_GPRELHIGH"},
1635 {18, "R_ALPHA_GPRELLOW"},
1636 {19, "R_ALPHA_IMMED_GP_16"},
1637 {20, "R_ALPHA_IMMED_GP_HI32"},
1638 {21, "R_ALPHA_IMMED_SCN_HI32"},
1639 {22, "R_ALPHA_IMMED_BR_HI32"},
1640 {23, "R_ALPHA_IMMED_LO32"},
1641 {24, "R_ALPHA_COPY"},
1642 {25, "R_ALPHA_GLOB_DAT"},
1643 {26, "R_ALPHA_JMP_SLOT"},
1644 {27, "R_ALPHA_RELATIVE"},
1645 }
1646
1647 func (i R_ALPHA) String() string { return stringName(uint32(i), ralphaStrings, false) }
1648 func (i R_ALPHA) GoString() string { return stringName(uint32(i), ralphaStrings, true) }
1649
1650
1651 type R_ARM int
1652
1653 const (
1654 R_ARM_NONE R_ARM = 0
1655 R_ARM_PC24 R_ARM = 1
1656 R_ARM_ABS32 R_ARM = 2
1657 R_ARM_REL32 R_ARM = 3
1658 R_ARM_PC13 R_ARM = 4
1659 R_ARM_ABS16 R_ARM = 5
1660 R_ARM_ABS12 R_ARM = 6
1661 R_ARM_THM_ABS5 R_ARM = 7
1662 R_ARM_ABS8 R_ARM = 8
1663 R_ARM_SBREL32 R_ARM = 9
1664 R_ARM_THM_PC22 R_ARM = 10
1665 R_ARM_THM_PC8 R_ARM = 11
1666 R_ARM_AMP_VCALL9 R_ARM = 12
1667 R_ARM_SWI24 R_ARM = 13
1668 R_ARM_THM_SWI8 R_ARM = 14
1669 R_ARM_XPC25 R_ARM = 15
1670 R_ARM_THM_XPC22 R_ARM = 16
1671 R_ARM_TLS_DTPMOD32 R_ARM = 17
1672 R_ARM_TLS_DTPOFF32 R_ARM = 18
1673 R_ARM_TLS_TPOFF32 R_ARM = 19
1674 R_ARM_COPY R_ARM = 20
1675 R_ARM_GLOB_DAT R_ARM = 21
1676 R_ARM_JUMP_SLOT R_ARM = 22
1677 R_ARM_RELATIVE R_ARM = 23
1678 R_ARM_GOTOFF R_ARM = 24
1679 R_ARM_GOTPC R_ARM = 25
1680 R_ARM_GOT32 R_ARM = 26
1681 R_ARM_PLT32 R_ARM = 27
1682 R_ARM_CALL R_ARM = 28
1683 R_ARM_JUMP24 R_ARM = 29
1684 R_ARM_THM_JUMP24 R_ARM = 30
1685 R_ARM_BASE_ABS R_ARM = 31
1686 R_ARM_ALU_PCREL_7_0 R_ARM = 32
1687 R_ARM_ALU_PCREL_15_8 R_ARM = 33
1688 R_ARM_ALU_PCREL_23_15 R_ARM = 34
1689 R_ARM_LDR_SBREL_11_10_NC R_ARM = 35
1690 R_ARM_ALU_SBREL_19_12_NC R_ARM = 36
1691 R_ARM_ALU_SBREL_27_20_CK R_ARM = 37
1692 R_ARM_TARGET1 R_ARM = 38
1693 R_ARM_SBREL31 R_ARM = 39
1694 R_ARM_V4BX R_ARM = 40
1695 R_ARM_TARGET2 R_ARM = 41
1696 R_ARM_PREL31 R_ARM = 42
1697 R_ARM_MOVW_ABS_NC R_ARM = 43
1698 R_ARM_MOVT_ABS R_ARM = 44
1699 R_ARM_MOVW_PREL_NC R_ARM = 45
1700 R_ARM_MOVT_PREL R_ARM = 46
1701 R_ARM_THM_MOVW_ABS_NC R_ARM = 47
1702 R_ARM_THM_MOVT_ABS R_ARM = 48
1703 R_ARM_THM_MOVW_PREL_NC R_ARM = 49
1704 R_ARM_THM_MOVT_PREL R_ARM = 50
1705 R_ARM_THM_JUMP19 R_ARM = 51
1706 R_ARM_THM_JUMP6 R_ARM = 52
1707 R_ARM_THM_ALU_PREL_11_0 R_ARM = 53
1708 R_ARM_THM_PC12 R_ARM = 54
1709 R_ARM_ABS32_NOI R_ARM = 55
1710 R_ARM_REL32_NOI R_ARM = 56
1711 R_ARM_ALU_PC_G0_NC R_ARM = 57
1712 R_ARM_ALU_PC_G0 R_ARM = 58
1713 R_ARM_ALU_PC_G1_NC R_ARM = 59
1714 R_ARM_ALU_PC_G1 R_ARM = 60
1715 R_ARM_ALU_PC_G2 R_ARM = 61
1716 R_ARM_LDR_PC_G1 R_ARM = 62
1717 R_ARM_LDR_PC_G2 R_ARM = 63
1718 R_ARM_LDRS_PC_G0 R_ARM = 64
1719 R_ARM_LDRS_PC_G1 R_ARM = 65
1720 R_ARM_LDRS_PC_G2 R_ARM = 66
1721 R_ARM_LDC_PC_G0 R_ARM = 67
1722 R_ARM_LDC_PC_G1 R_ARM = 68
1723 R_ARM_LDC_PC_G2 R_ARM = 69
1724 R_ARM_ALU_SB_G0_NC R_ARM = 70
1725 R_ARM_ALU_SB_G0 R_ARM = 71
1726 R_ARM_ALU_SB_G1_NC R_ARM = 72
1727 R_ARM_ALU_SB_G1 R_ARM = 73
1728 R_ARM_ALU_SB_G2 R_ARM = 74
1729 R_ARM_LDR_SB_G0 R_ARM = 75
1730 R_ARM_LDR_SB_G1 R_ARM = 76
1731 R_ARM_LDR_SB_G2 R_ARM = 77
1732 R_ARM_LDRS_SB_G0 R_ARM = 78
1733 R_ARM_LDRS_SB_G1 R_ARM = 79
1734 R_ARM_LDRS_SB_G2 R_ARM = 80
1735 R_ARM_LDC_SB_G0 R_ARM = 81
1736 R_ARM_LDC_SB_G1 R_ARM = 82
1737 R_ARM_LDC_SB_G2 R_ARM = 83
1738 R_ARM_MOVW_BREL_NC R_ARM = 84
1739 R_ARM_MOVT_BREL R_ARM = 85
1740 R_ARM_MOVW_BREL R_ARM = 86
1741 R_ARM_THM_MOVW_BREL_NC R_ARM = 87
1742 R_ARM_THM_MOVT_BREL R_ARM = 88
1743 R_ARM_THM_MOVW_BREL R_ARM = 89
1744 R_ARM_TLS_GOTDESC R_ARM = 90
1745 R_ARM_TLS_CALL R_ARM = 91
1746 R_ARM_TLS_DESCSEQ R_ARM = 92
1747 R_ARM_THM_TLS_CALL R_ARM = 93
1748 R_ARM_PLT32_ABS R_ARM = 94
1749 R_ARM_GOT_ABS R_ARM = 95
1750 R_ARM_GOT_PREL R_ARM = 96
1751 R_ARM_GOT_BREL12 R_ARM = 97
1752 R_ARM_GOTOFF12 R_ARM = 98
1753 R_ARM_GOTRELAX R_ARM = 99
1754 R_ARM_GNU_VTENTRY R_ARM = 100
1755 R_ARM_GNU_VTINHERIT R_ARM = 101
1756 R_ARM_THM_JUMP11 R_ARM = 102
1757 R_ARM_THM_JUMP8 R_ARM = 103
1758 R_ARM_TLS_GD32 R_ARM = 104
1759 R_ARM_TLS_LDM32 R_ARM = 105
1760 R_ARM_TLS_LDO32 R_ARM = 106
1761 R_ARM_TLS_IE32 R_ARM = 107
1762 R_ARM_TLS_LE32 R_ARM = 108
1763 R_ARM_TLS_LDO12 R_ARM = 109
1764 R_ARM_TLS_LE12 R_ARM = 110
1765 R_ARM_TLS_IE12GP R_ARM = 111
1766 R_ARM_PRIVATE_0 R_ARM = 112
1767 R_ARM_PRIVATE_1 R_ARM = 113
1768 R_ARM_PRIVATE_2 R_ARM = 114
1769 R_ARM_PRIVATE_3 R_ARM = 115
1770 R_ARM_PRIVATE_4 R_ARM = 116
1771 R_ARM_PRIVATE_5 R_ARM = 117
1772 R_ARM_PRIVATE_6 R_ARM = 118
1773 R_ARM_PRIVATE_7 R_ARM = 119
1774 R_ARM_PRIVATE_8 R_ARM = 120
1775 R_ARM_PRIVATE_9 R_ARM = 121
1776 R_ARM_PRIVATE_10 R_ARM = 122
1777 R_ARM_PRIVATE_11 R_ARM = 123
1778 R_ARM_PRIVATE_12 R_ARM = 124
1779 R_ARM_PRIVATE_13 R_ARM = 125
1780 R_ARM_PRIVATE_14 R_ARM = 126
1781 R_ARM_PRIVATE_15 R_ARM = 127
1782 R_ARM_ME_TOO R_ARM = 128
1783 R_ARM_THM_TLS_DESCSEQ16 R_ARM = 129
1784 R_ARM_THM_TLS_DESCSEQ32 R_ARM = 130
1785 R_ARM_THM_GOT_BREL12 R_ARM = 131
1786 R_ARM_THM_ALU_ABS_G0_NC R_ARM = 132
1787 R_ARM_THM_ALU_ABS_G1_NC R_ARM = 133
1788 R_ARM_THM_ALU_ABS_G2_NC R_ARM = 134
1789 R_ARM_THM_ALU_ABS_G3 R_ARM = 135
1790 R_ARM_IRELATIVE R_ARM = 160
1791 R_ARM_RXPC25 R_ARM = 249
1792 R_ARM_RSBREL32 R_ARM = 250
1793 R_ARM_THM_RPC22 R_ARM = 251
1794 R_ARM_RREL32 R_ARM = 252
1795 R_ARM_RABS32 R_ARM = 253
1796 R_ARM_RPC24 R_ARM = 254
1797 R_ARM_RBASE R_ARM = 255
1798 )
1799
1800 var rarmStrings = []intName{
1801 {0, "R_ARM_NONE"},
1802 {1, "R_ARM_PC24"},
1803 {2, "R_ARM_ABS32"},
1804 {3, "R_ARM_REL32"},
1805 {4, "R_ARM_PC13"},
1806 {5, "R_ARM_ABS16"},
1807 {6, "R_ARM_ABS12"},
1808 {7, "R_ARM_THM_ABS5"},
1809 {8, "R_ARM_ABS8"},
1810 {9, "R_ARM_SBREL32"},
1811 {10, "R_ARM_THM_PC22"},
1812 {11, "R_ARM_THM_PC8"},
1813 {12, "R_ARM_AMP_VCALL9"},
1814 {13, "R_ARM_SWI24"},
1815 {14, "R_ARM_THM_SWI8"},
1816 {15, "R_ARM_XPC25"},
1817 {16, "R_ARM_THM_XPC22"},
1818 {17, "R_ARM_TLS_DTPMOD32"},
1819 {18, "R_ARM_TLS_DTPOFF32"},
1820 {19, "R_ARM_TLS_TPOFF32"},
1821 {20, "R_ARM_COPY"},
1822 {21, "R_ARM_GLOB_DAT"},
1823 {22, "R_ARM_JUMP_SLOT"},
1824 {23, "R_ARM_RELATIVE"},
1825 {24, "R_ARM_GOTOFF"},
1826 {25, "R_ARM_GOTPC"},
1827 {26, "R_ARM_GOT32"},
1828 {27, "R_ARM_PLT32"},
1829 {28, "R_ARM_CALL"},
1830 {29, "R_ARM_JUMP24"},
1831 {30, "R_ARM_THM_JUMP24"},
1832 {31, "R_ARM_BASE_ABS"},
1833 {32, "R_ARM_ALU_PCREL_7_0"},
1834 {33, "R_ARM_ALU_PCREL_15_8"},
1835 {34, "R_ARM_ALU_PCREL_23_15"},
1836 {35, "R_ARM_LDR_SBREL_11_10_NC"},
1837 {36, "R_ARM_ALU_SBREL_19_12_NC"},
1838 {37, "R_ARM_ALU_SBREL_27_20_CK"},
1839 {38, "R_ARM_TARGET1"},
1840 {39, "R_ARM_SBREL31"},
1841 {40, "R_ARM_V4BX"},
1842 {41, "R_ARM_TARGET2"},
1843 {42, "R_ARM_PREL31"},
1844 {43, "R_ARM_MOVW_ABS_NC"},
1845 {44, "R_ARM_MOVT_ABS"},
1846 {45, "R_ARM_MOVW_PREL_NC"},
1847 {46, "R_ARM_MOVT_PREL"},
1848 {47, "R_ARM_THM_MOVW_ABS_NC"},
1849 {48, "R_ARM_THM_MOVT_ABS"},
1850 {49, "R_ARM_THM_MOVW_PREL_NC"},
1851 {50, "R_ARM_THM_MOVT_PREL"},
1852 {51, "R_ARM_THM_JUMP19"},
1853 {52, "R_ARM_THM_JUMP6"},
1854 {53, "R_ARM_THM_ALU_PREL_11_0"},
1855 {54, "R_ARM_THM_PC12"},
1856 {55, "R_ARM_ABS32_NOI"},
1857 {56, "R_ARM_REL32_NOI"},
1858 {57, "R_ARM_ALU_PC_G0_NC"},
1859 {58, "R_ARM_ALU_PC_G0"},
1860 {59, "R_ARM_ALU_PC_G1_NC"},
1861 {60, "R_ARM_ALU_PC_G1"},
1862 {61, "R_ARM_ALU_PC_G2"},
1863 {62, "R_ARM_LDR_PC_G1"},
1864 {63, "R_ARM_LDR_PC_G2"},
1865 {64, "R_ARM_LDRS_PC_G0"},
1866 {65, "R_ARM_LDRS_PC_G1"},
1867 {66, "R_ARM_LDRS_PC_G2"},
1868 {67, "R_ARM_LDC_PC_G0"},
1869 {68, "R_ARM_LDC_PC_G1"},
1870 {69, "R_ARM_LDC_PC_G2"},
1871 {70, "R_ARM_ALU_SB_G0_NC"},
1872 {71, "R_ARM_ALU_SB_G0"},
1873 {72, "R_ARM_ALU_SB_G1_NC"},
1874 {73, "R_ARM_ALU_SB_G1"},
1875 {74, "R_ARM_ALU_SB_G2"},
1876 {75, "R_ARM_LDR_SB_G0"},
1877 {76, "R_ARM_LDR_SB_G1"},
1878 {77, "R_ARM_LDR_SB_G2"},
1879 {78, "R_ARM_LDRS_SB_G0"},
1880 {79, "R_ARM_LDRS_SB_G1"},
1881 {80, "R_ARM_LDRS_SB_G2"},
1882 {81, "R_ARM_LDC_SB_G0"},
1883 {82, "R_ARM_LDC_SB_G1"},
1884 {83, "R_ARM_LDC_SB_G2"},
1885 {84, "R_ARM_MOVW_BREL_NC"},
1886 {85, "R_ARM_MOVT_BREL"},
1887 {86, "R_ARM_MOVW_BREL"},
1888 {87, "R_ARM_THM_MOVW_BREL_NC"},
1889 {88, "R_ARM_THM_MOVT_BREL"},
1890 {89, "R_ARM_THM_MOVW_BREL"},
1891 {90, "R_ARM_TLS_GOTDESC"},
1892 {91, "R_ARM_TLS_CALL"},
1893 {92, "R_ARM_TLS_DESCSEQ"},
1894 {93, "R_ARM_THM_TLS_CALL"},
1895 {94, "R_ARM_PLT32_ABS"},
1896 {95, "R_ARM_GOT_ABS"},
1897 {96, "R_ARM_GOT_PREL"},
1898 {97, "R_ARM_GOT_BREL12"},
1899 {98, "R_ARM_GOTOFF12"},
1900 {99, "R_ARM_GOTRELAX"},
1901 {100, "R_ARM_GNU_VTENTRY"},
1902 {101, "R_ARM_GNU_VTINHERIT"},
1903 {102, "R_ARM_THM_JUMP11"},
1904 {103, "R_ARM_THM_JUMP8"},
1905 {104, "R_ARM_TLS_GD32"},
1906 {105, "R_ARM_TLS_LDM32"},
1907 {106, "R_ARM_TLS_LDO32"},
1908 {107, "R_ARM_TLS_IE32"},
1909 {108, "R_ARM_TLS_LE32"},
1910 {109, "R_ARM_TLS_LDO12"},
1911 {110, "R_ARM_TLS_LE12"},
1912 {111, "R_ARM_TLS_IE12GP"},
1913 {112, "R_ARM_PRIVATE_0"},
1914 {113, "R_ARM_PRIVATE_1"},
1915 {114, "R_ARM_PRIVATE_2"},
1916 {115, "R_ARM_PRIVATE_3"},
1917 {116, "R_ARM_PRIVATE_4"},
1918 {117, "R_ARM_PRIVATE_5"},
1919 {118, "R_ARM_PRIVATE_6"},
1920 {119, "R_ARM_PRIVATE_7"},
1921 {120, "R_ARM_PRIVATE_8"},
1922 {121, "R_ARM_PRIVATE_9"},
1923 {122, "R_ARM_PRIVATE_10"},
1924 {123, "R_ARM_PRIVATE_11"},
1925 {124, "R_ARM_PRIVATE_12"},
1926 {125, "R_ARM_PRIVATE_13"},
1927 {126, "R_ARM_PRIVATE_14"},
1928 {127, "R_ARM_PRIVATE_15"},
1929 {128, "R_ARM_ME_TOO"},
1930 {129, "R_ARM_THM_TLS_DESCSEQ16"},
1931 {130, "R_ARM_THM_TLS_DESCSEQ32"},
1932 {131, "R_ARM_THM_GOT_BREL12"},
1933 {132, "R_ARM_THM_ALU_ABS_G0_NC"},
1934 {133, "R_ARM_THM_ALU_ABS_G1_NC"},
1935 {134, "R_ARM_THM_ALU_ABS_G2_NC"},
1936 {135, "R_ARM_THM_ALU_ABS_G3"},
1937 {160, "R_ARM_IRELATIVE"},
1938 {249, "R_ARM_RXPC25"},
1939 {250, "R_ARM_RSBREL32"},
1940 {251, "R_ARM_THM_RPC22"},
1941 {252, "R_ARM_RREL32"},
1942 {253, "R_ARM_RABS32"},
1943 {254, "R_ARM_RPC24"},
1944 {255, "R_ARM_RBASE"},
1945 }
1946
1947 func (i R_ARM) String() string { return stringName(uint32(i), rarmStrings, false) }
1948 func (i R_ARM) GoString() string { return stringName(uint32(i), rarmStrings, true) }
1949
1950
1951 type R_386 int
1952
1953 const (
1954 R_386_NONE R_386 = 0
1955 R_386_32 R_386 = 1
1956 R_386_PC32 R_386 = 2
1957 R_386_GOT32 R_386 = 3
1958 R_386_PLT32 R_386 = 4
1959 R_386_COPY R_386 = 5
1960 R_386_GLOB_DAT R_386 = 6
1961 R_386_JMP_SLOT R_386 = 7
1962 R_386_RELATIVE R_386 = 8
1963 R_386_GOTOFF R_386 = 9
1964 R_386_GOTPC R_386 = 10
1965 R_386_32PLT R_386 = 11
1966 R_386_TLS_TPOFF R_386 = 14
1967 R_386_TLS_IE R_386 = 15
1968 R_386_TLS_GOTIE R_386 = 16
1969 R_386_TLS_LE R_386 = 17
1970 R_386_TLS_GD R_386 = 18
1971 R_386_TLS_LDM R_386 = 19
1972 R_386_16 R_386 = 20
1973 R_386_PC16 R_386 = 21
1974 R_386_8 R_386 = 22
1975 R_386_PC8 R_386 = 23
1976 R_386_TLS_GD_32 R_386 = 24
1977 R_386_TLS_GD_PUSH R_386 = 25
1978 R_386_TLS_GD_CALL R_386 = 26
1979 R_386_TLS_GD_POP R_386 = 27
1980 R_386_TLS_LDM_32 R_386 = 28
1981 R_386_TLS_LDM_PUSH R_386 = 29
1982 R_386_TLS_LDM_CALL R_386 = 30
1983 R_386_TLS_LDM_POP R_386 = 31
1984 R_386_TLS_LDO_32 R_386 = 32
1985 R_386_TLS_IE_32 R_386 = 33
1986 R_386_TLS_LE_32 R_386 = 34
1987 R_386_TLS_DTPMOD32 R_386 = 35
1988 R_386_TLS_DTPOFF32 R_386 = 36
1989 R_386_TLS_TPOFF32 R_386 = 37
1990 R_386_SIZE32 R_386 = 38
1991 R_386_TLS_GOTDESC R_386 = 39
1992 R_386_TLS_DESC_CALL R_386 = 40
1993 R_386_TLS_DESC R_386 = 41
1994 R_386_IRELATIVE R_386 = 42
1995 R_386_GOT32X R_386 = 43
1996 )
1997
1998 var r386Strings = []intName{
1999 {0, "R_386_NONE"},
2000 {1, "R_386_32"},
2001 {2, "R_386_PC32"},
2002 {3, "R_386_GOT32"},
2003 {4, "R_386_PLT32"},
2004 {5, "R_386_COPY"},
2005 {6, "R_386_GLOB_DAT"},
2006 {7, "R_386_JMP_SLOT"},
2007 {8, "R_386_RELATIVE"},
2008 {9, "R_386_GOTOFF"},
2009 {10, "R_386_GOTPC"},
2010 {11, "R_386_32PLT"},
2011 {14, "R_386_TLS_TPOFF"},
2012 {15, "R_386_TLS_IE"},
2013 {16, "R_386_TLS_GOTIE"},
2014 {17, "R_386_TLS_LE"},
2015 {18, "R_386_TLS_GD"},
2016 {19, "R_386_TLS_LDM"},
2017 {20, "R_386_16"},
2018 {21, "R_386_PC16"},
2019 {22, "R_386_8"},
2020 {23, "R_386_PC8"},
2021 {24, "R_386_TLS_GD_32"},
2022 {25, "R_386_TLS_GD_PUSH"},
2023 {26, "R_386_TLS_GD_CALL"},
2024 {27, "R_386_TLS_GD_POP"},
2025 {28, "R_386_TLS_LDM_32"},
2026 {29, "R_386_TLS_LDM_PUSH"},
2027 {30, "R_386_TLS_LDM_CALL"},
2028 {31, "R_386_TLS_LDM_POP"},
2029 {32, "R_386_TLS_LDO_32"},
2030 {33, "R_386_TLS_IE_32"},
2031 {34, "R_386_TLS_LE_32"},
2032 {35, "R_386_TLS_DTPMOD32"},
2033 {36, "R_386_TLS_DTPOFF32"},
2034 {37, "R_386_TLS_TPOFF32"},
2035 {38, "R_386_SIZE32"},
2036 {39, "R_386_TLS_GOTDESC"},
2037 {40, "R_386_TLS_DESC_CALL"},
2038 {41, "R_386_TLS_DESC"},
2039 {42, "R_386_IRELATIVE"},
2040 {43, "R_386_GOT32X"},
2041 }
2042
2043 func (i R_386) String() string { return stringName(uint32(i), r386Strings, false) }
2044 func (i R_386) GoString() string { return stringName(uint32(i), r386Strings, true) }
2045
2046
2047 type R_MIPS int
2048
2049 const (
2050 R_MIPS_NONE R_MIPS = 0
2051 R_MIPS_16 R_MIPS = 1
2052 R_MIPS_32 R_MIPS = 2
2053 R_MIPS_REL32 R_MIPS = 3
2054 R_MIPS_26 R_MIPS = 4
2055 R_MIPS_HI16 R_MIPS = 5
2056 R_MIPS_LO16 R_MIPS = 6
2057 R_MIPS_GPREL16 R_MIPS = 7
2058 R_MIPS_LITERAL R_MIPS = 8
2059 R_MIPS_GOT16 R_MIPS = 9
2060 R_MIPS_PC16 R_MIPS = 10
2061 R_MIPS_CALL16 R_MIPS = 11
2062 R_MIPS_GPREL32 R_MIPS = 12
2063 R_MIPS_SHIFT5 R_MIPS = 16
2064 R_MIPS_SHIFT6 R_MIPS = 17
2065 R_MIPS_64 R_MIPS = 18
2066 R_MIPS_GOT_DISP R_MIPS = 19
2067 R_MIPS_GOT_PAGE R_MIPS = 20
2068 R_MIPS_GOT_OFST R_MIPS = 21
2069 R_MIPS_GOT_HI16 R_MIPS = 22
2070 R_MIPS_GOT_LO16 R_MIPS = 23
2071 R_MIPS_SUB R_MIPS = 24
2072 R_MIPS_INSERT_A R_MIPS = 25
2073 R_MIPS_INSERT_B R_MIPS = 26
2074 R_MIPS_DELETE R_MIPS = 27
2075 R_MIPS_HIGHER R_MIPS = 28
2076 R_MIPS_HIGHEST R_MIPS = 29
2077 R_MIPS_CALL_HI16 R_MIPS = 30
2078 R_MIPS_CALL_LO16 R_MIPS = 31
2079 R_MIPS_SCN_DISP R_MIPS = 32
2080 R_MIPS_REL16 R_MIPS = 33
2081 R_MIPS_ADD_IMMEDIATE R_MIPS = 34
2082 R_MIPS_PJUMP R_MIPS = 35
2083 R_MIPS_RELGOT R_MIPS = 36
2084 R_MIPS_JALR R_MIPS = 37
2085
2086 R_MIPS_TLS_DTPMOD32 R_MIPS = 38
2087 R_MIPS_TLS_DTPREL32 R_MIPS = 39
2088 R_MIPS_TLS_DTPMOD64 R_MIPS = 40
2089 R_MIPS_TLS_DTPREL64 R_MIPS = 41
2090 R_MIPS_TLS_GD R_MIPS = 42
2091 R_MIPS_TLS_LDM R_MIPS = 43
2092 R_MIPS_TLS_DTPREL_HI16 R_MIPS = 44
2093 R_MIPS_TLS_DTPREL_LO16 R_MIPS = 45
2094 R_MIPS_TLS_GOTTPREL R_MIPS = 46
2095 R_MIPS_TLS_TPREL32 R_MIPS = 47
2096 R_MIPS_TLS_TPREL64 R_MIPS = 48
2097 R_MIPS_TLS_TPREL_HI16 R_MIPS = 49
2098 R_MIPS_TLS_TPREL_LO16 R_MIPS = 50
2099 )
2100
2101 var rmipsStrings = []intName{
2102 {0, "R_MIPS_NONE"},
2103 {1, "R_MIPS_16"},
2104 {2, "R_MIPS_32"},
2105 {3, "R_MIPS_REL32"},
2106 {4, "R_MIPS_26"},
2107 {5, "R_MIPS_HI16"},
2108 {6, "R_MIPS_LO16"},
2109 {7, "R_MIPS_GPREL16"},
2110 {8, "R_MIPS_LITERAL"},
2111 {9, "R_MIPS_GOT16"},
2112 {10, "R_MIPS_PC16"},
2113 {11, "R_MIPS_CALL16"},
2114 {12, "R_MIPS_GPREL32"},
2115 {16, "R_MIPS_SHIFT5"},
2116 {17, "R_MIPS_SHIFT6"},
2117 {18, "R_MIPS_64"},
2118 {19, "R_MIPS_GOT_DISP"},
2119 {20, "R_MIPS_GOT_PAGE"},
2120 {21, "R_MIPS_GOT_OFST"},
2121 {22, "R_MIPS_GOT_HI16"},
2122 {23, "R_MIPS_GOT_LO16"},
2123 {24, "R_MIPS_SUB"},
2124 {25, "R_MIPS_INSERT_A"},
2125 {26, "R_MIPS_INSERT_B"},
2126 {27, "R_MIPS_DELETE"},
2127 {28, "R_MIPS_HIGHER"},
2128 {29, "R_MIPS_HIGHEST"},
2129 {30, "R_MIPS_CALL_HI16"},
2130 {31, "R_MIPS_CALL_LO16"},
2131 {32, "R_MIPS_SCN_DISP"},
2132 {33, "R_MIPS_REL16"},
2133 {34, "R_MIPS_ADD_IMMEDIATE"},
2134 {35, "R_MIPS_PJUMP"},
2135 {36, "R_MIPS_RELGOT"},
2136 {37, "R_MIPS_JALR"},
2137 {38, "R_MIPS_TLS_DTPMOD32"},
2138 {39, "R_MIPS_TLS_DTPREL32"},
2139 {40, "R_MIPS_TLS_DTPMOD64"},
2140 {41, "R_MIPS_TLS_DTPREL64"},
2141 {42, "R_MIPS_TLS_GD"},
2142 {43, "R_MIPS_TLS_LDM"},
2143 {44, "R_MIPS_TLS_DTPREL_HI16"},
2144 {45, "R_MIPS_TLS_DTPREL_LO16"},
2145 {46, "R_MIPS_TLS_GOTTPREL"},
2146 {47, "R_MIPS_TLS_TPREL32"},
2147 {48, "R_MIPS_TLS_TPREL64"},
2148 {49, "R_MIPS_TLS_TPREL_HI16"},
2149 {50, "R_MIPS_TLS_TPREL_LO16"},
2150 }
2151
2152 func (i R_MIPS) String() string { return stringName(uint32(i), rmipsStrings, false) }
2153 func (i R_MIPS) GoString() string { return stringName(uint32(i), rmipsStrings, true) }
2154
2155
2156 type R_LARCH int
2157
2158 const (
2159 R_LARCH_NONE R_LARCH = 0
2160 R_LARCH_32 R_LARCH = 1
2161 R_LARCH_64 R_LARCH = 2
2162 R_LARCH_RELATIVE R_LARCH = 3
2163 R_LARCH_COPY R_LARCH = 4
2164 R_LARCH_JUMP_SLOT R_LARCH = 5
2165 R_LARCH_TLS_DTPMOD32 R_LARCH = 6
2166 R_LARCH_TLS_DTPMOD64 R_LARCH = 7
2167 R_LARCH_TLS_DTPREL32 R_LARCH = 8
2168 R_LARCH_TLS_DTPREL64 R_LARCH = 9
2169 R_LARCH_TLS_TPREL32 R_LARCH = 10
2170 R_LARCH_TLS_TPREL64 R_LARCH = 11
2171 R_LARCH_IRELATIVE R_LARCH = 12
2172 R_LARCH_MARK_LA R_LARCH = 20
2173 R_LARCH_MARK_PCREL R_LARCH = 21
2174 R_LARCH_SOP_PUSH_PCREL R_LARCH = 22
2175 R_LARCH_SOP_PUSH_ABSOLUTE R_LARCH = 23
2176 R_LARCH_SOP_PUSH_DUP R_LARCH = 24
2177 R_LARCH_SOP_PUSH_GPREL R_LARCH = 25
2178 R_LARCH_SOP_PUSH_TLS_TPREL R_LARCH = 26
2179 R_LARCH_SOP_PUSH_TLS_GOT R_LARCH = 27
2180 R_LARCH_SOP_PUSH_TLS_GD R_LARCH = 28
2181 R_LARCH_SOP_PUSH_PLT_PCREL R_LARCH = 29
2182 R_LARCH_SOP_ASSERT R_LARCH = 30
2183 R_LARCH_SOP_NOT R_LARCH = 31
2184 R_LARCH_SOP_SUB R_LARCH = 32
2185 R_LARCH_SOP_SL R_LARCH = 33
2186 R_LARCH_SOP_SR R_LARCH = 34
2187 R_LARCH_SOP_ADD R_LARCH = 35
2188 R_LARCH_SOP_AND R_LARCH = 36
2189 R_LARCH_SOP_IF_ELSE R_LARCH = 37
2190 R_LARCH_SOP_POP_32_S_10_5 R_LARCH = 38
2191 R_LARCH_SOP_POP_32_U_10_12 R_LARCH = 39
2192 R_LARCH_SOP_POP_32_S_10_12 R_LARCH = 40
2193 R_LARCH_SOP_POP_32_S_10_16 R_LARCH = 41
2194 R_LARCH_SOP_POP_32_S_10_16_S2 R_LARCH = 42
2195 R_LARCH_SOP_POP_32_S_5_20 R_LARCH = 43
2196 R_LARCH_SOP_POP_32_S_0_5_10_16_S2 R_LARCH = 44
2197 R_LARCH_SOP_POP_32_S_0_10_10_16_S2 R_LARCH = 45
2198 R_LARCH_SOP_POP_32_U R_LARCH = 46
2199 R_LARCH_ADD8 R_LARCH = 47
2200 R_LARCH_ADD16 R_LARCH = 48
2201 R_LARCH_ADD24 R_LARCH = 49
2202 R_LARCH_ADD32 R_LARCH = 50
2203 R_LARCH_ADD64 R_LARCH = 51
2204 R_LARCH_SUB8 R_LARCH = 52
2205 R_LARCH_SUB16 R_LARCH = 53
2206 R_LARCH_SUB24 R_LARCH = 54
2207 R_LARCH_SUB32 R_LARCH = 55
2208 R_LARCH_SUB64 R_LARCH = 56
2209 R_LARCH_GNU_VTINHERIT R_LARCH = 57
2210 R_LARCH_GNU_VTENTRY R_LARCH = 58
2211 R_LARCH_B16 R_LARCH = 64
2212 R_LARCH_B21 R_LARCH = 65
2213 R_LARCH_B26 R_LARCH = 66
2214 R_LARCH_ABS_HI20 R_LARCH = 67
2215 R_LARCH_ABS_LO12 R_LARCH = 68
2216 R_LARCH_ABS64_LO20 R_LARCH = 69
2217 R_LARCH_ABS64_HI12 R_LARCH = 70
2218 R_LARCH_PCALA_HI20 R_LARCH = 71
2219 R_LARCH_PCALA_LO12 R_LARCH = 72
2220 R_LARCH_PCALA64_LO20 R_LARCH = 73
2221 R_LARCH_PCALA64_HI12 R_LARCH = 74
2222 R_LARCH_GOT_PC_HI20 R_LARCH = 75
2223 R_LARCH_GOT_PC_LO12 R_LARCH = 76
2224 R_LARCH_GOT64_PC_LO20 R_LARCH = 77
2225 R_LARCH_GOT64_PC_HI12 R_LARCH = 78
2226 R_LARCH_GOT_HI20 R_LARCH = 79
2227 R_LARCH_GOT_LO12 R_LARCH = 80
2228 R_LARCH_GOT64_LO20 R_LARCH = 81
2229 R_LARCH_GOT64_HI12 R_LARCH = 82
2230 R_LARCH_TLS_LE_HI20 R_LARCH = 83
2231 R_LARCH_TLS_LE_LO12 R_LARCH = 84
2232 R_LARCH_TLS_LE64_LO20 R_LARCH = 85
2233 R_LARCH_TLS_LE64_HI12 R_LARCH = 86
2234 R_LARCH_TLS_IE_PC_HI20 R_LARCH = 87
2235 R_LARCH_TLS_IE_PC_LO12 R_LARCH = 88
2236 R_LARCH_TLS_IE64_PC_LO20 R_LARCH = 89
2237 R_LARCH_TLS_IE64_PC_HI12 R_LARCH = 90
2238 R_LARCH_TLS_IE_HI20 R_LARCH = 91
2239 R_LARCH_TLS_IE_LO12 R_LARCH = 92
2240 R_LARCH_TLS_IE64_LO20 R_LARCH = 93
2241 R_LARCH_TLS_IE64_HI12 R_LARCH = 94
2242 R_LARCH_TLS_LD_PC_HI20 R_LARCH = 95
2243 R_LARCH_TLS_LD_HI20 R_LARCH = 96
2244 R_LARCH_TLS_GD_PC_HI20 R_LARCH = 97
2245 R_LARCH_TLS_GD_HI20 R_LARCH = 98
2246 R_LARCH_32_PCREL R_LARCH = 99
2247 R_LARCH_RELAX R_LARCH = 100
2248 )
2249
2250 var rlarchStrings = []intName{
2251 {0, "R_LARCH_NONE"},
2252 {1, "R_LARCH_32"},
2253 {2, "R_LARCH_64"},
2254 {3, "R_LARCH_RELATIVE"},
2255 {4, "R_LARCH_COPY"},
2256 {5, "R_LARCH_JUMP_SLOT"},
2257 {6, "R_LARCH_TLS_DTPMOD32"},
2258 {7, "R_LARCH_TLS_DTPMOD64"},
2259 {8, "R_LARCH_TLS_DTPREL32"},
2260 {9, "R_LARCH_TLS_DTPREL64"},
2261 {10, "R_LARCH_TLS_TPREL32"},
2262 {11, "R_LARCH_TLS_TPREL64"},
2263 {12, "R_LARCH_IRELATIVE"},
2264 {20, "R_LARCH_MARK_LA"},
2265 {21, "R_LARCH_MARK_PCREL"},
2266 {22, "R_LARCH_SOP_PUSH_PCREL"},
2267 {23, "R_LARCH_SOP_PUSH_ABSOLUTE"},
2268 {24, "R_LARCH_SOP_PUSH_DUP"},
2269 {25, "R_LARCH_SOP_PUSH_GPREL"},
2270 {26, "R_LARCH_SOP_PUSH_TLS_TPREL"},
2271 {27, "R_LARCH_SOP_PUSH_TLS_GOT"},
2272 {28, "R_LARCH_SOP_PUSH_TLS_GD"},
2273 {29, "R_LARCH_SOP_PUSH_PLT_PCREL"},
2274 {30, "R_LARCH_SOP_ASSERT"},
2275 {31, "R_LARCH_SOP_NOT"},
2276 {32, "R_LARCH_SOP_SUB"},
2277 {33, "R_LARCH_SOP_SL"},
2278 {34, "R_LARCH_SOP_SR"},
2279 {35, "R_LARCH_SOP_ADD"},
2280 {36, "R_LARCH_SOP_AND"},
2281 {37, "R_LARCH_SOP_IF_ELSE"},
2282 {38, "R_LARCH_SOP_POP_32_S_10_5"},
2283 {39, "R_LARCH_SOP_POP_32_U_10_12"},
2284 {40, "R_LARCH_SOP_POP_32_S_10_12"},
2285 {41, "R_LARCH_SOP_POP_32_S_10_16"},
2286 {42, "R_LARCH_SOP_POP_32_S_10_16_S2"},
2287 {43, "R_LARCH_SOP_POP_32_S_5_20"},
2288 {44, "R_LARCH_SOP_POP_32_S_0_5_10_16_S2"},
2289 {45, "R_LARCH_SOP_POP_32_S_0_10_10_16_S2"},
2290 {46, "R_LARCH_SOP_POP_32_U"},
2291 {47, "R_LARCH_ADD8"},
2292 {48, "R_LARCH_ADD16"},
2293 {49, "R_LARCH_ADD24"},
2294 {50, "R_LARCH_ADD32"},
2295 {51, "R_LARCH_ADD64"},
2296 {52, "R_LARCH_SUB8"},
2297 {53, "R_LARCH_SUB16"},
2298 {54, "R_LARCH_SUB24"},
2299 {55, "R_LARCH_SUB32"},
2300 {56, "R_LARCH_SUB64"},
2301 {57, "R_LARCH_GNU_VTINHERIT"},
2302 {58, "R_LARCH_GNU_VTENTRY"},
2303 {64, "R_LARCH_B16"},
2304 {65, "R_LARCH_B21"},
2305 {66, "R_LARCH_B26"},
2306 {67, "R_LARCH_ABS_HI20"},
2307 {68, "R_LARCH_ABS_LO12"},
2308 {69, "R_LARCH_ABS64_LO20"},
2309 {70, "R_LARCH_ABS64_HI12"},
2310 {71, "R_LARCH_PCALA_HI20"},
2311 {72, "R_LARCH_PCALA_LO12"},
2312 {73, "R_LARCH_PCALA64_LO20"},
2313 {74, "R_LARCH_PCALA64_HI12"},
2314 {75, "R_LARCH_GOT_PC_HI20"},
2315 {76, "R_LARCH_GOT_PC_LO12"},
2316 {77, "R_LARCH_GOT64_PC_LO20"},
2317 {78, "R_LARCH_GOT64_PC_HI12"},
2318 {79, "R_LARCH_GOT_HI20"},
2319 {80, "R_LARCH_GOT_LO12"},
2320 {81, "R_LARCH_GOT64_LO20"},
2321 {82, "R_LARCH_GOT64_HI12"},
2322 {83, "R_LARCH_TLS_LE_HI20"},
2323 {84, "R_LARCH_TLS_LE_LO12"},
2324 {85, "R_LARCH_TLS_LE64_LO20"},
2325 {86, "R_LARCH_TLS_LE64_HI12"},
2326 {87, "R_LARCH_TLS_IE_PC_HI20"},
2327 {88, "R_LARCH_TLS_IE_PC_LO12"},
2328 {89, "R_LARCH_TLS_IE64_PC_LO20"},
2329 {90, "R_LARCH_TLS_IE64_PC_HI12"},
2330 {91, "R_LARCH_TLS_IE_HI20"},
2331 {92, "R_LARCH_TLS_IE_LO12"},
2332 {93, "R_LARCH_TLS_IE64_LO20"},
2333 {94, "R_LARCH_TLS_IE64_HI12"},
2334 {95, "R_LARCH_TLS_LD_PC_HI20"},
2335 {96, "R_LARCH_TLS_LD_HI20"},
2336 {97, "R_LARCH_TLS_GD_PC_HI20"},
2337 {98, "R_LARCH_TLS_GD_HI20"},
2338 {99, "R_LARCH_32_PCREL"},
2339 {100, "R_LARCH_RELAX"},
2340 }
2341
2342 func (i R_LARCH) String() string { return stringName(uint32(i), rlarchStrings, false) }
2343 func (i R_LARCH) GoString() string { return stringName(uint32(i), rlarchStrings, true) }
2344
2345
2346
2347
2348
2349
2350
2351 type R_PPC int
2352
2353 const (
2354 R_PPC_NONE R_PPC = 0
2355 R_PPC_ADDR32 R_PPC = 1
2356 R_PPC_ADDR24 R_PPC = 2
2357 R_PPC_ADDR16 R_PPC = 3
2358 R_PPC_ADDR16_LO R_PPC = 4
2359 R_PPC_ADDR16_HI R_PPC = 5
2360 R_PPC_ADDR16_HA R_PPC = 6
2361 R_PPC_ADDR14 R_PPC = 7
2362 R_PPC_ADDR14_BRTAKEN R_PPC = 8
2363 R_PPC_ADDR14_BRNTAKEN R_PPC = 9
2364 R_PPC_REL24 R_PPC = 10
2365 R_PPC_REL14 R_PPC = 11
2366 R_PPC_REL14_BRTAKEN R_PPC = 12
2367 R_PPC_REL14_BRNTAKEN R_PPC = 13
2368 R_PPC_GOT16 R_PPC = 14
2369 R_PPC_GOT16_LO R_PPC = 15
2370 R_PPC_GOT16_HI R_PPC = 16
2371 R_PPC_GOT16_HA R_PPC = 17
2372 R_PPC_PLTREL24 R_PPC = 18
2373 R_PPC_COPY R_PPC = 19
2374 R_PPC_GLOB_DAT R_PPC = 20
2375 R_PPC_JMP_SLOT R_PPC = 21
2376 R_PPC_RELATIVE R_PPC = 22
2377 R_PPC_LOCAL24PC R_PPC = 23
2378 R_PPC_UADDR32 R_PPC = 24
2379 R_PPC_UADDR16 R_PPC = 25
2380 R_PPC_REL32 R_PPC = 26
2381 R_PPC_PLT32 R_PPC = 27
2382 R_PPC_PLTREL32 R_PPC = 28
2383 R_PPC_PLT16_LO R_PPC = 29
2384 R_PPC_PLT16_HI R_PPC = 30
2385 R_PPC_PLT16_HA R_PPC = 31
2386 R_PPC_SDAREL16 R_PPC = 32
2387 R_PPC_SECTOFF R_PPC = 33
2388 R_PPC_SECTOFF_LO R_PPC = 34
2389 R_PPC_SECTOFF_HI R_PPC = 35
2390 R_PPC_SECTOFF_HA R_PPC = 36
2391 R_PPC_TLS R_PPC = 67
2392 R_PPC_DTPMOD32 R_PPC = 68
2393 R_PPC_TPREL16 R_PPC = 69
2394 R_PPC_TPREL16_LO R_PPC = 70
2395 R_PPC_TPREL16_HI R_PPC = 71
2396 R_PPC_TPREL16_HA R_PPC = 72
2397 R_PPC_TPREL32 R_PPC = 73
2398 R_PPC_DTPREL16 R_PPC = 74
2399 R_PPC_DTPREL16_LO R_PPC = 75
2400 R_PPC_DTPREL16_HI R_PPC = 76
2401 R_PPC_DTPREL16_HA R_PPC = 77
2402 R_PPC_DTPREL32 R_PPC = 78
2403 R_PPC_GOT_TLSGD16 R_PPC = 79
2404 R_PPC_GOT_TLSGD16_LO R_PPC = 80
2405 R_PPC_GOT_TLSGD16_HI R_PPC = 81
2406 R_PPC_GOT_TLSGD16_HA R_PPC = 82
2407 R_PPC_GOT_TLSLD16 R_PPC = 83
2408 R_PPC_GOT_TLSLD16_LO R_PPC = 84
2409 R_PPC_GOT_TLSLD16_HI R_PPC = 85
2410 R_PPC_GOT_TLSLD16_HA R_PPC = 86
2411 R_PPC_GOT_TPREL16 R_PPC = 87
2412 R_PPC_GOT_TPREL16_LO R_PPC = 88
2413 R_PPC_GOT_TPREL16_HI R_PPC = 89
2414 R_PPC_GOT_TPREL16_HA R_PPC = 90
2415 R_PPC_EMB_NADDR32 R_PPC = 101
2416 R_PPC_EMB_NADDR16 R_PPC = 102
2417 R_PPC_EMB_NADDR16_LO R_PPC = 103
2418 R_PPC_EMB_NADDR16_HI R_PPC = 104
2419 R_PPC_EMB_NADDR16_HA R_PPC = 105
2420 R_PPC_EMB_SDAI16 R_PPC = 106
2421 R_PPC_EMB_SDA2I16 R_PPC = 107
2422 R_PPC_EMB_SDA2REL R_PPC = 108
2423 R_PPC_EMB_SDA21 R_PPC = 109
2424 R_PPC_EMB_MRKREF R_PPC = 110
2425 R_PPC_EMB_RELSEC16 R_PPC = 111
2426 R_PPC_EMB_RELST_LO R_PPC = 112
2427 R_PPC_EMB_RELST_HI R_PPC = 113
2428 R_PPC_EMB_RELST_HA R_PPC = 114
2429 R_PPC_EMB_BIT_FLD R_PPC = 115
2430 R_PPC_EMB_RELSDA R_PPC = 116
2431 )
2432
2433 var rppcStrings = []intName{
2434 {0, "R_PPC_NONE"},
2435 {1, "R_PPC_ADDR32"},
2436 {2, "R_PPC_ADDR24"},
2437 {3, "R_PPC_ADDR16"},
2438 {4, "R_PPC_ADDR16_LO"},
2439 {5, "R_PPC_ADDR16_HI"},
2440 {6, "R_PPC_ADDR16_HA"},
2441 {7, "R_PPC_ADDR14"},
2442 {8, "R_PPC_ADDR14_BRTAKEN"},
2443 {9, "R_PPC_ADDR14_BRNTAKEN"},
2444 {10, "R_PPC_REL24"},
2445 {11, "R_PPC_REL14"},
2446 {12, "R_PPC_REL14_BRTAKEN"},
2447 {13, "R_PPC_REL14_BRNTAKEN"},
2448 {14, "R_PPC_GOT16"},
2449 {15, "R_PPC_GOT16_LO"},
2450 {16, "R_PPC_GOT16_HI"},
2451 {17, "R_PPC_GOT16_HA"},
2452 {18, "R_PPC_PLTREL24"},
2453 {19, "R_PPC_COPY"},
2454 {20, "R_PPC_GLOB_DAT"},
2455 {21, "R_PPC_JMP_SLOT"},
2456 {22, "R_PPC_RELATIVE"},
2457 {23, "R_PPC_LOCAL24PC"},
2458 {24, "R_PPC_UADDR32"},
2459 {25, "R_PPC_UADDR16"},
2460 {26, "R_PPC_REL32"},
2461 {27, "R_PPC_PLT32"},
2462 {28, "R_PPC_PLTREL32"},
2463 {29, "R_PPC_PLT16_LO"},
2464 {30, "R_PPC_PLT16_HI"},
2465 {31, "R_PPC_PLT16_HA"},
2466 {32, "R_PPC_SDAREL16"},
2467 {33, "R_PPC_SECTOFF"},
2468 {34, "R_PPC_SECTOFF_LO"},
2469 {35, "R_PPC_SECTOFF_HI"},
2470 {36, "R_PPC_SECTOFF_HA"},
2471 {67, "R_PPC_TLS"},
2472 {68, "R_PPC_DTPMOD32"},
2473 {69, "R_PPC_TPREL16"},
2474 {70, "R_PPC_TPREL16_LO"},
2475 {71, "R_PPC_TPREL16_HI"},
2476 {72, "R_PPC_TPREL16_HA"},
2477 {73, "R_PPC_TPREL32"},
2478 {74, "R_PPC_DTPREL16"},
2479 {75, "R_PPC_DTPREL16_LO"},
2480 {76, "R_PPC_DTPREL16_HI"},
2481 {77, "R_PPC_DTPREL16_HA"},
2482 {78, "R_PPC_DTPREL32"},
2483 {79, "R_PPC_GOT_TLSGD16"},
2484 {80, "R_PPC_GOT_TLSGD16_LO"},
2485 {81, "R_PPC_GOT_TLSGD16_HI"},
2486 {82, "R_PPC_GOT_TLSGD16_HA"},
2487 {83, "R_PPC_GOT_TLSLD16"},
2488 {84, "R_PPC_GOT_TLSLD16_LO"},
2489 {85, "R_PPC_GOT_TLSLD16_HI"},
2490 {86, "R_PPC_GOT_TLSLD16_HA"},
2491 {87, "R_PPC_GOT_TPREL16"},
2492 {88, "R_PPC_GOT_TPREL16_LO"},
2493 {89, "R_PPC_GOT_TPREL16_HI"},
2494 {90, "R_PPC_GOT_TPREL16_HA"},
2495 {101, "R_PPC_EMB_NADDR32"},
2496 {102, "R_PPC_EMB_NADDR16"},
2497 {103, "R_PPC_EMB_NADDR16_LO"},
2498 {104, "R_PPC_EMB_NADDR16_HI"},
2499 {105, "R_PPC_EMB_NADDR16_HA"},
2500 {106, "R_PPC_EMB_SDAI16"},
2501 {107, "R_PPC_EMB_SDA2I16"},
2502 {108, "R_PPC_EMB_SDA2REL"},
2503 {109, "R_PPC_EMB_SDA21"},
2504 {110, "R_PPC_EMB_MRKREF"},
2505 {111, "R_PPC_EMB_RELSEC16"},
2506 {112, "R_PPC_EMB_RELST_LO"},
2507 {113, "R_PPC_EMB_RELST_HI"},
2508 {114, "R_PPC_EMB_RELST_HA"},
2509 {115, "R_PPC_EMB_BIT_FLD"},
2510 {116, "R_PPC_EMB_RELSDA"},
2511 }
2512
2513 func (i R_PPC) String() string { return stringName(uint32(i), rppcStrings, false) }
2514 func (i R_PPC) GoString() string { return stringName(uint32(i), rppcStrings, true) }
2515
2516
2517
2518
2519
2520
2521
2522 type R_PPC64 int
2523
2524 const (
2525 R_PPC64_NONE R_PPC64 = 0
2526 R_PPC64_ADDR32 R_PPC64 = 1
2527 R_PPC64_ADDR24 R_PPC64 = 2
2528 R_PPC64_ADDR16 R_PPC64 = 3
2529 R_PPC64_ADDR16_LO R_PPC64 = 4
2530 R_PPC64_ADDR16_HI R_PPC64 = 5
2531 R_PPC64_ADDR16_HA R_PPC64 = 6
2532 R_PPC64_ADDR14 R_PPC64 = 7
2533 R_PPC64_ADDR14_BRTAKEN R_PPC64 = 8
2534 R_PPC64_ADDR14_BRNTAKEN R_PPC64 = 9
2535 R_PPC64_REL24 R_PPC64 = 10
2536 R_PPC64_REL14 R_PPC64 = 11
2537 R_PPC64_REL14_BRTAKEN R_PPC64 = 12
2538 R_PPC64_REL14_BRNTAKEN R_PPC64 = 13
2539 R_PPC64_GOT16 R_PPC64 = 14
2540 R_PPC64_GOT16_LO R_PPC64 = 15
2541 R_PPC64_GOT16_HI R_PPC64 = 16
2542 R_PPC64_GOT16_HA R_PPC64 = 17
2543 R_PPC64_COPY R_PPC64 = 19
2544 R_PPC64_GLOB_DAT R_PPC64 = 20
2545 R_PPC64_JMP_SLOT R_PPC64 = 21
2546 R_PPC64_RELATIVE R_PPC64 = 22
2547 R_PPC64_UADDR32 R_PPC64 = 24
2548 R_PPC64_UADDR16 R_PPC64 = 25
2549 R_PPC64_REL32 R_PPC64 = 26
2550 R_PPC64_PLT32 R_PPC64 = 27
2551 R_PPC64_PLTREL32 R_PPC64 = 28
2552 R_PPC64_PLT16_LO R_PPC64 = 29
2553 R_PPC64_PLT16_HI R_PPC64 = 30
2554 R_PPC64_PLT16_HA R_PPC64 = 31
2555 R_PPC64_SECTOFF R_PPC64 = 33
2556 R_PPC64_SECTOFF_LO R_PPC64 = 34
2557 R_PPC64_SECTOFF_HI R_PPC64 = 35
2558 R_PPC64_SECTOFF_HA R_PPC64 = 36
2559 R_PPC64_REL30 R_PPC64 = 37
2560 R_PPC64_ADDR64 R_PPC64 = 38
2561 R_PPC64_ADDR16_HIGHER R_PPC64 = 39
2562 R_PPC64_ADDR16_HIGHERA R_PPC64 = 40
2563 R_PPC64_ADDR16_HIGHEST R_PPC64 = 41
2564 R_PPC64_ADDR16_HIGHESTA R_PPC64 = 42
2565 R_PPC64_UADDR64 R_PPC64 = 43
2566 R_PPC64_REL64 R_PPC64 = 44
2567 R_PPC64_PLT64 R_PPC64 = 45
2568 R_PPC64_PLTREL64 R_PPC64 = 46
2569 R_PPC64_TOC16 R_PPC64 = 47
2570 R_PPC64_TOC16_LO R_PPC64 = 48
2571 R_PPC64_TOC16_HI R_PPC64 = 49
2572 R_PPC64_TOC16_HA R_PPC64 = 50
2573 R_PPC64_TOC R_PPC64 = 51
2574 R_PPC64_PLTGOT16 R_PPC64 = 52
2575 R_PPC64_PLTGOT16_LO R_PPC64 = 53
2576 R_PPC64_PLTGOT16_HI R_PPC64 = 54
2577 R_PPC64_PLTGOT16_HA R_PPC64 = 55
2578 R_PPC64_ADDR16_DS R_PPC64 = 56
2579 R_PPC64_ADDR16_LO_DS R_PPC64 = 57
2580 R_PPC64_GOT16_DS R_PPC64 = 58
2581 R_PPC64_GOT16_LO_DS R_PPC64 = 59
2582 R_PPC64_PLT16_LO_DS R_PPC64 = 60
2583 R_PPC64_SECTOFF_DS R_PPC64 = 61
2584 R_PPC64_SECTOFF_LO_DS R_PPC64 = 62
2585 R_PPC64_TOC16_DS R_PPC64 = 63
2586 R_PPC64_TOC16_LO_DS R_PPC64 = 64
2587 R_PPC64_PLTGOT16_DS R_PPC64 = 65
2588 R_PPC64_PLTGOT_LO_DS R_PPC64 = 66
2589 R_PPC64_TLS R_PPC64 = 67
2590 R_PPC64_DTPMOD64 R_PPC64 = 68
2591 R_PPC64_TPREL16 R_PPC64 = 69
2592 R_PPC64_TPREL16_LO R_PPC64 = 70
2593 R_PPC64_TPREL16_HI R_PPC64 = 71
2594 R_PPC64_TPREL16_HA R_PPC64 = 72
2595 R_PPC64_TPREL64 R_PPC64 = 73
2596 R_PPC64_DTPREL16 R_PPC64 = 74
2597 R_PPC64_DTPREL16_LO R_PPC64 = 75
2598 R_PPC64_DTPREL16_HI R_PPC64 = 76
2599 R_PPC64_DTPREL16_HA R_PPC64 = 77
2600 R_PPC64_DTPREL64 R_PPC64 = 78
2601 R_PPC64_GOT_TLSGD16 R_PPC64 = 79
2602 R_PPC64_GOT_TLSGD16_LO R_PPC64 = 80
2603 R_PPC64_GOT_TLSGD16_HI R_PPC64 = 81
2604 R_PPC64_GOT_TLSGD16_HA R_PPC64 = 82
2605 R_PPC64_GOT_TLSLD16 R_PPC64 = 83
2606 R_PPC64_GOT_TLSLD16_LO R_PPC64 = 84
2607 R_PPC64_GOT_TLSLD16_HI R_PPC64 = 85
2608 R_PPC64_GOT_TLSLD16_HA R_PPC64 = 86
2609 R_PPC64_GOT_TPREL16_DS R_PPC64 = 87
2610 R_PPC64_GOT_TPREL16_LO_DS R_PPC64 = 88
2611 R_PPC64_GOT_TPREL16_HI R_PPC64 = 89
2612 R_PPC64_GOT_TPREL16_HA R_PPC64 = 90
2613 R_PPC64_GOT_DTPREL16_DS R_PPC64 = 91
2614 R_PPC64_GOT_DTPREL16_LO_DS R_PPC64 = 92
2615 R_PPC64_GOT_DTPREL16_HI R_PPC64 = 93
2616 R_PPC64_GOT_DTPREL16_HA R_PPC64 = 94
2617 R_PPC64_TPREL16_DS R_PPC64 = 95
2618 R_PPC64_TPREL16_LO_DS R_PPC64 = 96
2619 R_PPC64_TPREL16_HIGHER R_PPC64 = 97
2620 R_PPC64_TPREL16_HIGHERA R_PPC64 = 98
2621 R_PPC64_TPREL16_HIGHEST R_PPC64 = 99
2622 R_PPC64_TPREL16_HIGHESTA R_PPC64 = 100
2623 R_PPC64_DTPREL16_DS R_PPC64 = 101
2624 R_PPC64_DTPREL16_LO_DS R_PPC64 = 102
2625 R_PPC64_DTPREL16_HIGHER R_PPC64 = 103
2626 R_PPC64_DTPREL16_HIGHERA R_PPC64 = 104
2627 R_PPC64_DTPREL16_HIGHEST R_PPC64 = 105
2628 R_PPC64_DTPREL16_HIGHESTA R_PPC64 = 106
2629 R_PPC64_TLSGD R_PPC64 = 107
2630 R_PPC64_TLSLD R_PPC64 = 108
2631 R_PPC64_TOCSAVE R_PPC64 = 109
2632 R_PPC64_ADDR16_HIGH R_PPC64 = 110
2633 R_PPC64_ADDR16_HIGHA R_PPC64 = 111
2634 R_PPC64_TPREL16_HIGH R_PPC64 = 112
2635 R_PPC64_TPREL16_HIGHA R_PPC64 = 113
2636 R_PPC64_DTPREL16_HIGH R_PPC64 = 114
2637 R_PPC64_DTPREL16_HIGHA R_PPC64 = 115
2638 R_PPC64_REL24_NOTOC R_PPC64 = 116
2639 R_PPC64_ADDR64_LOCAL R_PPC64 = 117
2640 R_PPC64_ENTRY R_PPC64 = 118
2641 R_PPC64_PLTSEQ R_PPC64 = 119
2642 R_PPC64_PLTCALL R_PPC64 = 120
2643 R_PPC64_PLTSEQ_NOTOC R_PPC64 = 121
2644 R_PPC64_PLTCALL_NOTOC R_PPC64 = 122
2645 R_PPC64_PCREL_OPT R_PPC64 = 123
2646 R_PPC64_D34 R_PPC64 = 128
2647 R_PPC64_D34_LO R_PPC64 = 129
2648 R_PPC64_D34_HI30 R_PPC64 = 130
2649 R_PPC64_D34_HA30 R_PPC64 = 131
2650 R_PPC64_PCREL34 R_PPC64 = 132
2651 R_PPC64_GOT_PCREL34 R_PPC64 = 133
2652 R_PPC64_PLT_PCREL34 R_PPC64 = 134
2653 R_PPC64_PLT_PCREL34_NOTOC R_PPC64 = 135
2654 R_PPC64_ADDR16_HIGHER34 R_PPC64 = 136
2655 R_PPC64_ADDR16_HIGHERA34 R_PPC64 = 137
2656 R_PPC64_ADDR16_HIGHEST34 R_PPC64 = 138
2657 R_PPC64_ADDR16_HIGHESTA34 R_PPC64 = 139
2658 R_PPC64_REL16_HIGHER34 R_PPC64 = 140
2659 R_PPC64_REL16_HIGHERA34 R_PPC64 = 141
2660 R_PPC64_REL16_HIGHEST34 R_PPC64 = 142
2661 R_PPC64_REL16_HIGHESTA34 R_PPC64 = 143
2662 R_PPC64_D28 R_PPC64 = 144
2663 R_PPC64_PCREL28 R_PPC64 = 145
2664 R_PPC64_TPREL34 R_PPC64 = 146
2665 R_PPC64_DTPREL34 R_PPC64 = 147
2666 R_PPC64_GOT_TLSGD_PCREL34 R_PPC64 = 148
2667 R_PPC64_GOT_TLSLD_PCREL34 R_PPC64 = 149
2668 R_PPC64_GOT_TPREL_PCREL34 R_PPC64 = 150
2669 R_PPC64_GOT_DTPREL_PCREL34 R_PPC64 = 151
2670 R_PPC64_REL16_HIGH R_PPC64 = 240
2671 R_PPC64_REL16_HIGHA R_PPC64 = 241
2672 R_PPC64_REL16_HIGHER R_PPC64 = 242
2673 R_PPC64_REL16_HIGHERA R_PPC64 = 243
2674 R_PPC64_REL16_HIGHEST R_PPC64 = 244
2675 R_PPC64_REL16_HIGHESTA R_PPC64 = 245
2676 R_PPC64_REL16DX_HA R_PPC64 = 246
2677 R_PPC64_JMP_IREL R_PPC64 = 247
2678 R_PPC64_IRELATIVE R_PPC64 = 248
2679 R_PPC64_REL16 R_PPC64 = 249
2680 R_PPC64_REL16_LO R_PPC64 = 250
2681 R_PPC64_REL16_HI R_PPC64 = 251
2682 R_PPC64_REL16_HA R_PPC64 = 252
2683 R_PPC64_GNU_VTINHERIT R_PPC64 = 253
2684 R_PPC64_GNU_VTENTRY R_PPC64 = 254
2685 )
2686
2687 var rppc64Strings = []intName{
2688 {0, "R_PPC64_NONE"},
2689 {1, "R_PPC64_ADDR32"},
2690 {2, "R_PPC64_ADDR24"},
2691 {3, "R_PPC64_ADDR16"},
2692 {4, "R_PPC64_ADDR16_LO"},
2693 {5, "R_PPC64_ADDR16_HI"},
2694 {6, "R_PPC64_ADDR16_HA"},
2695 {7, "R_PPC64_ADDR14"},
2696 {8, "R_PPC64_ADDR14_BRTAKEN"},
2697 {9, "R_PPC64_ADDR14_BRNTAKEN"},
2698 {10, "R_PPC64_REL24"},
2699 {11, "R_PPC64_REL14"},
2700 {12, "R_PPC64_REL14_BRTAKEN"},
2701 {13, "R_PPC64_REL14_BRNTAKEN"},
2702 {14, "R_PPC64_GOT16"},
2703 {15, "R_PPC64_GOT16_LO"},
2704 {16, "R_PPC64_GOT16_HI"},
2705 {17, "R_PPC64_GOT16_HA"},
2706 {19, "R_PPC64_COPY"},
2707 {20, "R_PPC64_GLOB_DAT"},
2708 {21, "R_PPC64_JMP_SLOT"},
2709 {22, "R_PPC64_RELATIVE"},
2710 {24, "R_PPC64_UADDR32"},
2711 {25, "R_PPC64_UADDR16"},
2712 {26, "R_PPC64_REL32"},
2713 {27, "R_PPC64_PLT32"},
2714 {28, "R_PPC64_PLTREL32"},
2715 {29, "R_PPC64_PLT16_LO"},
2716 {30, "R_PPC64_PLT16_HI"},
2717 {31, "R_PPC64_PLT16_HA"},
2718 {33, "R_PPC64_SECTOFF"},
2719 {34, "R_PPC64_SECTOFF_LO"},
2720 {35, "R_PPC64_SECTOFF_HI"},
2721 {36, "R_PPC64_SECTOFF_HA"},
2722 {37, "R_PPC64_REL30"},
2723 {38, "R_PPC64_ADDR64"},
2724 {39, "R_PPC64_ADDR16_HIGHER"},
2725 {40, "R_PPC64_ADDR16_HIGHERA"},
2726 {41, "R_PPC64_ADDR16_HIGHEST"},
2727 {42, "R_PPC64_ADDR16_HIGHESTA"},
2728 {43, "R_PPC64_UADDR64"},
2729 {44, "R_PPC64_REL64"},
2730 {45, "R_PPC64_PLT64"},
2731 {46, "R_PPC64_PLTREL64"},
2732 {47, "R_PPC64_TOC16"},
2733 {48, "R_PPC64_TOC16_LO"},
2734 {49, "R_PPC64_TOC16_HI"},
2735 {50, "R_PPC64_TOC16_HA"},
2736 {51, "R_PPC64_TOC"},
2737 {52, "R_PPC64_PLTGOT16"},
2738 {53, "R_PPC64_PLTGOT16_LO"},
2739 {54, "R_PPC64_PLTGOT16_HI"},
2740 {55, "R_PPC64_PLTGOT16_HA"},
2741 {56, "R_PPC64_ADDR16_DS"},
2742 {57, "R_PPC64_ADDR16_LO_DS"},
2743 {58, "R_PPC64_GOT16_DS"},
2744 {59, "R_PPC64_GOT16_LO_DS"},
2745 {60, "R_PPC64_PLT16_LO_DS"},
2746 {61, "R_PPC64_SECTOFF_DS"},
2747 {62, "R_PPC64_SECTOFF_LO_DS"},
2748 {63, "R_PPC64_TOC16_DS"},
2749 {64, "R_PPC64_TOC16_LO_DS"},
2750 {65, "R_PPC64_PLTGOT16_DS"},
2751 {66, "R_PPC64_PLTGOT_LO_DS"},
2752 {67, "R_PPC64_TLS"},
2753 {68, "R_PPC64_DTPMOD64"},
2754 {69, "R_PPC64_TPREL16"},
2755 {70, "R_PPC64_TPREL16_LO"},
2756 {71, "R_PPC64_TPREL16_HI"},
2757 {72, "R_PPC64_TPREL16_HA"},
2758 {73, "R_PPC64_TPREL64"},
2759 {74, "R_PPC64_DTPREL16"},
2760 {75, "R_PPC64_DTPREL16_LO"},
2761 {76, "R_PPC64_DTPREL16_HI"},
2762 {77, "R_PPC64_DTPREL16_HA"},
2763 {78, "R_PPC64_DTPREL64"},
2764 {79, "R_PPC64_GOT_TLSGD16"},
2765 {80, "R_PPC64_GOT_TLSGD16_LO"},
2766 {81, "R_PPC64_GOT_TLSGD16_HI"},
2767 {82, "R_PPC64_GOT_TLSGD16_HA"},
2768 {83, "R_PPC64_GOT_TLSLD16"},
2769 {84, "R_PPC64_GOT_TLSLD16_LO"},
2770 {85, "R_PPC64_GOT_TLSLD16_HI"},
2771 {86, "R_PPC64_GOT_TLSLD16_HA"},
2772 {87, "R_PPC64_GOT_TPREL16_DS"},
2773 {88, "R_PPC64_GOT_TPREL16_LO_DS"},
2774 {89, "R_PPC64_GOT_TPREL16_HI"},
2775 {90, "R_PPC64_GOT_TPREL16_HA"},
2776 {91, "R_PPC64_GOT_DTPREL16_DS"},
2777 {92, "R_PPC64_GOT_DTPREL16_LO_DS"},
2778 {93, "R_PPC64_GOT_DTPREL16_HI"},
2779 {94, "R_PPC64_GOT_DTPREL16_HA"},
2780 {95, "R_PPC64_TPREL16_DS"},
2781 {96, "R_PPC64_TPREL16_LO_DS"},
2782 {97, "R_PPC64_TPREL16_HIGHER"},
2783 {98, "R_PPC64_TPREL16_HIGHERA"},
2784 {99, "R_PPC64_TPREL16_HIGHEST"},
2785 {100, "R_PPC64_TPREL16_HIGHESTA"},
2786 {101, "R_PPC64_DTPREL16_DS"},
2787 {102, "R_PPC64_DTPREL16_LO_DS"},
2788 {103, "R_PPC64_DTPREL16_HIGHER"},
2789 {104, "R_PPC64_DTPREL16_HIGHERA"},
2790 {105, "R_PPC64_DTPREL16_HIGHEST"},
2791 {106, "R_PPC64_DTPREL16_HIGHESTA"},
2792 {107, "R_PPC64_TLSGD"},
2793 {108, "R_PPC64_TLSLD"},
2794 {109, "R_PPC64_TOCSAVE"},
2795 {110, "R_PPC64_ADDR16_HIGH"},
2796 {111, "R_PPC64_ADDR16_HIGHA"},
2797 {112, "R_PPC64_TPREL16_HIGH"},
2798 {113, "R_PPC64_TPREL16_HIGHA"},
2799 {114, "R_PPC64_DTPREL16_HIGH"},
2800 {115, "R_PPC64_DTPREL16_HIGHA"},
2801 {116, "R_PPC64_REL24_NOTOC"},
2802 {117, "R_PPC64_ADDR64_LOCAL"},
2803 {118, "R_PPC64_ENTRY"},
2804 {119, "R_PPC64_PLTSEQ"},
2805 {120, "R_PPC64_PLTCALL"},
2806 {121, "R_PPC64_PLTSEQ_NOTOC"},
2807 {122, "R_PPC64_PLTCALL_NOTOC"},
2808 {123, "R_PPC64_PCREL_OPT"},
2809 {128, "R_PPC64_D34"},
2810 {129, "R_PPC64_D34_LO"},
2811 {130, "R_PPC64_D34_HI30"},
2812 {131, "R_PPC64_D34_HA30"},
2813 {132, "R_PPC64_PCREL34"},
2814 {133, "R_PPC64_GOT_PCREL34"},
2815 {134, "R_PPC64_PLT_PCREL34"},
2816 {135, "R_PPC64_PLT_PCREL34_NOTOC"},
2817 {136, "R_PPC64_ADDR16_HIGHER34"},
2818 {137, "R_PPC64_ADDR16_HIGHERA34"},
2819 {138, "R_PPC64_ADDR16_HIGHEST34"},
2820 {139, "R_PPC64_ADDR16_HIGHESTA34"},
2821 {140, "R_PPC64_REL16_HIGHER34"},
2822 {141, "R_PPC64_REL16_HIGHERA34"},
2823 {142, "R_PPC64_REL16_HIGHEST34"},
2824 {143, "R_PPC64_REL16_HIGHESTA34"},
2825 {144, "R_PPC64_D28"},
2826 {145, "R_PPC64_PCREL28"},
2827 {146, "R_PPC64_TPREL34"},
2828 {147, "R_PPC64_DTPREL34"},
2829 {148, "R_PPC64_GOT_TLSGD_PCREL34"},
2830 {149, "R_PPC64_GOT_TLSLD_PCREL34"},
2831 {150, "R_PPC64_GOT_TPREL_PCREL34"},
2832 {151, "R_PPC64_GOT_DTPREL_PCREL34"},
2833 {240, "R_PPC64_REL16_HIGH"},
2834 {241, "R_PPC64_REL16_HIGHA"},
2835 {242, "R_PPC64_REL16_HIGHER"},
2836 {243, "R_PPC64_REL16_HIGHERA"},
2837 {244, "R_PPC64_REL16_HIGHEST"},
2838 {245, "R_PPC64_REL16_HIGHESTA"},
2839 {246, "R_PPC64_REL16DX_HA"},
2840 {247, "R_PPC64_JMP_IREL"},
2841 {248, "R_PPC64_IRELATIVE"},
2842 {249, "R_PPC64_REL16"},
2843 {250, "R_PPC64_REL16_LO"},
2844 {251, "R_PPC64_REL16_HI"},
2845 {252, "R_PPC64_REL16_HA"},
2846 {253, "R_PPC64_GNU_VTINHERIT"},
2847 {254, "R_PPC64_GNU_VTENTRY"},
2848 }
2849
2850 func (i R_PPC64) String() string { return stringName(uint32(i), rppc64Strings, false) }
2851 func (i R_PPC64) GoString() string { return stringName(uint32(i), rppc64Strings, true) }
2852
2853
2854 type R_RISCV int
2855
2856 const (
2857 R_RISCV_NONE R_RISCV = 0
2858 R_RISCV_32 R_RISCV = 1
2859 R_RISCV_64 R_RISCV = 2
2860 R_RISCV_RELATIVE R_RISCV = 3
2861 R_RISCV_COPY R_RISCV = 4
2862 R_RISCV_JUMP_SLOT R_RISCV = 5
2863 R_RISCV_TLS_DTPMOD32 R_RISCV = 6
2864 R_RISCV_TLS_DTPMOD64 R_RISCV = 7
2865 R_RISCV_TLS_DTPREL32 R_RISCV = 8
2866 R_RISCV_TLS_DTPREL64 R_RISCV = 9
2867 R_RISCV_TLS_TPREL32 R_RISCV = 10
2868 R_RISCV_TLS_TPREL64 R_RISCV = 11
2869 R_RISCV_BRANCH R_RISCV = 16
2870 R_RISCV_JAL R_RISCV = 17
2871 R_RISCV_CALL R_RISCV = 18
2872 R_RISCV_CALL_PLT R_RISCV = 19
2873 R_RISCV_GOT_HI20 R_RISCV = 20
2874 R_RISCV_TLS_GOT_HI20 R_RISCV = 21
2875 R_RISCV_TLS_GD_HI20 R_RISCV = 22
2876 R_RISCV_PCREL_HI20 R_RISCV = 23
2877 R_RISCV_PCREL_LO12_I R_RISCV = 24
2878 R_RISCV_PCREL_LO12_S R_RISCV = 25
2879 R_RISCV_HI20 R_RISCV = 26
2880 R_RISCV_LO12_I R_RISCV = 27
2881 R_RISCV_LO12_S R_RISCV = 28
2882 R_RISCV_TPREL_HI20 R_RISCV = 29
2883 R_RISCV_TPREL_LO12_I R_RISCV = 30
2884 R_RISCV_TPREL_LO12_S R_RISCV = 31
2885 R_RISCV_TPREL_ADD R_RISCV = 32
2886 R_RISCV_ADD8 R_RISCV = 33
2887 R_RISCV_ADD16 R_RISCV = 34
2888 R_RISCV_ADD32 R_RISCV = 35
2889 R_RISCV_ADD64 R_RISCV = 36
2890 R_RISCV_SUB8 R_RISCV = 37
2891 R_RISCV_SUB16 R_RISCV = 38
2892 R_RISCV_SUB32 R_RISCV = 39
2893 R_RISCV_SUB64 R_RISCV = 40
2894 R_RISCV_GNU_VTINHERIT R_RISCV = 41
2895 R_RISCV_GNU_VTENTRY R_RISCV = 42
2896 R_RISCV_ALIGN R_RISCV = 43
2897 R_RISCV_RVC_BRANCH R_RISCV = 44
2898 R_RISCV_RVC_JUMP R_RISCV = 45
2899 R_RISCV_RVC_LUI R_RISCV = 46
2900 R_RISCV_GPREL_I R_RISCV = 47
2901 R_RISCV_GPREL_S R_RISCV = 48
2902 R_RISCV_TPREL_I R_RISCV = 49
2903 R_RISCV_TPREL_S R_RISCV = 50
2904 R_RISCV_RELAX R_RISCV = 51
2905 R_RISCV_SUB6 R_RISCV = 52
2906 R_RISCV_SET6 R_RISCV = 53
2907 R_RISCV_SET8 R_RISCV = 54
2908 R_RISCV_SET16 R_RISCV = 55
2909 R_RISCV_SET32 R_RISCV = 56
2910 R_RISCV_32_PCREL R_RISCV = 57
2911 )
2912
2913 var rriscvStrings = []intName{
2914 {0, "R_RISCV_NONE"},
2915 {1, "R_RISCV_32"},
2916 {2, "R_RISCV_64"},
2917 {3, "R_RISCV_RELATIVE"},
2918 {4, "R_RISCV_COPY"},
2919 {5, "R_RISCV_JUMP_SLOT"},
2920 {6, "R_RISCV_TLS_DTPMOD32"},
2921 {7, "R_RISCV_TLS_DTPMOD64"},
2922 {8, "R_RISCV_TLS_DTPREL32"},
2923 {9, "R_RISCV_TLS_DTPREL64"},
2924 {10, "R_RISCV_TLS_TPREL32"},
2925 {11, "R_RISCV_TLS_TPREL64"},
2926 {16, "R_RISCV_BRANCH"},
2927 {17, "R_RISCV_JAL"},
2928 {18, "R_RISCV_CALL"},
2929 {19, "R_RISCV_CALL_PLT"},
2930 {20, "R_RISCV_GOT_HI20"},
2931 {21, "R_RISCV_TLS_GOT_HI20"},
2932 {22, "R_RISCV_TLS_GD_HI20"},
2933 {23, "R_RISCV_PCREL_HI20"},
2934 {24, "R_RISCV_PCREL_LO12_I"},
2935 {25, "R_RISCV_PCREL_LO12_S"},
2936 {26, "R_RISCV_HI20"},
2937 {27, "R_RISCV_LO12_I"},
2938 {28, "R_RISCV_LO12_S"},
2939 {29, "R_RISCV_TPREL_HI20"},
2940 {30, "R_RISCV_TPREL_LO12_I"},
2941 {31, "R_RISCV_TPREL_LO12_S"},
2942 {32, "R_RISCV_TPREL_ADD"},
2943 {33, "R_RISCV_ADD8"},
2944 {34, "R_RISCV_ADD16"},
2945 {35, "R_RISCV_ADD32"},
2946 {36, "R_RISCV_ADD64"},
2947 {37, "R_RISCV_SUB8"},
2948 {38, "R_RISCV_SUB16"},
2949 {39, "R_RISCV_SUB32"},
2950 {40, "R_RISCV_SUB64"},
2951 {41, "R_RISCV_GNU_VTINHERIT"},
2952 {42, "R_RISCV_GNU_VTENTRY"},
2953 {43, "R_RISCV_ALIGN"},
2954 {44, "R_RISCV_RVC_BRANCH"},
2955 {45, "R_RISCV_RVC_JUMP"},
2956 {46, "R_RISCV_RVC_LUI"},
2957 {47, "R_RISCV_GPREL_I"},
2958 {48, "R_RISCV_GPREL_S"},
2959 {49, "R_RISCV_TPREL_I"},
2960 {50, "R_RISCV_TPREL_S"},
2961 {51, "R_RISCV_RELAX"},
2962 {52, "R_RISCV_SUB6"},
2963 {53, "R_RISCV_SET6"},
2964 {54, "R_RISCV_SET8"},
2965 {55, "R_RISCV_SET16"},
2966 {56, "R_RISCV_SET32"},
2967 {57, "R_RISCV_32_PCREL"},
2968 }
2969
2970 func (i R_RISCV) String() string { return stringName(uint32(i), rriscvStrings, false) }
2971 func (i R_RISCV) GoString() string { return stringName(uint32(i), rriscvStrings, true) }
2972
2973
2974 type R_390 int
2975
2976 const (
2977 R_390_NONE R_390 = 0
2978 R_390_8 R_390 = 1
2979 R_390_12 R_390 = 2
2980 R_390_16 R_390 = 3
2981 R_390_32 R_390 = 4
2982 R_390_PC32 R_390 = 5
2983 R_390_GOT12 R_390 = 6
2984 R_390_GOT32 R_390 = 7
2985 R_390_PLT32 R_390 = 8
2986 R_390_COPY R_390 = 9
2987 R_390_GLOB_DAT R_390 = 10
2988 R_390_JMP_SLOT R_390 = 11
2989 R_390_RELATIVE R_390 = 12
2990 R_390_GOTOFF R_390 = 13
2991 R_390_GOTPC R_390 = 14
2992 R_390_GOT16 R_390 = 15
2993 R_390_PC16 R_390 = 16
2994 R_390_PC16DBL R_390 = 17
2995 R_390_PLT16DBL R_390 = 18
2996 R_390_PC32DBL R_390 = 19
2997 R_390_PLT32DBL R_390 = 20
2998 R_390_GOTPCDBL R_390 = 21
2999 R_390_64 R_390 = 22
3000 R_390_PC64 R_390 = 23
3001 R_390_GOT64 R_390 = 24
3002 R_390_PLT64 R_390 = 25
3003 R_390_GOTENT R_390 = 26
3004 R_390_GOTOFF16 R_390 = 27
3005 R_390_GOTOFF64 R_390 = 28
3006 R_390_GOTPLT12 R_390 = 29
3007 R_390_GOTPLT16 R_390 = 30
3008 R_390_GOTPLT32 R_390 = 31
3009 R_390_GOTPLT64 R_390 = 32
3010 R_390_GOTPLTENT R_390 = 33
3011 R_390_GOTPLTOFF16 R_390 = 34
3012 R_390_GOTPLTOFF32 R_390 = 35
3013 R_390_GOTPLTOFF64 R_390 = 36
3014 R_390_TLS_LOAD R_390 = 37
3015 R_390_TLS_GDCALL R_390 = 38
3016 R_390_TLS_LDCALL R_390 = 39
3017 R_390_TLS_GD32 R_390 = 40
3018 R_390_TLS_GD64 R_390 = 41
3019 R_390_TLS_GOTIE12 R_390 = 42
3020 R_390_TLS_GOTIE32 R_390 = 43
3021 R_390_TLS_GOTIE64 R_390 = 44
3022 R_390_TLS_LDM32 R_390 = 45
3023 R_390_TLS_LDM64 R_390 = 46
3024 R_390_TLS_IE32 R_390 = 47
3025 R_390_TLS_IE64 R_390 = 48
3026 R_390_TLS_IEENT R_390 = 49
3027 R_390_TLS_LE32 R_390 = 50
3028 R_390_TLS_LE64 R_390 = 51
3029 R_390_TLS_LDO32 R_390 = 52
3030 R_390_TLS_LDO64 R_390 = 53
3031 R_390_TLS_DTPMOD R_390 = 54
3032 R_390_TLS_DTPOFF R_390 = 55
3033 R_390_TLS_TPOFF R_390 = 56
3034 R_390_20 R_390 = 57
3035 R_390_GOT20 R_390 = 58
3036 R_390_GOTPLT20 R_390 = 59
3037 R_390_TLS_GOTIE20 R_390 = 60
3038 )
3039
3040 var r390Strings = []intName{
3041 {0, "R_390_NONE"},
3042 {1, "R_390_8"},
3043 {2, "R_390_12"},
3044 {3, "R_390_16"},
3045 {4, "R_390_32"},
3046 {5, "R_390_PC32"},
3047 {6, "R_390_GOT12"},
3048 {7, "R_390_GOT32"},
3049 {8, "R_390_PLT32"},
3050 {9, "R_390_COPY"},
3051 {10, "R_390_GLOB_DAT"},
3052 {11, "R_390_JMP_SLOT"},
3053 {12, "R_390_RELATIVE"},
3054 {13, "R_390_GOTOFF"},
3055 {14, "R_390_GOTPC"},
3056 {15, "R_390_GOT16"},
3057 {16, "R_390_PC16"},
3058 {17, "R_390_PC16DBL"},
3059 {18, "R_390_PLT16DBL"},
3060 {19, "R_390_PC32DBL"},
3061 {20, "R_390_PLT32DBL"},
3062 {21, "R_390_GOTPCDBL"},
3063 {22, "R_390_64"},
3064 {23, "R_390_PC64"},
3065 {24, "R_390_GOT64"},
3066 {25, "R_390_PLT64"},
3067 {26, "R_390_GOTENT"},
3068 {27, "R_390_GOTOFF16"},
3069 {28, "R_390_GOTOFF64"},
3070 {29, "R_390_GOTPLT12"},
3071 {30, "R_390_GOTPLT16"},
3072 {31, "R_390_GOTPLT32"},
3073 {32, "R_390_GOTPLT64"},
3074 {33, "R_390_GOTPLTENT"},
3075 {34, "R_390_GOTPLTOFF16"},
3076 {35, "R_390_GOTPLTOFF32"},
3077 {36, "R_390_GOTPLTOFF64"},
3078 {37, "R_390_TLS_LOAD"},
3079 {38, "R_390_TLS_GDCALL"},
3080 {39, "R_390_TLS_LDCALL"},
3081 {40, "R_390_TLS_GD32"},
3082 {41, "R_390_TLS_GD64"},
3083 {42, "R_390_TLS_GOTIE12"},
3084 {43, "R_390_TLS_GOTIE32"},
3085 {44, "R_390_TLS_GOTIE64"},
3086 {45, "R_390_TLS_LDM32"},
3087 {46, "R_390_TLS_LDM64"},
3088 {47, "R_390_TLS_IE32"},
3089 {48, "R_390_TLS_IE64"},
3090 {49, "R_390_TLS_IEENT"},
3091 {50, "R_390_TLS_LE32"},
3092 {51, "R_390_TLS_LE64"},
3093 {52, "R_390_TLS_LDO32"},
3094 {53, "R_390_TLS_LDO64"},
3095 {54, "R_390_TLS_DTPMOD"},
3096 {55, "R_390_TLS_DTPOFF"},
3097 {56, "R_390_TLS_TPOFF"},
3098 {57, "R_390_20"},
3099 {58, "R_390_GOT20"},
3100 {59, "R_390_GOTPLT20"},
3101 {60, "R_390_TLS_GOTIE20"},
3102 }
3103
3104 func (i R_390) String() string { return stringName(uint32(i), r390Strings, false) }
3105 func (i R_390) GoString() string { return stringName(uint32(i), r390Strings, true) }
3106
3107
3108 type R_SPARC int
3109
3110 const (
3111 R_SPARC_NONE R_SPARC = 0
3112 R_SPARC_8 R_SPARC = 1
3113 R_SPARC_16 R_SPARC = 2
3114 R_SPARC_32 R_SPARC = 3
3115 R_SPARC_DISP8 R_SPARC = 4
3116 R_SPARC_DISP16 R_SPARC = 5
3117 R_SPARC_DISP32 R_SPARC = 6
3118 R_SPARC_WDISP30 R_SPARC = 7
3119 R_SPARC_WDISP22 R_SPARC = 8
3120 R_SPARC_HI22 R_SPARC = 9
3121 R_SPARC_22 R_SPARC = 10
3122 R_SPARC_13 R_SPARC = 11
3123 R_SPARC_LO10 R_SPARC = 12
3124 R_SPARC_GOT10 R_SPARC = 13
3125 R_SPARC_GOT13 R_SPARC = 14
3126 R_SPARC_GOT22 R_SPARC = 15
3127 R_SPARC_PC10 R_SPARC = 16
3128 R_SPARC_PC22 R_SPARC = 17
3129 R_SPARC_WPLT30 R_SPARC = 18
3130 R_SPARC_COPY R_SPARC = 19
3131 R_SPARC_GLOB_DAT R_SPARC = 20
3132 R_SPARC_JMP_SLOT R_SPARC = 21
3133 R_SPARC_RELATIVE R_SPARC = 22
3134 R_SPARC_UA32 R_SPARC = 23
3135 R_SPARC_PLT32 R_SPARC = 24
3136 R_SPARC_HIPLT22 R_SPARC = 25
3137 R_SPARC_LOPLT10 R_SPARC = 26
3138 R_SPARC_PCPLT32 R_SPARC = 27
3139 R_SPARC_PCPLT22 R_SPARC = 28
3140 R_SPARC_PCPLT10 R_SPARC = 29
3141 R_SPARC_10 R_SPARC = 30
3142 R_SPARC_11 R_SPARC = 31
3143 R_SPARC_64 R_SPARC = 32
3144 R_SPARC_OLO10 R_SPARC = 33
3145 R_SPARC_HH22 R_SPARC = 34
3146 R_SPARC_HM10 R_SPARC = 35
3147 R_SPARC_LM22 R_SPARC = 36
3148 R_SPARC_PC_HH22 R_SPARC = 37
3149 R_SPARC_PC_HM10 R_SPARC = 38
3150 R_SPARC_PC_LM22 R_SPARC = 39
3151 R_SPARC_WDISP16 R_SPARC = 40
3152 R_SPARC_WDISP19 R_SPARC = 41
3153 R_SPARC_GLOB_JMP R_SPARC = 42
3154 R_SPARC_7 R_SPARC = 43
3155 R_SPARC_5 R_SPARC = 44
3156 R_SPARC_6 R_SPARC = 45
3157 R_SPARC_DISP64 R_SPARC = 46
3158 R_SPARC_PLT64 R_SPARC = 47
3159 R_SPARC_HIX22 R_SPARC = 48
3160 R_SPARC_LOX10 R_SPARC = 49
3161 R_SPARC_H44 R_SPARC = 50
3162 R_SPARC_M44 R_SPARC = 51
3163 R_SPARC_L44 R_SPARC = 52
3164 R_SPARC_REGISTER R_SPARC = 53
3165 R_SPARC_UA64 R_SPARC = 54
3166 R_SPARC_UA16 R_SPARC = 55
3167 )
3168
3169 var rsparcStrings = []intName{
3170 {0, "R_SPARC_NONE"},
3171 {1, "R_SPARC_8"},
3172 {2, "R_SPARC_16"},
3173 {3, "R_SPARC_32"},
3174 {4, "R_SPARC_DISP8"},
3175 {5, "R_SPARC_DISP16"},
3176 {6, "R_SPARC_DISP32"},
3177 {7, "R_SPARC_WDISP30"},
3178 {8, "R_SPARC_WDISP22"},
3179 {9, "R_SPARC_HI22"},
3180 {10, "R_SPARC_22"},
3181 {11, "R_SPARC_13"},
3182 {12, "R_SPARC_LO10"},
3183 {13, "R_SPARC_GOT10"},
3184 {14, "R_SPARC_GOT13"},
3185 {15, "R_SPARC_GOT22"},
3186 {16, "R_SPARC_PC10"},
3187 {17, "R_SPARC_PC22"},
3188 {18, "R_SPARC_WPLT30"},
3189 {19, "R_SPARC_COPY"},
3190 {20, "R_SPARC_GLOB_DAT"},
3191 {21, "R_SPARC_JMP_SLOT"},
3192 {22, "R_SPARC_RELATIVE"},
3193 {23, "R_SPARC_UA32"},
3194 {24, "R_SPARC_PLT32"},
3195 {25, "R_SPARC_HIPLT22"},
3196 {26, "R_SPARC_LOPLT10"},
3197 {27, "R_SPARC_PCPLT32"},
3198 {28, "R_SPARC_PCPLT22"},
3199 {29, "R_SPARC_PCPLT10"},
3200 {30, "R_SPARC_10"},
3201 {31, "R_SPARC_11"},
3202 {32, "R_SPARC_64"},
3203 {33, "R_SPARC_OLO10"},
3204 {34, "R_SPARC_HH22"},
3205 {35, "R_SPARC_HM10"},
3206 {36, "R_SPARC_LM22"},
3207 {37, "R_SPARC_PC_HH22"},
3208 {38, "R_SPARC_PC_HM10"},
3209 {39, "R_SPARC_PC_LM22"},
3210 {40, "R_SPARC_WDISP16"},
3211 {41, "R_SPARC_WDISP19"},
3212 {42, "R_SPARC_GLOB_JMP"},
3213 {43, "R_SPARC_7"},
3214 {44, "R_SPARC_5"},
3215 {45, "R_SPARC_6"},
3216 {46, "R_SPARC_DISP64"},
3217 {47, "R_SPARC_PLT64"},
3218 {48, "R_SPARC_HIX22"},
3219 {49, "R_SPARC_LOX10"},
3220 {50, "R_SPARC_H44"},
3221 {51, "R_SPARC_M44"},
3222 {52, "R_SPARC_L44"},
3223 {53, "R_SPARC_REGISTER"},
3224 {54, "R_SPARC_UA64"},
3225 {55, "R_SPARC_UA16"},
3226 }
3227
3228 func (i R_SPARC) String() string { return stringName(uint32(i), rsparcStrings, false) }
3229 func (i R_SPARC) GoString() string { return stringName(uint32(i), rsparcStrings, true) }
3230
3231
3232 const ARM_MAGIC_TRAMP_NUMBER = 0x5c000003
3233
3234
3235 type Header32 struct {
3236 Ident [EI_NIDENT]byte
3237 Type uint16
3238 Machine uint16
3239 Version uint32
3240 Entry uint32
3241 Phoff uint32
3242 Shoff uint32
3243 Flags uint32
3244 Ehsize uint16
3245 Phentsize uint16
3246 Phnum uint16
3247 Shentsize uint16
3248 Shnum uint16
3249 Shstrndx uint16
3250 }
3251
3252
3253 type Section32 struct {
3254 Name uint32
3255 Type uint32
3256 Flags uint32
3257 Addr uint32
3258 Off uint32
3259 Size uint32
3260 Link uint32
3261 Info uint32
3262 Addralign uint32
3263 Entsize uint32
3264 }
3265
3266
3267 type Prog32 struct {
3268 Type uint32
3269 Off uint32
3270 Vaddr uint32
3271 Paddr uint32
3272 Filesz uint32
3273 Memsz uint32
3274 Flags uint32
3275 Align uint32
3276 }
3277
3278
3279 type Dyn32 struct {
3280 Tag int32
3281 Val uint32
3282 }
3283
3284
3285 type Chdr32 struct {
3286 Type uint32
3287 Size uint32
3288 Addralign uint32
3289 }
3290
3291
3294
3295
3296 type Rel32 struct {
3297 Off uint32
3298 Info uint32
3299 }
3300
3301
3302 type Rela32 struct {
3303 Off uint32
3304 Info uint32
3305 Addend int32
3306 }
3307
3308 func R_SYM32(info uint32) uint32 { return info >> 8 }
3309 func R_TYPE32(info uint32) uint32 { return info & 0xff }
3310 func R_INFO32(sym, typ uint32) uint32 { return sym<<8 | typ }
3311
3312
3313 type Sym32 struct {
3314 Name uint32
3315 Value uint32
3316 Size uint32
3317 Info uint8
3318 Other uint8
3319 Shndx uint16
3320 }
3321
3322 const Sym32Size = 16
3323
3324 func ST_BIND(info uint8) SymBind { return SymBind(info >> 4) }
3325 func ST_TYPE(info uint8) SymType { return SymType(info & 0xF) }
3326 func ST_INFO(bind SymBind, typ SymType) uint8 {
3327 return uint8(bind)<<4 | uint8(typ)&0xf
3328 }
3329 func ST_VISIBILITY(other uint8) SymVis { return SymVis(other & 3) }
3330
3331
3334
3335
3336 type Header64 struct {
3337 Ident [EI_NIDENT]byte
3338 Type uint16
3339 Machine uint16
3340 Version uint32
3341 Entry uint64
3342 Phoff uint64
3343 Shoff uint64
3344 Flags uint32
3345 Ehsize uint16
3346 Phentsize uint16
3347 Phnum uint16
3348 Shentsize uint16
3349 Shnum uint16
3350 Shstrndx uint16
3351 }
3352
3353
3354 type Section64 struct {
3355 Name uint32
3356 Type uint32
3357 Flags uint64
3358 Addr uint64
3359 Off uint64
3360 Size uint64
3361 Link uint32
3362 Info uint32
3363 Addralign uint64
3364 Entsize uint64
3365 }
3366
3367
3368 type Prog64 struct {
3369 Type uint32
3370 Flags uint32
3371 Off uint64
3372 Vaddr uint64
3373 Paddr uint64
3374 Filesz uint64
3375 Memsz uint64
3376 Align uint64
3377 }
3378
3379
3380 type Dyn64 struct {
3381 Tag int64
3382 Val uint64
3383 }
3384
3385
3386 type Chdr64 struct {
3387 Type uint32
3388 _ uint32
3389 Size uint64
3390 Addralign uint64
3391 }
3392
3393
3396
3397
3398 type Rel64 struct {
3399 Off uint64
3400 Info uint64
3401 }
3402
3403
3404 type Rela64 struct {
3405 Off uint64
3406 Info uint64
3407 Addend int64
3408 }
3409
3410 func R_SYM64(info uint64) uint32 { return uint32(info >> 32) }
3411 func R_TYPE64(info uint64) uint32 { return uint32(info) }
3412 func R_INFO(sym, typ uint32) uint64 { return uint64(sym)<<32 | uint64(typ) }
3413
3414
3415 type Sym64 struct {
3416 Name uint32
3417 Info uint8
3418 Other uint8
3419 Shndx uint16
3420 Value uint64
3421 Size uint64
3422 }
3423
3424 const Sym64Size = 24
3425
3426 type intName struct {
3427 i uint32
3428 s string
3429 }
3430
3431 func stringName(i uint32, names []intName, goSyntax bool) string {
3432 for _, n := range names {
3433 if n.i == i {
3434 if goSyntax {
3435 return "elf." + n.s
3436 }
3437 return n.s
3438 }
3439 }
3440
3441
3442
3443 for j := len(names) - 1; j >= 0; j-- {
3444 n := names[j]
3445 if n.i < i {
3446 s := n.s
3447 if goSyntax {
3448 s = "elf." + s
3449 }
3450 return s + "+" + strconv.FormatUint(uint64(i-n.i), 10)
3451 }
3452 }
3453
3454 return strconv.FormatUint(uint64(i), 10)
3455 }
3456
3457 func flagName(i uint32, names []intName, goSyntax bool) string {
3458 s := ""
3459 for _, n := range names {
3460 if n.i&i == n.i {
3461 if len(s) > 0 {
3462 s += "+"
3463 }
3464 if goSyntax {
3465 s += "elf."
3466 }
3467 s += n.s
3468 i -= n.i
3469 }
3470 }
3471 if len(s) == 0 {
3472 return "0x" + strconv.FormatUint(uint64(i), 16)
3473 }
3474 if i != 0 {
3475 s += "+0x" + strconv.FormatUint(uint64(i), 16)
3476 }
3477 return s
3478 }
3479
View as plain text