LLVM 22.0.0git
ELF.cpp
Go to the documentation of this file.
1//===- llvm/BinaryFormat/ELF.cpp - The ELF format ---------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
11
12using namespace llvm;
13using namespace ELF;
14
15/// Convert an architecture name into ELF's e_machine value.
17 std::string LowerArch = Arch.lower();
18 return StringSwitch<uint16_t>(LowerArch)
19 .Case("none", EM_NONE)
20 .Case("m32", EM_M32)
21 .Case("sparc", EM_SPARC)
22 .Case("386", EM_386)
23 .Case("68k", EM_68K)
24 .Case("88k", EM_88K)
25 .Case("iamcu", EM_IAMCU)
26 .Case("860", EM_860)
27 .Case("mips", EM_MIPS)
28 .Case("s370", EM_S370)
29 .Case("mips_rs3_le", EM_MIPS_RS3_LE)
30 .Case("parisc", EM_PARISC)
31 .Case("vpp500", EM_VPP500)
32 .Case("sparc32plus", EM_SPARC32PLUS)
33 .Case("960", EM_960)
34 .Case("ppc", EM_PPC)
35 .Case("ppc64", EM_PPC64)
36 .Case("s390", EM_S390)
37 .Case("spu", EM_SPU)
38 .Case("v800", EM_V800)
39 .Case("fr20", EM_FR20)
40 .Case("rh32", EM_RH32)
41 .Case("rce", EM_RCE)
42 .Case("arm", EM_ARM)
43 .Case("alpha", EM_ALPHA)
44 .Case("sh", EM_SH)
45 .Case("sparcv9", EM_SPARCV9)
46 .Case("tricore", EM_TRICORE)
47 .Case("arc", EM_ARC)
48 .Case("h8_300", EM_H8_300)
49 .Case("h8_300h", EM_H8_300H)
50 .Case("h8s", EM_H8S)
51 .Case("h8_500", EM_H8_500)
52 .Case("ia_64", EM_IA_64)
53 .Case("mips_x", EM_MIPS_X)
54 .Case("coldfire", EM_COLDFIRE)
55 .Case("68hc12", EM_68HC12)
56 .Case("mma", EM_MMA)
57 .Case("pcp", EM_PCP)
58 .Case("ncpu", EM_NCPU)
59 .Case("ndr1", EM_NDR1)
60 .Case("starcore", EM_STARCORE)
61 .Case("me16", EM_ME16)
62 .Case("st100", EM_ST100)
63 .Case("tinyj", EM_TINYJ)
64 .Case("x86_64", EM_X86_64)
65 .Case("pdsp", EM_PDSP)
66 .Case("pdp10", EM_PDP10)
67 .Case("pdp11", EM_PDP11)
68 .Case("fx66", EM_FX66)
69 .Case("st9plus", EM_ST9PLUS)
70 .Case("st7", EM_ST7)
71 .Case("68hc16", EM_68HC16)
72 .Case("68hc11", EM_68HC11)
73 .Case("68hc08", EM_68HC08)
74 .Case("68hc05", EM_68HC05)
75 .Case("svx", EM_SVX)
76 .Case("st19", EM_ST19)
77 .Case("vax", EM_VAX)
78 .Case("cris", EM_CRIS)
79 .Case("javelin", EM_JAVELIN)
80 .Case("firepath", EM_FIREPATH)
81 .Case("zsp", EM_ZSP)
82 .Case("mmix", EM_MMIX)
83 .Case("huany", EM_HUANY)
84 .Case("prism", EM_PRISM)
85 .Case("avr", EM_AVR)
86 .Case("fr30", EM_FR30)
87 .Case("d10v", EM_D10V)
88 .Case("d30v", EM_D30V)
89 .Case("v850", EM_V850)
90 .Case("m32r", EM_M32R)
91 .Case("mn10300", EM_MN10300)
92 .Case("mn10200", EM_MN10200)
93 .Case("pj", EM_PJ)
94 .Case("openrisc", EM_OPENRISC)
95 .Case("arc_compact", EM_ARC_COMPACT)
96 .Case("xtensa", EM_XTENSA)
97 .Case("videocore", EM_VIDEOCORE)
98 .Case("tmm_gpp", EM_TMM_GPP)
99 .Case("ns32k", EM_NS32K)
100 .Case("tpc", EM_TPC)
101 .Case("snp1k", EM_SNP1K)
102 .Case("st200", EM_ST200)
103 .Case("ip2k", EM_IP2K)
104 .Case("max", EM_MAX)
105 .Case("cr", EM_CR)
106 .Case("f2mc16", EM_F2MC16)
107 .Case("msp430", EM_MSP430)
108 .Case("blackfin", EM_BLACKFIN)
109 .Case("se_c33", EM_SE_C33)
110 .Case("sep", EM_SEP)
111 .Case("arca", EM_ARCA)
112 .Case("unicore", EM_UNICORE)
113 .Case("excess", EM_EXCESS)
114 .Case("dxp", EM_DXP)
115 .Case("altera_nios2", EM_ALTERA_NIOS2)
116 .Case("crx", EM_CRX)
117 .Case("xgate", EM_XGATE)
118 .Case("c166", EM_C166)
119 .Case("m16c", EM_M16C)
120 .Case("dspic30f", EM_DSPIC30F)
121 .Case("ce", EM_CE)
122 .Case("m32c", EM_M32C)
123 .Case("tsk3000", EM_TSK3000)
124 .Case("rs08", EM_RS08)
125 .Case("sharc", EM_SHARC)
126 .Case("ecog2", EM_ECOG2)
127 .Case("score7", EM_SCORE7)
128 .Case("dsp24", EM_DSP24)
129 .Case("videocore3", EM_VIDEOCORE3)
130 .Case("latticemico32", EM_LATTICEMICO32)
131 .Case("se_c17", EM_SE_C17)
132 .Case("ti_c6000", EM_TI_C6000)
133 .Case("ti_c2000", EM_TI_C2000)
134 .Case("ti_c5500", EM_TI_C5500)
135 .Case("mmdsp_plus", EM_MMDSP_PLUS)
136 .Case("cypress_m8c", EM_CYPRESS_M8C)
137 .Case("r32c", EM_R32C)
138 .Case("trimedia", EM_TRIMEDIA)
139 .Case("hexagon", EM_HEXAGON)
140 .Case("8051", EM_8051)
141 .Case("stxp7x", EM_STXP7X)
142 .Case("nds32", EM_NDS32)
143 .Case("ecog1", EM_ECOG1)
144 .Case("ecog1x", EM_ECOG1X)
145 .Case("maxq30", EM_MAXQ30)
146 .Case("ximo16", EM_XIMO16)
147 .Case("manik", EM_MANIK)
148 .Case("craynv2", EM_CRAYNV2)
149 .Case("rx", EM_RX)
150 .Case("metag", EM_METAG)
151 .Case("mcst_elbrus", EM_MCST_ELBRUS)
152 .Case("ecog16", EM_ECOG16)
153 .Case("cr16", EM_CR16)
154 .Case("etpu", EM_ETPU)
155 .Case("sle9x", EM_SLE9X)
156 .Case("l10m", EM_L10M)
157 .Case("k10m", EM_K10M)
158 .Case("aarch64", EM_AARCH64)
159 .Case("avr32", EM_AVR32)
160 .Case("stm8", EM_STM8)
161 .Case("tile64", EM_TILE64)
162 .Case("tilepro", EM_TILEPRO)
163 .Case("cuda", EM_CUDA)
164 .Case("tilegx", EM_TILEGX)
165 .Case("cloudshield", EM_CLOUDSHIELD)
166 .Case("corea_1st", EM_COREA_1ST)
167 .Case("corea_2nd", EM_COREA_2ND)
168 .Case("arc_compact2", EM_ARC_COMPACT2)
169 .Case("open8", EM_OPEN8)
170 .Case("rl78", EM_RL78)
171 .Case("videocore5", EM_VIDEOCORE5)
172 .Case("78kor", EM_78KOR)
173 .Case("56800ex", EM_56800EX)
174 .Case("ba1", EM_BA1)
175 .Case("ba2", EM_BA2)
176 .Case("xcore", EM_XCORE)
177 .Case("mchp_pic", EM_MCHP_PIC)
178 .Case("intel205", EM_INTEL205)
179 .Case("intel206", EM_INTEL206)
180 .Case("intel207", EM_INTEL207)
181 .Case("intel208", EM_INTEL208)
182 .Case("intel209", EM_INTEL209)
183 .Case("km32", EM_KM32)
184 .Case("kmx32", EM_KMX32)
185 .Case("kmx16", EM_KMX16)
186 .Case("kmx8", EM_KMX8)
187 .Case("kvarc", EM_KVARC)
188 .Case("cdp", EM_CDP)
189 .Case("coge", EM_COGE)
190 .Case("cool", EM_COOL)
191 .Case("norc", EM_NORC)
192 .Case("csr_kalimba", EM_CSR_KALIMBA)
193 .Case("amdgpu", EM_AMDGPU)
194 .Case("riscv", EM_RISCV)
195 .Case("lanai", EM_LANAI)
196 .Case("bpf", EM_BPF)
197 .Case("ve", EM_VE)
198 .Case("csky", EM_CSKY)
199 .Case("loongarch", EM_LOONGARCH)
201}
202
204 switch (ArchType) {
206 default:
207 return EM_NONE;
208
209 case Triple::arm:
210 case Triple::armeb:
211 case Triple::thumb:
212 case Triple::thumbeb:
213 return EM_ARM;
214 case Triple::aarch64:
217 return EM_AARCH64;
218 case Triple::arc:
219 return EM_ARC;
220 case Triple::avr:
221 return EM_AVR;
222 case Triple::bpfel:
223 case Triple::bpfeb:
224 return EM_BPF;
225 case Triple::csky:
226 return EM_CSKY;
227 case Triple::hexagon:
228 return EM_HEXAGON;
231 return EM_LOONGARCH;
232 case Triple::m68k:
233 return EM_68K;
234 case Triple::mips:
235 case Triple::mipsel:
236 case Triple::mips64:
237 case Triple::mips64el:
238 return EM_MIPS;
239 case Triple::msp430:
240 return EM_MSP430;
241 case Triple::ppc:
242 case Triple::ppcle:
243 return EM_PPC;
244 case Triple::ppc64:
245 case Triple::ppc64le:
246 return EM_PPC;
247 case Triple::riscv32:
248 case Triple::riscv64:
249 return EM_RISCV;
250 case Triple::sparc:
251 case Triple::sparcel:
252 return EM_SPARC;
253 case Triple::sparcv9:
254 return EM_SPARCV9;
255 case Triple::systemz:
256 return EM_S390;
257 case Triple::x86:
258 return EM_386;
259 case Triple::x86_64:
260 return EM_X86_64;
261 case Triple::xcore:
262 return EM_XCORE;
263 case Triple::xtensa:
264 return EM_XTENSA;
265 }
266}
267
268/// Convert an ELF's e_machine value into an architecture name.
270 switch (EMachine) {
271 case EM_NONE:
272 return "None";
273 case EM_M32:
274 return "m32";
275 case EM_SPARC:
276 return "sparc";
277 case EM_386:
278 return "386";
279 case EM_68K:
280 return "68k";
281 case EM_88K:
282 return "88k";
283 case EM_IAMCU:
284 return "iamcu";
285 case EM_860:
286 return "860";
287 case EM_MIPS:
288 return "mips";
289 case EM_S370:
290 return "s370";
291 case EM_MIPS_RS3_LE:
292 return "mips_rs3_le";
293 case EM_PARISC:
294 return "parisc";
295 case EM_VPP500:
296 return "vpp500";
297 case EM_SPARC32PLUS:
298 return "sparc32plus";
299 case EM_960:
300 return "960";
301 case EM_PPC:
302 return "ppc";
303 case EM_PPC64:
304 return "ppc64";
305 case EM_S390:
306 return "s390";
307 case EM_SPU:
308 return "spu";
309 case EM_V800:
310 return "v800";
311 case EM_FR20:
312 return "fr20";
313 case EM_RH32:
314 return "rh32";
315 case EM_RCE:
316 return "rce";
317 case EM_ARM:
318 return "arm";
319 case EM_ALPHA:
320 return "alpha";
321 case EM_SH:
322 return "sh";
323 case EM_SPARCV9:
324 return "sparcv9";
325 case EM_TRICORE:
326 return "tricore";
327 case EM_ARC:
328 return "arc";
329 case EM_H8_300:
330 return "h8_300";
331 case EM_H8_300H:
332 return "h8_300h";
333 case EM_H8S:
334 return "h8s";
335 case EM_H8_500:
336 return "h8_500";
337 case EM_IA_64:
338 return "ia_64";
339 case EM_MIPS_X:
340 return "mips_x";
341 case EM_COLDFIRE:
342 return "coldfire";
343 case EM_68HC12:
344 return "68hc12";
345 case EM_MMA:
346 return "mma";
347 case EM_PCP:
348 return "pcp";
349 case EM_NCPU:
350 return "ncpu";
351 case EM_NDR1:
352 return "ndr1";
353 case EM_STARCORE:
354 return "starcore";
355 case EM_ME16:
356 return "me16";
357 case EM_ST100:
358 return "st100";
359 case EM_TINYJ:
360 return "tinyj";
361 case EM_X86_64:
362 return "x86_64";
363 case EM_PDSP:
364 return "pdsp";
365 case EM_PDP10:
366 return "pdp10";
367 case EM_PDP11:
368 return "pdp11";
369 case EM_FX66:
370 return "fx66";
371 case EM_ST9PLUS:
372 return "st9plus";
373 case EM_ST7:
374 return "st7";
375 case EM_68HC16:
376 return "68hc16";
377 case EM_68HC11:
378 return "68hc11";
379 case EM_68HC08:
380 return "68hc08";
381 case EM_68HC05:
382 return "68hc05";
383 case EM_SVX:
384 return "svx";
385 case EM_ST19:
386 return "st19";
387 case EM_VAX:
388 return "vax";
389 case EM_CRIS:
390 return "cris";
391 case EM_JAVELIN:
392 return "javelin";
393 case EM_FIREPATH:
394 return "firepath";
395 case EM_ZSP:
396 return "zsp";
397 case EM_MMIX:
398 return "mmix";
399 case EM_HUANY:
400 return "huany";
401 case EM_PRISM:
402 return "prism";
403 case EM_AVR:
404 return "avr";
405 case EM_FR30:
406 return "fr30";
407 case EM_D10V:
408 return "d10v";
409 case EM_D30V:
410 return "d30v";
411 case EM_V850:
412 return "v850";
413 case EM_M32R:
414 return "m32r";
415 case EM_MN10300:
416 return "mn10300";
417 case EM_MN10200:
418 return "mn10200";
419 case EM_PJ:
420 return "pj";
421 case EM_OPENRISC:
422 return "openrisc";
423 case EM_ARC_COMPACT:
424 return "arc_compact";
425 case EM_XTENSA:
426 return "xtensa";
427 case EM_VIDEOCORE:
428 return "videocore";
429 case EM_TMM_GPP:
430 return "tmm_gpp";
431 case EM_NS32K:
432 return "ns32k";
433 case EM_TPC:
434 return "tpc";
435 case EM_SNP1K:
436 return "snp1k";
437 case EM_ST200:
438 return "st200";
439 case EM_IP2K:
440 return "ip2k";
441 case EM_MAX:
442 return "max";
443 case EM_CR:
444 return "cr";
445 case EM_F2MC16:
446 return "f2mc16";
447 case EM_MSP430:
448 return "msp430";
449 case EM_BLACKFIN:
450 return "blackfin";
451 case EM_SE_C33:
452 return "se_c33";
453 case EM_SEP:
454 return "sep";
455 case EM_ARCA:
456 return "arca";
457 case EM_UNICORE:
458 return "unicore";
459 case EM_EXCESS:
460 return "excess";
461 case EM_DXP:
462 return "dxp";
463 case EM_ALTERA_NIOS2:
464 return "altera_nios2";
465 case EM_CRX:
466 return "crx";
467 case EM_XGATE:
468 return "xgate";
469 case EM_C166:
470 return "c166";
471 case EM_M16C:
472 return "m16c";
473 case EM_DSPIC30F:
474 return "dspic30f";
475 case EM_CE:
476 return "ce";
477 case EM_M32C:
478 return "m32c";
479 case EM_TSK3000:
480 return "tsk3000";
481 case EM_RS08:
482 return "rs08";
483 case EM_SHARC:
484 return "sharc";
485 case EM_ECOG2:
486 return "ecog2";
487 case EM_SCORE7:
488 return "score7";
489 case EM_DSP24:
490 return "dsp24";
491 case EM_VIDEOCORE3:
492 return "videocore3";
493 case EM_LATTICEMICO32:
494 return "latticemico32";
495 case EM_SE_C17:
496 return "se_c17";
497 case EM_TI_C6000:
498 return "ti_c6000";
499 case EM_TI_C2000:
500 return "ti_c2000";
501 case EM_TI_C5500:
502 return "ti_c5500";
503 case EM_MMDSP_PLUS:
504 return "mmdsp_plus";
505 case EM_CYPRESS_M8C:
506 return "cypress_m8c";
507 case EM_R32C:
508 return "r32c";
509 case EM_TRIMEDIA:
510 return "trimedia";
511 case EM_HEXAGON:
512 return "hexagon";
513 case EM_8051:
514 return "8051";
515 case EM_STXP7X:
516 return "stxp7x";
517 case EM_NDS32:
518 return "nds32";
519 case EM_ECOG1:
520 return "ecog1";
521 case EM_MAXQ30:
522 return "maxq30";
523 case EM_XIMO16:
524 return "ximo16";
525 case EM_MANIK:
526 return "manik";
527 case EM_CRAYNV2:
528 return "craynv2";
529 case EM_RX:
530 return "rx";
531 case EM_METAG:
532 return "metag";
533 case EM_MCST_ELBRUS:
534 return "mcst_elbrus";
535 case EM_ECOG16:
536 return "ecog16";
537 case EM_CR16:
538 return "cr16";
539 case EM_ETPU:
540 return "etpu";
541 case EM_SLE9X:
542 return "sle9x";
543 case EM_L10M:
544 return "l10m";
545 case EM_K10M:
546 return "k10m";
547 case EM_AARCH64:
548 return "AArch64";
549 case EM_AVR32:
550 return "avr32";
551 case EM_STM8:
552 return "stm8";
553 case EM_TILE64:
554 return "tile64";
555 case EM_TILEPRO:
556 return "tilepro";
557 case EM_CUDA:
558 return "cuda";
559 case EM_TILEGX:
560 return "tilegx";
561 case EM_CLOUDSHIELD:
562 return "cloudshield";
563 case EM_COREA_1ST:
564 return "corea_1st";
565 case EM_COREA_2ND:
566 return "corea_2nd";
567 case EM_ARC_COMPACT2:
568 return "arc_compact2";
569 case EM_OPEN8:
570 return "open8";
571 case EM_RL78:
572 return "rl78";
573 case EM_VIDEOCORE5:
574 return "videocore5";
575 case EM_78KOR:
576 return "78kor";
577 case EM_56800EX:
578 return "56800ex";
579 case EM_BA1:
580 return "ba1";
581 case EM_BA2:
582 return "ba2";
583 case EM_XCORE:
584 return "xcore";
585 case EM_MCHP_PIC:
586 return "mchp_pic";
587 case EM_INTEL205:
588 return "intel205";
589 case EM_INTEL206:
590 return "intel206";
591 case EM_INTEL207:
592 return "intel207";
593 case EM_INTEL208:
594 return "intel208";
595 case EM_INTEL209:
596 return "intel209";
597 case EM_KM32:
598 return "km32";
599 case EM_KMX32:
600 return "kmx32";
601 case EM_KMX16:
602 return "kmx16";
603 case EM_KMX8:
604 return "kmx8";
605 case EM_KVARC:
606 return "kvarc";
607 case EM_CDP:
608 return "cdp";
609 case EM_COGE:
610 return "coge";
611 case EM_COOL:
612 return "cool";
613 case EM_NORC:
614 return "norc";
615 case EM_CSR_KALIMBA:
616 return "csr_kalimba";
617 case EM_AMDGPU:
618 return "amdgpu";
619 case EM_RISCV:
620 return "riscv";
621 case EM_LANAI:
622 return "lanai";
623 case EM_BPF:
624 return "bpf";
625 case EM_VE:
626 return "ve";
627 case EM_CSKY:
628 return "csky";
629 case EM_LOONGARCH:
630 return "loongarch";
631 default:
632 return "None";
633 }
634}
635
638 .StartsWith("hpux", ELFOSABI_HPUX)
639 .StartsWith("netbsd", ELFOSABI_NETBSD)
640 .StartsWith("gnu", ELFOSABI_GNU)
641 .StartsWith("hurd", ELFOSABI_HURD)
642 .StartsWith("solaris", ELFOSABI_SOLARIS)
643 .StartsWith("aix", ELFOSABI_AIX)
644 .StartsWith("irix", ELFOSABI_IRIX)
645 .StartsWith("freebsd", ELFOSABI_FREEBSD)
646 .StartsWith("tru64", ELFOSABI_TRU64)
647 .StartsWith("modesto", ELFOSABI_MODESTO)
648 .StartsWith("openbsd", ELFOSABI_OPENBSD)
649 .StartsWith("openvms", ELFOSABI_OPENVMS)
650 .StartsWith("nsk", ELFOSABI_NSK)
651 .StartsWith("aros", ELFOSABI_AROS)
652 .StartsWith("fenixos", ELFOSABI_FENIXOS)
653 .StartsWith("cloudabi", ELFOSABI_CLOUDABI)
654 .StartsWith("cuda", ELFOSABI_CUDA)
658 .StartsWith("arm", ELFOSABI_ARM)
659 .StartsWith("standalone", ELFOSABI_STANDALONE)
660 .StartsWith("none", ELFOSABI_NONE)
662}
663
665 switch (OSABI) {
666 case ELFOSABI_HPUX:
667 return "hpux";
668 case ELFOSABI_NETBSD:
669 return "netbsd";
670 case ELFOSABI_GNU:
671 return "gnu";
672 case ELFOSABI_HURD:
673 return "hurd";
674 case ELFOSABI_SOLARIS:
675 return "solaris";
676 case ELFOSABI_AIX:
677 return "aix";
678 case ELFOSABI_IRIX:
679 return "irix";
680 case ELFOSABI_FREEBSD:
681 return "freebsd";
682 case ELFOSABI_TRU64:
683 return "tru64";
684 case ELFOSABI_MODESTO:
685 return "modesto";
686 case ELFOSABI_OPENBSD:
687 return "openbsd";
688 case ELFOSABI_OPENVMS:
689 return "openvms";
690 case ELFOSABI_NSK:
691 return "nsk";
692 case ELFOSABI_AROS:
693 return "aros";
694 case ELFOSABI_FENIXOS:
695 return "fenixos";
697 return "cloudabi";
698 case ELFOSABI_CUDA:
699 return "cuda";
701 return "amdhsa";
703 return "amdpal";
705 return "mesa3d";
706 case ELFOSABI_ARM:
707 return "arm";
709 return "standalone";
710 default:
711 return "none";
712 }
713}
std::string Name
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:55
LLVM_ABI std::string lower() const
Definition: StringRef.cpp:112
A switch()-like statement whose cases are string literals.
Definition: StringSwitch.h:43
StringSwitch & Case(StringLiteral S, T Value)
Definition: StringSwitch.h:68
R Default(T Value)
Definition: StringSwitch.h:177
StringSwitch & StartsWith(StringLiteral S, T Value)
Definition: StringSwitch.h:80
@ loongarch32
Definition: Triple.h:64
@ UnknownArch
Definition: Triple.h:50
@ aarch64_be
Definition: Triple.h:55
@ loongarch64
Definition: Triple.h:65
@ mips64el
Definition: Triple.h:70
@ aarch64_32
Definition: Triple.h:56
LLVM_ABI StringRef convertOSABIToName(uint8_t OSABI)
Definition: ELF.cpp:664
@ ELFOSABI_ARM
Definition: ELF.h:370
@ ELFOSABI_HURD
Definition: ELF.h:351
@ ELFOSABI_NSK
Definition: ELF.h:360
@ ELFOSABI_FENIXOS
Definition: ELF.h:362
@ ELFOSABI_MODESTO
Definition: ELF.h:357
@ ELFOSABI_TRU64
Definition: ELF.h:356
@ ELFOSABI_CUDA
Definition: ELF.h:364
@ ELFOSABI_OPENBSD
Definition: ELF.h:358
@ ELFOSABI_HPUX
Definition: ELF.h:347
@ ELFOSABI_NETBSD
Definition: ELF.h:348
@ ELFOSABI_AMDGPU_HSA
Definition: ELF.h:367
@ ELFOSABI_SOLARIS
Definition: ELF.h:352
@ ELFOSABI_FREEBSD
Definition: ELF.h:355
@ ELFOSABI_STANDALONE
Definition: ELF.h:374
@ ELFOSABI_AIX
Definition: ELF.h:353
@ ELFOSABI_GNU
Definition: ELF.h:349
@ ELFOSABI_IRIX
Definition: ELF.h:354
@ ELFOSABI_OPENVMS
Definition: ELF.h:359
@ ELFOSABI_AMDGPU_MESA3D
Definition: ELF.h:369
@ ELFOSABI_CLOUDABI
Definition: ELF.h:363
@ ELFOSABI_AROS
Definition: ELF.h:361
@ ELFOSABI_NONE
Definition: ELF.h:346
@ ELFOSABI_AMDGPU_PAL
Definition: ELF.h:368
LLVM_ABI uint16_t convertTripleArchTypeToEMachine(Triple::ArchType ArchType)
Definition: ELF.cpp:203
@ EM_EXCESS
Definition: ELF.h:234
@ EM_MSP430
Definition: ELF.h:227
@ EM_MCHP_PIC
Definition: ELF.h:305
@ EM_VAX
Definition: ELF.h:196
@ EM_HUANY
Definition: ELF.h:202
@ EM_INTEL205
Definition: ELF.h:306
@ EM_INTEL207
Definition: ELF.h:308
@ EM_SNP1K
Definition: ELF.h:221
@ EM_JAVELIN
Definition: ELF.h:198
@ EM_S390
Definition: ELF.h:155
@ EM_ST19
Definition: ELF.h:195
@ EM_MANIK
Definition: ELF.h:272
@ EM_AVR32
Definition: ELF.h:286
@ EM_PDP11
Definition: ELF.h:186
@ EM_V800
Definition: ELF.h:157
@ EM_TMM_GPP
Definition: ELF.h:218
@ EM_L10M
Definition: ELF.h:283
@ EM_RX
Definition: ELF.h:274
@ EM_88K
Definition: ELF.h:143
@ EM_SCORE7
Definition: ELF.h:250
@ EM_PPC64
Definition: ELF.h:154
@ EM_FR20
Definition: ELF.h:158
@ EM_MMIX
Definition: ELF.h:201
@ EM_NDS32
Definition: ELF.h:266
@ EM_TI_C5500
Definition: ELF.h:257
@ EM_COGE
Definition: ELF.h:317
@ EM_R32C
Definition: ELF.h:260
@ EM_BA1
Definition: ELF.h:302
@ EM_SPARC
Definition: ELF.h:140
@ EM_SPU
Definition: ELF.h:156
@ EM_NCPU
Definition: ELF.h:177
@ EM_CSKY
Definition: ELF.h:326
@ EM_CYPRESS_M8C
Definition: ELF.h:259
@ EM_NDR1
Definition: ELF.h:178
@ EM_M32
Definition: ELF.h:139
@ EM_METAG
Definition: ELF.h:275
@ EM_CR
Definition: ELF.h:225
@ EM_ECOG1
Definition: ELF.h:268
@ EM_SPARC32PLUS
Definition: ELF.h:151
@ EM_LATTICEMICO32
Definition: ELF.h:253
@ EM_VIDEOCORE
Definition: ELF.h:217
@ EM_XGATE
Definition: ELF.h:238
@ EM_ECOG2
Definition: ELF.h:249
@ EM_ETPU
Definition: ELF.h:281
@ EM_INTEL208
Definition: ELF.h:309
@ EM_MIPS_RS3_LE
Definition: ELF.h:148
@ EM_NONE
Definition: ELF.h:138
@ EM_BA2
Definition: ELF.h:303
@ EM_68HC08
Definition: ELF.h:192
@ EM_68HC05
Definition: ELF.h:193
@ EM_SEP
Definition: ELF.h:230
@ EM_68HC16
Definition: ELF.h:190
@ EM_78KOR
Definition: ELF.h:300
@ EM_DSPIC30F
Definition: ELF.h:241
@ EM_VIDEOCORE3
Definition: ELF.h:252
@ EM_68K
Definition: ELF.h:142
@ EM_68HC11
Definition: ELF.h:191
@ EM_386
Definition: ELF.h:141
@ EM_KMX32
Definition: ELF.h:312
@ EM_ME16
Definition: ELF.h:180
@ EM_ALTERA_NIOS2
Definition: ELF.h:236
@ EM_TPC
Definition: ELF.h:220
@ EM_CRAYNV2
Definition: ELF.h:273
@ EM_KM32
Definition: ELF.h:311
@ EM_STARCORE
Definition: ELF.h:179
@ EM_TILEGX
Definition: ELF.h:292
@ EM_FR30
Definition: ELF.h:205
@ EM_OPENRISC
Definition: ELF.h:213
@ EM_CUDA
Definition: ELF.h:291
@ EM_BLACKFIN
Definition: ELF.h:228
@ EM_8051
Definition: ELF.h:263
@ EM_CE
Definition: ELF.h:243
@ EM_TILEPRO
Definition: ELF.h:289
@ EM_960
Definition: ELF.h:152
@ EM_V850
Definition: ELF.h:208
@ EM_KMX16
Definition: ELF.h:313
@ EM_MN10300
Definition: ELF.h:210
@ EM_IP2K
Definition: ELF.h:223
@ EM_NS32K
Definition: ELF.h:219
@ EM_C166
Definition: ELF.h:239
@ EM_LOONGARCH
Definition: ELF.h:327
@ EM_MCST_ELBRUS
Definition: ELF.h:277
@ EM_TI_C6000
Definition: ELF.h:255
@ EM_PDP10
Definition: ELF.h:185
@ EM_CRIS
Definition: ELF.h:197
@ EM_CRX
Definition: ELF.h:237
@ EM_RH32
Definition: ELF.h:159
@ EM_M32R
Definition: ELF.h:209
@ EM_UNICORE
Definition: ELF.h:232
@ EM_CLOUDSHIELD
Definition: ELF.h:293
@ EM_SLE9X
Definition: ELF.h:282
@ EM_BPF
Definition: ELF.h:324
@ EM_TINYJ
Definition: ELF.h:182
@ EM_PPC
Definition: ELF.h:153
@ EM_ZSP
Definition: ELF.h:200
@ EM_XCORE
Definition: ELF.h:304
@ EM_H8_500
Definition: ELF.h:170
@ EM_IA_64
Definition: ELF.h:171
@ EM_D10V
Definition: ELF.h:206
@ EM_MAXQ30
Definition: ELF.h:270
@ EM_TRICORE
Definition: ELF.h:165
@ EM_INTEL209
Definition: ELF.h:310
@ EM_ALPHA
Definition: ELF.h:162
@ EM_COOL
Definition: ELF.h:318
@ EM_CSR_KALIMBA
Definition: ELF.h:320
@ EM_X86_64
Definition: ELF.h:183
@ EM_HEXAGON
Definition: ELF.h:262
@ EM_LANAI
Definition: ELF.h:323
@ EM_PARISC
Definition: ELF.h:149
@ EM_PDSP
Definition: ELF.h:184
@ EM_ECOG16
Definition: ELF.h:278
@ EM_PCP
Definition: ELF.h:176
@ EM_ST9PLUS
Definition: ELF.h:188
@ EM_H8_300
Definition: ELF.h:167
@ EM_MIPS
Definition: ELF.h:146
@ EM_KMX8
Definition: ELF.h:314
@ EM_ARC
Definition: ELF.h:166
@ EM_INTEL206
Definition: ELF.h:307
@ EM_OPEN8
Definition: ELF.h:297
@ EM_ARCA
Definition: ELF.h:231
@ EM_CDP
Definition: ELF.h:316
@ EM_KVARC
Definition: ELF.h:315
@ EM_RL78
Definition: ELF.h:298
@ EM_M32C
Definition: ELF.h:244
@ EM_COLDFIRE
Definition: ELF.h:173
@ EM_ST200
Definition: ELF.h:222
@ EM_MMDSP_PLUS
Definition: ELF.h:258
@ EM_K10M
Definition: ELF.h:284
@ EM_STM8
Definition: ELF.h:287
@ EM_ST7
Definition: ELF.h:189
@ EM_COREA_1ST
Definition: ELF.h:294
@ EM_SPARCV9
Definition: ELF.h:164
@ EM_MMA
Definition: ELF.h:175
@ EM_68HC12
Definition: ELF.h:174
@ EM_STXP7X
Definition: ELF.h:264
@ EM_860
Definition: ELF.h:145
@ EM_VPP500
Definition: ELF.h:150
@ EM_TI_C2000
Definition: ELF.h:256
@ EM_AARCH64
Definition: ELF.h:285
@ EM_COREA_2ND
Definition: ELF.h:295
@ EM_XTENSA
Definition: ELF.h:216
@ EM_SE_C33
Definition: ELF.h:229
@ EM_MIPS_X
Definition: ELF.h:172
@ EM_ARC_COMPACT2
Definition: ELF.h:296
@ EM_RISCV
Definition: ELF.h:322
@ EM_SHARC
Definition: ELF.h:247
@ EM_ARC_COMPACT
Definition: ELF.h:214
@ EM_TILE64
Definition: ELF.h:288
@ EM_H8S
Definition: ELF.h:169
@ EM_NORC
Definition: ELF.h:319
@ EM_FIREPATH
Definition: ELF.h:199
@ EM_F2MC16
Definition: ELF.h:226
@ EM_DXP
Definition: ELF.h:235
@ EM_PJ
Definition: ELF.h:212
@ EM_MAX
Definition: ELF.h:224
@ EM_SH
Definition: ELF.h:163
@ EM_CR16
Definition: ELF.h:279
@ EM_ST100
Definition: ELF.h:181
@ EM_ARM
Definition: ELF.h:161
@ EM_XIMO16
Definition: ELF.h:271
@ EM_RS08
Definition: ELF.h:246
@ EM_RCE
Definition: ELF.h:160
@ EM_VE
Definition: ELF.h:325
@ EM_S370
Definition: ELF.h:147
@ EM_56800EX
Definition: ELF.h:301
@ EM_H8_300H
Definition: ELF.h:168
@ EM_DSP24
Definition: ELF.h:251
@ EM_FX66
Definition: ELF.h:187
@ EM_MN10200
Definition: ELF.h:211
@ EM_TSK3000
Definition: ELF.h:245
@ EM_M16C
Definition: ELF.h:240
@ EM_ECOG1X
Definition: ELF.h:269
@ EM_IAMCU
Definition: ELF.h:144
@ EM_D30V
Definition: ELF.h:207
@ EM_AMDGPU
Definition: ELF.h:321
@ EM_SE_C17
Definition: ELF.h:254
@ EM_TRIMEDIA
Definition: ELF.h:261
@ EM_SVX
Definition: ELF.h:194
@ EM_PRISM
Definition: ELF.h:203
@ EM_AVR
Definition: ELF.h:204
@ EM_VIDEOCORE5
Definition: ELF.h:299
LLVM_ABI uint16_t convertArchNameToEMachine(StringRef Arch)
Convert an architecture name into ELF's e_machine value.
Definition: ELF.cpp:16
LLVM_ABI StringRef convertEMachineToArchName(uint16_t EMachine)
Convert an ELF's e_machine value into an architecture name.
Definition: ELF.cpp:269
LLVM_ABI uint8_t convertNameToOSABI(StringRef Name)
Definition: ELF.cpp:636
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18