Source file src/pkg/debug/elf/elf.go
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
388
389 EM_486 Machine = 6
390 EM_MIPS_RS4_BE Machine = 10
391 EM_ALPHA_STD Machine = 41
392 EM_ALPHA Machine = 0x9026
393 )
394
395 var machineStrings = []intName{
396 {0, "EM_NONE"},
397 {1, "EM_M32"},
398 {2, "EM_SPARC"},
399 {3, "EM_386"},
400 {4, "EM_68K"},
401 {5, "EM_88K"},
402 {7, "EM_860"},
403 {8, "EM_MIPS"},
404 {9, "EM_S370"},
405 {10, "EM_MIPS_RS3_LE"},
406 {15, "EM_PARISC"},
407 {17, "EM_VPP500"},
408 {18, "EM_SPARC32PLUS"},
409 {19, "EM_960"},
410 {20, "EM_PPC"},
411 {21, "EM_PPC64"},
412 {22, "EM_S390"},
413 {36, "EM_V800"},
414 {37, "EM_FR20"},
415 {38, "EM_RH32"},
416 {39, "EM_RCE"},
417 {40, "EM_ARM"},
418 {42, "EM_SH"},
419 {43, "EM_SPARCV9"},
420 {44, "EM_TRICORE"},
421 {45, "EM_ARC"},
422 {46, "EM_H8_300"},
423 {47, "EM_H8_300H"},
424 {48, "EM_H8S"},
425 {49, "EM_H8_500"},
426 {50, "EM_IA_64"},
427 {51, "EM_MIPS_X"},
428 {52, "EM_COLDFIRE"},
429 {53, "EM_68HC12"},
430 {54, "EM_MMA"},
431 {55, "EM_PCP"},
432 {56, "EM_NCPU"},
433 {57, "EM_NDR1"},
434 {58, "EM_STARCORE"},
435 {59, "EM_ME16"},
436 {60, "EM_ST100"},
437 {61, "EM_TINYJ"},
438 {62, "EM_X86_64"},
439 {63, "EM_PDSP"},
440 {64, "EM_PDP10"},
441 {65, "EM_PDP11"},
442 {66, "EM_FX66"},
443 {67, "EM_ST9PLUS"},
444 {68, "EM_ST7"},
445 {69, "EM_68HC16"},
446 {70, "EM_68HC11"},
447 {71, "EM_68HC08"},
448 {72, "EM_68HC05"},
449 {73, "EM_SVX"},
450 {74, "EM_ST19"},
451 {75, "EM_VAX"},
452 {76, "EM_CRIS"},
453 {77, "EM_JAVELIN"},
454 {78, "EM_FIREPATH"},
455 {79, "EM_ZSP"},
456 {80, "EM_MMIX"},
457 {81, "EM_HUANY"},
458 {82, "EM_PRISM"},
459 {83, "EM_AVR"},
460 {84, "EM_FR30"},
461 {85, "EM_D10V"},
462 {86, "EM_D30V"},
463 {87, "EM_V850"},
464 {88, "EM_M32R"},
465 {89, "EM_MN10300"},
466 {90, "EM_MN10200"},
467 {91, "EM_PJ"},
468 {92, "EM_OPENRISC"},
469 {93, "EM_ARC_COMPACT"},
470 {94, "EM_XTENSA"},
471 {95, "EM_VIDEOCORE"},
472 {96, "EM_TMM_GPP"},
473 {97, "EM_NS32K"},
474 {98, "EM_TPC"},
475 {99, "EM_SNP1K"},
476 {100, "EM_ST200"},
477 {101, "EM_IP2K"},
478 {102, "EM_MAX"},
479 {103, "EM_CR"},
480 {104, "EM_F2MC16"},
481 {105, "EM_MSP430"},
482 {106, "EM_BLACKFIN"},
483 {107, "EM_SE_C33"},
484 {108, "EM_SEP"},
485 {109, "EM_ARCA"},
486 {110, "EM_UNICORE"},
487 {111, "EM_EXCESS"},
488 {112, "EM_DXP"},
489 {113, "EM_ALTERA_NIOS2"},
490 {114, "EM_CRX"},
491 {115, "EM_XGATE"},
492 {116, "EM_C166"},
493 {117, "EM_M16C"},
494 {118, "EM_DSPIC30F"},
495 {119, "EM_CE"},
496 {120, "EM_M32C"},
497 {131, "EM_TSK3000"},
498 {132, "EM_RS08"},
499 {133, "EM_SHARC"},
500 {134, "EM_ECOG2"},
501 {135, "EM_SCORE7"},
502 {136, "EM_DSP24"},
503 {137, "EM_VIDEOCORE3"},
504 {138, "EM_LATTICEMICO32"},
505 {139, "EM_SE_C17"},
506 {140, "EM_TI_C6000"},
507 {141, "EM_TI_C2000"},
508 {142, "EM_TI_C5500"},
509 {143, "EM_TI_ARP32"},
510 {144, "EM_TI_PRU"},
511 {160, "EM_MMDSP_PLUS"},
512 {161, "EM_CYPRESS_M8C"},
513 {162, "EM_R32C"},
514 {163, "EM_TRIMEDIA"},
515 {164, "EM_QDSP6"},
516 {165, "EM_8051"},
517 {166, "EM_STXP7X"},
518 {167, "EM_NDS32"},
519 {168, "EM_ECOG1"},
520 {168, "EM_ECOG1X"},
521 {169, "EM_MAXQ30"},
522 {170, "EM_XIMO16"},
523 {171, "EM_MANIK"},
524 {172, "EM_CRAYNV2"},
525 {173, "EM_RX"},
526 {174, "EM_METAG"},
527 {175, "EM_MCST_ELBRUS"},
528 {176, "EM_ECOG16"},
529 {177, "EM_CR16"},
530 {178, "EM_ETPU"},
531 {179, "EM_SLE9X"},
532 {180, "EM_L10M"},
533 {181, "EM_K10M"},
534 {183, "EM_AARCH64"},
535 {185, "EM_AVR32"},
536 {186, "EM_STM8"},
537 {187, "EM_TILE64"},
538 {188, "EM_TILEPRO"},
539 {189, "EM_MICROBLAZE"},
540 {190, "EM_CUDA"},
541 {191, "EM_TILEGX"},
542 {192, "EM_CLOUDSHIELD"},
543 {193, "EM_COREA_1ST"},
544 {194, "EM_COREA_2ND"},
545 {195, "EM_ARC_COMPACT2"},
546 {196, "EM_OPEN8"},
547 {197, "EM_RL78"},
548 {198, "EM_VIDEOCORE5"},
549 {199, "EM_78KOR"},
550 {200, "EM_56800EX"},
551 {201, "EM_BA1"},
552 {202, "EM_BA2"},
553 {203, "EM_XCORE"},
554 {204, "EM_MCHP_PIC"},
555 {205, "EM_INTEL205"},
556 {206, "EM_INTEL206"},
557 {207, "EM_INTEL207"},
558 {208, "EM_INTEL208"},
559 {209, "EM_INTEL209"},
560 {210, "EM_KM32"},
561 {211, "EM_KMX32"},
562 {212, "EM_KMX16"},
563 {213, "EM_KMX8"},
564 {214, "EM_KVARC"},
565 {215, "EM_CDP"},
566 {216, "EM_COGE"},
567 {217, "EM_COOL"},
568 {218, "EM_NORC"},
569 {219, "EM_CSR_KALIMBA "},
570 {220, "EM_Z80 "},
571 {221, "EM_VISIUM "},
572 {222, "EM_FT32 "},
573 {223, "EM_MOXIE"},
574 {224, "EM_AMDGPU"},
575 {243, "EM_RISCV"},
576 {244, "EM_LANAI"},
577 {247, "EM_BPF"},
578
579
580 {6, "EM_486"},
581 {10, "EM_MIPS_RS4_BE"},
582 {41, "EM_ALPHA_STD"},
583 {0x9026, "EM_ALPHA"},
584 }
585
586 func (i Machine) String() string { return stringName(uint32(i), machineStrings, false) }
587 func (i Machine) GoString() string { return stringName(uint32(i), machineStrings, true) }
588
589
590 type SectionIndex int
591
592 const (
593 SHN_UNDEF SectionIndex = 0
594 SHN_LORESERVE SectionIndex = 0xff00
595 SHN_LOPROC SectionIndex = 0xff00
596 SHN_HIPROC SectionIndex = 0xff1f
597 SHN_LOOS SectionIndex = 0xff20
598 SHN_HIOS SectionIndex = 0xff3f
599 SHN_ABS SectionIndex = 0xfff1
600 SHN_COMMON SectionIndex = 0xfff2
601 SHN_XINDEX SectionIndex = 0xffff
602 SHN_HIRESERVE SectionIndex = 0xffff
603 )
604
605 var shnStrings = []intName{
606 {0, "SHN_UNDEF"},
607 {0xff00, "SHN_LOPROC"},
608 {0xff20, "SHN_LOOS"},
609 {0xfff1, "SHN_ABS"},
610 {0xfff2, "SHN_COMMON"},
611 {0xffff, "SHN_XINDEX"},
612 }
613
614 func (i SectionIndex) String() string { return stringName(uint32(i), shnStrings, false) }
615 func (i SectionIndex) GoString() string { return stringName(uint32(i), shnStrings, true) }
616
617
618 type SectionType uint32
619
620 const (
621 SHT_NULL SectionType = 0
622 SHT_PROGBITS SectionType = 1
623 SHT_SYMTAB SectionType = 2
624 SHT_STRTAB SectionType = 3
625 SHT_RELA SectionType = 4
626 SHT_HASH SectionType = 5
627 SHT_DYNAMIC SectionType = 6
628 SHT_NOTE SectionType = 7
629 SHT_NOBITS SectionType = 8
630 SHT_REL SectionType = 9
631 SHT_SHLIB SectionType = 10
632 SHT_DYNSYM SectionType = 11
633 SHT_INIT_ARRAY SectionType = 14
634 SHT_FINI_ARRAY SectionType = 15
635 SHT_PREINIT_ARRAY SectionType = 16
636 SHT_GROUP SectionType = 17
637 SHT_SYMTAB_SHNDX SectionType = 18
638 SHT_LOOS SectionType = 0x60000000
639 SHT_GNU_ATTRIBUTES SectionType = 0x6ffffff5
640 SHT_GNU_HASH SectionType = 0x6ffffff6
641 SHT_GNU_LIBLIST SectionType = 0x6ffffff7
642 SHT_GNU_VERDEF SectionType = 0x6ffffffd
643 SHT_GNU_VERNEED SectionType = 0x6ffffffe
644 SHT_GNU_VERSYM SectionType = 0x6fffffff
645 SHT_HIOS SectionType = 0x6fffffff
646 SHT_LOPROC SectionType = 0x70000000
647 SHT_HIPROC SectionType = 0x7fffffff
648 SHT_LOUSER SectionType = 0x80000000
649 SHT_HIUSER SectionType = 0xffffffff
650 )
651
652 var shtStrings = []intName{
653 {0, "SHT_NULL"},
654 {1, "SHT_PROGBITS"},
655 {2, "SHT_SYMTAB"},
656 {3, "SHT_STRTAB"},
657 {4, "SHT_RELA"},
658 {5, "SHT_HASH"},
659 {6, "SHT_DYNAMIC"},
660 {7, "SHT_NOTE"},
661 {8, "SHT_NOBITS"},
662 {9, "SHT_REL"},
663 {10, "SHT_SHLIB"},
664 {11, "SHT_DYNSYM"},
665 {14, "SHT_INIT_ARRAY"},
666 {15, "SHT_FINI_ARRAY"},
667 {16, "SHT_PREINIT_ARRAY"},
668 {17, "SHT_GROUP"},
669 {18, "SHT_SYMTAB_SHNDX"},
670 {0x60000000, "SHT_LOOS"},
671 {0x6ffffff5, "SHT_GNU_ATTRIBUTES"},
672 {0x6ffffff6, "SHT_GNU_HASH"},
673 {0x6ffffff7, "SHT_GNU_LIBLIST"},
674 {0x6ffffffd, "SHT_GNU_VERDEF"},
675 {0x6ffffffe, "SHT_GNU_VERNEED"},
676 {0x6fffffff, "SHT_GNU_VERSYM"},
677 {0x70000000, "SHT_LOPROC"},
678 {0x7fffffff, "SHT_HIPROC"},
679 {0x80000000, "SHT_LOUSER"},
680 {0xffffffff, "SHT_HIUSER"},
681 }
682
683 func (i SectionType) String() string { return stringName(uint32(i), shtStrings, false) }
684 func (i SectionType) GoString() string { return stringName(uint32(i), shtStrings, true) }
685
686
687 type SectionFlag uint32
688
689 const (
690 SHF_WRITE SectionFlag = 0x1
691 SHF_ALLOC SectionFlag = 0x2
692 SHF_EXECINSTR SectionFlag = 0x4
693 SHF_MERGE SectionFlag = 0x10
694 SHF_STRINGS SectionFlag = 0x20
695 SHF_INFO_LINK SectionFlag = 0x40
696 SHF_LINK_ORDER SectionFlag = 0x80
697 SHF_OS_NONCONFORMING SectionFlag = 0x100
698 SHF_GROUP SectionFlag = 0x200
699 SHF_TLS SectionFlag = 0x400
700 SHF_COMPRESSED SectionFlag = 0x800
701 SHF_MASKOS SectionFlag = 0x0ff00000
702 SHF_MASKPROC SectionFlag = 0xf0000000
703 )
704
705 var shfStrings = []intName{
706 {0x1, "SHF_WRITE"},
707 {0x2, "SHF_ALLOC"},
708 {0x4, "SHF_EXECINSTR"},
709 {0x10, "SHF_MERGE"},
710 {0x20, "SHF_STRINGS"},
711 {0x40, "SHF_INFO_LINK"},
712 {0x80, "SHF_LINK_ORDER"},
713 {0x100, "SHF_OS_NONCONFORMING"},
714 {0x200, "SHF_GROUP"},
715 {0x400, "SHF_TLS"},
716 {0x800, "SHF_COMPRESSED"},
717 }
718
719 func (i SectionFlag) String() string { return flagName(uint32(i), shfStrings, false) }
720 func (i SectionFlag) GoString() string { return flagName(uint32(i), shfStrings, true) }
721
722
723 type CompressionType int
724
725 const (
726 COMPRESS_ZLIB CompressionType = 1
727 COMPRESS_LOOS CompressionType = 0x60000000
728 COMPRESS_HIOS CompressionType = 0x6fffffff
729 COMPRESS_LOPROC CompressionType = 0x70000000
730 COMPRESS_HIPROC CompressionType = 0x7fffffff
731 )
732
733 var compressionStrings = []intName{
734 {0, "COMPRESS_ZLIB"},
735 {0x60000000, "COMPRESS_LOOS"},
736 {0x6fffffff, "COMPRESS_HIOS"},
737 {0x70000000, "COMPRESS_LOPROC"},
738 {0x7fffffff, "COMPRESS_HIPROC"},
739 }
740
741 func (i CompressionType) String() string { return stringName(uint32(i), compressionStrings, false) }
742 func (i CompressionType) GoString() string { return stringName(uint32(i), compressionStrings, true) }
743
744
745 type ProgType int
746
747 const (
748 PT_NULL ProgType = 0
749 PT_LOAD ProgType = 1
750 PT_DYNAMIC ProgType = 2
751 PT_INTERP ProgType = 3
752 PT_NOTE ProgType = 4
753 PT_SHLIB ProgType = 5
754 PT_PHDR ProgType = 6
755 PT_TLS ProgType = 7
756 PT_LOOS ProgType = 0x60000000
757 PT_HIOS ProgType = 0x6fffffff
758 PT_LOPROC ProgType = 0x70000000
759 PT_HIPROC ProgType = 0x7fffffff
760 )
761
762 var ptStrings = []intName{
763 {0, "PT_NULL"},
764 {1, "PT_LOAD"},
765 {2, "PT_DYNAMIC"},
766 {3, "PT_INTERP"},
767 {4, "PT_NOTE"},
768 {5, "PT_SHLIB"},
769 {6, "PT_PHDR"},
770 {7, "PT_TLS"},
771 {0x60000000, "PT_LOOS"},
772 {0x6fffffff, "PT_HIOS"},
773 {0x70000000, "PT_LOPROC"},
774 {0x7fffffff, "PT_HIPROC"},
775 }
776
777 func (i ProgType) String() string { return stringName(uint32(i), ptStrings, false) }
778 func (i ProgType) GoString() string { return stringName(uint32(i), ptStrings, true) }
779
780
781 type ProgFlag uint32
782
783 const (
784 PF_X ProgFlag = 0x1
785 PF_W ProgFlag = 0x2
786 PF_R ProgFlag = 0x4
787 PF_MASKOS ProgFlag = 0x0ff00000
788 PF_MASKPROC ProgFlag = 0xf0000000
789 )
790
791 var pfStrings = []intName{
792 {0x1, "PF_X"},
793 {0x2, "PF_W"},
794 {0x4, "PF_R"},
795 }
796
797 func (i ProgFlag) String() string { return flagName(uint32(i), pfStrings, false) }
798 func (i ProgFlag) GoString() string { return flagName(uint32(i), pfStrings, true) }
799
800
801 type DynTag int
802
803 const (
804 DT_NULL DynTag = 0
805 DT_NEEDED DynTag = 1
806 DT_PLTRELSZ DynTag = 2
807 DT_PLTGOT DynTag = 3
808 DT_HASH DynTag = 4
809 DT_STRTAB DynTag = 5
810 DT_SYMTAB DynTag = 6
811 DT_RELA DynTag = 7
812 DT_RELASZ DynTag = 8
813 DT_RELAENT DynTag = 9
814 DT_STRSZ DynTag = 10
815 DT_SYMENT DynTag = 11
816 DT_INIT DynTag = 12
817 DT_FINI DynTag = 13
818 DT_SONAME DynTag = 14
819 DT_RPATH DynTag = 15
820 DT_SYMBOLIC DynTag = 16
821 DT_REL DynTag = 17
822 DT_RELSZ DynTag = 18
823 DT_RELENT DynTag = 19
824 DT_PLTREL DynTag = 20
825 DT_DEBUG DynTag = 21
826 DT_TEXTREL DynTag = 22
827 DT_JMPREL DynTag = 23
828 DT_BIND_NOW DynTag = 24
829 DT_INIT_ARRAY DynTag = 25
830 DT_FINI_ARRAY DynTag = 26
831 DT_INIT_ARRAYSZ DynTag = 27
832 DT_FINI_ARRAYSZ DynTag = 28
833 DT_RUNPATH DynTag = 29
834 DT_FLAGS DynTag = 30
835 DT_ENCODING DynTag = 32
840 DT_PREINIT_ARRAY DynTag = 32
841 DT_PREINIT_ARRAYSZ DynTag = 33
842 DT_LOOS DynTag = 0x6000000d
843 DT_HIOS DynTag = 0x6ffff000
844 DT_VERSYM DynTag = 0x6ffffff0
845 DT_VERNEED DynTag = 0x6ffffffe
846 DT_VERNEEDNUM DynTag = 0x6fffffff
847 DT_LOPROC DynTag = 0x70000000
848 DT_HIPROC DynTag = 0x7fffffff
849 )
850
851 var dtStrings = []intName{
852 {0, "DT_NULL"},
853 {1, "DT_NEEDED"},
854 {2, "DT_PLTRELSZ"},
855 {3, "DT_PLTGOT"},
856 {4, "DT_HASH"},
857 {5, "DT_STRTAB"},
858 {6, "DT_SYMTAB"},
859 {7, "DT_RELA"},
860 {8, "DT_RELASZ"},
861 {9, "DT_RELAENT"},
862 {10, "DT_STRSZ"},
863 {11, "DT_SYMENT"},
864 {12, "DT_INIT"},
865 {13, "DT_FINI"},
866 {14, "DT_SONAME"},
867 {15, "DT_RPATH"},
868 {16, "DT_SYMBOLIC"},
869 {17, "DT_REL"},
870 {18, "DT_RELSZ"},
871 {19, "DT_RELENT"},
872 {20, "DT_PLTREL"},
873 {21, "DT_DEBUG"},
874 {22, "DT_TEXTREL"},
875 {23, "DT_JMPREL"},
876 {24, "DT_BIND_NOW"},
877 {25, "DT_INIT_ARRAY"},
878 {26, "DT_FINI_ARRAY"},
879 {27, "DT_INIT_ARRAYSZ"},
880 {28, "DT_FINI_ARRAYSZ"},
881 {29, "DT_RUNPATH"},
882 {30, "DT_FLAGS"},
883 {32, "DT_ENCODING"},
884 {32, "DT_PREINIT_ARRAY"},
885 {33, "DT_PREINIT_ARRAYSZ"},
886 {0x6000000d, "DT_LOOS"},
887 {0x6ffff000, "DT_HIOS"},
888 {0x6ffffff0, "DT_VERSYM"},
889 {0x6ffffffe, "DT_VERNEED"},
890 {0x6fffffff, "DT_VERNEEDNUM"},
891 {0x70000000, "DT_LOPROC"},
892 {0x7fffffff, "DT_HIPROC"},
893 }
894
895 func (i DynTag) String() string { return stringName(uint32(i), dtStrings, false) }
896 func (i DynTag) GoString() string { return stringName(uint32(i), dtStrings, true) }
897
898
899 type DynFlag int
900
901 const (
902 DF_ORIGIN DynFlag = 0x0001
905 DF_SYMBOLIC DynFlag = 0x0002
906 DF_TEXTREL DynFlag = 0x0004
907 DF_BIND_NOW DynFlag = 0x0008
911 DF_STATIC_TLS DynFlag = 0x0010
914 )
915
916 var dflagStrings = []intName{
917 {0x0001, "DF_ORIGIN"},
918 {0x0002, "DF_SYMBOLIC"},
919 {0x0004, "DF_TEXTREL"},
920 {0x0008, "DF_BIND_NOW"},
921 {0x0010, "DF_STATIC_TLS"},
922 }
923
924 func (i DynFlag) String() string { return flagName(uint32(i), dflagStrings, false) }
925 func (i DynFlag) GoString() string { return flagName(uint32(i), dflagStrings, true) }
926
927
928 type NType int
929
930 const (
931 NT_PRSTATUS NType = 1
932 NT_FPREGSET NType = 2
933 NT_PRPSINFO NType = 3
934 )
935
936 var ntypeStrings = []intName{
937 {1, "NT_PRSTATUS"},
938 {2, "NT_FPREGSET"},
939 {3, "NT_PRPSINFO"},
940 }
941
942 func (i NType) String() string { return stringName(uint32(i), ntypeStrings, false) }
943 func (i NType) GoString() string { return stringName(uint32(i), ntypeStrings, true) }
944
945
946 type SymBind int
947
948 const (
949 STB_LOCAL SymBind = 0
950 STB_GLOBAL SymBind = 1
951 STB_WEAK SymBind = 2
952 STB_LOOS SymBind = 10
953 STB_HIOS SymBind = 12
954 STB_LOPROC SymBind = 13
955 STB_HIPROC SymBind = 15
956 )
957
958 var stbStrings = []intName{
959 {0, "STB_LOCAL"},
960 {1, "STB_GLOBAL"},
961 {2, "STB_WEAK"},
962 {10, "STB_LOOS"},
963 {12, "STB_HIOS"},
964 {13, "STB_LOPROC"},
965 {15, "STB_HIPROC"},
966 }
967
968 func (i SymBind) String() string { return stringName(uint32(i), stbStrings, false) }
969 func (i SymBind) GoString() string { return stringName(uint32(i), stbStrings, true) }
970
971
972 type SymType int
973
974 const (
975 STT_NOTYPE SymType = 0
976 STT_OBJECT SymType = 1
977 STT_FUNC SymType = 2
978 STT_SECTION SymType = 3
979 STT_FILE SymType = 4
980 STT_COMMON SymType = 5
981 STT_TLS SymType = 6
982 STT_LOOS SymType = 10
983 STT_HIOS SymType = 12
984 STT_LOPROC SymType = 13
985 STT_HIPROC SymType = 15
986 )
987
988 var sttStrings = []intName{
989 {0, "STT_NOTYPE"},
990 {1, "STT_OBJECT"},
991 {2, "STT_FUNC"},
992 {3, "STT_SECTION"},
993 {4, "STT_FILE"},
994 {5, "STT_COMMON"},
995 {6, "STT_TLS"},
996 {10, "STT_LOOS"},
997 {12, "STT_HIOS"},
998 {13, "STT_LOPROC"},
999 {15, "STT_HIPROC"},
1000 }
1001
1002 func (i SymType) String() string { return stringName(uint32(i), sttStrings, false) }
1003 func (i SymType) GoString() string { return stringName(uint32(i), sttStrings, true) }
1004
1005
1006 type SymVis int
1007
1008 const (
1009 STV_DEFAULT SymVis = 0x0
1010 STV_INTERNAL SymVis = 0x1
1011 STV_HIDDEN SymVis = 0x2
1012 STV_PROTECTED SymVis = 0x3
1013 )
1014
1015 var stvStrings = []intName{
1016 {0x0, "STV_DEFAULT"},
1017 {0x1, "STV_INTERNAL"},
1018 {0x2, "STV_HIDDEN"},
1019 {0x3, "STV_PROTECTED"},
1020 }
1021
1022 func (i SymVis) String() string { return stringName(uint32(i), stvStrings, false) }
1023 func (i SymVis) GoString() string { return stringName(uint32(i), stvStrings, true) }
1024
1025
1028
1029
1030 type R_X86_64 int
1031
1032 const (
1033 R_X86_64_NONE R_X86_64 = 0
1034 R_X86_64_64 R_X86_64 = 1
1035 R_X86_64_PC32 R_X86_64 = 2
1036 R_X86_64_GOT32 R_X86_64 = 3
1037 R_X86_64_PLT32 R_X86_64 = 4
1038 R_X86_64_COPY R_X86_64 = 5
1039 R_X86_64_GLOB_DAT R_X86_64 = 6
1040 R_X86_64_JMP_SLOT R_X86_64 = 7
1041 R_X86_64_RELATIVE R_X86_64 = 8
1042 R_X86_64_GOTPCREL R_X86_64 = 9
1043 R_X86_64_32 R_X86_64 = 10
1044 R_X86_64_32S R_X86_64 = 11
1045 R_X86_64_16 R_X86_64 = 12
1046 R_X86_64_PC16 R_X86_64 = 13
1047 R_X86_64_8 R_X86_64 = 14
1048 R_X86_64_PC8 R_X86_64 = 15
1049 R_X86_64_DTPMOD64 R_X86_64 = 16
1050 R_X86_64_DTPOFF64 R_X86_64 = 17
1051 R_X86_64_TPOFF64 R_X86_64 = 18
1052 R_X86_64_TLSGD R_X86_64 = 19
1053 R_X86_64_TLSLD R_X86_64 = 20
1054 R_X86_64_DTPOFF32 R_X86_64 = 21
1055 R_X86_64_GOTTPOFF R_X86_64 = 22
1056 R_X86_64_TPOFF32 R_X86_64 = 23
1057 R_X86_64_PC64 R_X86_64 = 24
1058 R_X86_64_GOTOFF64 R_X86_64 = 25
1059 R_X86_64_GOTPC32 R_X86_64 = 26
1060 R_X86_64_GOT64 R_X86_64 = 27
1061 R_X86_64_GOTPCREL64 R_X86_64 = 28
1062 R_X86_64_GOTPC64 R_X86_64 = 29
1063 R_X86_64_GOTPLT64 R_X86_64 = 30
1064 R_X86_64_PLTOFF64 R_X86_64 = 31
1065 R_X86_64_SIZE32 R_X86_64 = 32
1066 R_X86_64_SIZE64 R_X86_64 = 33
1067 R_X86_64_GOTPC32_TLSDESC R_X86_64 = 34
1068 R_X86_64_TLSDESC_CALL R_X86_64 = 35
1069 R_X86_64_TLSDESC R_X86_64 = 36
1070 R_X86_64_IRELATIVE R_X86_64 = 37
1071 R_X86_64_RELATIVE64 R_X86_64 = 38
1072 R_X86_64_PC32_BND R_X86_64 = 39
1073 R_X86_64_PLT32_BND R_X86_64 = 40
1074 R_X86_64_GOTPCRELX R_X86_64 = 41
1075 R_X86_64_REX_GOTPCRELX R_X86_64 = 42
1076 )
1077
1078 var rx86_64Strings = []intName{
1079 {0, "R_X86_64_NONE"},
1080 {1, "R_X86_64_64"},
1081 {2, "R_X86_64_PC32"},
1082 {3, "R_X86_64_GOT32"},
1083 {4, "R_X86_64_PLT32"},
1084 {5, "R_X86_64_COPY"},
1085 {6, "R_X86_64_GLOB_DAT"},
1086 {7, "R_X86_64_JMP_SLOT"},
1087 {8, "R_X86_64_RELATIVE"},
1088 {9, "R_X86_64_GOTPCREL"},
1089 {10, "R_X86_64_32"},
1090 {11, "R_X86_64_32S"},
1091 {12, "R_X86_64_16"},
1092 {13, "R_X86_64_PC16"},
1093 {14, "R_X86_64_8"},
1094 {15, "R_X86_64_PC8"},
1095 {16, "R_X86_64_DTPMOD64"},
1096 {17, "R_X86_64_DTPOFF64"},
1097 {18, "R_X86_64_TPOFF64"},
1098 {19, "R_X86_64_TLSGD"},
1099 {20, "R_X86_64_TLSLD"},
1100 {21, "R_X86_64_DTPOFF32"},
1101 {22, "R_X86_64_GOTTPOFF"},
1102 {23, "R_X86_64_TPOFF32"},
1103 {24, "R_X86_64_PC64"},
1104 {25, "R_X86_64_GOTOFF64"},
1105 {26, "R_X86_64_GOTPC32"},
1106 {27, "R_X86_64_GOT64"},
1107 {28, "R_X86_64_GOTPCREL64"},
1108 {29, "R_X86_64_GOTPC64"},
1109 {30, "R_X86_64_GOTPLT64"},
1110 {31, "R_X86_64_PLTOFF64"},
1111 {32, "R_X86_64_SIZE32"},
1112 {33, "R_X86_64_SIZE64"},
1113 {34, "R_X86_64_GOTPC32_TLSDESC"},
1114 {35, "R_X86_64_TLSDESC_CALL"},
1115 {36, "R_X86_64_TLSDESC"},
1116 {37, "R_X86_64_IRELATIVE"},
1117 {38, "R_X86_64_RELATIVE64"},
1118 {39, "R_X86_64_PC32_BND"},
1119 {40, "R_X86_64_PLT32_BND"},
1120 {41, "R_X86_64_GOTPCRELX"},
1121 {42, "R_X86_64_REX_GOTPCRELX"},
1122 }
1123
1124 func (i R_X86_64) String() string { return stringName(uint32(i), rx86_64Strings, false) }
1125 func (i R_X86_64) GoString() string { return stringName(uint32(i), rx86_64Strings, true) }
1126
1127
1128 type R_AARCH64 int
1129
1130 const (
1131 R_AARCH64_NONE R_AARCH64 = 0
1132 R_AARCH64_P32_ABS32 R_AARCH64 = 1
1133 R_AARCH64_P32_ABS16 R_AARCH64 = 2
1134 R_AARCH64_P32_PREL32 R_AARCH64 = 3
1135 R_AARCH64_P32_PREL16 R_AARCH64 = 4
1136 R_AARCH64_P32_MOVW_UABS_G0 R_AARCH64 = 5
1137 R_AARCH64_P32_MOVW_UABS_G0_NC R_AARCH64 = 6
1138 R_AARCH64_P32_MOVW_UABS_G1 R_AARCH64 = 7
1139 R_AARCH64_P32_MOVW_SABS_G0 R_AARCH64 = 8
1140 R_AARCH64_P32_LD_PREL_LO19 R_AARCH64 = 9
1141 R_AARCH64_P32_ADR_PREL_LO21 R_AARCH64 = 10
1142 R_AARCH64_P32_ADR_PREL_PG_HI21 R_AARCH64 = 11
1143 R_AARCH64_P32_ADD_ABS_LO12_NC R_AARCH64 = 12
1144 R_AARCH64_P32_LDST8_ABS_LO12_NC R_AARCH64 = 13
1145 R_AARCH64_P32_LDST16_ABS_LO12_NC R_AARCH64 = 14
1146 R_AARCH64_P32_LDST32_ABS_LO12_NC R_AARCH64 = 15
1147 R_AARCH64_P32_LDST64_ABS_LO12_NC R_AARCH64 = 16
1148 R_AARCH64_P32_LDST128_ABS_LO12_NC R_AARCH64 = 17
1149 R_AARCH64_P32_TSTBR14 R_AARCH64 = 18
1150 R_AARCH64_P32_CONDBR19 R_AARCH64 = 19
1151 R_AARCH64_P32_JUMP26 R_AARCH64 = 20
1152 R_AARCH64_P32_CALL26 R_AARCH64 = 21
1153 R_AARCH64_P32_GOT_LD_PREL19 R_AARCH64 = 25
1154 R_AARCH64_P32_ADR_GOT_PAGE R_AARCH64 = 26
1155 R_AARCH64_P32_LD32_GOT_LO12_NC R_AARCH64 = 27
1156 R_AARCH64_P32_TLSGD_ADR_PAGE21 R_AARCH64 = 81
1157 R_AARCH64_P32_TLSGD_ADD_LO12_NC R_AARCH64 = 82
1158 R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21 R_AARCH64 = 103
1159 R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC R_AARCH64 = 104
1160 R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19 R_AARCH64 = 105
1161 R_AARCH64_P32_TLSLE_MOVW_TPREL_G1 R_AARCH64 = 106
1162 R_AARCH64_P32_TLSLE_MOVW_TPREL_G0 R_AARCH64 = 107
1163 R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC R_AARCH64 = 108
1164 R_AARCH64_P32_TLSLE_ADD_TPREL_HI12 R_AARCH64 = 109
1165 R_AARCH64_P32_TLSLE_ADD_TPREL_LO12 R_AARCH64 = 110
1166 R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC R_AARCH64 = 111
1167 R_AARCH64_P32_TLSDESC_LD_PREL19 R_AARCH64 = 122
1168 R_AARCH64_P32_TLSDESC_ADR_PREL21 R_AARCH64 = 123
1169 R_AARCH64_P32_TLSDESC_ADR_PAGE21 R_AARCH64 = 124
1170 R_AARCH64_P32_TLSDESC_LD32_LO12_NC R_AARCH64 = 125
1171 R_AARCH64_P32_TLSDESC_ADD_LO12_NC R_AARCH64 = 126
1172 R_AARCH64_P32_TLSDESC_CALL R_AARCH64 = 127
1173 R_AARCH64_P32_COPY R_AARCH64 = 180
1174 R_AARCH64_P32_GLOB_DAT R_AARCH64 = 181
1175 R_AARCH64_P32_JUMP_SLOT R_AARCH64 = 182
1176 R_AARCH64_P32_RELATIVE R_AARCH64 = 183
1177 R_AARCH64_P32_TLS_DTPMOD R_AARCH64 = 184
1178 R_AARCH64_P32_TLS_DTPREL R_AARCH64 = 185
1179 R_AARCH64_P32_TLS_TPREL R_AARCH64 = 186
1180 R_AARCH64_P32_TLSDESC R_AARCH64 = 187
1181 R_AARCH64_P32_IRELATIVE R_AARCH64 = 188
1182 R_AARCH64_NULL R_AARCH64 = 256
1183 R_AARCH64_ABS64 R_AARCH64 = 257
1184 R_AARCH64_ABS32 R_AARCH64 = 258
1185 R_AARCH64_ABS16 R_AARCH64 = 259
1186 R_AARCH64_PREL64 R_AARCH64 = 260
1187 R_AARCH64_PREL32 R_AARCH64 = 261
1188 R_AARCH64_PREL16 R_AARCH64 = 262
1189 R_AARCH64_MOVW_UABS_G0 R_AARCH64 = 263
1190 R_AARCH64_MOVW_UABS_G0_NC R_AARCH64 = 264
1191 R_AARCH64_MOVW_UABS_G1 R_AARCH64 = 265
1192 R_AARCH64_MOVW_UABS_G1_NC R_AARCH64 = 266
1193 R_AARCH64_MOVW_UABS_G2 R_AARCH64 = 267
1194 R_AARCH64_MOVW_UABS_G2_NC R_AARCH64 = 268
1195 R_AARCH64_MOVW_UABS_G3 R_AARCH64 = 269
1196 R_AARCH64_MOVW_SABS_G0 R_AARCH64 = 270
1197 R_AARCH64_MOVW_SABS_G1 R_AARCH64 = 271
1198 R_AARCH64_MOVW_SABS_G2 R_AARCH64 = 272
1199 R_AARCH64_LD_PREL_LO19 R_AARCH64 = 273
1200 R_AARCH64_ADR_PREL_LO21 R_AARCH64 = 274
1201 R_AARCH64_ADR_PREL_PG_HI21 R_AARCH64 = 275
1202 R_AARCH64_ADR_PREL_PG_HI21_NC R_AARCH64 = 276
1203 R_AARCH64_ADD_ABS_LO12_NC R_AARCH64 = 277
1204 R_AARCH64_LDST8_ABS_LO12_NC R_AARCH64 = 278
1205 R_AARCH64_TSTBR14 R_AARCH64 = 279
1206 R_AARCH64_CONDBR19 R_AARCH64 = 280
1207 R_AARCH64_JUMP26 R_AARCH64 = 282
1208 R_AARCH64_CALL26 R_AARCH64 = 283
1209 R_AARCH64_LDST16_ABS_LO12_NC R_AARCH64 = 284
1210 R_AARCH64_LDST32_ABS_LO12_NC R_AARCH64 = 285
1211 R_AARCH64_LDST64_ABS_LO12_NC R_AARCH64 = 286
1212 R_AARCH64_LDST128_ABS_LO12_NC R_AARCH64 = 299
1213 R_AARCH64_GOT_LD_PREL19 R_AARCH64 = 309
1214 R_AARCH64_LD64_GOTOFF_LO15 R_AARCH64 = 310
1215 R_AARCH64_ADR_GOT_PAGE R_AARCH64 = 311
1216 R_AARCH64_LD64_GOT_LO12_NC R_AARCH64 = 312
1217 R_AARCH64_LD64_GOTPAGE_LO15 R_AARCH64 = 313
1218 R_AARCH64_TLSGD_ADR_PREL21 R_AARCH64 = 512
1219 R_AARCH64_TLSGD_ADR_PAGE21 R_AARCH64 = 513
1220 R_AARCH64_TLSGD_ADD_LO12_NC R_AARCH64 = 514
1221 R_AARCH64_TLSGD_MOVW_G1 R_AARCH64 = 515
1222 R_AARCH64_TLSGD_MOVW_G0_NC R_AARCH64 = 516
1223 R_AARCH64_TLSLD_ADR_PREL21 R_AARCH64 = 517
1224 R_AARCH64_TLSLD_ADR_PAGE21 R_AARCH64 = 518
1225 R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 R_AARCH64 = 539
1226 R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC R_AARCH64 = 540
1227 R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 R_AARCH64 = 541
1228 R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC R_AARCH64 = 542
1229 R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 R_AARCH64 = 543
1230 R_AARCH64_TLSLE_MOVW_TPREL_G2 R_AARCH64 = 544
1231 R_AARCH64_TLSLE_MOVW_TPREL_G1 R_AARCH64 = 545
1232 R_AARCH64_TLSLE_MOVW_TPREL_G1_NC R_AARCH64 = 546
1233 R_AARCH64_TLSLE_MOVW_TPREL_G0 R_AARCH64 = 547
1234 R_AARCH64_TLSLE_MOVW_TPREL_G0_NC R_AARCH64 = 548
1235 R_AARCH64_TLSLE_ADD_TPREL_HI12 R_AARCH64 = 549
1236 R_AARCH64_TLSLE_ADD_TPREL_LO12 R_AARCH64 = 550
1237 R_AARCH64_TLSLE_ADD_TPREL_LO12_NC R_AARCH64 = 551
1238 R_AARCH64_TLSDESC_LD_PREL19 R_AARCH64 = 560
1239 R_AARCH64_TLSDESC_ADR_PREL21 R_AARCH64 = 561
1240 R_AARCH64_TLSDESC_ADR_PAGE21 R_AARCH64 = 562
1241 R_AARCH64_TLSDESC_LD64_LO12_NC R_AARCH64 = 563
1242 R_AARCH64_TLSDESC_ADD_LO12_NC R_AARCH64 = 564
1243 R_AARCH64_TLSDESC_OFF_G1 R_AARCH64 = 565
1244 R_AARCH64_TLSDESC_OFF_G0_NC R_AARCH64 = 566
1245 R_AARCH64_TLSDESC_LDR R_AARCH64 = 567
1246 R_AARCH64_TLSDESC_ADD R_AARCH64 = 568
1247 R_AARCH64_TLSDESC_CALL R_AARCH64 = 569
1248 R_AARCH64_TLSLE_LDST128_TPREL_LO12 R_AARCH64 = 570
1249 R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC R_AARCH64 = 571
1250 R_AARCH64_TLSLD_LDST128_DTPREL_LO12 R_AARCH64 = 572
1251 R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC R_AARCH64 = 573
1252 R_AARCH64_COPY R_AARCH64 = 1024
1253 R_AARCH64_GLOB_DAT R_AARCH64 = 1025
1254 R_AARCH64_JUMP_SLOT R_AARCH64 = 1026
1255 R_AARCH64_RELATIVE R_AARCH64 = 1027
1256 R_AARCH64_TLS_DTPMOD64 R_AARCH64 = 1028
1257 R_AARCH64_TLS_DTPREL64 R_AARCH64 = 1029
1258 R_AARCH64_TLS_TPREL64 R_AARCH64 = 1030
1259 R_AARCH64_TLSDESC R_AARCH64 = 1031
1260 R_AARCH64_IRELATIVE R_AARCH64 = 1032
1261 )
1262
1263 var raarch64Strings = []intName{
1264 {0, "R_AARCH64_NONE"},
1265 {1, "R_AARCH64_P32_ABS32"},
1266 {2, "R_AARCH64_P32_ABS16"},
1267 {3, "R_AARCH64_P32_PREL32"},
1268 {4, "R_AARCH64_P32_PREL16"},
1269 {5, "R_AARCH64_P32_MOVW_UABS_G0"},
1270 {6, "R_AARCH64_P32_MOVW_UABS_G0_NC"},
1271 {7, "R_AARCH64_P32_MOVW_UABS_G1"},
1272 {8, "R_AARCH64_P32_MOVW_SABS_G0"},
1273 {9, "R_AARCH64_P32_LD_PREL_LO19"},
1274 {10, "R_AARCH64_P32_ADR_PREL_LO21"},
1275 {11, "R_AARCH64_P32_ADR_PREL_PG_HI21"},
1276 {12, "R_AARCH64_P32_ADD_ABS_LO12_NC"},
1277 {13, "R_AARCH64_P32_LDST8_ABS_LO12_NC"},
1278 {14, "R_AARCH64_P32_LDST16_ABS_LO12_NC"},
1279 {15, "R_AARCH64_P32_LDST32_ABS_LO12_NC"},
1280 {16, "R_AARCH64_P32_LDST64_ABS_LO12_NC"},
1281 {17, "R_AARCH64_P32_LDST128_ABS_LO12_NC"},
1282 {18, "R_AARCH64_P32_TSTBR14"},
1283 {19, "R_AARCH64_P32_CONDBR19"},
1284 {20, "R_AARCH64_P32_JUMP26"},
1285 {21, "R_AARCH64_P32_CALL26"},
1286 {25, "R_AARCH64_P32_GOT_LD_PREL19"},
1287 {26, "R_AARCH64_P32_ADR_GOT_PAGE"},
1288 {27, "R_AARCH64_P32_LD32_GOT_LO12_NC"},
1289 {81, "R_AARCH64_P32_TLSGD_ADR_PAGE21"},
1290 {82, "R_AARCH64_P32_TLSGD_ADD_LO12_NC"},
1291 {103, "R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21"},
1292 {104, "R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC"},
1293 {105, "R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19"},
1294 {106, "R_AARCH64_P32_TLSLE_MOVW_TPREL_G1"},
1295 {107, "R_AARCH64_P32_TLSLE_MOVW_TPREL_G0"},
1296 {108, "R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC"},
1297 {109, "R_AARCH64_P32_TLSLE_ADD_TPREL_HI12"},
1298 {110, "R_AARCH64_P32_TLSLE_ADD_TPREL_LO12"},
1299 {111, "R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC"},
1300 {122, "R_AARCH64_P32_TLSDESC_LD_PREL19"},
1301 {123, "R_AARCH64_P32_TLSDESC_ADR_PREL21"},
1302 {124, "R_AARCH64_P32_TLSDESC_ADR_PAGE21"},
1303 {125, "R_AARCH64_P32_TLSDESC_LD32_LO12_NC"},
1304 {126, "R_AARCH64_P32_TLSDESC_ADD_LO12_NC"},
1305 {127, "R_AARCH64_P32_TLSDESC_CALL"},
1306 {180, "R_AARCH64_P32_COPY"},
1307 {181, "R_AARCH64_P32_GLOB_DAT"},
1308 {182, "R_AARCH64_P32_JUMP_SLOT"},
1309 {183, "R_AARCH64_P32_RELATIVE"},
1310 {184, "R_AARCH64_P32_TLS_DTPMOD"},
1311 {185, "R_AARCH64_P32_TLS_DTPREL"},
1312 {186, "R_AARCH64_P32_TLS_TPREL"},
1313 {187, "R_AARCH64_P32_TLSDESC"},
1314 {188, "R_AARCH64_P32_IRELATIVE"},
1315 {256, "R_AARCH64_NULL"},
1316 {257, "R_AARCH64_ABS64"},
1317 {258, "R_AARCH64_ABS32"},
1318 {259, "R_AARCH64_ABS16"},
1319 {260, "R_AARCH64_PREL64"},
1320 {261, "R_AARCH64_PREL32"},
1321 {262, "R_AARCH64_PREL16"},
1322 {263, "R_AARCH64_MOVW_UABS_G0"},
1323 {264, "R_AARCH64_MOVW_UABS_G0_NC"},
1324 {265, "R_AARCH64_MOVW_UABS_G1"},
1325 {266, "R_AARCH64_MOVW_UABS_G1_NC"},
1326 {267, "R_AARCH64_MOVW_UABS_G2"},
1327 {268, "R_AARCH64_MOVW_UABS_G2_NC"},
1328 {269, "R_AARCH64_MOVW_UABS_G3"},
1329 {270, "R_AARCH64_MOVW_SABS_G0"},
1330 {271, "R_AARCH64_MOVW_SABS_G1"},
1331 {272, "R_AARCH64_MOVW_SABS_G2"},
1332 {273, "R_AARCH64_LD_PREL_LO19"},
1333 {274, "R_AARCH64_ADR_PREL_LO21"},
1334 {275, "R_AARCH64_ADR_PREL_PG_HI21"},
1335 {276, "R_AARCH64_ADR_PREL_PG_HI21_NC"},
1336 {277, "R_AARCH64_ADD_ABS_LO12_NC"},
1337 {278, "R_AARCH64_LDST8_ABS_LO12_NC"},
1338 {279, "R_AARCH64_TSTBR14"},
1339 {280, "R_AARCH64_CONDBR19"},
1340 {282, "R_AARCH64_JUMP26"},
1341 {283, "R_AARCH64_CALL26"},
1342 {284, "R_AARCH64_LDST16_ABS_LO12_NC"},
1343 {285, "R_AARCH64_LDST32_ABS_LO12_NC"},
1344 {286, "R_AARCH64_LDST64_ABS_LO12_NC"},
1345 {299, "R_AARCH64_LDST128_ABS_LO12_NC"},
1346 {309, "R_AARCH64_GOT_LD_PREL19"},
1347 {310, "R_AARCH64_LD64_GOTOFF_LO15"},
1348 {311, "R_AARCH64_ADR_GOT_PAGE"},
1349 {312, "R_AARCH64_LD64_GOT_LO12_NC"},
1350 {313, "R_AARCH64_LD64_GOTPAGE_LO15"},
1351 {512, "R_AARCH64_TLSGD_ADR_PREL21"},
1352 {513, "R_AARCH64_TLSGD_ADR_PAGE21"},
1353 {514, "R_AARCH64_TLSGD_ADD_LO12_NC"},
1354 {515, "R_AARCH64_TLSGD_MOVW_G1"},
1355 {516, "R_AARCH64_TLSGD_MOVW_G0_NC"},
1356 {517, "R_AARCH64_TLSLD_ADR_PREL21"},
1357 {518, "R_AARCH64_TLSLD_ADR_PAGE21"},
1358 {539, "R_AARCH64_TLSIE_MOVW_GOTTPREL_G1"},
1359 {540, "R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC"},
1360 {541, "R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21"},
1361 {542, "R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC"},
1362 {543, "R_AARCH64_TLSIE_LD_GOTTPREL_PREL19"},
1363 {544, "R_AARCH64_TLSLE_MOVW_TPREL_G2"},
1364 {545, "R_AARCH64_TLSLE_MOVW_TPREL_G1"},
1365 {546, "R_AARCH64_TLSLE_MOVW_TPREL_G1_NC"},
1366 {547, "R_AARCH64_TLSLE_MOVW_TPREL_G0"},
1367 {548, "R_AARCH64_TLSLE_MOVW_TPREL_G0_NC"},
1368 {549, "R_AARCH64_TLSLE_ADD_TPREL_HI12"},
1369 {550, "R_AARCH64_TLSLE_ADD_TPREL_LO12"},
1370 {551, "R_AARCH64_TLSLE_ADD_TPREL_LO12_NC"},
1371 {560, "R_AARCH64_TLSDESC_LD_PREL19"},
1372 {561, "R_AARCH64_TLSDESC_ADR_PREL21"},
1373 {562, "R_AARCH64_TLSDESC_ADR_PAGE21"},
1374 {563, "R_AARCH64_TLSDESC_LD64_LO12_NC"},
1375 {564, "R_AARCH64_TLSDESC_ADD_LO12_NC"},
1376 {565, "R_AARCH64_TLSDESC_OFF_G1"},
1377 {566, "R_AARCH64_TLSDESC_OFF_G0_NC"},
1378 {567, "R_AARCH64_TLSDESC_LDR"},
1379 {568, "R_AARCH64_TLSDESC_ADD"},
1380 {569, "R_AARCH64_TLSDESC_CALL"},
1381 {570, "R_AARCH64_TLSLE_LDST128_TPREL_LO12"},
1382 {571, "R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC"},
1383 {572, "R_AARCH64_TLSLD_LDST128_DTPREL_LO12"},
1384 {573, "R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC"},
1385 {1024, "R_AARCH64_COPY"},
1386 {1025, "R_AARCH64_GLOB_DAT"},
1387 {1026, "R_AARCH64_JUMP_SLOT"},
1388 {1027, "R_AARCH64_RELATIVE"},
1389 {1028, "R_AARCH64_TLS_DTPMOD64"},
1390 {1029, "R_AARCH64_TLS_DTPREL64"},
1391 {1030, "R_AARCH64_TLS_TPREL64"},
1392 {1031, "R_AARCH64_TLSDESC"},
1393 {1032, "R_AARCH64_IRELATIVE"},
1394 }
1395
1396 func (i R_AARCH64) String() string { return stringName(uint32(i), raarch64Strings, false) }
1397 func (i R_AARCH64) GoString() string { return stringName(uint32(i), raarch64Strings, true) }
1398
1399
1400 type R_ALPHA int
1401
1402 const (
1403 R_ALPHA_NONE R_ALPHA = 0
1404 R_ALPHA_REFLONG R_ALPHA = 1
1405 R_ALPHA_REFQUAD R_ALPHA = 2
1406 R_ALPHA_GPREL32 R_ALPHA = 3
1407 R_ALPHA_LITERAL R_ALPHA = 4
1408 R_ALPHA_LITUSE R_ALPHA = 5
1409 R_ALPHA_GPDISP R_ALPHA = 6
1410 R_ALPHA_BRADDR R_ALPHA = 7
1411 R_ALPHA_HINT R_ALPHA = 8
1412 R_ALPHA_SREL16 R_ALPHA = 9
1413 R_ALPHA_SREL32 R_ALPHA = 10
1414 R_ALPHA_SREL64 R_ALPHA = 11
1415 R_ALPHA_OP_PUSH R_ALPHA = 12
1416 R_ALPHA_OP_STORE R_ALPHA = 13
1417 R_ALPHA_OP_PSUB R_ALPHA = 14
1418 R_ALPHA_OP_PRSHIFT R_ALPHA = 15
1419 R_ALPHA_GPVALUE R_ALPHA = 16
1420 R_ALPHA_GPRELHIGH R_ALPHA = 17
1421 R_ALPHA_GPRELLOW R_ALPHA = 18
1422 R_ALPHA_IMMED_GP_16 R_ALPHA = 19
1423 R_ALPHA_IMMED_GP_HI32 R_ALPHA = 20
1424 R_ALPHA_IMMED_SCN_HI32 R_ALPHA = 21
1425 R_ALPHA_IMMED_BR_HI32 R_ALPHA = 22
1426 R_ALPHA_IMMED_LO32 R_ALPHA = 23
1427 R_ALPHA_COPY R_ALPHA = 24
1428 R_ALPHA_GLOB_DAT R_ALPHA = 25
1429 R_ALPHA_JMP_SLOT R_ALPHA = 26
1430 R_ALPHA_RELATIVE R_ALPHA = 27
1431 )
1432
1433 var ralphaStrings = []intName{
1434 {0, "R_ALPHA_NONE"},
1435 {1, "R_ALPHA_REFLONG"},
1436 {2, "R_ALPHA_REFQUAD"},
1437 {3, "R_ALPHA_GPREL32"},
1438 {4, "R_ALPHA_LITERAL"},
1439 {5, "R_ALPHA_LITUSE"},
1440 {6, "R_ALPHA_GPDISP"},
1441 {7, "R_ALPHA_BRADDR"},
1442 {8, "R_ALPHA_HINT"},
1443 {9, "R_ALPHA_SREL16"},
1444 {10, "R_ALPHA_SREL32"},
1445 {11, "R_ALPHA_SREL64"},
1446 {12, "R_ALPHA_OP_PUSH"},
1447 {13, "R_ALPHA_OP_STORE"},
1448 {14, "R_ALPHA_OP_PSUB"},
1449 {15, "R_ALPHA_OP_PRSHIFT"},
1450 {16, "R_ALPHA_GPVALUE"},
1451 {17, "R_ALPHA_GPRELHIGH"},
1452 {18, "R_ALPHA_GPRELLOW"},
1453 {19, "R_ALPHA_IMMED_GP_16"},
1454 {20, "R_ALPHA_IMMED_GP_HI32"},
1455 {21, "R_ALPHA_IMMED_SCN_HI32"},
1456 {22, "R_ALPHA_IMMED_BR_HI32"},
1457 {23, "R_ALPHA_IMMED_LO32"},
1458 {24, "R_ALPHA_COPY"},
1459 {25, "R_ALPHA_GLOB_DAT"},
1460 {26, "R_ALPHA_JMP_SLOT"},
1461 {27, "R_ALPHA_RELATIVE"},
1462 }
1463
1464 func (i R_ALPHA) String() string { return stringName(uint32(i), ralphaStrings, false) }
1465 func (i R_ALPHA) GoString() string { return stringName(uint32(i), ralphaStrings, true) }
1466
1467
1468 type R_ARM int
1469
1470 const (
1471 R_ARM_NONE R_ARM = 0
1472 R_ARM_PC24 R_ARM = 1
1473 R_ARM_ABS32 R_ARM = 2
1474 R_ARM_REL32 R_ARM = 3
1475 R_ARM_PC13 R_ARM = 4
1476 R_ARM_ABS16 R_ARM = 5
1477 R_ARM_ABS12 R_ARM = 6
1478 R_ARM_THM_ABS5 R_ARM = 7
1479 R_ARM_ABS8 R_ARM = 8
1480 R_ARM_SBREL32 R_ARM = 9
1481 R_ARM_THM_PC22 R_ARM = 10
1482 R_ARM_THM_PC8 R_ARM = 11
1483 R_ARM_AMP_VCALL9 R_ARM = 12
1484 R_ARM_SWI24 R_ARM = 13
1485 R_ARM_THM_SWI8 R_ARM = 14
1486 R_ARM_XPC25 R_ARM = 15
1487 R_ARM_THM_XPC22 R_ARM = 16
1488 R_ARM_TLS_DTPMOD32 R_ARM = 17
1489 R_ARM_TLS_DTPOFF32 R_ARM = 18
1490 R_ARM_TLS_TPOFF32 R_ARM = 19
1491 R_ARM_COPY R_ARM = 20
1492 R_ARM_GLOB_DAT R_ARM = 21
1493 R_ARM_JUMP_SLOT R_ARM = 22
1494 R_ARM_RELATIVE R_ARM = 23
1495 R_ARM_GOTOFF R_ARM = 24
1496 R_ARM_GOTPC R_ARM = 25
1497 R_ARM_GOT32 R_ARM = 26
1498 R_ARM_PLT32 R_ARM = 27
1499 R_ARM_CALL R_ARM = 28
1500 R_ARM_JUMP24 R_ARM = 29
1501 R_ARM_THM_JUMP24 R_ARM = 30
1502 R_ARM_BASE_ABS R_ARM = 31
1503 R_ARM_ALU_PCREL_7_0 R_ARM = 32
1504 R_ARM_ALU_PCREL_15_8 R_ARM = 33
1505 R_ARM_ALU_PCREL_23_15 R_ARM = 34
1506 R_ARM_LDR_SBREL_11_10_NC R_ARM = 35
1507 R_ARM_ALU_SBREL_19_12_NC R_ARM = 36
1508 R_ARM_ALU_SBREL_27_20_CK R_ARM = 37
1509 R_ARM_TARGET1 R_ARM = 38
1510 R_ARM_SBREL31 R_ARM = 39
1511 R_ARM_V4BX R_ARM = 40
1512 R_ARM_TARGET2 R_ARM = 41
1513 R_ARM_PREL31 R_ARM = 42
1514 R_ARM_MOVW_ABS_NC R_ARM = 43
1515 R_ARM_MOVT_ABS R_ARM = 44
1516 R_ARM_MOVW_PREL_NC R_ARM = 45
1517 R_ARM_MOVT_PREL R_ARM = 46
1518 R_ARM_THM_MOVW_ABS_NC R_ARM = 47
1519 R_ARM_THM_MOVT_ABS R_ARM = 48
1520 R_ARM_THM_MOVW_PREL_NC R_ARM = 49
1521 R_ARM_THM_MOVT_PREL R_ARM = 50
1522 R_ARM_THM_JUMP19 R_ARM = 51
1523 R_ARM_THM_JUMP6 R_ARM = 52
1524 R_ARM_THM_ALU_PREL_11_0 R_ARM = 53
1525 R_ARM_THM_PC12 R_ARM = 54
1526 R_ARM_ABS32_NOI R_ARM = 55
1527 R_ARM_REL32_NOI R_ARM = 56
1528 R_ARM_ALU_PC_G0_NC R_ARM = 57
1529 R_ARM_ALU_PC_G0 R_ARM = 58
1530 R_ARM_ALU_PC_G1_NC R_ARM = 59
1531 R_ARM_ALU_PC_G1 R_ARM = 60
1532 R_ARM_ALU_PC_G2 R_ARM = 61
1533 R_ARM_LDR_PC_G1 R_ARM = 62
1534 R_ARM_LDR_PC_G2 R_ARM = 63
1535 R_ARM_LDRS_PC_G0 R_ARM = 64
1536 R_ARM_LDRS_PC_G1 R_ARM = 65
1537 R_ARM_LDRS_PC_G2 R_ARM = 66
1538 R_ARM_LDC_PC_G0 R_ARM = 67
1539 R_ARM_LDC_PC_G1 R_ARM = 68
1540 R_ARM_LDC_PC_G2 R_ARM = 69
1541 R_ARM_ALU_SB_G0_NC R_ARM = 70
1542 R_ARM_ALU_SB_G0 R_ARM = 71
1543 R_ARM_ALU_SB_G1_NC R_ARM = 72
1544 R_ARM_ALU_SB_G1 R_ARM = 73
1545 R_ARM_ALU_SB_G2 R_ARM = 74
1546 R_ARM_LDR_SB_G0 R_ARM = 75
1547 R_ARM_LDR_SB_G1 R_ARM = 76
1548 R_ARM_LDR_SB_G2 R_ARM = 77
1549 R_ARM_LDRS_SB_G0 R_ARM = 78
1550 R_ARM_LDRS_SB_G1 R_ARM = 79
1551 R_ARM_LDRS_SB_G2 R_ARM = 80
1552 R_ARM_LDC_SB_G0 R_ARM = 81
1553 R_ARM_LDC_SB_G1 R_ARM = 82
1554 R_ARM_LDC_SB_G2 R_ARM = 83
1555 R_ARM_MOVW_BREL_NC R_ARM = 84
1556 R_ARM_MOVT_BREL R_ARM = 85
1557 R_ARM_MOVW_BREL R_ARM = 86
1558 R_ARM_THM_MOVW_BREL_NC R_ARM = 87
1559 R_ARM_THM_MOVT_BREL R_ARM = 88
1560 R_ARM_THM_MOVW_BREL R_ARM = 89
1561 R_ARM_TLS_GOTDESC R_ARM = 90
1562 R_ARM_TLS_CALL R_ARM = 91
1563 R_ARM_TLS_DESCSEQ R_ARM = 92
1564 R_ARM_THM_TLS_CALL R_ARM = 93
1565 R_ARM_PLT32_ABS R_ARM = 94
1566 R_ARM_GOT_ABS R_ARM = 95
1567 R_ARM_GOT_PREL R_ARM = 96
1568 R_ARM_GOT_BREL12 R_ARM = 97
1569 R_ARM_GOTOFF12 R_ARM = 98
1570 R_ARM_GOTRELAX R_ARM = 99
1571 R_ARM_GNU_VTENTRY R_ARM = 100
1572 R_ARM_GNU_VTINHERIT R_ARM = 101
1573 R_ARM_THM_JUMP11 R_ARM = 102
1574 R_ARM_THM_JUMP8 R_ARM = 103
1575 R_ARM_TLS_GD32 R_ARM = 104
1576 R_ARM_TLS_LDM32 R_ARM = 105
1577 R_ARM_TLS_LDO32 R_ARM = 106
1578 R_ARM_TLS_IE32 R_ARM = 107
1579 R_ARM_TLS_LE32 R_ARM = 108
1580 R_ARM_TLS_LDO12 R_ARM = 109
1581 R_ARM_TLS_LE12 R_ARM = 110
1582 R_ARM_TLS_IE12GP R_ARM = 111
1583 R_ARM_PRIVATE_0 R_ARM = 112
1584 R_ARM_PRIVATE_1 R_ARM = 113
1585 R_ARM_PRIVATE_2 R_ARM = 114
1586 R_ARM_PRIVATE_3 R_ARM = 115
1587 R_ARM_PRIVATE_4 R_ARM = 116
1588 R_ARM_PRIVATE_5 R_ARM = 117
1589 R_ARM_PRIVATE_6 R_ARM = 118
1590 R_ARM_PRIVATE_7 R_ARM = 119
1591 R_ARM_PRIVATE_8 R_ARM = 120
1592 R_ARM_PRIVATE_9 R_ARM = 121
1593 R_ARM_PRIVATE_10 R_ARM = 122
1594 R_ARM_PRIVATE_11 R_ARM = 123
1595 R_ARM_PRIVATE_12 R_ARM = 124
1596 R_ARM_PRIVATE_13 R_ARM = 125
1597 R_ARM_PRIVATE_14 R_ARM = 126
1598 R_ARM_PRIVATE_15 R_ARM = 127
1599 R_ARM_ME_TOO R_ARM = 128
1600 R_ARM_THM_TLS_DESCSEQ16 R_ARM = 129
1601 R_ARM_THM_TLS_DESCSEQ32 R_ARM = 130
1602 R_ARM_THM_GOT_BREL12 R_ARM = 131
1603 R_ARM_THM_ALU_ABS_G0_NC R_ARM = 132
1604 R_ARM_THM_ALU_ABS_G1_NC R_ARM = 133
1605 R_ARM_THM_ALU_ABS_G2_NC R_ARM = 134
1606 R_ARM_THM_ALU_ABS_G3 R_ARM = 135
1607 R_ARM_IRELATIVE R_ARM = 160
1608 R_ARM_RXPC25 R_ARM = 249
1609 R_ARM_RSBREL32 R_ARM = 250
1610 R_ARM_THM_RPC22 R_ARM = 251
1611 R_ARM_RREL32 R_ARM = 252
1612 R_ARM_RABS32 R_ARM = 253
1613 R_ARM_RPC24 R_ARM = 254
1614 R_ARM_RBASE R_ARM = 255
1615 )
1616
1617 var rarmStrings = []intName{
1618 {0, "R_ARM_NONE"},
1619 {1, "R_ARM_PC24"},
1620 {2, "R_ARM_ABS32"},
1621 {3, "R_ARM_REL32"},
1622 {4, "R_ARM_PC13"},
1623 {5, "R_ARM_ABS16"},
1624 {6, "R_ARM_ABS12"},
1625 {7, "R_ARM_THM_ABS5"},
1626 {8, "R_ARM_ABS8"},
1627 {9, "R_ARM_SBREL32"},
1628 {10, "R_ARM_THM_PC22"},
1629 {11, "R_ARM_THM_PC8"},
1630 {12, "R_ARM_AMP_VCALL9"},
1631 {13, "R_ARM_SWI24"},
1632 {14, "R_ARM_THM_SWI8"},
1633 {15, "R_ARM_XPC25"},
1634 {16, "R_ARM_THM_XPC22"},
1635 {17, "R_ARM_TLS_DTPMOD32"},
1636 {18, "R_ARM_TLS_DTPOFF32"},
1637 {19, "R_ARM_TLS_TPOFF32"},
1638 {20, "R_ARM_COPY"},
1639 {21, "R_ARM_GLOB_DAT"},
1640 {22, "R_ARM_JUMP_SLOT"},
1641 {23, "R_ARM_RELATIVE"},
1642 {24, "R_ARM_GOTOFF"},
1643 {25, "R_ARM_GOTPC"},
1644 {26, "R_ARM_GOT32"},
1645 {27, "R_ARM_PLT32"},
1646 {28, "R_ARM_CALL"},
1647 {29, "R_ARM_JUMP24"},
1648 {30, "R_ARM_THM_JUMP24"},
1649 {31, "R_ARM_BASE_ABS"},
1650 {32, "R_ARM_ALU_PCREL_7_0"},
1651 {33, "R_ARM_ALU_PCREL_15_8"},
1652 {34, "R_ARM_ALU_PCREL_23_15"},
1653 {35, "R_ARM_LDR_SBREL_11_10_NC"},
1654 {36, "R_ARM_ALU_SBREL_19_12_NC"},
1655 {37, "R_ARM_ALU_SBREL_27_20_CK"},
1656 {38, "R_ARM_TARGET1"},
1657 {39, "R_ARM_SBREL31"},
1658 {40, "R_ARM_V4BX"},
1659 {41, "R_ARM_TARGET2"},
1660 {42, "R_ARM_PREL31"},
1661 {43, "R_ARM_MOVW_ABS_NC"},
1662 {44, "R_ARM_MOVT_ABS"},
1663 {45, "R_ARM_MOVW_PREL_NC"},
1664 {46, "R_ARM_MOVT_PREL"},
1665 {47, "R_ARM_THM_MOVW_ABS_NC"},
1666 {48, "R_ARM_THM_MOVT_ABS"},
1667 {49, "R_ARM_THM_MOVW_PREL_NC"},
1668 {50, "R_ARM_THM_MOVT_PREL"},
1669 {51, "R_ARM_THM_JUMP19"},
1670 {52, "R_ARM_THM_JUMP6"},
1671 {53, "R_ARM_THM_ALU_PREL_11_0"},
1672 {54, "R_ARM_THM_PC12"},
1673 {55, "R_ARM_ABS32_NOI"},
1674 {56, "R_ARM_REL32_NOI"},
1675 {57, "R_ARM_ALU_PC_G0_NC"},
1676 {58, "R_ARM_ALU_PC_G0"},
1677 {59, "R_ARM_ALU_PC_G1_NC"},
1678 {60, "R_ARM_ALU_PC_G1"},
1679 {61, "R_ARM_ALU_PC_G2"},
1680 {62, "R_ARM_LDR_PC_G1"},
1681 {63, "R_ARM_LDR_PC_G2"},
1682 {64, "R_ARM_LDRS_PC_G0"},
1683 {65, "R_ARM_LDRS_PC_G1"},
1684 {66, "R_ARM_LDRS_PC_G2"},
1685 {67, "R_ARM_LDC_PC_G0"},
1686 {68, "R_ARM_LDC_PC_G1"},
1687 {69, "R_ARM_LDC_PC_G2"},
1688 {70, "R_ARM_ALU_SB_G0_NC"},
1689 {71, "R_ARM_ALU_SB_G0"},
1690 {72, "R_ARM_ALU_SB_G1_NC"},
1691 {73, "R_ARM_ALU_SB_G1"},
1692 {74, "R_ARM_ALU_SB_G2"},
1693 {75, "R_ARM_LDR_SB_G0"},
1694 {76, "R_ARM_LDR_SB_G1"},
1695 {77, "R_ARM_LDR_SB_G2"},
1696 {78, "R_ARM_LDRS_SB_G0"},
1697 {79, "R_ARM_LDRS_SB_G1"},
1698 {80, "R_ARM_LDRS_SB_G2"},
1699 {81, "R_ARM_LDC_SB_G0"},
1700 {82, "R_ARM_LDC_SB_G1"},
1701 {83, "R_ARM_LDC_SB_G2"},
1702 {84, "R_ARM_MOVW_BREL_NC"},
1703 {85, "R_ARM_MOVT_BREL"},
1704 {86, "R_ARM_MOVW_BREL"},
1705 {87, "R_ARM_THM_MOVW_BREL_NC"},
1706 {88, "R_ARM_THM_MOVT_BREL"},
1707 {89, "R_ARM_THM_MOVW_BREL"},
1708 {90, "R_ARM_TLS_GOTDESC"},
1709 {91, "R_ARM_TLS_CALL"},
1710 {92, "R_ARM_TLS_DESCSEQ"},
1711 {93, "R_ARM_THM_TLS_CALL"},
1712 {94, "R_ARM_PLT32_ABS"},
1713 {95, "R_ARM_GOT_ABS"},
1714 {96, "R_ARM_GOT_PREL"},
1715 {97, "R_ARM_GOT_BREL12"},
1716 {98, "R_ARM_GOTOFF12"},
1717 {99, "R_ARM_GOTRELAX"},
1718 {100, "R_ARM_GNU_VTENTRY"},
1719 {101, "R_ARM_GNU_VTINHERIT"},
1720 {102, "R_ARM_THM_JUMP11"},
1721 {103, "R_ARM_THM_JUMP8"},
1722 {104, "R_ARM_TLS_GD32"},
1723 {105, "R_ARM_TLS_LDM32"},
1724 {106, "R_ARM_TLS_LDO32"},
1725 {107, "R_ARM_TLS_IE32"},
1726 {108, "R_ARM_TLS_LE32"},
1727 {109, "R_ARM_TLS_LDO12"},
1728 {110, "R_ARM_TLS_LE12"},
1729 {111, "R_ARM_TLS_IE12GP"},
1730 {112, "R_ARM_PRIVATE_0"},
1731 {113, "R_ARM_PRIVATE_1"},
1732 {114, "R_ARM_PRIVATE_2"},
1733 {115, "R_ARM_PRIVATE_3"},
1734 {116, "R_ARM_PRIVATE_4"},
1735 {117, "R_ARM_PRIVATE_5"},
1736 {118, "R_ARM_PRIVATE_6"},
1737 {119, "R_ARM_PRIVATE_7"},
1738 {120, "R_ARM_PRIVATE_8"},
1739 {121, "R_ARM_PRIVATE_9"},
1740 {122, "R_ARM_PRIVATE_10"},
1741 {123, "R_ARM_PRIVATE_11"},
1742 {124, "R_ARM_PRIVATE_12"},
1743 {125, "R_ARM_PRIVATE_13"},
1744 {126, "R_ARM_PRIVATE_14"},
1745 {127, "R_ARM_PRIVATE_15"},
1746 {128, "R_ARM_ME_TOO"},
1747 {129, "R_ARM_THM_TLS_DESCSEQ16"},
1748 {130, "R_ARM_THM_TLS_DESCSEQ32"},
1749 {131, "R_ARM_THM_GOT_BREL12"},
1750 {132, "R_ARM_THM_ALU_ABS_G0_NC"},
1751 {133, "R_ARM_THM_ALU_ABS_G1_NC"},
1752 {134, "R_ARM_THM_ALU_ABS_G2_NC"},
1753 {135, "R_ARM_THM_ALU_ABS_G3"},
1754 {160, "R_ARM_IRELATIVE"},
1755 {249, "R_ARM_RXPC25"},
1756 {250, "R_ARM_RSBREL32"},
1757 {251, "R_ARM_THM_RPC22"},
1758 {252, "R_ARM_RREL32"},
1759 {253, "R_ARM_RABS32"},
1760 {254, "R_ARM_RPC24"},
1761 {255, "R_ARM_RBASE"},
1762 }
1763
1764 func (i R_ARM) String() string { return stringName(uint32(i), rarmStrings, false) }
1765 func (i R_ARM) GoString() string { return stringName(uint32(i), rarmStrings, true) }
1766
1767
1768 type R_386 int
1769
1770 const (
1771 R_386_NONE R_386 = 0
1772 R_386_32 R_386 = 1
1773 R_386_PC32 R_386 = 2
1774 R_386_GOT32 R_386 = 3
1775 R_386_PLT32 R_386 = 4
1776 R_386_COPY R_386 = 5
1777 R_386_GLOB_DAT R_386 = 6
1778 R_386_JMP_SLOT R_386 = 7
1779 R_386_RELATIVE R_386 = 8
1780 R_386_GOTOFF R_386 = 9
1781 R_386_GOTPC R_386 = 10
1782 R_386_32PLT R_386 = 11
1783 R_386_TLS_TPOFF R_386 = 14
1784 R_386_TLS_IE R_386 = 15
1785 R_386_TLS_GOTIE R_386 = 16
1786 R_386_TLS_LE R_386 = 17
1787 R_386_TLS_GD R_386 = 18
1788 R_386_TLS_LDM R_386 = 19
1789 R_386_16 R_386 = 20
1790 R_386_PC16 R_386 = 21
1791 R_386_8 R_386 = 22
1792 R_386_PC8 R_386 = 23
1793 R_386_TLS_GD_32 R_386 = 24
1794 R_386_TLS_GD_PUSH R_386 = 25
1795 R_386_TLS_GD_CALL R_386 = 26
1796 R_386_TLS_GD_POP R_386 = 27
1797 R_386_TLS_LDM_32 R_386 = 28
1798 R_386_TLS_LDM_PUSH R_386 = 29
1799 R_386_TLS_LDM_CALL R_386 = 30
1800 R_386_TLS_LDM_POP R_386 = 31
1801 R_386_TLS_LDO_32 R_386 = 32
1802 R_386_TLS_IE_32 R_386 = 33
1803 R_386_TLS_LE_32 R_386 = 34
1804 R_386_TLS_DTPMOD32 R_386 = 35
1805 R_386_TLS_DTPOFF32 R_386 = 36
1806 R_386_TLS_TPOFF32 R_386 = 37
1807 R_386_SIZE32 R_386 = 38
1808 R_386_TLS_GOTDESC R_386 = 39
1809 R_386_TLS_DESC_CALL R_386 = 40
1810 R_386_TLS_DESC R_386 = 41
1811 R_386_IRELATIVE R_386 = 42
1812 R_386_GOT32X R_386 = 43
1813 )
1814
1815 var r386Strings = []intName{
1816 {0, "R_386_NONE"},
1817 {1, "R_386_32"},
1818 {2, "R_386_PC32"},
1819 {3, "R_386_GOT32"},
1820 {4, "R_386_PLT32"},
1821 {5, "R_386_COPY"},
1822 {6, "R_386_GLOB_DAT"},
1823 {7, "R_386_JMP_SLOT"},
1824 {8, "R_386_RELATIVE"},
1825 {9, "R_386_GOTOFF"},
1826 {10, "R_386_GOTPC"},
1827 {11, "R_386_32PLT"},
1828 {14, "R_386_TLS_TPOFF"},
1829 {15, "R_386_TLS_IE"},
1830 {16, "R_386_TLS_GOTIE"},
1831 {17, "R_386_TLS_LE"},
1832 {18, "R_386_TLS_GD"},
1833 {19, "R_386_TLS_LDM"},
1834 {20, "R_386_16"},
1835 {21, "R_386_PC16"},
1836 {22, "R_386_8"},
1837 {23, "R_386_PC8"},
1838 {24, "R_386_TLS_GD_32"},
1839 {25, "R_386_TLS_GD_PUSH"},
1840 {26, "R_386_TLS_GD_CALL"},
1841 {27, "R_386_TLS_GD_POP"},
1842 {28, "R_386_TLS_LDM_32"},
1843 {29, "R_386_TLS_LDM_PUSH"},
1844 {30, "R_386_TLS_LDM_CALL"},
1845 {31, "R_386_TLS_LDM_POP"},
1846 {32, "R_386_TLS_LDO_32"},
1847 {33, "R_386_TLS_IE_32"},
1848 {34, "R_386_TLS_LE_32"},
1849 {35, "R_386_TLS_DTPMOD32"},
1850 {36, "R_386_TLS_DTPOFF32"},
1851 {37, "R_386_TLS_TPOFF32"},
1852 {38, "R_386_SIZE32"},
1853 {39, "R_386_TLS_GOTDESC"},
1854 {40, "R_386_TLS_DESC_CALL"},
1855 {41, "R_386_TLS_DESC"},
1856 {42, "R_386_IRELATIVE"},
1857 {43, "R_386_GOT32X"},
1858 }
1859
1860 func (i R_386) String() string { return stringName(uint32(i), r386Strings, false) }
1861 func (i R_386) GoString() string { return stringName(uint32(i), r386Strings, true) }
1862
1863
1864 type R_MIPS int
1865
1866 const (
1867 R_MIPS_NONE R_MIPS = 0
1868 R_MIPS_16 R_MIPS = 1
1869 R_MIPS_32 R_MIPS = 2
1870 R_MIPS_REL32 R_MIPS = 3
1871 R_MIPS_26 R_MIPS = 4
1872 R_MIPS_HI16 R_MIPS = 5
1873 R_MIPS_LO16 R_MIPS = 6
1874 R_MIPS_GPREL16 R_MIPS = 7
1875 R_MIPS_LITERAL R_MIPS = 8
1876 R_MIPS_GOT16 R_MIPS = 9
1877 R_MIPS_PC16 R_MIPS = 10
1878 R_MIPS_CALL16 R_MIPS = 11
1879 R_MIPS_GPREL32 R_MIPS = 12
1880 R_MIPS_SHIFT5 R_MIPS = 16
1881 R_MIPS_SHIFT6 R_MIPS = 17
1882 R_MIPS_64 R_MIPS = 18
1883 R_MIPS_GOT_DISP R_MIPS = 19
1884 R_MIPS_GOT_PAGE R_MIPS = 20
1885 R_MIPS_GOT_OFST R_MIPS = 21
1886 R_MIPS_GOT_HI16 R_MIPS = 22
1887 R_MIPS_GOT_LO16 R_MIPS = 23
1888 R_MIPS_SUB R_MIPS = 24
1889 R_MIPS_INSERT_A R_MIPS = 25
1890 R_MIPS_INSERT_B R_MIPS = 26
1891 R_MIPS_DELETE R_MIPS = 27
1892 R_MIPS_HIGHER R_MIPS = 28
1893 R_MIPS_HIGHEST R_MIPS = 29
1894 R_MIPS_CALL_HI16 R_MIPS = 30
1895 R_MIPS_CALL_LO16 R_MIPS = 31
1896 R_MIPS_SCN_DISP R_MIPS = 32
1897 R_MIPS_REL16 R_MIPS = 33
1898 R_MIPS_ADD_IMMEDIATE R_MIPS = 34
1899 R_MIPS_PJUMP R_MIPS = 35
1900 R_MIPS_RELGOT R_MIPS = 36
1901 R_MIPS_JALR R_MIPS = 37
1902
1903 R_MIPS_TLS_DTPMOD32 R_MIPS = 38
1904 R_MIPS_TLS_DTPREL32 R_MIPS = 39
1905 R_MIPS_TLS_DTPMOD64 R_MIPS = 40
1906 R_MIPS_TLS_DTPREL64 R_MIPS = 41
1907 R_MIPS_TLS_GD R_MIPS = 42
1908 R_MIPS_TLS_LDM R_MIPS = 43
1909 R_MIPS_TLS_DTPREL_HI16 R_MIPS = 44
1910 R_MIPS_TLS_DTPREL_LO16 R_MIPS = 45
1911 R_MIPS_TLS_GOTTPREL R_MIPS = 46
1912 R_MIPS_TLS_TPREL32 R_MIPS = 47
1913 R_MIPS_TLS_TPREL64 R_MIPS = 48
1914 R_MIPS_TLS_TPREL_HI16 R_MIPS = 49
1915 R_MIPS_TLS_TPREL_LO16 R_MIPS = 50
1916 )
1917
1918 var rmipsStrings = []intName{
1919 {0, "R_MIPS_NONE"},
1920 {1, "R_MIPS_16"},
1921 {2, "R_MIPS_32"},
1922 {3, "R_MIPS_REL32"},
1923 {4, "R_MIPS_26"},
1924 {5, "R_MIPS_HI16"},
1925 {6, "R_MIPS_LO16"},
1926 {7, "R_MIPS_GPREL16"},
1927 {8, "R_MIPS_LITERAL"},
1928 {9, "R_MIPS_GOT16"},
1929 {10, "R_MIPS_PC16"},
1930 {11, "R_MIPS_CALL16"},
1931 {12, "R_MIPS_GPREL32"},
1932 {16, "R_MIPS_SHIFT5"},
1933 {17, "R_MIPS_SHIFT6"},
1934 {18, "R_MIPS_64"},
1935 {19, "R_MIPS_GOT_DISP"},
1936 {20, "R_MIPS_GOT_PAGE"},
1937 {21, "R_MIPS_GOT_OFST"},
1938 {22, "R_MIPS_GOT_HI16"},
1939 {23, "R_MIPS_GOT_LO16"},
1940 {24, "R_MIPS_SUB"},
1941 {25, "R_MIPS_INSERT_A"},
1942 {26, "R_MIPS_INSERT_B"},
1943 {27, "R_MIPS_DELETE"},
1944 {28, "R_MIPS_HIGHER"},
1945 {29, "R_MIPS_HIGHEST"},
1946 {30, "R_MIPS_CALL_HI16"},
1947 {31, "R_MIPS_CALL_LO16"},
1948 {32, "R_MIPS_SCN_DISP"},
1949 {33, "R_MIPS_REL16"},
1950 {34, "R_MIPS_ADD_IMMEDIATE"},
1951 {35, "R_MIPS_PJUMP"},
1952 {36, "R_MIPS_RELGOT"},
1953 {37, "R_MIPS_JALR"},
1954 {38, "R_MIPS_TLS_DTPMOD32"},
1955 {39, "R_MIPS_TLS_DTPREL32"},
1956 {40, "R_MIPS_TLS_DTPMOD64"},
1957 {41, "R_MIPS_TLS_DTPREL64"},
1958 {42, "R_MIPS_TLS_GD"},
1959 {43, "R_MIPS_TLS_LDM"},
1960 {44, "R_MIPS_TLS_DTPREL_HI16"},
1961 {45, "R_MIPS_TLS_DTPREL_LO16"},
1962 {46, "R_MIPS_TLS_GOTTPREL"},
1963 {47, "R_MIPS_TLS_TPREL32"},
1964 {48, "R_MIPS_TLS_TPREL64"},
1965 {49, "R_MIPS_TLS_TPREL_HI16"},
1966 {50, "R_MIPS_TLS_TPREL_LO16"},
1967 }
1968
1969 func (i R_MIPS) String() string { return stringName(uint32(i), rmipsStrings, false) }
1970 func (i R_MIPS) GoString() string { return stringName(uint32(i), rmipsStrings, true) }
1971
1972
1973
1974
1975
1976
1977
1978 type R_PPC int
1979
1980 const (
1981 R_PPC_NONE R_PPC = 0
1982 R_PPC_ADDR32 R_PPC = 1
1983 R_PPC_ADDR24 R_PPC = 2
1984 R_PPC_ADDR16 R_PPC = 3
1985 R_PPC_ADDR16_LO R_PPC = 4
1986 R_PPC_ADDR16_HI R_PPC = 5
1987 R_PPC_ADDR16_HA R_PPC = 6
1988 R_PPC_ADDR14 R_PPC = 7
1989 R_PPC_ADDR14_BRTAKEN R_PPC = 8
1990 R_PPC_ADDR14_BRNTAKEN R_PPC = 9
1991 R_PPC_REL24 R_PPC = 10
1992 R_PPC_REL14 R_PPC = 11
1993 R_PPC_REL14_BRTAKEN R_PPC = 12
1994 R_PPC_REL14_BRNTAKEN R_PPC = 13
1995 R_PPC_GOT16 R_PPC = 14
1996 R_PPC_GOT16_LO R_PPC = 15
1997 R_PPC_GOT16_HI R_PPC = 16
1998 R_PPC_GOT16_HA R_PPC = 17
1999 R_PPC_PLTREL24 R_PPC = 18
2000 R_PPC_COPY R_PPC = 19
2001 R_PPC_GLOB_DAT R_PPC = 20
2002 R_PPC_JMP_SLOT R_PPC = 21
2003 R_PPC_RELATIVE R_PPC = 22
2004 R_PPC_LOCAL24PC R_PPC = 23
2005 R_PPC_UADDR32 R_PPC = 24
2006 R_PPC_UADDR16 R_PPC = 25
2007 R_PPC_REL32 R_PPC = 26
2008 R_PPC_PLT32 R_PPC = 27
2009 R_PPC_PLTREL32 R_PPC = 28
2010 R_PPC_PLT16_LO R_PPC = 29
2011 R_PPC_PLT16_HI R_PPC = 30
2012 R_PPC_PLT16_HA R_PPC = 31
2013 R_PPC_SDAREL16 R_PPC = 32
2014 R_PPC_SECTOFF R_PPC = 33
2015 R_PPC_SECTOFF_LO R_PPC = 34
2016 R_PPC_SECTOFF_HI R_PPC = 35
2017 R_PPC_SECTOFF_HA R_PPC = 36
2018 R_PPC_TLS R_PPC = 67
2019 R_PPC_DTPMOD32 R_PPC = 68
2020 R_PPC_TPREL16 R_PPC = 69
2021 R_PPC_TPREL16_LO R_PPC = 70
2022 R_PPC_TPREL16_HI R_PPC = 71
2023 R_PPC_TPREL16_HA R_PPC = 72
2024 R_PPC_TPREL32 R_PPC = 73
2025 R_PPC_DTPREL16 R_PPC = 74
2026 R_PPC_DTPREL16_LO R_PPC = 75
2027 R_PPC_DTPREL16_HI R_PPC = 76
2028 R_PPC_DTPREL16_HA R_PPC = 77
2029 R_PPC_DTPREL32 R_PPC = 78
2030 R_PPC_GOT_TLSGD16 R_PPC = 79
2031 R_PPC_GOT_TLSGD16_LO R_PPC = 80
2032 R_PPC_GOT_TLSGD16_HI R_PPC = 81
2033 R_PPC_GOT_TLSGD16_HA R_PPC = 82
2034 R_PPC_GOT_TLSLD16 R_PPC = 83
2035 R_PPC_GOT_TLSLD16_LO R_PPC = 84
2036 R_PPC_GOT_TLSLD16_HI R_PPC = 85
2037 R_PPC_GOT_TLSLD16_HA R_PPC = 86
2038 R_PPC_GOT_TPREL16 R_PPC = 87
2039 R_PPC_GOT_TPREL16_LO R_PPC = 88
2040 R_PPC_GOT_TPREL16_HI R_PPC = 89
2041 R_PPC_GOT_TPREL16_HA R_PPC = 90
2042 R_PPC_EMB_NADDR32 R_PPC = 101
2043 R_PPC_EMB_NADDR16 R_PPC = 102
2044 R_PPC_EMB_NADDR16_LO R_PPC = 103
2045 R_PPC_EMB_NADDR16_HI R_PPC = 104
2046 R_PPC_EMB_NADDR16_HA R_PPC = 105
2047 R_PPC_EMB_SDAI16 R_PPC = 106
2048 R_PPC_EMB_SDA2I16 R_PPC = 107
2049 R_PPC_EMB_SDA2REL R_PPC = 108
2050 R_PPC_EMB_SDA21 R_PPC = 109
2051 R_PPC_EMB_MRKREF R_PPC = 110
2052 R_PPC_EMB_RELSEC16 R_PPC = 111
2053 R_PPC_EMB_RELST_LO R_PPC = 112
2054 R_PPC_EMB_RELST_HI R_PPC = 113
2055 R_PPC_EMB_RELST_HA R_PPC = 114
2056 R_PPC_EMB_BIT_FLD R_PPC = 115
2057 R_PPC_EMB_RELSDA R_PPC = 116
2058 )
2059
2060 var rppcStrings = []intName{
2061 {0, "R_PPC_NONE"},
2062 {1, "R_PPC_ADDR32"},
2063 {2, "R_PPC_ADDR24"},
2064 {3, "R_PPC_ADDR16"},
2065 {4, "R_PPC_ADDR16_LO"},
2066 {5, "R_PPC_ADDR16_HI"},
2067 {6, "R_PPC_ADDR16_HA"},
2068 {7, "R_PPC_ADDR14"},
2069 {8, "R_PPC_ADDR14_BRTAKEN"},
2070 {9, "R_PPC_ADDR14_BRNTAKEN"},
2071 {10, "R_PPC_REL24"},
2072 {11, "R_PPC_REL14"},
2073 {12, "R_PPC_REL14_BRTAKEN"},
2074 {13, "R_PPC_REL14_BRNTAKEN"},
2075 {14, "R_PPC_GOT16"},
2076 {15, "R_PPC_GOT16_LO"},
2077 {16, "R_PPC_GOT16_HI"},
2078 {17, "R_PPC_GOT16_HA"},
2079 {18, "R_PPC_PLTREL24"},
2080 {19, "R_PPC_COPY"},
2081 {20, "R_PPC_GLOB_DAT"},
2082 {21, "R_PPC_JMP_SLOT"},
2083 {22, "R_PPC_RELATIVE"},
2084 {23, "R_PPC_LOCAL24PC"},
2085 {24, "R_PPC_UADDR32"},
2086 {25, "R_PPC_UADDR16"},
2087 {26, "R_PPC_REL32"},
2088 {27, "R_PPC_PLT32"},
2089 {28, "R_PPC_PLTREL32"},
2090 {29, "R_PPC_PLT16_LO"},
2091 {30, "R_PPC_PLT16_HI"},
2092 {31, "R_PPC_PLT16_HA"},
2093 {32, "R_PPC_SDAREL16"},
2094 {33, "R_PPC_SECTOFF"},
2095 {34, "R_PPC_SECTOFF_LO"},
2096 {35, "R_PPC_SECTOFF_HI"},
2097 {36, "R_PPC_SECTOFF_HA"},
2098 {67, "R_PPC_TLS"},
2099 {68, "R_PPC_DTPMOD32"},
2100 {69, "R_PPC_TPREL16"},
2101 {70, "R_PPC_TPREL16_LO"},
2102 {71, "R_PPC_TPREL16_HI"},
2103 {72, "R_PPC_TPREL16_HA"},
2104 {73, "R_PPC_TPREL32"},
2105 {74, "R_PPC_DTPREL16"},
2106 {75, "R_PPC_DTPREL16_LO"},
2107 {76, "R_PPC_DTPREL16_HI"},
2108 {77, "R_PPC_DTPREL16_HA"},
2109 {78, "R_PPC_DTPREL32"},
2110 {79, "R_PPC_GOT_TLSGD16"},
2111 {80, "R_PPC_GOT_TLSGD16_LO"},
2112 {81, "R_PPC_GOT_TLSGD16_HI"},
2113 {82, "R_PPC_GOT_TLSGD16_HA"},
2114 {83, "R_PPC_GOT_TLSLD16"},
2115 {84, "R_PPC_GOT_TLSLD16_LO"},
2116 {85, "R_PPC_GOT_TLSLD16_HI"},
2117 {86, "R_PPC_GOT_TLSLD16_HA"},
2118 {87, "R_PPC_GOT_TPREL16"},
2119 {88, "R_PPC_GOT_TPREL16_LO"},
2120 {89, "R_PPC_GOT_TPREL16_HI"},
2121 {90, "R_PPC_GOT_TPREL16_HA"},
2122 {101, "R_PPC_EMB_NADDR32"},
2123 {102, "R_PPC_EMB_NADDR16"},
2124 {103, "R_PPC_EMB_NADDR16_LO"},
2125 {104, "R_PPC_EMB_NADDR16_HI"},
2126 {105, "R_PPC_EMB_NADDR16_HA"},
2127 {106, "R_PPC_EMB_SDAI16"},
2128 {107, "R_PPC_EMB_SDA2I16"},
2129 {108, "R_PPC_EMB_SDA2REL"},
2130 {109, "R_PPC_EMB_SDA21"},
2131 {110, "R_PPC_EMB_MRKREF"},
2132 {111, "R_PPC_EMB_RELSEC16"},
2133 {112, "R_PPC_EMB_RELST_LO"},
2134 {113, "R_PPC_EMB_RELST_HI"},
2135 {114, "R_PPC_EMB_RELST_HA"},
2136 {115, "R_PPC_EMB_BIT_FLD"},
2137 {116, "R_PPC_EMB_RELSDA"},
2138 }
2139
2140 func (i R_PPC) String() string { return stringName(uint32(i), rppcStrings, false) }
2141 func (i R_PPC) GoString() string { return stringName(uint32(i), rppcStrings, true) }
2142
2143
2144
2145
2146
2147
2148
2149 type R_PPC64 int
2150
2151 const (
2152 R_PPC64_NONE R_PPC64 = 0
2153 R_PPC64_ADDR32 R_PPC64 = 1
2154 R_PPC64_ADDR24 R_PPC64 = 2
2155 R_PPC64_ADDR16 R_PPC64 = 3
2156 R_PPC64_ADDR16_LO R_PPC64 = 4
2157 R_PPC64_ADDR16_HI R_PPC64 = 5
2158 R_PPC64_ADDR16_HA R_PPC64 = 6
2159 R_PPC64_ADDR14 R_PPC64 = 7
2160 R_PPC64_ADDR14_BRTAKEN R_PPC64 = 8
2161 R_PPC64_ADDR14_BRNTAKEN R_PPC64 = 9
2162 R_PPC64_REL24 R_PPC64 = 10
2163 R_PPC64_REL14 R_PPC64 = 11
2164 R_PPC64_REL14_BRTAKEN R_PPC64 = 12
2165 R_PPC64_REL14_BRNTAKEN R_PPC64 = 13
2166 R_PPC64_GOT16 R_PPC64 = 14
2167 R_PPC64_GOT16_LO R_PPC64 = 15
2168 R_PPC64_GOT16_HI R_PPC64 = 16
2169 R_PPC64_GOT16_HA R_PPC64 = 17
2170 R_PPC64_JMP_SLOT R_PPC64 = 21
2171 R_PPC64_REL32 R_PPC64 = 26
2172 R_PPC64_ADDR64 R_PPC64 = 38
2173 R_PPC64_ADDR16_HIGHER R_PPC64 = 39
2174 R_PPC64_ADDR16_HIGHERA R_PPC64 = 40
2175 R_PPC64_ADDR16_HIGHEST R_PPC64 = 41
2176 R_PPC64_ADDR16_HIGHESTA R_PPC64 = 42
2177 R_PPC64_REL64 R_PPC64 = 44
2178 R_PPC64_TOC16 R_PPC64 = 47
2179 R_PPC64_TOC16_LO R_PPC64 = 48
2180 R_PPC64_TOC16_HI R_PPC64 = 49
2181 R_PPC64_TOC16_HA R_PPC64 = 50
2182 R_PPC64_TOC R_PPC64 = 51
2183 R_PPC64_PLTGOT16 R_PPC64 = 52
2184 R_PPC64_PLTGOT16_LO R_PPC64 = 53
2185 R_PPC64_PLTGOT16_HI R_PPC64 = 54
2186 R_PPC64_PLTGOT16_HA R_PPC64 = 55
2187 R_PPC64_ADDR16_DS R_PPC64 = 56
2188 R_PPC64_ADDR16_LO_DS R_PPC64 = 57
2189 R_PPC64_GOT16_DS R_PPC64 = 58
2190 R_PPC64_GOT16_LO_DS R_PPC64 = 59
2191 R_PPC64_PLT16_LO_DS R_PPC64 = 60
2192 R_PPC64_SECTOFF_DS R_PPC64 = 61
2193 R_PPC64_SECTOFF_LO_DS R_PPC64 = 61
2194 R_PPC64_TOC16_DS R_PPC64 = 63
2195 R_PPC64_TOC16_LO_DS R_PPC64 = 64
2196 R_PPC64_PLTGOT16_DS R_PPC64 = 65
2197 R_PPC64_PLTGOT_LO_DS R_PPC64 = 66
2198 R_PPC64_TLS R_PPC64 = 67
2199 R_PPC64_DTPMOD64 R_PPC64 = 68
2200 R_PPC64_TPREL16 R_PPC64 = 69
2201 R_PPC64_TPREL16_LO R_PPC64 = 70
2202 R_PPC64_TPREL16_HI R_PPC64 = 71
2203 R_PPC64_TPREL16_HA R_PPC64 = 72
2204 R_PPC64_TPREL64 R_PPC64 = 73
2205 R_PPC64_DTPREL16 R_PPC64 = 74
2206 R_PPC64_DTPREL16_LO R_PPC64 = 75
2207 R_PPC64_DTPREL16_HI R_PPC64 = 76
2208 R_PPC64_DTPREL16_HA R_PPC64 = 77
2209 R_PPC64_DTPREL64 R_PPC64 = 78
2210 R_PPC64_GOT_TLSGD16 R_PPC64 = 79
2211 R_PPC64_GOT_TLSGD16_LO R_PPC64 = 80
2212 R_PPC64_GOT_TLSGD16_HI R_PPC64 = 81
2213 R_PPC64_GOT_TLSGD16_HA R_PPC64 = 82
2214 R_PPC64_GOT_TLSLD16 R_PPC64 = 83
2215 R_PPC64_GOT_TLSLD16_LO R_PPC64 = 84
2216 R_PPC64_GOT_TLSLD16_HI R_PPC64 = 85
2217 R_PPC64_GOT_TLSLD16_HA R_PPC64 = 86
2218 R_PPC64_GOT_TPREL16_DS R_PPC64 = 87
2219 R_PPC64_GOT_TPREL16_LO_DS R_PPC64 = 88
2220 R_PPC64_GOT_TPREL16_HI R_PPC64 = 89
2221 R_PPC64_GOT_TPREL16_HA R_PPC64 = 90
2222 R_PPC64_GOT_DTPREL16_DS R_PPC64 = 91
2223 R_PPC64_GOT_DTPREL16_LO_DS R_PPC64 = 92
2224 R_PPC64_GOT_DTPREL16_HI R_PPC64 = 93
2225 R_PPC64_GOT_DTPREL16_HA R_PPC64 = 94
2226 R_PPC64_TPREL16_DS R_PPC64 = 95
2227 R_PPC64_TPREL16_LO_DS R_PPC64 = 96
2228 R_PPC64_TPREL16_HIGHER R_PPC64 = 97
2229 R_PPC64_TPREL16_HIGHERA R_PPC64 = 98
2230 R_PPC64_TPREL16_HIGHEST R_PPC64 = 99
2231 R_PPC64_TPREL16_HIGHESTA R_PPC64 = 100
2232 R_PPC64_DTPREL16_DS R_PPC64 = 101
2233 R_PPC64_DTPREL16_LO_DS R_PPC64 = 102
2234 R_PPC64_DTPREL16_HIGHER R_PPC64 = 103
2235 R_PPC64_DTPREL16_HIGHERA R_PPC64 = 104
2236 R_PPC64_DTPREL16_HIGHEST R_PPC64 = 105
2237 R_PPC64_DTPREL16_HIGHESTA R_PPC64 = 106
2238 R_PPC64_TLSGD R_PPC64 = 107
2239 R_PPC64_TLSLD R_PPC64 = 108
2240 R_PPC64_TOCSAVE R_PPC64 = 109
2241 R_PPC64_ADDR16_HIGH R_PPC64 = 110
2242 R_PPC64_ADDR16_HIGHA R_PPC64 = 111
2243 R_PPC64_TPREL16_HIGH R_PPC64 = 112
2244 R_PPC64_TPREL16_HIGHA R_PPC64 = 113
2245 R_PPC64_DTPREL16_HIGH R_PPC64 = 114
2246 R_PPC64_DTPREL16_HIGHA R_PPC64 = 115
2247 R_PPC64_REL24_NOTOC R_PPC64 = 116
2248 R_PPC64_ADDR64_LOCAL R_PPC64 = 117
2249 R_PPC64_ENTRY R_PPC64 = 118
2250 R_PPC64_REL16DX_HA R_PPC64 = 246
2251 R_PPC64_JMP_IREL R_PPC64 = 247
2252 R_PPC64_IRELATIVE R_PPC64 = 248
2253 R_PPC64_REL16 R_PPC64 = 249
2254 R_PPC64_REL16_LO R_PPC64 = 250
2255 R_PPC64_REL16_HI R_PPC64 = 251
2256 R_PPC64_REL16_HA R_PPC64 = 252
2257 )
2258
2259 var rppc64Strings = []intName{
2260 {0, "R_PPC64_NONE"},
2261 {1, "R_PPC64_ADDR32"},
2262 {2, "R_PPC64_ADDR24"},
2263 {3, "R_PPC64_ADDR16"},
2264 {4, "R_PPC64_ADDR16_LO"},
2265 {5, "R_PPC64_ADDR16_HI"},
2266 {6, "R_PPC64_ADDR16_HA"},
2267 {7, "R_PPC64_ADDR14"},
2268 {8, "R_PPC64_ADDR14_BRTAKEN"},
2269 {9, "R_PPC64_ADDR14_BRNTAKEN"},
2270 {10, "R_PPC64_REL24"},
2271 {11, "R_PPC64_REL14"},
2272 {12, "R_PPC64_REL14_BRTAKEN"},
2273 {13, "R_PPC64_REL14_BRNTAKEN"},
2274 {14, "R_PPC64_GOT16"},
2275 {15, "R_PPC64_GOT16_LO"},
2276 {16, "R_PPC64_GOT16_HI"},
2277 {17, "R_PPC64_GOT16_HA"},
2278 {21, "R_PPC64_JMP_SLOT"},
2279 {26, "R_PPC64_REL32"},
2280 {38, "R_PPC64_ADDR64"},
2281 {39, "R_PPC64_ADDR16_HIGHER"},
2282 {40, "R_PPC64_ADDR16_HIGHERA"},
2283 {41, "R_PPC64_ADDR16_HIGHEST"},
2284 {42, "R_PPC64_ADDR16_HIGHESTA"},
2285 {44, "R_PPC64_REL64"},
2286 {47, "R_PPC64_TOC16"},
2287 {48, "R_PPC64_TOC16_LO"},
2288 {49, "R_PPC64_TOC16_HI"},
2289 {50, "R_PPC64_TOC16_HA"},
2290 {51, "R_PPC64_TOC"},
2291 {52, "R_PPC64_PLTGOT16"},
2292 {53, "R_PPC64_PLTGOT16_LO"},
2293 {54, "R_PPC64_PLTGOT16_HI"},
2294 {55, "R_PPC64_PLTGOT16_HA"},
2295 {56, "R_PPC64_ADDR16_DS"},
2296 {57, "R_PPC64_ADDR16_LO_DS"},
2297 {58, "R_PPC64_GOT16_DS"},
2298 {59, "R_PPC64_GOT16_LO_DS"},
2299 {60, "R_PPC64_PLT16_LO_DS"},
2300 {61, "R_PPC64_SECTOFF_DS"},
2301 {61, "R_PPC64_SECTOFF_LO_DS"},
2302 {63, "R_PPC64_TOC16_DS"},
2303 {64, "R_PPC64_TOC16_LO_DS"},
2304 {65, "R_PPC64_PLTGOT16_DS"},
2305 {66, "R_PPC64_PLTGOT_LO_DS"},
2306 {67, "R_PPC64_TLS"},
2307 {68, "R_PPC64_DTPMOD64"},
2308 {69, "R_PPC64_TPREL16"},
2309 {70, "R_PPC64_TPREL16_LO"},
2310 {71, "R_PPC64_TPREL16_HI"},
2311 {72, "R_PPC64_TPREL16_HA"},
2312 {73, "R_PPC64_TPREL64"},
2313 {74, "R_PPC64_DTPREL16"},
2314 {75, "R_PPC64_DTPREL16_LO"},
2315 {76, "R_PPC64_DTPREL16_HI"},
2316 {77, "R_PPC64_DTPREL16_HA"},
2317 {78, "R_PPC64_DTPREL64"},
2318 {79, "R_PPC64_GOT_TLSGD16"},
2319 {80, "R_PPC64_GOT_TLSGD16_LO"},
2320 {81, "R_PPC64_GOT_TLSGD16_HI"},
2321 {82, "R_PPC64_GOT_TLSGD16_HA"},
2322 {83, "R_PPC64_GOT_TLSLD16"},
2323 {84, "R_PPC64_GOT_TLSLD16_LO"},
2324 {85, "R_PPC64_GOT_TLSLD16_HI"},
2325 {86, "R_PPC64_GOT_TLSLD16_HA"},
2326 {87, "R_PPC64_GOT_TPREL16_DS"},
2327 {88, "R_PPC64_GOT_TPREL16_LO_DS"},
2328 {89, "R_PPC64_GOT_TPREL16_HI"},
2329 {90, "R_PPC64_GOT_TPREL16_HA"},
2330 {91, "R_PPC64_GOT_DTPREL16_DS"},
2331 {92, "R_PPC64_GOT_DTPREL16_LO_DS"},
2332 {93, "R_PPC64_GOT_DTPREL16_HI"},
2333 {94, "R_PPC64_GOT_DTPREL16_HA"},
2334 {95, "R_PPC64_TPREL16_DS"},
2335 {96, "R_PPC64_TPREL16_LO_DS"},
2336 {97, "R_PPC64_TPREL16_HIGHER"},
2337 {98, "R_PPC64_TPREL16_HIGHERA"},
2338 {99, "R_PPC64_TPREL16_HIGHEST"},
2339 {100, "R_PPC64_TPREL16_HIGHESTA"},
2340 {101, "R_PPC64_DTPREL16_DS"},
2341 {102, "R_PPC64_DTPREL16_LO_DS"},
2342 {103, "R_PPC64_DTPREL16_HIGHER"},
2343 {104, "R_PPC64_DTPREL16_HIGHERA"},
2344 {105, "R_PPC64_DTPREL16_HIGHEST"},
2345 {106, "R_PPC64_DTPREL16_HIGHESTA"},
2346 {107, "R_PPC64_TLSGD"},
2347 {108, "R_PPC64_TLSLD"},
2348 {109, "R_PPC64_TOCSAVE"},
2349 {110, "R_PPC64_ADDR16_HIGH"},
2350 {111, "R_PPC64_ADDR16_HIGHA"},
2351 {112, "R_PPC64_TPREL16_HIGH"},
2352 {113, "R_PPC64_TPREL16_HIGHA"},
2353 {114, "R_PPC64_DTPREL16_HIGH"},
2354 {115, "R_PPC64_DTPREL16_HIGHA"},
2355 {116, "R_PPC64_REL24_NOTOC"},
2356 {117, "R_PPC64_ADDR64_LOCAL"},
2357 {118, "R_PPC64_ENTRY"},
2358 {246, "R_PPC64_REL16DX_HA"},
2359 {247, "R_PPC64_JMP_IREL"},
2360 {248, "R_PPC64_IRELATIVE"},
2361 {249, "R_PPC64_REL16"},
2362 {250, "R_PPC64_REL16_LO"},
2363 {251, "R_PPC64_REL16_HI"},
2364 {252, "R_PPC64_REL16_HA"},
2365 }
2366
2367 func (i R_PPC64) String() string { return stringName(uint32(i), rppc64Strings, false) }
2368 func (i R_PPC64) GoString() string { return stringName(uint32(i), rppc64Strings, true) }
2369
2370
2371 type R_RISCV int
2372
2373 const (
2374 R_RISCV_NONE R_RISCV = 0
2375 R_RISCV_32 R_RISCV = 1
2376 R_RISCV_64 R_RISCV = 2
2377 R_RISCV_RELATIVE R_RISCV = 3
2378 R_RISCV_COPY R_RISCV = 4
2379 R_RISCV_JUMP_SLOT R_RISCV = 5
2380 R_RISCV_TLS_DTPMOD32 R_RISCV = 6
2381 R_RISCV_TLS_DTPMOD64 R_RISCV = 7
2382 R_RISCV_TLS_DTPREL32 R_RISCV = 8
2383 R_RISCV_TLS_DTPREL64 R_RISCV = 9
2384 R_RISCV_TLS_TPREL32 R_RISCV = 10
2385 R_RISCV_TLS_TPREL64 R_RISCV = 11
2386 R_RISCV_BRANCH R_RISCV = 16
2387 R_RISCV_JAL R_RISCV = 17
2388 R_RISCV_CALL R_RISCV = 18
2389 R_RISCV_CALL_PLT R_RISCV = 19
2390 R_RISCV_GOT_HI20 R_RISCV = 20
2391 R_RISCV_TLS_GOT_HI20 R_RISCV = 21
2392 R_RISCV_TLS_GD_HI20 R_RISCV = 22
2393 R_RISCV_PCREL_HI20 R_RISCV = 23
2394 R_RISCV_PCREL_LO12_I R_RISCV = 24
2395 R_RISCV_PCREL_LO12_S R_RISCV = 25
2396 R_RISCV_HI20 R_RISCV = 26
2397 R_RISCV_LO12_I R_RISCV = 27
2398 R_RISCV_LO12_S R_RISCV = 28
2399 R_RISCV_TPREL_HI20 R_RISCV = 29
2400 R_RISCV_TPREL_LO12_I R_RISCV = 30
2401 R_RISCV_TPREL_LO12_S R_RISCV = 31
2402 R_RISCV_TPREL_ADD R_RISCV = 32
2403 R_RISCV_ADD8 R_RISCV = 33
2404 R_RISCV_ADD16 R_RISCV = 34
2405 R_RISCV_ADD32 R_RISCV = 35
2406 R_RISCV_ADD64 R_RISCV = 36
2407 R_RISCV_SUB8 R_RISCV = 37
2408 R_RISCV_SUB16 R_RISCV = 38
2409 R_RISCV_SUB32 R_RISCV = 39
2410 R_RISCV_SUB64 R_RISCV = 40
2411 R_RISCV_GNU_VTINHERIT R_RISCV = 41
2412 R_RISCV_GNU_VTENTRY R_RISCV = 42
2413 R_RISCV_ALIGN R_RISCV = 43
2414 R_RISCV_RVC_BRANCH R_RISCV = 44
2415 R_RISCV_RVC_JUMP R_RISCV = 45
2416 R_RISCV_RVC_LUI R_RISCV = 46
2417 R_RISCV_GPREL_I R_RISCV = 47
2418 R_RISCV_GPREL_S R_RISCV = 48
2419 R_RISCV_TPREL_I R_RISCV = 49
2420 R_RISCV_TPREL_S R_RISCV = 50
2421 R_RISCV_RELAX R_RISCV = 51
2422 R_RISCV_SUB6 R_RISCV = 52
2423 R_RISCV_SET6 R_RISCV = 53
2424 R_RISCV_SET8 R_RISCV = 54
2425 R_RISCV_SET16 R_RISCV = 55
2426 R_RISCV_SET32 R_RISCV = 56
2427 R_RISCV_32_PCREL R_RISCV = 57
2428 )
2429
2430 var rriscvStrings = []intName{
2431 {0, "R_RISCV_NONE"},
2432 {1, "R_RISCV_32"},
2433 {2, "R_RISCV_64"},
2434 {3, "R_RISCV_RELATIVE"},
2435 {4, "R_RISCV_COPY"},
2436 {5, "R_RISCV_JUMP_SLOT"},
2437 {6, "R_RISCV_TLS_DTPMOD32"},
2438 {7, "R_RISCV_TLS_DTPMOD64"},
2439 {8, "R_RISCV_TLS_DTPREL32"},
2440 {9, "R_RISCV_TLS_DTPREL64"},
2441 {10, "R_RISCV_TLS_TPREL32"},
2442 {11, "R_RISCV_TLS_TPREL64"},
2443 {16, "R_RISCV_BRANCH"},
2444 {17, "R_RISCV_JAL"},
2445 {18, "R_RISCV_CALL"},
2446 {19, "R_RISCV_CALL_PLT"},
2447 {20, "R_RISCV_GOT_HI20"},
2448 {21, "R_RISCV_TLS_GOT_HI20"},
2449 {22, "R_RISCV_TLS_GD_HI20"},
2450 {23, "R_RISCV_PCREL_HI20"},
2451 {24, "R_RISCV_PCREL_LO12_I"},
2452 {25, "R_RISCV_PCREL_LO12_S"},
2453 {26, "R_RISCV_HI20"},
2454 {27, "R_RISCV_LO12_I"},
2455 {28, "R_RISCV_LO12_S"},
2456 {29, "R_RISCV_TPREL_HI20"},
2457 {30, "R_RISCV_TPREL_LO12_I"},
2458 {31, "R_RISCV_TPREL_LO12_S"},
2459 {32, "R_RISCV_TPREL_ADD"},
2460 {33, "R_RISCV_ADD8"},
2461 {34, "R_RISCV_ADD16"},
2462 {35, "R_RISCV_ADD32"},
2463 {36, "R_RISCV_ADD64"},
2464 {37, "R_RISCV_SUB8"},
2465 {38, "R_RISCV_SUB16"},
2466 {39, "R_RISCV_SUB32"},
2467 {40, "R_RISCV_SUB64"},
2468 {41, "R_RISCV_GNU_VTINHERIT"},
2469 {42, "R_RISCV_GNU_VTENTRY"},
2470 {43, "R_RISCV_ALIGN"},
2471 {44, "R_RISCV_RVC_BRANCH"},
2472 {45, "R_RISCV_RVC_JUMP"},
2473 {46, "R_RISCV_RVC_LUI"},
2474 {47, "R_RISCV_GPREL_I"},
2475 {48, "R_RISCV_GPREL_S"},
2476 {49, "R_RISCV_TPREL_I"},
2477 {50, "R_RISCV_TPREL_S"},
2478 {51, "R_RISCV_RELAX"},
2479 {52, "R_RISCV_SUB6"},
2480 {53, "R_RISCV_SET6"},
2481 {54, "R_RISCV_SET8"},
2482 {55, "R_RISCV_SET16"},
2483 {56, "R_RISCV_SET32"},
2484 {57, "R_RISCV_32_PCREL"},
2485 }
2486
2487 func (i R_RISCV) String() string { return stringName(uint32(i), rriscvStrings, false) }
2488 func (i R_RISCV) GoString() string { return stringName(uint32(i), rriscvStrings, true) }
2489
2490
2491 type R_390 int
2492
2493 const (
2494 R_390_NONE R_390 = 0
2495 R_390_8 R_390 = 1
2496 R_390_12 R_390 = 2
2497 R_390_16 R_390 = 3
2498 R_390_32 R_390 = 4
2499 R_390_PC32 R_390 = 5
2500 R_390_GOT12 R_390 = 6
2501 R_390_GOT32 R_390 = 7
2502 R_390_PLT32 R_390 = 8
2503 R_390_COPY R_390 = 9
2504 R_390_GLOB_DAT R_390 = 10
2505 R_390_JMP_SLOT R_390 = 11
2506 R_390_RELATIVE R_390 = 12
2507 R_390_GOTOFF R_390 = 13
2508 R_390_GOTPC R_390 = 14
2509 R_390_GOT16 R_390 = 15
2510 R_390_PC16 R_390 = 16
2511 R_390_PC16DBL R_390 = 17
2512 R_390_PLT16DBL R_390 = 18
2513 R_390_PC32DBL R_390 = 19
2514 R_390_PLT32DBL R_390 = 20
2515 R_390_GOTPCDBL R_390 = 21
2516 R_390_64 R_390 = 22
2517 R_390_PC64 R_390 = 23
2518 R_390_GOT64 R_390 = 24
2519 R_390_PLT64 R_390 = 25
2520 R_390_GOTENT R_390 = 26
2521 R_390_GOTOFF16 R_390 = 27
2522 R_390_GOTOFF64 R_390 = 28
2523 R_390_GOTPLT12 R_390 = 29
2524 R_390_GOTPLT16 R_390 = 30
2525 R_390_GOTPLT32 R_390 = 31
2526 R_390_GOTPLT64 R_390 = 32
2527 R_390_GOTPLTENT R_390 = 33
2528 R_390_GOTPLTOFF16 R_390 = 34
2529 R_390_GOTPLTOFF32 R_390 = 35
2530 R_390_GOTPLTOFF64 R_390 = 36
2531 R_390_TLS_LOAD R_390 = 37
2532 R_390_TLS_GDCALL R_390 = 38
2533 R_390_TLS_LDCALL R_390 = 39
2534 R_390_TLS_GD32 R_390 = 40
2535 R_390_TLS_GD64 R_390 = 41
2536 R_390_TLS_GOTIE12 R_390 = 42
2537 R_390_TLS_GOTIE32 R_390 = 43
2538 R_390_TLS_GOTIE64 R_390 = 44
2539 R_390_TLS_LDM32 R_390 = 45
2540 R_390_TLS_LDM64 R_390 = 46
2541 R_390_TLS_IE32 R_390 = 47
2542 R_390_TLS_IE64 R_390 = 48
2543 R_390_TLS_IEENT R_390 = 49
2544 R_390_TLS_LE32 R_390 = 50
2545 R_390_TLS_LE64 R_390 = 51
2546 R_390_TLS_LDO32 R_390 = 52
2547 R_390_TLS_LDO64 R_390 = 53
2548 R_390_TLS_DTPMOD R_390 = 54
2549 R_390_TLS_DTPOFF R_390 = 55
2550 R_390_TLS_TPOFF R_390 = 56
2551 R_390_20 R_390 = 57
2552 R_390_GOT20 R_390 = 58
2553 R_390_GOTPLT20 R_390 = 59
2554 R_390_TLS_GOTIE20 R_390 = 60
2555 )
2556
2557 var r390Strings = []intName{
2558 {0, "R_390_NONE"},
2559 {1, "R_390_8"},
2560 {2, "R_390_12"},
2561 {3, "R_390_16"},
2562 {4, "R_390_32"},
2563 {5, "R_390_PC32"},
2564 {6, "R_390_GOT12"},
2565 {7, "R_390_GOT32"},
2566 {8, "R_390_PLT32"},
2567 {9, "R_390_COPY"},
2568 {10, "R_390_GLOB_DAT"},
2569 {11, "R_390_JMP_SLOT"},
2570 {12, "R_390_RELATIVE"},
2571 {13, "R_390_GOTOFF"},
2572 {14, "R_390_GOTPC"},
2573 {15, "R_390_GOT16"},
2574 {16, "R_390_PC16"},
2575 {17, "R_390_PC16DBL"},
2576 {18, "R_390_PLT16DBL"},
2577 {19, "R_390_PC32DBL"},
2578 {20, "R_390_PLT32DBL"},
2579 {21, "R_390_GOTPCDBL"},
2580 {22, "R_390_64"},
2581 {23, "R_390_PC64"},
2582 {24, "R_390_GOT64"},
2583 {25, "R_390_PLT64"},
2584 {26, "R_390_GOTENT"},
2585 {27, "R_390_GOTOFF16"},
2586 {28, "R_390_GOTOFF64"},
2587 {29, "R_390_GOTPLT12"},
2588 {30, "R_390_GOTPLT16"},
2589 {31, "R_390_GOTPLT32"},
2590 {32, "R_390_GOTPLT64"},
2591 {33, "R_390_GOTPLTENT"},
2592 {34, "R_390_GOTPLTOFF16"},
2593 {35, "R_390_GOTPLTOFF32"},
2594 {36, "R_390_GOTPLTOFF64"},
2595 {37, "R_390_TLS_LOAD"},
2596 {38, "R_390_TLS_GDCALL"},
2597 {39, "R_390_TLS_LDCALL"},
2598 {40, "R_390_TLS_GD32"},
2599 {41, "R_390_TLS_GD64"},
2600 {42, "R_390_TLS_GOTIE12"},
2601 {43, "R_390_TLS_GOTIE32"},
2602 {44, "R_390_TLS_GOTIE64"},
2603 {45, "R_390_TLS_LDM32"},
2604 {46, "R_390_TLS_LDM64"},
2605 {47, "R_390_TLS_IE32"},
2606 {48, "R_390_TLS_IE64"},
2607 {49, "R_390_TLS_IEENT"},
2608 {50, "R_390_TLS_LE32"},
2609 {51, "R_390_TLS_LE64"},
2610 {52, "R_390_TLS_LDO32"},
2611 {53, "R_390_TLS_LDO64"},
2612 {54, "R_390_TLS_DTPMOD"},
2613 {55, "R_390_TLS_DTPOFF"},
2614 {56, "R_390_TLS_TPOFF"},
2615 {57, "R_390_20"},
2616 {58, "R_390_GOT20"},
2617 {59, "R_390_GOTPLT20"},
2618 {60, "R_390_TLS_GOTIE20"},
2619 }
2620
2621 func (i R_390) String() string { return stringName(uint32(i), r390Strings, false) }
2622 func (i R_390) GoString() string { return stringName(uint32(i), r390Strings, true) }
2623
2624
2625 type R_SPARC int
2626
2627 const (
2628 R_SPARC_NONE R_SPARC = 0
2629 R_SPARC_8 R_SPARC = 1
2630 R_SPARC_16 R_SPARC = 2
2631 R_SPARC_32 R_SPARC = 3
2632 R_SPARC_DISP8 R_SPARC = 4
2633 R_SPARC_DISP16 R_SPARC = 5
2634 R_SPARC_DISP32 R_SPARC = 6
2635 R_SPARC_WDISP30 R_SPARC = 7
2636 R_SPARC_WDISP22 R_SPARC = 8
2637 R_SPARC_HI22 R_SPARC = 9
2638 R_SPARC_22 R_SPARC = 10
2639 R_SPARC_13 R_SPARC = 11
2640 R_SPARC_LO10 R_SPARC = 12
2641 R_SPARC_GOT10 R_SPARC = 13
2642 R_SPARC_GOT13 R_SPARC = 14
2643 R_SPARC_GOT22 R_SPARC = 15
2644 R_SPARC_PC10 R_SPARC = 16
2645 R_SPARC_PC22 R_SPARC = 17
2646 R_SPARC_WPLT30 R_SPARC = 18
2647 R_SPARC_COPY R_SPARC = 19
2648 R_SPARC_GLOB_DAT R_SPARC = 20
2649 R_SPARC_JMP_SLOT R_SPARC = 21
2650 R_SPARC_RELATIVE R_SPARC = 22
2651 R_SPARC_UA32 R_SPARC = 23
2652 R_SPARC_PLT32 R_SPARC = 24
2653 R_SPARC_HIPLT22 R_SPARC = 25
2654 R_SPARC_LOPLT10 R_SPARC = 26
2655 R_SPARC_PCPLT32 R_SPARC = 27
2656 R_SPARC_PCPLT22 R_SPARC = 28
2657 R_SPARC_PCPLT10 R_SPARC = 29
2658 R_SPARC_10 R_SPARC = 30
2659 R_SPARC_11 R_SPARC = 31
2660 R_SPARC_64 R_SPARC = 32
2661 R_SPARC_OLO10 R_SPARC = 33
2662 R_SPARC_HH22 R_SPARC = 34
2663 R_SPARC_HM10 R_SPARC = 35
2664 R_SPARC_LM22 R_SPARC = 36
2665 R_SPARC_PC_HH22 R_SPARC = 37
2666 R_SPARC_PC_HM10 R_SPARC = 38
2667 R_SPARC_PC_LM22 R_SPARC = 39
2668 R_SPARC_WDISP16 R_SPARC = 40
2669 R_SPARC_WDISP19 R_SPARC = 41
2670 R_SPARC_GLOB_JMP R_SPARC = 42
2671 R_SPARC_7 R_SPARC = 43
2672 R_SPARC_5 R_SPARC = 44
2673 R_SPARC_6 R_SPARC = 45
2674 R_SPARC_DISP64 R_SPARC = 46
2675 R_SPARC_PLT64 R_SPARC = 47
2676 R_SPARC_HIX22 R_SPARC = 48
2677 R_SPARC_LOX10 R_SPARC = 49
2678 R_SPARC_H44 R_SPARC = 50
2679 R_SPARC_M44 R_SPARC = 51
2680 R_SPARC_L44 R_SPARC = 52
2681 R_SPARC_REGISTER R_SPARC = 53
2682 R_SPARC_UA64 R_SPARC = 54
2683 R_SPARC_UA16 R_SPARC = 55
2684 )
2685
2686 var rsparcStrings = []intName{
2687 {0, "R_SPARC_NONE"},
2688 {1, "R_SPARC_8"},
2689 {2, "R_SPARC_16"},
2690 {3, "R_SPARC_32"},
2691 {4, "R_SPARC_DISP8"},
2692 {5, "R_SPARC_DISP16"},
2693 {6, "R_SPARC_DISP32"},
2694 {7, "R_SPARC_WDISP30"},
2695 {8, "R_SPARC_WDISP22"},
2696 {9, "R_SPARC_HI22"},
2697 {10, "R_SPARC_22"},
2698 {11, "R_SPARC_13"},
2699 {12, "R_SPARC_LO10"},
2700 {13, "R_SPARC_GOT10"},
2701 {14, "R_SPARC_GOT13"},
2702 {15, "R_SPARC_GOT22"},
2703 {16, "R_SPARC_PC10"},
2704 {17, "R_SPARC_PC22"},
2705 {18, "R_SPARC_WPLT30"},
2706 {19, "R_SPARC_COPY"},
2707 {20, "R_SPARC_GLOB_DAT"},
2708 {21, "R_SPARC_JMP_SLOT"},
2709 {22, "R_SPARC_RELATIVE"},
2710 {23, "R_SPARC_UA32"},
2711 {24, "R_SPARC_PLT32"},
2712 {25, "R_SPARC_HIPLT22"},
2713 {26, "R_SPARC_LOPLT10"},
2714 {27, "R_SPARC_PCPLT32"},
2715 {28, "R_SPARC_PCPLT22"},
2716 {29, "R_SPARC_PCPLT10"},
2717 {30, "R_SPARC_10"},
2718 {31, "R_SPARC_11"},
2719 {32, "R_SPARC_64"},
2720 {33, "R_SPARC_OLO10"},
2721 {34, "R_SPARC_HH22"},
2722 {35, "R_SPARC_HM10"},
2723 {36, "R_SPARC_LM22"},
2724 {37, "R_SPARC_PC_HH22"},
2725 {38, "R_SPARC_PC_HM10"},
2726 {39, "R_SPARC_PC_LM22"},
2727 {40, "R_SPARC_WDISP16"},
2728 {41, "R_SPARC_WDISP19"},
2729 {42, "R_SPARC_GLOB_JMP"},
2730 {43, "R_SPARC_7"},
2731 {44, "R_SPARC_5"},
2732 {45, "R_SPARC_6"},
2733 {46, "R_SPARC_DISP64"},
2734 {47, "R_SPARC_PLT64"},
2735 {48, "R_SPARC_HIX22"},
2736 {49, "R_SPARC_LOX10"},
2737 {50, "R_SPARC_H44"},
2738 {51, "R_SPARC_M44"},
2739 {52, "R_SPARC_L44"},
2740 {53, "R_SPARC_REGISTER"},
2741 {54, "R_SPARC_UA64"},
2742 {55, "R_SPARC_UA16"},
2743 }
2744
2745 func (i R_SPARC) String() string { return stringName(uint32(i), rsparcStrings, false) }
2746 func (i R_SPARC) GoString() string { return stringName(uint32(i), rsparcStrings, true) }
2747
2748
2749 const ARM_MAGIC_TRAMP_NUMBER = 0x5c000003
2750
2751
2752 type Header32 struct {
2753 Ident [EI_NIDENT]byte
2754 Type uint16
2755 Machine uint16
2756 Version uint32
2757 Entry uint32
2758 Phoff uint32
2759 Shoff uint32
2760 Flags uint32
2761 Ehsize uint16
2762 Phentsize uint16
2763 Phnum uint16
2764 Shentsize uint16
2765 Shnum uint16
2766 Shstrndx uint16
2767 }
2768
2769
2770 type Section32 struct {
2771 Name uint32
2772 Type uint32
2773 Flags uint32
2774 Addr uint32
2775 Off uint32
2776 Size uint32
2777 Link uint32
2778 Info uint32
2779 Addralign uint32
2780 Entsize uint32
2781 }
2782
2783
2784 type Prog32 struct {
2785 Type uint32
2786 Off uint32
2787 Vaddr uint32
2788 Paddr uint32
2789 Filesz uint32
2790 Memsz uint32
2791 Flags uint32
2792 Align uint32
2793 }
2794
2795
2796 type Dyn32 struct {
2797 Tag int32
2798 Val uint32
2799 }
2800
2801
2802 type Chdr32 struct {
2803 Type uint32
2804 Size uint32
2805 Addralign uint32
2806 }
2807
2808
2811
2812
2813 type Rel32 struct {
2814 Off uint32
2815 Info uint32
2816 }
2817
2818
2819 type Rela32 struct {
2820 Off uint32
2821 Info uint32
2822 Addend int32
2823 }
2824
2825 func R_SYM32(info uint32) uint32 { return info >> 8 }
2826 func R_TYPE32(info uint32) uint32 { return info & 0xff }
2827 func R_INFO32(sym, typ uint32) uint32 { return sym<<8 | typ }
2828
2829
2830 type Sym32 struct {
2831 Name uint32
2832 Value uint32
2833 Size uint32
2834 Info uint8
2835 Other uint8
2836 Shndx uint16
2837 }
2838
2839 const Sym32Size = 16
2840
2841 func ST_BIND(info uint8) SymBind { return SymBind(info >> 4) }
2842 func ST_TYPE(info uint8) SymType { return SymType(info & 0xF) }
2843 func ST_INFO(bind SymBind, typ SymType) uint8 {
2844 return uint8(bind)<<4 | uint8(typ)&0xf
2845 }
2846 func ST_VISIBILITY(other uint8) SymVis { return SymVis(other & 3) }
2847
2848
2851
2852
2853 type Header64 struct {
2854 Ident [EI_NIDENT]byte
2855 Type uint16
2856 Machine uint16
2857 Version uint32
2858 Entry uint64
2859 Phoff uint64
2860 Shoff uint64
2861 Flags uint32
2862 Ehsize uint16
2863 Phentsize uint16
2864 Phnum uint16
2865 Shentsize uint16
2866 Shnum uint16
2867 Shstrndx uint16
2868 }
2869
2870
2871 type Section64 struct {
2872 Name uint32
2873 Type uint32
2874 Flags uint64
2875 Addr uint64
2876 Off uint64
2877 Size uint64
2878 Link uint32
2879 Info uint32
2880 Addralign uint64
2881 Entsize uint64
2882 }
2883
2884
2885 type Prog64 struct {
2886 Type uint32
2887 Flags uint32
2888 Off uint64
2889 Vaddr uint64
2890 Paddr uint64
2891 Filesz uint64
2892 Memsz uint64
2893 Align uint64
2894 }
2895
2896
2897 type Dyn64 struct {
2898 Tag int64
2899 Val uint64
2900 }
2901
2902
2903 type Chdr64 struct {
2904 Type uint32
2905 _ uint32
2906 Size uint64
2907 Addralign uint64
2908 }
2909
2910
2913
2914
2915 type Rel64 struct {
2916 Off uint64
2917 Info uint64
2918 }
2919
2920
2921 type Rela64 struct {
2922 Off uint64
2923 Info uint64
2924 Addend int64
2925 }
2926
2927 func R_SYM64(info uint64) uint32 { return uint32(info >> 32) }
2928 func R_TYPE64(info uint64) uint32 { return uint32(info) }
2929 func R_INFO(sym, typ uint32) uint64 { return uint64(sym)<<32 | uint64(typ) }
2930
2931
2932 type Sym64 struct {
2933 Name uint32
2934 Info uint8
2935 Other uint8
2936 Shndx uint16
2937 Value uint64
2938 Size uint64
2939 }
2940
2941 const Sym64Size = 24
2942
2943 type intName struct {
2944 i uint32
2945 s string
2946 }
2947
2948 func stringName(i uint32, names []intName, goSyntax bool) string {
2949 for _, n := range names {
2950 if n.i == i {
2951 if goSyntax {
2952 return "elf." + n.s
2953 }
2954 return n.s
2955 }
2956 }
2957
2958
2959
2960 for j := len(names) - 1; j >= 0; j-- {
2961 n := names[j]
2962 if n.i < i {
2963 s := n.s
2964 if goSyntax {
2965 s = "elf." + s
2966 }
2967 return s + "+" + strconv.FormatUint(uint64(i-n.i), 10)
2968 }
2969 }
2970
2971 return strconv.FormatUint(uint64(i), 10)
2972 }
2973
2974 func flagName(i uint32, names []intName, goSyntax bool) string {
2975 s := ""
2976 for _, n := range names {
2977 if n.i&i == n.i {
2978 if len(s) > 0 {
2979 s += "+"
2980 }
2981 if goSyntax {
2982 s += "elf."
2983 }
2984 s += n.s
2985 i -= n.i
2986 }
2987 }
2988 if len(s) == 0 {
2989 return "0x" + strconv.FormatUint(uint64(i), 16)
2990 }
2991 if i != 0 {
2992 s += "+0x" + strconv.FormatUint(uint64(i), 16)
2993 }
2994 return s
2995 }
2996
View as plain text