LLVM  16.0.0git
ELF.h
Go to the documentation of this file.
1 //===- llvm/BinaryFormat/ELF.h - ELF constants and structures ---*- 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 //
9 // This header contains common, non-processor-specific data structures and
10 // constants for the ELF file format.
11 //
12 // The details of the ELF32 bits in this file are largely based on the Tool
13 // Interface Standard (TIS) Executable and Linking Format (ELF) Specification
14 // Version 1.2, May 1995. The ELF64 stuff is based on ELF-64 Object File Format
15 // Version 1.5, Draft 2, May 1998 as well as OpenBSD header files.
16 //
17 //===----------------------------------------------------------------------===//
18 
19 #ifndef LLVM_BINARYFORMAT_ELF_H
20 #define LLVM_BINARYFORMAT_ELF_H
21 
22 #include "llvm/ADT/StringRef.h"
23 #include <cstdint>
24 #include <cstring>
25 
26 namespace llvm {
27 namespace ELF {
28 
29 using Elf32_Addr = uint32_t; // Program address
30 using Elf32_Off = uint32_t; // File offset
33 using Elf32_Sword = int32_t;
34 
39 using Elf64_Sword = int32_t;
41 using Elf64_Sxword = int64_t;
42 
43 // Object file magic string.
44 static const char ElfMagic[] = {0x7f, 'E', 'L', 'F', '\0'};
45 
46 // e_ident size and indices.
47 enum {
48  EI_MAG0 = 0, // File identification index.
49  EI_MAG1 = 1, // File identification index.
50  EI_MAG2 = 2, // File identification index.
51  EI_MAG3 = 3, // File identification index.
52  EI_CLASS = 4, // File class.
53  EI_DATA = 5, // Data encoding.
54  EI_VERSION = 6, // File version.
55  EI_OSABI = 7, // OS/ABI identification.
56  EI_ABIVERSION = 8, // ABI version.
57  EI_PAD = 9, // Start of padding bytes.
58  EI_NIDENT = 16 // Number of bytes in e_ident.
59 };
60 
61 struct Elf32_Ehdr {
62  unsigned char e_ident[EI_NIDENT]; // ELF Identification bytes
63  Elf32_Half e_type; // Type of file (see ET_* below)
64  Elf32_Half e_machine; // Required architecture for this file (see EM_*)
65  Elf32_Word e_version; // Must be equal to 1
66  Elf32_Addr e_entry; // Address to jump to in order to start program
67  Elf32_Off e_phoff; // Program header table's file offset, in bytes
68  Elf32_Off e_shoff; // Section header table's file offset, in bytes
69  Elf32_Word e_flags; // Processor-specific flags
70  Elf32_Half e_ehsize; // Size of ELF header, in bytes
71  Elf32_Half e_phentsize; // Size of an entry in the program header table
72  Elf32_Half e_phnum; // Number of entries in the program header table
73  Elf32_Half e_shentsize; // Size of an entry in the section header table
74  Elf32_Half e_shnum; // Number of entries in the section header table
75  Elf32_Half e_shstrndx; // Sect hdr table index of sect name string table
76 
77  bool checkMagic() const {
78  return (memcmp(e_ident, ElfMagic, strlen(ElfMagic))) == 0;
79  }
80 
81  unsigned char getFileClass() const { return e_ident[EI_CLASS]; }
82  unsigned char getDataEncoding() const { return e_ident[EI_DATA]; }
83 };
84 
85 // 64-bit ELF header. Fields are the same as for ELF32, but with different
86 // types (see above).
87 struct Elf64_Ehdr {
88  unsigned char e_ident[EI_NIDENT];
102 
103  bool checkMagic() const {
104  return (memcmp(e_ident, ElfMagic, strlen(ElfMagic))) == 0;
105  }
106 
107  unsigned char getFileClass() const { return e_ident[EI_CLASS]; }
108  unsigned char getDataEncoding() const { return e_ident[EI_DATA]; }
109 };
110 
111 // File types.
112 // See current registered ELF types at:
113 // http://www.sco.com/developers/gabi/latest/ch4.eheader.html
114 enum {
115  ET_NONE = 0, // No file type
116  ET_REL = 1, // Relocatable file
117  ET_EXEC = 2, // Executable file
118  ET_DYN = 3, // Shared object file
119  ET_CORE = 4, // Core file
120  ET_LOOS = 0xfe00, // Beginning of operating system-specific codes
121  ET_HIOS = 0xfeff, // Operating system-specific
122  ET_LOPROC = 0xff00, // Beginning of processor-specific codes
123  ET_HIPROC = 0xffff // Processor-specific
124 };
125 
126 // Versioning
127 enum { EV_NONE = 0, EV_CURRENT = 1 };
128 
129 // Machine architectures
130 // See current registered ELF machine architectures at:
131 // http://www.uxsglobal.com/developers/gabi/latest/ch4.eheader.html
132 enum {
133  EM_NONE = 0, // No machine
134  EM_M32 = 1, // AT&T WE 32100
135  EM_SPARC = 2, // SPARC
136  EM_386 = 3, // Intel 386
137  EM_68K = 4, // Motorola 68000
138  EM_88K = 5, // Motorola 88000
139  EM_IAMCU = 6, // Intel MCU
140  EM_860 = 7, // Intel 80860
141  EM_MIPS = 8, // MIPS R3000
142  EM_S370 = 9, // IBM System/370
143  EM_MIPS_RS3_LE = 10, // MIPS RS3000 Little-endian
144  EM_PARISC = 15, // Hewlett-Packard PA-RISC
145  EM_VPP500 = 17, // Fujitsu VPP500
146  EM_SPARC32PLUS = 18, // Enhanced instruction set SPARC
147  EM_960 = 19, // Intel 80960
148  EM_PPC = 20, // PowerPC
149  EM_PPC64 = 21, // PowerPC64
150  EM_S390 = 22, // IBM System/390
151  EM_SPU = 23, // IBM SPU/SPC
152  EM_V800 = 36, // NEC V800
153  EM_FR20 = 37, // Fujitsu FR20
154  EM_RH32 = 38, // TRW RH-32
155  EM_RCE = 39, // Motorola RCE
156  EM_ARM = 40, // ARM
157  EM_ALPHA = 41, // DEC Alpha
158  EM_SH = 42, // Hitachi SH
159  EM_SPARCV9 = 43, // SPARC V9
160  EM_TRICORE = 44, // Siemens TriCore
161  EM_ARC = 45, // Argonaut RISC Core
162  EM_H8_300 = 46, // Hitachi H8/300
163  EM_H8_300H = 47, // Hitachi H8/300H
164  EM_H8S = 48, // Hitachi H8S
165  EM_H8_500 = 49, // Hitachi H8/500
166  EM_IA_64 = 50, // Intel IA-64 processor architecture
167  EM_MIPS_X = 51, // Stanford MIPS-X
168  EM_COLDFIRE = 52, // Motorola ColdFire
169  EM_68HC12 = 53, // Motorola M68HC12
170  EM_MMA = 54, // Fujitsu MMA Multimedia Accelerator
171  EM_PCP = 55, // Siemens PCP
172  EM_NCPU = 56, // Sony nCPU embedded RISC processor
173  EM_NDR1 = 57, // Denso NDR1 microprocessor
174  EM_STARCORE = 58, // Motorola Star*Core processor
175  EM_ME16 = 59, // Toyota ME16 processor
176  EM_ST100 = 60, // STMicroelectronics ST100 processor
177  EM_TINYJ = 61, // Advanced Logic Corp. TinyJ embedded processor family
178  EM_X86_64 = 62, // AMD x86-64 architecture
179  EM_PDSP = 63, // Sony DSP Processor
180  EM_PDP10 = 64, // Digital Equipment Corp. PDP-10
181  EM_PDP11 = 65, // Digital Equipment Corp. PDP-11
182  EM_FX66 = 66, // Siemens FX66 microcontroller
183  EM_ST9PLUS = 67, // STMicroelectronics ST9+ 8/16 bit microcontroller
184  EM_ST7 = 68, // STMicroelectronics ST7 8-bit microcontroller
185  EM_68HC16 = 69, // Motorola MC68HC16 Microcontroller
186  EM_68HC11 = 70, // Motorola MC68HC11 Microcontroller
187  EM_68HC08 = 71, // Motorola MC68HC08 Microcontroller
188  EM_68HC05 = 72, // Motorola MC68HC05 Microcontroller
189  EM_SVX = 73, // Silicon Graphics SVx
190  EM_ST19 = 74, // STMicroelectronics ST19 8-bit microcontroller
191  EM_VAX = 75, // Digital VAX
192  EM_CRIS = 76, // Axis Communications 32-bit embedded processor
193  EM_JAVELIN = 77, // Infineon Technologies 32-bit embedded processor
194  EM_FIREPATH = 78, // Element 14 64-bit DSP Processor
195  EM_ZSP = 79, // LSI Logic 16-bit DSP Processor
196  EM_MMIX = 80, // Donald Knuth's educational 64-bit processor
197  EM_HUANY = 81, // Harvard University machine-independent object files
198  EM_PRISM = 82, // SiTera Prism
199  EM_AVR = 83, // Atmel AVR 8-bit microcontroller
200  EM_FR30 = 84, // Fujitsu FR30
201  EM_D10V = 85, // Mitsubishi D10V
202  EM_D30V = 86, // Mitsubishi D30V
203  EM_V850 = 87, // NEC v850
204  EM_M32R = 88, // Mitsubishi M32R
205  EM_MN10300 = 89, // Matsushita MN10300
206  EM_MN10200 = 90, // Matsushita MN10200
207  EM_PJ = 91, // picoJava
208  EM_OPENRISC = 92, // OpenRISC 32-bit embedded processor
209  EM_ARC_COMPACT = 93, // ARC International ARCompact processor (old
210  // spelling/synonym: EM_ARC_A5)
211  EM_XTENSA = 94, // Tensilica Xtensa Architecture
212  EM_VIDEOCORE = 95, // Alphamosaic VideoCore processor
213  EM_TMM_GPP = 96, // Thompson Multimedia General Purpose Processor
214  EM_NS32K = 97, // National Semiconductor 32000 series
215  EM_TPC = 98, // Tenor Network TPC processor
216  EM_SNP1K = 99, // Trebia SNP 1000 processor
217  EM_ST200 = 100, // STMicroelectronics (www.st.com) ST200
218  EM_IP2K = 101, // Ubicom IP2xxx microcontroller family
219  EM_MAX = 102, // MAX Processor
220  EM_CR = 103, // National Semiconductor CompactRISC microprocessor
221  EM_F2MC16 = 104, // Fujitsu F2MC16
222  EM_MSP430 = 105, // Texas Instruments embedded microcontroller msp430
223  EM_BLACKFIN = 106, // Analog Devices Blackfin (DSP) processor
224  EM_SE_C33 = 107, // S1C33 Family of Seiko Epson processors
225  EM_SEP = 108, // Sharp embedded microprocessor
226  EM_ARCA = 109, // Arca RISC Microprocessor
227  EM_UNICORE = 110, // Microprocessor series from PKU-Unity Ltd. and MPRC
228  // of Peking University
229  EM_EXCESS = 111, // eXcess: 16/32/64-bit configurable embedded CPU
230  EM_DXP = 112, // Icera Semiconductor Inc. Deep Execution Processor
231  EM_ALTERA_NIOS2 = 113, // Altera Nios II soft-core processor
232  EM_CRX = 114, // National Semiconductor CompactRISC CRX
233  EM_XGATE = 115, // Motorola XGATE embedded processor
234  EM_C166 = 116, // Infineon C16x/XC16x processor
235  EM_M16C = 117, // Renesas M16C series microprocessors
236  EM_DSPIC30F = 118, // Microchip Technology dsPIC30F Digital Signal
237  // Controller
238  EM_CE = 119, // Freescale Communication Engine RISC core
239  EM_M32C = 120, // Renesas M32C series microprocessors
240  EM_TSK3000 = 131, // Altium TSK3000 core
241  EM_RS08 = 132, // Freescale RS08 embedded processor
242  EM_SHARC = 133, // Analog Devices SHARC family of 32-bit DSP
243  // processors
244  EM_ECOG2 = 134, // Cyan Technology eCOG2 microprocessor
245  EM_SCORE7 = 135, // Sunplus S+core7 RISC processor
246  EM_DSP24 = 136, // New Japan Radio (NJR) 24-bit DSP Processor
247  EM_VIDEOCORE3 = 137, // Broadcom VideoCore III processor
248  EM_LATTICEMICO32 = 138, // RISC processor for Lattice FPGA architecture
249  EM_SE_C17 = 139, // Seiko Epson C17 family
250  EM_TI_C6000 = 140, // The Texas Instruments TMS320C6000 DSP family
251  EM_TI_C2000 = 141, // The Texas Instruments TMS320C2000 DSP family
252  EM_TI_C5500 = 142, // The Texas Instruments TMS320C55x DSP family
253  EM_MMDSP_PLUS = 160, // STMicroelectronics 64bit VLIW Data Signal Processor
254  EM_CYPRESS_M8C = 161, // Cypress M8C microprocessor
255  EM_R32C = 162, // Renesas R32C series microprocessors
256  EM_TRIMEDIA = 163, // NXP Semiconductors TriMedia architecture family
257  EM_HEXAGON = 164, // Qualcomm Hexagon processor
258  EM_8051 = 165, // Intel 8051 and variants
259  EM_STXP7X = 166, // STMicroelectronics STxP7x family of configurable
260  // and extensible RISC processors
261  EM_NDS32 = 167, // Andes Technology compact code size embedded RISC
262  // processor family
263  EM_ECOG1 = 168, // Cyan Technology eCOG1X family
264  EM_ECOG1X = 168, // Cyan Technology eCOG1X family
265  EM_MAXQ30 = 169, // Dallas Semiconductor MAXQ30 Core Micro-controllers
266  EM_XIMO16 = 170, // New Japan Radio (NJR) 16-bit DSP Processor
267  EM_MANIK = 171, // M2000 Reconfigurable RISC Microprocessor
268  EM_CRAYNV2 = 172, // Cray Inc. NV2 vector architecture
269  EM_RX = 173, // Renesas RX family
270  EM_METAG = 174, // Imagination Technologies META processor
271  // architecture
272  EM_MCST_ELBRUS = 175, // MCST Elbrus general purpose hardware architecture
273  EM_ECOG16 = 176, // Cyan Technology eCOG16 family
274  EM_CR16 = 177, // National Semiconductor CompactRISC CR16 16-bit
275  // microprocessor
276  EM_ETPU = 178, // Freescale Extended Time Processing Unit
277  EM_SLE9X = 179, // Infineon Technologies SLE9X core
278  EM_L10M = 180, // Intel L10M
279  EM_K10M = 181, // Intel K10M
280  EM_AARCH64 = 183, // ARM AArch64
281  EM_AVR32 = 185, // Atmel Corporation 32-bit microprocessor family
282  EM_STM8 = 186, // STMicroeletronics STM8 8-bit microcontroller
283  EM_TILE64 = 187, // Tilera TILE64 multicore architecture family
284  EM_TILEPRO = 188, // Tilera TILEPro multicore architecture family
285  EM_MICROBLAZE = 189, // Xilinx MicroBlaze 32-bit RISC soft processor core
286  EM_CUDA = 190, // NVIDIA CUDA architecture
287  EM_TILEGX = 191, // Tilera TILE-Gx multicore architecture family
288  EM_CLOUDSHIELD = 192, // CloudShield architecture family
289  EM_COREA_1ST = 193, // KIPO-KAIST Core-A 1st generation processor family
290  EM_COREA_2ND = 194, // KIPO-KAIST Core-A 2nd generation processor family
291  EM_ARC_COMPACT2 = 195, // Synopsys ARCompact V2
292  EM_OPEN8 = 196, // Open8 8-bit RISC soft processor core
293  EM_RL78 = 197, // Renesas RL78 family
294  EM_VIDEOCORE5 = 198, // Broadcom VideoCore V processor
295  EM_78KOR = 199, // Renesas 78KOR family
296  EM_56800EX = 200, // Freescale 56800EX Digital Signal Controller (DSC)
297  EM_BA1 = 201, // Beyond BA1 CPU architecture
298  EM_BA2 = 202, // Beyond BA2 CPU architecture
299  EM_XCORE = 203, // XMOS xCORE processor family
300  EM_MCHP_PIC = 204, // Microchip 8-bit PIC(r) family
301  EM_INTEL205 = 205, // Reserved by Intel
302  EM_INTEL206 = 206, // Reserved by Intel
303  EM_INTEL207 = 207, // Reserved by Intel
304  EM_INTEL208 = 208, // Reserved by Intel
305  EM_INTEL209 = 209, // Reserved by Intel
306  EM_KM32 = 210, // KM211 KM32 32-bit processor
307  EM_KMX32 = 211, // KM211 KMX32 32-bit processor
308  EM_KMX16 = 212, // KM211 KMX16 16-bit processor
309  EM_KMX8 = 213, // KM211 KMX8 8-bit processor
310  EM_KVARC = 214, // KM211 KVARC processor
311  EM_CDP = 215, // Paneve CDP architecture family
312  EM_COGE = 216, // Cognitive Smart Memory Processor
313  EM_COOL = 217, // iCelero CoolEngine
314  EM_NORC = 218, // Nanoradio Optimized RISC
315  EM_CSR_KALIMBA = 219, // CSR Kalimba architecture family
316  EM_AMDGPU = 224, // AMD GPU architecture
317  EM_RISCV = 243, // RISC-V
318  EM_LANAI = 244, // Lanai 32-bit processor
319  EM_BPF = 247, // Linux kernel bpf virtual machine
320  EM_VE = 251, // NEC SX-Aurora VE
321  EM_CSKY = 252, // C-SKY 32-bit processor
322  EM_LOONGARCH = 258, // LoongArch
323 };
324 
325 // Object file classes.
326 enum {
328  ELFCLASS32 = 1, // 32-bit object file
329  ELFCLASS64 = 2 // 64-bit object file
330 };
331 
332 // Object file byte orderings.
333 enum {
334  ELFDATANONE = 0, // Invalid data encoding.
335  ELFDATA2LSB = 1, // Little-endian object file
336  ELFDATA2MSB = 2 // Big-endian object file
337 };
338 
339 // OS ABI identification.
340 enum {
341  ELFOSABI_NONE = 0, // UNIX System V ABI
342  ELFOSABI_HPUX = 1, // HP-UX operating system
343  ELFOSABI_NETBSD = 2, // NetBSD
344  ELFOSABI_GNU = 3, // GNU/Linux
345  ELFOSABI_LINUX = 3, // Historical alias for ELFOSABI_GNU.
346  ELFOSABI_HURD = 4, // GNU/Hurd
347  ELFOSABI_SOLARIS = 6, // Solaris
348  ELFOSABI_AIX = 7, // AIX
349  ELFOSABI_IRIX = 8, // IRIX
350  ELFOSABI_FREEBSD = 9, // FreeBSD
351  ELFOSABI_TRU64 = 10, // TRU64 UNIX
352  ELFOSABI_MODESTO = 11, // Novell Modesto
353  ELFOSABI_OPENBSD = 12, // OpenBSD
354  ELFOSABI_OPENVMS = 13, // OpenVMS
355  ELFOSABI_NSK = 14, // Hewlett-Packard Non-Stop Kernel
356  ELFOSABI_AROS = 15, // AROS
357  ELFOSABI_FENIXOS = 16, // FenixOS
358  ELFOSABI_CLOUDABI = 17, // Nuxi CloudABI
359  ELFOSABI_FIRST_ARCH = 64, // First architecture-specific OS ABI
360  ELFOSABI_AMDGPU_HSA = 64, // AMD HSA runtime
361  ELFOSABI_AMDGPU_PAL = 65, // AMD PAL runtime
362  ELFOSABI_AMDGPU_MESA3D = 66, // AMD GCN GPUs (GFX6+) for MESA runtime
363  ELFOSABI_ARM = 97, // ARM
364  ELFOSABI_C6000_ELFABI = 64, // Bare-metal TMS320C6000
365  ELFOSABI_C6000_LINUX = 65, // Linux TMS320C6000
366  ELFOSABI_STANDALONE = 255, // Standalone (embedded) application
367  ELFOSABI_LAST_ARCH = 255 // Last Architecture-specific OS ABI
368 };
369 
370 // AMDGPU OS ABI Version identification.
371 enum {
372  // ELFABIVERSION_AMDGPU_HSA_V1 does not exist because OS ABI identification
373  // was never defined for V1.
378 };
379 
380 #define ELF_RELOC(name, value) name = value,
381 
382 // X86_64 relocations.
383 enum {
384 #include "ELFRelocs/x86_64.def"
385 };
386 
387 // i386 relocations.
388 enum {
389 #include "ELFRelocs/i386.def"
390 };
391 
392 // ELF Relocation types for PPC32
393 enum {
394 #include "ELFRelocs/PowerPC.def"
395 };
396 
397 // Specific e_flags for PPC64
398 enum {
399  // e_flags bits specifying ABI:
400  // 1 for original ABI using function descriptors,
401  // 2 for revised ABI without function descriptors,
402  // 0 for unspecified or not using any features affected by the differences.
404 };
405 
406 // Special values for the st_other field in the symbol table entry for PPC64.
407 enum {
410 };
411 static inline int64_t decodePPC64LocalEntryOffset(unsigned Other) {
412  unsigned Val = (Other & STO_PPC64_LOCAL_MASK) >> STO_PPC64_LOCAL_BIT;
413  return ((1 << Val) >> 2) << 2;
414 }
415 
416 // ELF Relocation types for PPC64
417 enum {
418 #include "ELFRelocs/PowerPC64.def"
419 };
420 
421 // ELF Relocation types for AArch64
422 enum {
423 #include "ELFRelocs/AArch64.def"
424 };
425 
426 // Special values for the st_other field in the symbol table entry for AArch64.
427 enum {
428  // Symbol may follow different calling convention than base PCS.
430 };
431 
432 // ARM Specific e_flags
433 enum : unsigned {
434  EF_ARM_SOFT_FLOAT = 0x00000200U, // Legacy pre EABI_VER5
435  EF_ARM_ABI_FLOAT_SOFT = 0x00000200U, // EABI_VER5
436  EF_ARM_VFP_FLOAT = 0x00000400U, // Legacy pre EABI_VER5
437  EF_ARM_ABI_FLOAT_HARD = 0x00000400U, // EABI_VER5
438  EF_ARM_BE8 = 0x00800000U,
439  EF_ARM_EABI_UNKNOWN = 0x00000000U,
440  EF_ARM_EABI_VER1 = 0x01000000U,
441  EF_ARM_EABI_VER2 = 0x02000000U,
442  EF_ARM_EABI_VER3 = 0x03000000U,
443  EF_ARM_EABI_VER4 = 0x04000000U,
444  EF_ARM_EABI_VER5 = 0x05000000U,
445  EF_ARM_EABIMASK = 0xFF000000U
446 };
447 
448 // ELF Relocation types for ARM
449 enum {
450 #include "ELFRelocs/ARM.def"
451 };
452 
453 // ARC Specific e_flags
454 enum : unsigned {
455  EF_ARC_MACH_MSK = 0x000000ff,
456  EF_ARC_OSABI_MSK = 0x00000f00,
457  E_ARC_MACH_ARC600 = 0x00000002,
458  E_ARC_MACH_ARC601 = 0x00000004,
459  E_ARC_MACH_ARC700 = 0x00000003,
460  EF_ARC_CPU_ARCV2EM = 0x00000005,
461  EF_ARC_CPU_ARCV2HS = 0x00000006,
462  E_ARC_OSABI_ORIG = 0x00000000,
463  E_ARC_OSABI_V2 = 0x00000200,
464  E_ARC_OSABI_V3 = 0x00000300,
465  E_ARC_OSABI_V4 = 0x00000400,
466  EF_ARC_PIC = 0x00000100
467 };
468 
469 // ELF Relocation types for ARC
470 enum {
471 #include "ELFRelocs/ARC.def"
472 };
473 
474 // AVR specific e_flags
475 enum : unsigned {
494 
495  EF_AVR_ARCH_MASK = 0x7f, // EF_AVR_ARCH_xxx selection mask
496 
497  EF_AVR_LINKRELAX_PREPARED = 0x80, // The file is prepared for linker
498  // relaxation to be applied
499 };
500 
501 // ELF Relocation types for AVR
502 enum {
503 #include "ELFRelocs/AVR.def"
504 };
505 
506 // Mips Specific e_flags
507 enum : unsigned {
508  EF_MIPS_NOREORDER = 0x00000001, // Don't reorder instructions
509  EF_MIPS_PIC = 0x00000002, // Position independent code
510  EF_MIPS_CPIC = 0x00000004, // Call object with Position independent code
511  EF_MIPS_ABI2 = 0x00000020, // File uses N32 ABI
512  EF_MIPS_32BITMODE = 0x00000100, // Code compiled for a 64-bit machine
513  // in 32-bit mode
514  EF_MIPS_FP64 = 0x00000200, // Code compiled for a 32-bit machine
515  // but uses 64-bit FP registers
516  EF_MIPS_NAN2008 = 0x00000400, // Uses IEE 754-2008 NaN encoding
517 
518  // ABI flags
519  EF_MIPS_ABI_O32 = 0x00001000, // This file follows the first MIPS 32 bit ABI
520  EF_MIPS_ABI_O64 = 0x00002000, // O32 ABI extended for 64-bit architecture.
521  EF_MIPS_ABI_EABI32 = 0x00003000, // EABI in 32 bit mode.
522  EF_MIPS_ABI_EABI64 = 0x00004000, // EABI in 64 bit mode.
523  EF_MIPS_ABI = 0x0000f000, // Mask for selecting EF_MIPS_ABI_ variant.
524 
525  // MIPS machine variant
526  EF_MIPS_MACH_NONE = 0x00000000, // A standard MIPS implementation.
527  EF_MIPS_MACH_3900 = 0x00810000, // Toshiba R3900
528  EF_MIPS_MACH_4010 = 0x00820000, // LSI R4010
529  EF_MIPS_MACH_4100 = 0x00830000, // NEC VR4100
530  EF_MIPS_MACH_4650 = 0x00850000, // MIPS R4650
531  EF_MIPS_MACH_4120 = 0x00870000, // NEC VR4120
532  EF_MIPS_MACH_4111 = 0x00880000, // NEC VR4111/VR4181
533  EF_MIPS_MACH_SB1 = 0x008a0000, // Broadcom SB-1
534  EF_MIPS_MACH_OCTEON = 0x008b0000, // Cavium Networks Octeon
535  EF_MIPS_MACH_XLR = 0x008c0000, // RMI Xlr
536  EF_MIPS_MACH_OCTEON2 = 0x008d0000, // Cavium Networks Octeon2
537  EF_MIPS_MACH_OCTEON3 = 0x008e0000, // Cavium Networks Octeon3
538  EF_MIPS_MACH_5400 = 0x00910000, // NEC VR5400
539  EF_MIPS_MACH_5900 = 0x00920000, // MIPS R5900
540  EF_MIPS_MACH_5500 = 0x00980000, // NEC VR5500
541  EF_MIPS_MACH_9000 = 0x00990000, // Unknown
542  EF_MIPS_MACH_LS2E = 0x00a00000, // ST Microelectronics Loongson 2E
543  EF_MIPS_MACH_LS2F = 0x00a10000, // ST Microelectronics Loongson 2F
544  EF_MIPS_MACH_LS3A = 0x00a20000, // Loongson 3A
545  EF_MIPS_MACH = 0x00ff0000, // EF_MIPS_MACH_xxx selection mask
546 
547  // ARCH_ASE
548  EF_MIPS_MICROMIPS = 0x02000000, // microMIPS
549  EF_MIPS_ARCH_ASE_M16 = 0x04000000, // Has Mips-16 ISA extensions
550  EF_MIPS_ARCH_ASE_MDMX = 0x08000000, // Has MDMX multimedia extensions
551  EF_MIPS_ARCH_ASE = 0x0f000000, // Mask for EF_MIPS_ARCH_ASE_xxx flags
552 
553  // ARCH
554  EF_MIPS_ARCH_1 = 0x00000000, // MIPS1 instruction set
555  EF_MIPS_ARCH_2 = 0x10000000, // MIPS2 instruction set
556  EF_MIPS_ARCH_3 = 0x20000000, // MIPS3 instruction set
557  EF_MIPS_ARCH_4 = 0x30000000, // MIPS4 instruction set
558  EF_MIPS_ARCH_5 = 0x40000000, // MIPS5 instruction set
559  EF_MIPS_ARCH_32 = 0x50000000, // MIPS32 instruction set per linux not elf.h
560  EF_MIPS_ARCH_64 = 0x60000000, // MIPS64 instruction set per linux not elf.h
561  EF_MIPS_ARCH_32R2 = 0x70000000, // mips32r2, mips32r3, mips32r5
562  EF_MIPS_ARCH_64R2 = 0x80000000, // mips64r2, mips64r3, mips64r5
563  EF_MIPS_ARCH_32R6 = 0x90000000, // mips32r6
564  EF_MIPS_ARCH_64R6 = 0xa0000000, // mips64r6
565  EF_MIPS_ARCH = 0xf0000000 // Mask for applying EF_MIPS_ARCH_ variant
566 };
567 
568 // MIPS-specific section indexes
569 enum {
570  SHN_MIPS_ACOMMON = 0xff00, // Common symbols which are defined and allocated
571  SHN_MIPS_TEXT = 0xff01, // Not ABI compliant
572  SHN_MIPS_DATA = 0xff02, // Not ABI compliant
573  SHN_MIPS_SCOMMON = 0xff03, // Common symbols for global data area
574  SHN_MIPS_SUNDEFINED = 0xff04 // Undefined symbols for global data area
575 };
576 
577 // ELF Relocation types for Mips
578 enum {
579 #include "ELFRelocs/Mips.def"
580 };
581 
582 // Special values for the st_other field in the symbol table entry for MIPS.
583 enum {
584  STO_MIPS_OPTIONAL = 0x04, // Symbol whose definition is optional
585  STO_MIPS_PLT = 0x08, // PLT entry related dynamic table record
586  STO_MIPS_PIC = 0x20, // PIC func in an object mixes PIC/non-PIC
587  STO_MIPS_MICROMIPS = 0x80, // MIPS Specific ISA for MicroMips
588  STO_MIPS_MIPS16 = 0xf0 // MIPS Specific ISA for Mips16
589 };
590 
591 // .MIPS.options section descriptor kinds
592 enum {
593  ODK_NULL = 0, // Undefined
594  ODK_REGINFO = 1, // Register usage information
595  ODK_EXCEPTIONS = 2, // Exception processing options
596  ODK_PAD = 3, // Section padding options
597  ODK_HWPATCH = 4, // Hardware patches applied
598  ODK_FILL = 5, // Linker fill value
599  ODK_TAGS = 6, // Space for tool identification
600  ODK_HWAND = 7, // Hardware AND patches applied
601  ODK_HWOR = 8, // Hardware OR patches applied
602  ODK_GP_GROUP = 9, // GP group to use for text/data sections
603  ODK_IDENT = 10, // ID information
604  ODK_PAGESIZE = 11 // Page size information
605 };
606 
607 // Hexagon-specific e_flags
608 enum {
609  // Object processor version flags, bits[11:0]
610  EF_HEXAGON_MACH_V2 = 0x00000001, // Hexagon V2
611  EF_HEXAGON_MACH_V3 = 0x00000002, // Hexagon V3
612  EF_HEXAGON_MACH_V4 = 0x00000003, // Hexagon V4
613  EF_HEXAGON_MACH_V5 = 0x00000004, // Hexagon V5
614  EF_HEXAGON_MACH_V55 = 0x00000005, // Hexagon V55
615  EF_HEXAGON_MACH_V60 = 0x00000060, // Hexagon V60
616  EF_HEXAGON_MACH_V62 = 0x00000062, // Hexagon V62
617  EF_HEXAGON_MACH_V65 = 0x00000065, // Hexagon V65
618  EF_HEXAGON_MACH_V66 = 0x00000066, // Hexagon V66
619  EF_HEXAGON_MACH_V67 = 0x00000067, // Hexagon V67
620  EF_HEXAGON_MACH_V67T = 0x00008067, // Hexagon V67T
621  EF_HEXAGON_MACH_V68 = 0x00000068, // Hexagon V68
622  EF_HEXAGON_MACH_V69 = 0x00000069, // Hexagon V69
623  EF_HEXAGON_MACH = 0x000003ff, // Hexagon V..
624 
625  // Highest ISA version flags
626  EF_HEXAGON_ISA_MACH = 0x00000000, // Same as specified in bits[11:0]
627  // of e_flags
628  EF_HEXAGON_ISA_V2 = 0x00000010, // Hexagon V2 ISA
629  EF_HEXAGON_ISA_V3 = 0x00000020, // Hexagon V3 ISA
630  EF_HEXAGON_ISA_V4 = 0x00000030, // Hexagon V4 ISA
631  EF_HEXAGON_ISA_V5 = 0x00000040, // Hexagon V5 ISA
632  EF_HEXAGON_ISA_V55 = 0x00000050, // Hexagon V55 ISA
633  EF_HEXAGON_ISA_V60 = 0x00000060, // Hexagon V60 ISA
634  EF_HEXAGON_ISA_V62 = 0x00000062, // Hexagon V62 ISA
635  EF_HEXAGON_ISA_V65 = 0x00000065, // Hexagon V65 ISA
636  EF_HEXAGON_ISA_V66 = 0x00000066, // Hexagon V66 ISA
637  EF_HEXAGON_ISA_V67 = 0x00000067, // Hexagon V67 ISA
638  EF_HEXAGON_ISA_V68 = 0x00000068, // Hexagon V68 ISA
639  EF_HEXAGON_ISA_V69 = 0x00000069, // Hexagon V69 ISA
640  EF_HEXAGON_ISA = 0x000003ff, // Hexagon V.. ISA
641 };
642 
643 // Hexagon-specific section indexes for common small data
644 enum {
645  SHN_HEXAGON_SCOMMON = 0xff00, // Other access sizes
646  SHN_HEXAGON_SCOMMON_1 = 0xff01, // Byte-sized access
647  SHN_HEXAGON_SCOMMON_2 = 0xff02, // Half-word-sized access
648  SHN_HEXAGON_SCOMMON_4 = 0xff03, // Word-sized access
649  SHN_HEXAGON_SCOMMON_8 = 0xff04 // Double-word-size access
650 };
651 
652 // ELF Relocation types for Hexagon
653 enum {
654 #include "ELFRelocs/Hexagon.def"
655 };
656 
657 // ELF Relocation type for Lanai.
658 enum {
659 #include "ELFRelocs/Lanai.def"
660 };
661 
662 // RISCV Specific e_flags
663 enum : unsigned {
664  EF_RISCV_RVC = 0x0001,
670  EF_RISCV_RVE = 0x0008,
671  EF_RISCV_TSO = 0x0010,
672 };
673 
674 // ELF Relocation types for RISC-V
675 enum {
676 #include "ELFRelocs/RISCV.def"
677 };
678 
679 enum {
680  // Symbol may follow different calling convention than the standard calling
681  // convention.
683 };
684 
685 // ELF Relocation types for S390/zSeries
686 enum {
687 #include "ELFRelocs/SystemZ.def"
688 };
689 
690 // ELF Relocation type for Sparc.
691 enum {
692 #include "ELFRelocs/Sparc.def"
693 };
694 
695 // AMDGPU specific e_flags.
696 enum : unsigned {
697  // Processor selection mask for EF_AMDGPU_MACH_* values.
698  EF_AMDGPU_MACH = 0x0ff,
699 
700  // Not specified processor.
702 
703  // R600-based processors.
704 
705  // Radeon HD 2000/3000 Series (R600).
710  // Radeon HD 4000 Series (R700).
714  // Radeon HD 5000 Series (Evergreen).
720  // Radeon HD 6000 Series (Northern Islands).
725 
726  // Reserved for R600-based processors.
729 
730  // First/last R600-based processors.
733 
734  // AMDGCN-based processors.
775 
776  // First/last AMDGCN-based processors.
779 
780  // Indicates if the "xnack" target feature is enabled for all code contained
781  // in the object.
782  //
783  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V2.
785  // Indicates if the trap handler is enabled for all code contained
786  // in the object.
787  //
788  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V2.
790 
791  // Indicates if the "xnack" target feature is enabled for all code contained
792  // in the object.
793  //
794  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V3.
796  // Indicates if the "sramecc" target feature is enabled for all code
797  // contained in the object.
798  //
799  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V3.
801 
802  // XNACK selection mask for EF_AMDGPU_FEATURE_XNACK_* values.
803  //
804  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V4.
806  // XNACK is not supported.
808  // XNACK is any/default/unspecified.
810  // XNACK is off.
812  // XNACK is on.
814 
815  // SRAMECC selection mask for EF_AMDGPU_FEATURE_SRAMECC_* values.
816  //
817  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V4.
819  // SRAMECC is not supported.
821  // SRAMECC is any/default/unspecified.
823  // SRAMECC is off.
825  // SRAMECC is on.
827 };
828 
829 // ELF Relocation types for AMDGPU
830 enum {
831 #include "ELFRelocs/AMDGPU.def"
832 };
833 
834 // ELF Relocation types for BPF
835 enum {
836 #include "ELFRelocs/BPF.def"
837 };
838 
839 // ELF Relocation types for M68k
840 enum {
841 #include "ELFRelocs/M68k.def"
842 };
843 
844 // MSP430 specific e_flags
845 enum : unsigned {
869 };
870 
871 // ELF Relocation types for MSP430
872 enum {
873 #include "ELFRelocs/MSP430.def"
874 };
875 
876 // ELF Relocation type for VE.
877 enum {
878 #include "ELFRelocs/VE.def"
879 };
880 
881 // CSKY Specific e_flags
882 enum : unsigned {
883  EF_CSKY_801 = 0xa,
884  EF_CSKY_802 = 0x10,
885  EF_CSKY_803 = 0x9,
886  EF_CSKY_805 = 0x11,
887  EF_CSKY_807 = 0x6,
888  EF_CSKY_810 = 0x8,
889  EF_CSKY_860 = 0xb,
890  EF_CSKY_800 = 0x1f,
891  EF_CSKY_FLOAT = 0x2000,
892  EF_CSKY_DSP = 0x4000,
893  EF_CSKY_ABIV2 = 0x20000000,
894  EF_CSKY_EFV1 = 0x1000000,
895  EF_CSKY_EFV2 = 0x2000000,
896  EF_CSKY_EFV3 = 0x3000000
897 };
898 
899 // ELF Relocation types for CSKY
900 enum {
901 #include "ELFRelocs/CSKY.def"
902 };
903 
904 // LoongArch Specific e_flags
905 enum : unsigned {
906  // Reference: https://github.com/loongson/LoongArch-Documentation.
907  // The last commit hash (main branch) is
908  // 99016636af64d02dee05e39974d4c1e55875c45b.
909  // Note that there is an open PR
910  // https://github.com/loongson/LoongArch-Documentation/pull/47
911  // talking about using 0x1, 0x2, 0x3 for ILP32S/F/D and use EI_CLASS to
912  // distinguish LP64 and ILP32. If this PR get merged, we will update
913  // the definition here.
914  // Base ABI Types.
915  EF_LOONGARCH_BASE_ABI_LP64S = 0x1, // LP64 soft-float ABI
916  EF_LOONGARCH_BASE_ABI_LP64F = 0x2, // LP64 single-float ABI
917  EF_LOONGARCH_BASE_ABI_LP64D = 0x3, // LP64 double-float ABI
918  EF_LOONGARCH_BASE_ABI_ILP32S = 0x5, // ILP32 soft-float ABI
919  EF_LOONGARCH_BASE_ABI_ILP32F = 0x6, // ILP32 single-float ABI
920  EF_LOONGARCH_BASE_ABI_ILP32D = 0x7, // ILP32 double-float ABI
921  EF_LOONGARCH_BASE_ABI_MASK = 0x7, // Mask for selecting base ABI
922 };
923 
924 // ELF Relocation types for LoongArch
925 enum {
926 #include "ELFRelocs/LoongArch.def"
927 };
928 
929 #undef ELF_RELOC
930 
931 // Section header.
932 struct Elf32_Shdr {
933  Elf32_Word sh_name; // Section name (index into string table)
934  Elf32_Word sh_type; // Section type (SHT_*)
935  Elf32_Word sh_flags; // Section flags (SHF_*)
936  Elf32_Addr sh_addr; // Address where section is to be loaded
937  Elf32_Off sh_offset; // File offset of section data, in bytes
938  Elf32_Word sh_size; // Size of section, in bytes
939  Elf32_Word sh_link; // Section type-specific header table index link
940  Elf32_Word sh_info; // Section type-specific extra information
941  Elf32_Word sh_addralign; // Section address alignment
942  Elf32_Word sh_entsize; // Size of records contained within the section
943 };
944 
945 // Section header for ELF64 - same fields as ELF32, different types.
946 struct Elf64_Shdr {
957 };
958 
959 // Special section indices.
960 enum {
961  SHN_UNDEF = 0, // Undefined, missing, irrelevant, or meaningless
962  SHN_LORESERVE = 0xff00, // Lowest reserved index
963  SHN_LOPROC = 0xff00, // Lowest processor-specific index
964  SHN_HIPROC = 0xff1f, // Highest processor-specific index
965  SHN_LOOS = 0xff20, // Lowest operating system-specific index
966  SHN_HIOS = 0xff3f, // Highest operating system-specific index
967  SHN_ABS = 0xfff1, // Symbol has absolute value; does not need relocation
968  SHN_COMMON = 0xfff2, // FORTRAN COMMON or C external global variables
969  SHN_XINDEX = 0xffff, // Mark that the index is >= SHN_LORESERVE
970  SHN_HIRESERVE = 0xffff // Highest reserved index
971 };
972 
973 // Section types.
974 enum : unsigned {
975  SHT_NULL = 0, // No associated section (inactive entry).
976  SHT_PROGBITS = 1, // Program-defined contents.
977  SHT_SYMTAB = 2, // Symbol table.
978  SHT_STRTAB = 3, // String table.
979  SHT_RELA = 4, // Relocation entries; explicit addends.
980  SHT_HASH = 5, // Symbol hash table.
981  SHT_DYNAMIC = 6, // Information for dynamic linking.
982  SHT_NOTE = 7, // Information about the file.
983  SHT_NOBITS = 8, // Data occupies no space in the file.
984  SHT_REL = 9, // Relocation entries; no explicit addends.
985  SHT_SHLIB = 10, // Reserved.
986  SHT_DYNSYM = 11, // Symbol table.
987  SHT_INIT_ARRAY = 14, // Pointers to initialization functions.
988  SHT_FINI_ARRAY = 15, // Pointers to termination functions.
989  SHT_PREINIT_ARRAY = 16, // Pointers to pre-init functions.
990  SHT_GROUP = 17, // Section group.
991  SHT_SYMTAB_SHNDX = 18, // Indices for SHN_XINDEX entries.
992  // Experimental support for SHT_RELR sections. For details, see proposal
993  // at https://groups.google.com/forum/#!topic/generic-abi/bX460iggiKg
994  SHT_RELR = 19, // Relocation entries; only offsets.
995  SHT_LOOS = 0x60000000, // Lowest operating system-specific type.
996  // Android packed relocation section types.
997  // https://android.googlesource.com/platform/bionic/+/6f12bfece5dcc01325e0abba56a46b1bcf991c69/tools/relocation_packer/src/elf_file.cc#37
998  SHT_ANDROID_REL = 0x60000001,
999  SHT_ANDROID_RELA = 0x60000002,
1000  SHT_LLVM_ODRTAB = 0x6fff4c00, // LLVM ODR table.
1001  SHT_LLVM_LINKER_OPTIONS = 0x6fff4c01, // LLVM Linker Options.
1002  SHT_LLVM_ADDRSIG = 0x6fff4c03, // List of address-significant symbols
1003  // for safe ICF.
1005  0x6fff4c04, // LLVM Dependent Library Specifiers.
1006  SHT_LLVM_SYMPART = 0x6fff4c05, // Symbol partition specification.
1007  SHT_LLVM_PART_EHDR = 0x6fff4c06, // ELF header for loadable partition.
1008  SHT_LLVM_PART_PHDR = 0x6fff4c07, // Phdrs for loadable partition.
1010  0x6fff4c08, // LLVM Basic Block Address Map (old version kept for
1011  // backward-compatibility).
1012  SHT_LLVM_CALL_GRAPH_PROFILE = 0x6fff4c09, // LLVM Call Graph Profile.
1013  SHT_LLVM_BB_ADDR_MAP = 0x6fff4c0a, // LLVM Basic Block Address Map.
1014  SHT_LLVM_OFFLOADING = 0x6fff4c0b, // LLVM device offloading data.
1015  // Android's experimental support for SHT_RELR sections.
1016  // https://android.googlesource.com/platform/bionic/+/b7feec74547f84559a1467aca02708ff61346d2a/libc/include/elf.h#512
1017  SHT_ANDROID_RELR = 0x6fffff00, // Relocation entries; only offsets.
1018  SHT_GNU_ATTRIBUTES = 0x6ffffff5, // Object attributes.
1019  SHT_GNU_HASH = 0x6ffffff6, // GNU-style hash table.
1020  SHT_GNU_verdef = 0x6ffffffd, // GNU version definitions.
1021  SHT_GNU_verneed = 0x6ffffffe, // GNU version references.
1022  SHT_GNU_versym = 0x6fffffff, // GNU symbol versions table.
1023  SHT_HIOS = 0x6fffffff, // Highest operating system-specific type.
1024  SHT_LOPROC = 0x70000000, // Lowest processor arch-specific type.
1025  // Fixme: All this is duplicated in MCSectionELF. Why??
1026  // Exception Index table
1027  SHT_ARM_EXIDX = 0x70000001U,
1028  // BPABI DLL dynamic linking pre-emption map
1029  SHT_ARM_PREEMPTMAP = 0x70000002U,
1030  // Object file compatibility attributes
1031  SHT_ARM_ATTRIBUTES = 0x70000003U,
1032  SHT_ARM_DEBUGOVERLAY = 0x70000004U,
1033  SHT_ARM_OVERLAYSECTION = 0x70000005U,
1034  SHT_HEX_ORDERED = 0x70000000, // Link editor is to sort the entries in
1035  // this section based on their sizes
1036  SHT_X86_64_UNWIND = 0x70000001, // Unwind information
1037 
1038  SHT_MIPS_REGINFO = 0x70000006, // Register usage information
1039  SHT_MIPS_OPTIONS = 0x7000000d, // General options
1040  SHT_MIPS_DWARF = 0x7000001e, // DWARF debugging section.
1041  SHT_MIPS_ABIFLAGS = 0x7000002a, // ABI information.
1042 
1043  SHT_MSP430_ATTRIBUTES = 0x70000003U,
1044 
1045  SHT_RISCV_ATTRIBUTES = 0x70000003U,
1046 
1047  SHT_CSKY_ATTRIBUTES = 0x70000001U,
1048 
1049  SHT_HIPROC = 0x7fffffff, // Highest processor arch-specific type.
1050  SHT_LOUSER = 0x80000000, // Lowest type reserved for applications.
1051  SHT_HIUSER = 0xffffffff // Highest type reserved for applications.
1052 };
1053 
1054 // Section flags.
1055 enum : unsigned {
1056  // Section data should be writable during execution.
1057  SHF_WRITE = 0x1,
1058 
1059  // Section occupies memory during program execution.
1060  SHF_ALLOC = 0x2,
1061 
1062  // Section contains executable machine instructions.
1064 
1065  // The data in this section may be merged.
1066  SHF_MERGE = 0x10,
1067 
1068  // The data in this section is null-terminated strings.
1069  SHF_STRINGS = 0x20,
1070 
1071  // A field in this section holds a section header table index.
1072  SHF_INFO_LINK = 0x40U,
1073 
1074  // Adds special ordering requirements for link editors.
1076 
1077  // This section requires special OS-specific processing to avoid incorrect
1078  // behavior.
1080 
1081  // This section is a member of a section group.
1082  SHF_GROUP = 0x200U,
1083 
1084  // This section holds Thread-Local Storage.
1085  SHF_TLS = 0x400U,
1086 
1087  // Identifies a section containing compressed data.
1088  SHF_COMPRESSED = 0x800U,
1089 
1090  // This section should not be garbage collected by the linker.
1091  SHF_GNU_RETAIN = 0x200000,
1092 
1093  // This section is excluded from the final executable or shared library.
1094  SHF_EXCLUDE = 0x80000000U,
1095 
1096  // Start of target-specific flags.
1097 
1098  SHF_MASKOS = 0x0ff00000,
1099 
1100  // Solaris equivalent of SHF_GNU_RETAIN.
1101  SHF_SUNW_NODISCARD = 0x00100000,
1102 
1103  // Bits indicating processor-specific flags.
1104  SHF_MASKPROC = 0xf0000000,
1105 
1106  /// All sections with the "d" flag are grouped together by the linker to form
1107  /// the data section and the dp register is set to the start of the section by
1108  /// the boot code.
1109  XCORE_SHF_DP_SECTION = 0x10000000,
1110 
1111  /// All sections with the "c" flag are grouped together by the linker to form
1112  /// the constant pool and the cp register is set to the start of the constant
1113  /// pool by the boot code.
1114  XCORE_SHF_CP_SECTION = 0x20000000,
1115 
1116  // If an object file section does not have this flag set, then it may not hold
1117  // more than 2GB and can be freely referred to in objects using smaller code
1118  // models. Otherwise, only objects using larger code models can refer to them.
1119  // For example, a medium code model object can refer to data in a section that
1120  // sets this flag besides being able to refer to data in a section that does
1121  // not set it; likewise, a small code model object can refer only to code in a
1122  // section that does not set this flag.
1123  SHF_X86_64_LARGE = 0x10000000,
1124 
1125  // All sections with the GPREL flag are grouped into a global data area
1126  // for faster accesses
1127  SHF_HEX_GPREL = 0x10000000,
1128 
1129  // Section contains text/data which may be replicated in other sections.
1130  // Linker must retain only one copy.
1131  SHF_MIPS_NODUPES = 0x01000000,
1132 
1133  // Linker must generate implicit hidden weak names.
1134  SHF_MIPS_NAMES = 0x02000000,
1135 
1136  // Section data local to process.
1137  SHF_MIPS_LOCAL = 0x04000000,
1138 
1139  // Do not strip this section.
1140  SHF_MIPS_NOSTRIP = 0x08000000,
1141 
1142  // Section must be part of global data area.
1143  SHF_MIPS_GPREL = 0x10000000,
1144 
1145  // This section should be merged.
1146  SHF_MIPS_MERGE = 0x20000000,
1147 
1148  // Address size to be inferred from section entry size.
1149  SHF_MIPS_ADDR = 0x40000000,
1150 
1151  // Section data is string data by default.
1152  SHF_MIPS_STRING = 0x80000000,
1153 
1154  // Make code section unreadable when in execute-only mode
1155  SHF_ARM_PURECODE = 0x20000000
1156 };
1157 
1158 // Section Group Flags
1159 enum : unsigned {
1160  GRP_COMDAT = 0x1,
1161  GRP_MASKOS = 0x0ff00000,
1162  GRP_MASKPROC = 0xf0000000
1163 };
1164 
1165 // Symbol table entries for ELF32.
1166 struct Elf32_Sym {
1167  Elf32_Word st_name; // Symbol name (index into string table)
1168  Elf32_Addr st_value; // Value or address associated with the symbol
1169  Elf32_Word st_size; // Size of the symbol
1170  unsigned char st_info; // Symbol's type and binding attributes
1171  unsigned char st_other; // Must be zero; reserved
1172  Elf32_Half st_shndx; // Which section (header table index) it's defined in
1173 
1174  // These accessors and mutators correspond to the ELF32_ST_BIND,
1175  // ELF32_ST_TYPE, and ELF32_ST_INFO macros defined in the ELF specification:
1176  unsigned char getBinding() const { return st_info >> 4; }
1177  unsigned char getType() const { return st_info & 0x0f; }
1178  void setBinding(unsigned char b) { setBindingAndType(b, getType()); }
1179  void setType(unsigned char t) { setBindingAndType(getBinding(), t); }
1180  void setBindingAndType(unsigned char b, unsigned char t) {
1181  st_info = (b << 4) + (t & 0x0f);
1182  }
1183 };
1184 
1185 // Symbol table entries for ELF64.
1186 struct Elf64_Sym {
1187  Elf64_Word st_name; // Symbol name (index into string table)
1188  unsigned char st_info; // Symbol's type and binding attributes
1189  unsigned char st_other; // Must be zero; reserved
1190  Elf64_Half st_shndx; // Which section (header tbl index) it's defined in
1191  Elf64_Addr st_value; // Value or address associated with the symbol
1192  Elf64_Xword st_size; // Size of the symbol
1193 
1194  // These accessors and mutators are identical to those defined for ELF32
1195  // symbol table entries.
1196  unsigned char getBinding() const { return st_info >> 4; }
1197  unsigned char getType() const { return st_info & 0x0f; }
1198  void setBinding(unsigned char b) { setBindingAndType(b, getType()); }
1199  void setType(unsigned char t) { setBindingAndType(getBinding(), t); }
1200  void setBindingAndType(unsigned char b, unsigned char t) {
1201  st_info = (b << 4) + (t & 0x0f);
1202  }
1203 };
1204 
1205 // The size (in bytes) of symbol table entries.
1206 enum {
1207  SYMENTRY_SIZE32 = 16, // 32-bit symbol entry size
1208  SYMENTRY_SIZE64 = 24 // 64-bit symbol entry size.
1209 };
1210 
1211 // Symbol bindings.
1212 enum {
1213  STB_LOCAL = 0, // Local symbol, not visible outside obj file containing def
1214  STB_GLOBAL = 1, // Global symbol, visible to all object files being combined
1215  STB_WEAK = 2, // Weak symbol, like global but lower-precedence
1217  STB_LOOS = 10, // Lowest operating system-specific binding type
1218  STB_HIOS = 12, // Highest operating system-specific binding type
1219  STB_LOPROC = 13, // Lowest processor-specific binding type
1220  STB_HIPROC = 15 // Highest processor-specific binding type
1221 };
1222 
1223 // Symbol types.
1224 enum {
1225  STT_NOTYPE = 0, // Symbol's type is not specified
1226  STT_OBJECT = 1, // Symbol is a data object (variable, array, etc.)
1227  STT_FUNC = 2, // Symbol is executable code (function, etc.)
1228  STT_SECTION = 3, // Symbol refers to a section
1229  STT_FILE = 4, // Local, absolute symbol that refers to a file
1230  STT_COMMON = 5, // An uninitialized common block
1231  STT_TLS = 6, // Thread local data object
1232  STT_GNU_IFUNC = 10, // GNU indirect function
1233  STT_LOOS = 10, // Lowest operating system-specific symbol type
1234  STT_HIOS = 12, // Highest operating system-specific symbol type
1235  STT_LOPROC = 13, // Lowest processor-specific symbol type
1236  STT_HIPROC = 15, // Highest processor-specific symbol type
1237 
1238  // AMDGPU symbol types
1240 };
1241 
1242 enum {
1243  STV_DEFAULT = 0, // Visibility is specified by binding type
1244  STV_INTERNAL = 1, // Defined by processor supplements
1245  STV_HIDDEN = 2, // Not visible to other components
1246  STV_PROTECTED = 3 // Visible in other components but not preemptable
1247 };
1248 
1249 // Symbol number.
1250 enum { STN_UNDEF = 0 };
1251 
1252 // Special relocation symbols used in the MIPS64 ELF relocation entries
1253 enum {
1254  RSS_UNDEF = 0, // None
1255  RSS_GP = 1, // Value of gp
1256  RSS_GP0 = 2, // Value of gp used to create object being relocated
1257  RSS_LOC = 3 // Address of location being relocated
1258 };
1259 
1260 // Relocation entry, without explicit addend.
1261 struct Elf32_Rel {
1262  Elf32_Addr r_offset; // Location (file byte offset, or program virtual addr)
1263  Elf32_Word r_info; // Symbol table index and type of relocation to apply
1264 
1265  // These accessors and mutators correspond to the ELF32_R_SYM, ELF32_R_TYPE,
1266  // and ELF32_R_INFO macros defined in the ELF specification:
1267  Elf32_Word getSymbol() const { return (r_info >> 8); }
1268  unsigned char getType() const { return (unsigned char)(r_info & 0x0ff); }
1270  void setType(unsigned char t) { setSymbolAndType(getSymbol(), t); }
1271  void setSymbolAndType(Elf32_Word s, unsigned char t) {
1272  r_info = (s << 8) + t;
1273  }
1274 };
1275 
1276 // Relocation entry with explicit addend.
1277 struct Elf32_Rela {
1278  Elf32_Addr r_offset; // Location (file byte offset, or program virtual addr)
1279  Elf32_Word r_info; // Symbol table index and type of relocation to apply
1280  Elf32_Sword r_addend; // Compute value for relocatable field by adding this
1281 
1282  // These accessors and mutators correspond to the ELF32_R_SYM, ELF32_R_TYPE,
1283  // and ELF32_R_INFO macros defined in the ELF specification:
1284  Elf32_Word getSymbol() const { return (r_info >> 8); }
1285  unsigned char getType() const { return (unsigned char)(r_info & 0x0ff); }
1287  void setType(unsigned char t) { setSymbolAndType(getSymbol(), t); }
1288  void setSymbolAndType(Elf32_Word s, unsigned char t) {
1289  r_info = (s << 8) + t;
1290  }
1291 };
1292 
1293 // Relocation entry without explicit addend or info (relative relocations only).
1294 typedef Elf32_Word Elf32_Relr; // offset/bitmap for relative relocations
1295 
1296 // Relocation entry, without explicit addend.
1297 struct Elf64_Rel {
1298  Elf64_Addr r_offset; // Location (file byte offset, or program virtual addr).
1299  Elf64_Xword r_info; // Symbol table index and type of relocation to apply.
1300 
1301  // These accessors and mutators correspond to the ELF64_R_SYM, ELF64_R_TYPE,
1302  // and ELF64_R_INFO macros defined in the ELF specification:
1303  Elf64_Word getSymbol() const { return (r_info >> 32); }
1304  Elf64_Word getType() const { return (Elf64_Word)(r_info & 0xffffffffL); }
1308  r_info = ((Elf64_Xword)s << 32) + (t & 0xffffffffL);
1309  }
1310 };
1311 
1312 // Relocation entry with explicit addend.
1313 struct Elf64_Rela {
1314  Elf64_Addr r_offset; // Location (file byte offset, or program virtual addr).
1315  Elf64_Xword r_info; // Symbol table index and type of relocation to apply.
1316  Elf64_Sxword r_addend; // Compute value for relocatable field by adding this.
1317 
1318  // These accessors and mutators correspond to the ELF64_R_SYM, ELF64_R_TYPE,
1319  // and ELF64_R_INFO macros defined in the ELF specification:
1320  Elf64_Word getSymbol() const { return (r_info >> 32); }
1321  Elf64_Word getType() const { return (Elf64_Word)(r_info & 0xffffffffL); }
1325  r_info = ((Elf64_Xword)s << 32) + (t & 0xffffffffL);
1326  }
1327 };
1328 
1329 // Relocation entry without explicit addend or info (relative relocations only).
1330 typedef Elf64_Xword Elf64_Relr; // offset/bitmap for relative relocations
1331 
1332 // Program header for ELF32.
1333 struct Elf32_Phdr {
1334  Elf32_Word p_type; // Type of segment
1335  Elf32_Off p_offset; // File offset where segment is located, in bytes
1336  Elf32_Addr p_vaddr; // Virtual address of beginning of segment
1337  Elf32_Addr p_paddr; // Physical address of beginning of segment (OS-specific)
1338  Elf32_Word p_filesz; // Num. of bytes in file image of segment (may be zero)
1339  Elf32_Word p_memsz; // Num. of bytes in mem image of segment (may be zero)
1340  Elf32_Word p_flags; // Segment flags
1341  Elf32_Word p_align; // Segment alignment constraint
1342 };
1343 
1344 // Program header for ELF64.
1345 struct Elf64_Phdr {
1346  Elf64_Word p_type; // Type of segment
1347  Elf64_Word p_flags; // Segment flags
1348  Elf64_Off p_offset; // File offset where segment is located, in bytes
1349  Elf64_Addr p_vaddr; // Virtual address of beginning of segment
1350  Elf64_Addr p_paddr; // Physical addr of beginning of segment (OS-specific)
1351  Elf64_Xword p_filesz; // Num. of bytes in file image of segment (may be zero)
1352  Elf64_Xword p_memsz; // Num. of bytes in mem image of segment (may be zero)
1353  Elf64_Xword p_align; // Segment alignment constraint
1354 };
1355 
1356 // Segment types.
1357 enum {
1358  PT_NULL = 0, // Unused segment.
1359  PT_LOAD = 1, // Loadable segment.
1360  PT_DYNAMIC = 2, // Dynamic linking information.
1361  PT_INTERP = 3, // Interpreter pathname.
1362  PT_NOTE = 4, // Auxiliary information.
1363  PT_SHLIB = 5, // Reserved.
1364  PT_PHDR = 6, // The program header table itself.
1365  PT_TLS = 7, // The thread-local storage template.
1366  PT_LOOS = 0x60000000, // Lowest operating system-specific pt entry type.
1367  PT_HIOS = 0x6fffffff, // Highest operating system-specific pt entry type.
1368  PT_LOPROC = 0x70000000, // Lowest processor-specific program hdr entry type.
1369  PT_HIPROC = 0x7fffffff, // Highest processor-specific program hdr entry type.
1370 
1371  // x86-64 program header types.
1372  // These all contain stack unwind tables.
1373  PT_GNU_EH_FRAME = 0x6474e550,
1374  PT_SUNW_EH_FRAME = 0x6474e550,
1375  PT_SUNW_UNWIND = 0x6464e550,
1376 
1377  PT_GNU_STACK = 0x6474e551, // Indicates stack executability.
1378  PT_GNU_RELRO = 0x6474e552, // Read-only after relocation.
1379  PT_GNU_PROPERTY = 0x6474e553, // .note.gnu.property notes sections.
1380 
1381  PT_OPENBSD_RANDOMIZE = 0x65a3dbe6, // Fill with random data.
1382  PT_OPENBSD_WXNEEDED = 0x65a3dbe7, // Program does W^X violations.
1383  PT_OPENBSD_BOOTDATA = 0x65a41be6, // Section for boot arguments.
1384 
1385  // ARM program header types.
1386  PT_ARM_ARCHEXT = 0x70000000, // Platform architecture compatibility info
1387  // These all contain stack unwind tables.
1388  PT_ARM_EXIDX = 0x70000001,
1389  PT_ARM_UNWIND = 0x70000001,
1390  // MTE memory tag segment type
1392 
1393  // MIPS program header types.
1394  PT_MIPS_REGINFO = 0x70000000, // Register usage information.
1395  PT_MIPS_RTPROC = 0x70000001, // Runtime procedure table.
1396  PT_MIPS_OPTIONS = 0x70000002, // Options segment.
1397  PT_MIPS_ABIFLAGS = 0x70000003, // Abiflags segment.
1398 
1399  // RISCV program header types.
1400  PT_RISCV_ATTRIBUTES = 0x70000003,
1401 };
1402 
1403 // Segment flag bits.
1404 enum : unsigned {
1405  PF_X = 1, // Execute
1406  PF_W = 2, // Write
1407  PF_R = 4, // Read
1408  PF_MASKOS = 0x0ff00000, // Bits for operating system-specific semantics.
1409  PF_MASKPROC = 0xf0000000 // Bits for processor-specific semantics.
1410 };
1411 
1412 // Dynamic table entry for ELF32.
1413 struct Elf32_Dyn {
1414  Elf32_Sword d_tag; // Type of dynamic table entry.
1415  union {
1416  Elf32_Word d_val; // Integer value of entry.
1417  Elf32_Addr d_ptr; // Pointer value of entry.
1418  } d_un;
1419 };
1420 
1421 // Dynamic table entry for ELF64.
1422 struct Elf64_Dyn {
1423  Elf64_Sxword d_tag; // Type of dynamic table entry.
1424  union {
1425  Elf64_Xword d_val; // Integer value of entry.
1426  Elf64_Addr d_ptr; // Pointer value of entry.
1427  } d_un;
1428 };
1429 
1430 // Dynamic table entry tags.
1431 enum {
1432 #define DYNAMIC_TAG(name, value) DT_##name = value,
1433 #include "DynamicTags.def"
1434 #undef DYNAMIC_TAG
1435 };
1436 
1437 // DT_FLAGS values.
1438 enum {
1439  DF_ORIGIN = 0x01, // The object may reference $ORIGIN.
1440  DF_SYMBOLIC = 0x02, // Search the shared lib before searching the exe.
1441  DF_TEXTREL = 0x04, // Relocations may modify a non-writable segment.
1442  DF_BIND_NOW = 0x08, // Process all relocations on load.
1443  DF_STATIC_TLS = 0x10 // Reject attempts to load dynamically.
1444 };
1445 
1446 // State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1 entry.
1447 enum {
1448  DF_1_NOW = 0x00000001, // Set RTLD_NOW for this object.
1449  DF_1_GLOBAL = 0x00000002, // Set RTLD_GLOBAL for this object.
1450  DF_1_GROUP = 0x00000004, // Set RTLD_GROUP for this object.
1451  DF_1_NODELETE = 0x00000008, // Set RTLD_NODELETE for this object.
1452  DF_1_LOADFLTR = 0x00000010, // Trigger filtee loading at runtime.
1453  DF_1_INITFIRST = 0x00000020, // Set RTLD_INITFIRST for this object.
1454  DF_1_NOOPEN = 0x00000040, // Set RTLD_NOOPEN for this object.
1455  DF_1_ORIGIN = 0x00000080, // $ORIGIN must be handled.
1456  DF_1_DIRECT = 0x00000100, // Direct binding enabled.
1457  DF_1_TRANS = 0x00000200,
1458  DF_1_INTERPOSE = 0x00000400, // Object is used to interpose.
1459  DF_1_NODEFLIB = 0x00000800, // Ignore default lib search path.
1460  DF_1_NODUMP = 0x00001000, // Object can't be dldump'ed.
1461  DF_1_CONFALT = 0x00002000, // Configuration alternative created.
1462  DF_1_ENDFILTEE = 0x00004000, // Filtee terminates filters search.
1463  DF_1_DISPRELDNE = 0x00008000, // Disp reloc applied at build time.
1464  DF_1_DISPRELPND = 0x00010000, // Disp reloc applied at run-time.
1465  DF_1_NODIRECT = 0x00020000, // Object has no-direct binding.
1466  DF_1_IGNMULDEF = 0x00040000,
1467  DF_1_NOKSYMS = 0x00080000,
1468  DF_1_NOHDR = 0x00100000,
1469  DF_1_EDITED = 0x00200000, // Object is modified after built.
1470  DF_1_NORELOC = 0x00400000,
1471  DF_1_SYMINTPOSE = 0x00800000, // Object has individual interposers.
1472  DF_1_GLOBAUDIT = 0x01000000, // Global auditing required.
1473  DF_1_SINGLETON = 0x02000000, // Singleton symbols are used.
1474  DF_1_PIE = 0x08000000, // Object is a position-independent executable.
1475 };
1476 
1477 // DT_MIPS_FLAGS values.
1478 enum {
1479  RHF_NONE = 0x00000000, // No flags.
1480  RHF_QUICKSTART = 0x00000001, // Uses shortcut pointers.
1481  RHF_NOTPOT = 0x00000002, // Hash size is not a power of two.
1482  RHS_NO_LIBRARY_REPLACEMENT = 0x00000004, // Ignore LD_LIBRARY_PATH.
1483  RHF_NO_MOVE = 0x00000008, // DSO address may not be relocated.
1484  RHF_SGI_ONLY = 0x00000010, // SGI specific features.
1485  RHF_GUARANTEE_INIT = 0x00000020, // Guarantee that .init will finish
1486  // executing before any non-init
1487  // code in DSO is called.
1488  RHF_DELTA_C_PLUS_PLUS = 0x00000040, // Contains Delta C++ code.
1489  RHF_GUARANTEE_START_INIT = 0x00000080, // Guarantee that .init will start
1490  // executing before any non-init
1491  // code in DSO is called.
1492  RHF_PIXIE = 0x00000100, // Generated by pixie.
1493  RHF_DEFAULT_DELAY_LOAD = 0x00000200, // Delay-load DSO by default.
1494  RHF_REQUICKSTART = 0x00000400, // Object may be requickstarted
1495  RHF_REQUICKSTARTED = 0x00000800, // Object has been requickstarted
1496  RHF_CORD = 0x00001000, // Generated by cord.
1497  RHF_NO_UNRES_UNDEF = 0x00002000, // Object contains no unresolved
1498  // undef symbols.
1499  RHF_RLD_ORDER_SAFE = 0x00004000 // Symbol table is in a safe order.
1500 };
1501 
1502 // ElfXX_VerDef structure version (GNU versioning)
1503 enum { VER_DEF_NONE = 0, VER_DEF_CURRENT = 1 };
1504 
1505 // VerDef Flags (ElfXX_VerDef::vd_flags)
1506 enum { VER_FLG_BASE = 0x1, VER_FLG_WEAK = 0x2, VER_FLG_INFO = 0x4 };
1507 
1508 // Special constants for the version table. (SHT_GNU_versym/.gnu.version)
1509 enum {
1510  VER_NDX_LOCAL = 0, // Unversioned local symbol
1511  VER_NDX_GLOBAL = 1, // Unversioned global symbol
1512  VERSYM_VERSION = 0x7fff, // Version Index mask
1513  VERSYM_HIDDEN = 0x8000 // Hidden bit (non-default version)
1514 };
1515 
1516 // ElfXX_VerNeed structure version (GNU versioning)
1518 
1519 // SHT_NOTE section types.
1520 
1521 // Generic note types.
1522 enum : unsigned {
1524  NT_ARCH = 2,
1527 };
1528 
1529 // Core note types.
1530 enum : unsigned {
1535  NT_AUXV = 6,
1542 
1543  NT_PPC_VMX = 0x100,
1544  NT_PPC_VSX = 0x102,
1545  NT_PPC_TAR = 0x103,
1546  NT_PPC_PPR = 0x104,
1547  NT_PPC_DSCR = 0x105,
1548  NT_PPC_EBB = 0x106,
1549  NT_PPC_PMU = 0x107,
1554  NT_PPC_TM_SPR = 0x10c,
1558 
1559  NT_386_TLS = 0x200,
1560  NT_386_IOPERM = 0x201,
1561  NT_X86_XSTATE = 0x202,
1562 
1564  NT_S390_TIMER = 0x301,
1567  NT_S390_CTRS = 0x304,
1571  NT_S390_TDB = 0x308,
1574  NT_S390_GS_CB = 0x30b,
1575  NT_S390_GS_BC = 0x30c,
1576 
1577  NT_ARM_VFP = 0x400,
1578  NT_ARM_TLS = 0x401,
1581  NT_ARM_SVE = 0x405,
1583 
1584  NT_FILE = 0x46494c45,
1585  NT_PRXFPREG = 0x46e62b7f,
1586  NT_SIGINFO = 0x53494749,
1587 };
1588 
1589 // LLVM-specific notes.
1590 enum {
1592 };
1593 
1594 // GNU note types.
1595 enum {
1602 };
1603 
1604 // Android note types.
1605 enum {
1609 };
1610 
1611 // Memory tagging values used in NT_ANDROID_TYPE_MEMTAG notes.
1612 enum {
1613  // Enumeration to determine the tagging mode. In Android-land, 'SYNC' means
1614  // running all threads in MTE Synchronous mode, and 'ASYNC' means to use the
1615  // kernels auto-upgrade feature to allow for either MTE Asynchronous,
1616  // Asymmetric, or Synchronous mode. This allows silicon vendors to specify, on
1617  // a per-cpu basis what 'ASYNC' should mean. Generally, the expectation is
1618  // "pick the most precise mode that's very fast".
1623  // Bits indicating whether the loader should prepare for MTE to be enabled on
1624  // the heap and/or stack.
1627 };
1628 
1629 // Property types used in GNU_PROPERTY_TYPE_0 notes.
1630 enum : unsigned {
1635 
1639 
1643 };
1644 
1645 // aarch64 processor feature bits.
1646 enum : unsigned {
1649 };
1650 
1651 // x86 processor feature bits.
1652 enum : unsigned {
1655 
1666 
1671 };
1672 
1673 // FreeBSD note types.
1674 enum {
1679 };
1680 
1681 // NT_FREEBSD_FEATURE_CTL values (see FreeBSD's sys/sys/elf_common.h).
1682 enum {
1687  NT_FREEBSD_FCTL_LA48 = 0x00000010,
1689 };
1690 
1691 // FreeBSD core note types.
1692 enum {
1703 };
1704 
1705 // NetBSD core note types.
1706 enum {
1710 };
1711 
1712 // OpenBSD core note types.
1713 enum {
1720 };
1721 
1722 // AMDGPU-specific section indices.
1723 enum {
1724  SHN_AMDGPU_LDS = 0xff00, // Variable in LDS; symbol encoded like SHN_COMMON
1725 };
1726 
1727 // AMD vendor specific notes. (Code Object V2)
1728 enum {
1732  // Note types with values between 4 and 9 (inclusive) are reserved.
1736 };
1737 
1738 // AMDGPU vendor specific notes. (Code Object V3)
1739 enum {
1740  // Note types with values between 0 and 31 (inclusive) are reserved.
1742 };
1743 
1744 // LLVMOMPOFFLOAD specific notes.
1745 enum : unsigned {
1749 };
1750 
1751 enum {
1759 };
1760 
1761 constexpr const char *ELF_NOTE_GNU = "GNU";
1762 
1763 // Android packed relocation group flags.
1764 enum {
1769 };
1770 
1771 // Compressed section header for ELF32.
1772 struct Elf32_Chdr {
1776 };
1777 
1778 // Compressed section header for ELF64.
1779 struct Elf64_Chdr {
1784 };
1785 
1786 // Note header for ELF32.
1787 struct Elf32_Nhdr {
1791 };
1792 
1793 // Note header for ELF64.
1794 struct Elf64_Nhdr {
1798 };
1799 
1800 // Legal values for ch_type field of compressed section header.
1801 enum {
1802  ELFCOMPRESS_ZLIB = 1, // ZLIB/DEFLATE algorithm.
1803  ELFCOMPRESS_ZSTD = 2, // Zstandard algorithm
1804  ELFCOMPRESS_LOOS = 0x60000000, // Start of OS-specific.
1805  ELFCOMPRESS_HIOS = 0x6fffffff, // End of OS-specific.
1806  ELFCOMPRESS_LOPROC = 0x70000000, // Start of processor-specific.
1807  ELFCOMPRESS_HIPROC = 0x7fffffff // End of processor-specific.
1808 };
1809 
1810 /// Convert an architecture name into ELF's e_machine value.
1812 
1813 /// Convert an ELF's e_machine value into an architecture name.
1815 
1816 } // end namespace ELF
1817 } // end namespace llvm
1818 
1819 #endif // LLVM_BINARYFORMAT_ELF_H
llvm::ELF::EF_AMDGPU_MACH_R600_SUMO
@ EF_AMDGPU_MACH_R600_SUMO
Definition: ELF.h:719
llvm::ELF::NT_S390_HIGH_GPRS
@ NT_S390_HIGH_GPRS
Definition: ELF.h:1563
llvm::ELF::DF_ORIGIN
@ DF_ORIGIN
Definition: ELF.h:1439
llvm::ELF::EF_AMDGPU_MACH
@ EF_AMDGPU_MACH
Definition: ELF.h:698
llvm::ELF::Elf64_Dyn::d_ptr
Elf64_Addr d_ptr
Definition: ELF.h:1426
llvm::ELF::EF_MSP430_MACH_MSP430x11x1
@ EF_MSP430_MACH_MSP430x11x1
Definition: ELF.h:847
llvm::ELF::PF_X
@ PF_X
Definition: ELF.h:1405
llvm::ELF::ODK_IDENT
@ ODK_IDENT
Definition: ELF.h:603
llvm::ELF::GNU_PROPERTY_X86_ISA_1_BASELINE
@ GNU_PROPERTY_X86_ISA_1_BASELINE
Definition: ELF.h:1667
llvm::ELF::STT_TLS
@ STT_TLS
Definition: ELF.h:1231
llvm::ELF::EF_MSP430_MACH_MSP430x11
@ EF_MSP430_MACH_MSP430x11
Definition: ELF.h:846
llvm::ELF::EM_MMDSP_PLUS
@ EM_MMDSP_PLUS
Definition: ELF.h:253
llvm::ELF::NT_ARM_PAC_MASK
@ NT_ARM_PAC_MASK
Definition: ELF.h:1582
llvm::ELF::EM_RX
@ EM_RX
Definition: ELF.h:269
llvm::ELF::Elf32_Chdr::ch_addralign
Elf32_Word ch_addralign
Definition: ELF.h:1775
llvm::ELF::Elf64_Phdr::p_align
Elf64_Xword p_align
Definition: ELF.h:1353
llvm::ELF::Elf64_Sym::st_shndx
Elf64_Half st_shndx
Definition: ELF.h:1190
llvm::ELF::EM_V800
@ EM_V800
Definition: ELF.h:152
llvm::ELF::STO_PPC64_LOCAL_BIT
@ STO_PPC64_LOCAL_BIT
Definition: ELF.h:408
llvm::ELF::ET_HIPROC
@ ET_HIPROC
Definition: ELF.h:123
llvm::ELF::ODK_GP_GROUP
@ ODK_GP_GROUP
Definition: ELF.h:602
llvm::ELF::GNU_ABI_TAG_FREEBSD
@ GNU_ABI_TAG_FREEBSD
Definition: ELF.h:1755
llvm::ELF::EF_HEXAGON_MACH_V3
@ EF_HEXAGON_MACH_V3
Definition: ELF.h:611
llvm::ELF::SHT_GROUP
@ SHT_GROUP
Definition: ELF.h:990
llvm::ELF::Elf64_Shdr::sh_name
Elf64_Word sh_name
Definition: ELF.h:947
llvm::ELF::EF_AVR_ARCH_XMEGA2
@ EF_AVR_ARCH_XMEGA2
Definition: ELF.h:488
llvm::ELF::EM_CDP
@ EM_CDP
Definition: ELF.h:311
llvm::ELF::EF_LOONGARCH_BASE_ABI_LP64F
@ EF_LOONGARCH_BASE_ABI_LP64F
Definition: ELF.h:916
llvm::ELF::EM_COOL
@ EM_COOL
Definition: ELF.h:313
llvm::ELF::EM_PDSP
@ EM_PDSP
Definition: ELF.h:179
llvm::ELF::EF_MIPS_ARCH_2
@ EF_MIPS_ARCH_2
Definition: ELF.h:555
llvm::ELF::NT_NETBSDCORE_PROCINFO
@ NT_NETBSDCORE_PROCINFO
Definition: ELF.h:1707
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1031
@ EF_AMDGPU_MACH_AMDGCN_GFX1031
Definition: ELF.h:758
llvm::ELF::PT_GNU_RELRO
@ PT_GNU_RELRO
Definition: ELF.h:1378
llvm::ELF::SHF_MIPS_ADDR
@ SHF_MIPS_ADDR
Definition: ELF.h:1149
llvm::ELF::Elf64_Ehdr::checkMagic
bool checkMagic() const
Definition: ELF.h:103
llvm::ELF::NT_OPENBSD_REGS
@ NT_OPENBSD_REGS
Definition: ELF.h:1716
llvm::ELF::EF_HEXAGON_ISA_V65
@ EF_HEXAGON_ISA_V65
Definition: ELF.h:635
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
llvm::ELF::STB_GLOBAL
@ STB_GLOBAL
Definition: ELF.h:1214
llvm::ELF::Elf32_Relr
Elf32_Word Elf32_Relr
Definition: ELF.h:1294
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_MMX
@ GNU_PROPERTY_X86_FEATURE_2_MMX
Definition: ELF.h:1658
llvm::ELF::EF_MSP430_MACH_MSP430x46
@ EF_MSP430_MACH_MSP430x46
Definition: ELF.h:866
llvm::ELF::Elf32_Rela::setType
void setType(unsigned char t)
Definition: ELF.h:1287
llvm::ELF::EF_MSP430_MACH_MSP430x16
@ EF_MSP430_MACH_MSP430x16
Definition: ELF.h:852
llvm::ELF::Elf64_Rela::setType
void setType(Elf64_Word t)
Definition: ELF.h:1323
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1030
@ EF_AMDGPU_MACH_AMDGCN_GFX1030
Definition: ELF.h:757
llvm::ELF::Elf32_Chdr::ch_size
Elf32_Word ch_size
Definition: ELF.h:1774
llvm::ELF::Elf64_Sym::getType
unsigned char getType() const
Definition: ELF.h:1197
llvm::ELF::SHF_EXECINSTR
@ SHF_EXECINSTR
Definition: ELF.h:1063
llvm::ELF::ELFOSABI_LINUX
@ ELFOSABI_LINUX
Definition: ELF.h:345
llvm::ELF::EM_L10M
@ EM_L10M
Definition: ELF.h:278
llvm::ELF::ELFOSABI_AMDGPU_PAL
@ ELFOSABI_AMDGPU_PAL
Definition: ELF.h:361
llvm::ELF::Elf32_Ehdr::getDataEncoding
unsigned char getDataEncoding() const
Definition: ELF.h:82
llvm::ELF::Elf32_Rela::getType
unsigned char getType() const
Definition: ELF.h:1285
llvm::ELF::STT_HIOS
@ STT_HIOS
Definition: ELF.h:1234
llvm::ELF::Elf32_Dyn::d_tag
Elf32_Sword d_tag
Definition: ELF.h:1414
llvm::ELF::RHF_GUARANTEE_START_INIT
@ RHF_GUARANTEE_START_INIT
Definition: ELF.h:1489
llvm::ELF::GNU_PROPERTY_X86_UINT32_OR_LO
@ GNU_PROPERTY_X86_UINT32_OR_LO
Definition: ELF.h:1636
llvm::ELF::EF_HEXAGON_MACH_V65
@ EF_HEXAGON_MACH_V65
Definition: ELF.h:617
llvm::ELF::EM_MCST_ELBRUS
@ EM_MCST_ELBRUS
Definition: ELF.h:272
llvm::ELF::NT_PPC_TM_CTAR
@ NT_PPC_TM_CTAR
Definition: ELF.h:1555
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1036
@ EF_AMDGPU_MACH_AMDGCN_GFX1036
Definition: ELF.h:772
llvm::ELF::EM_DSP24
@ EM_DSP24
Definition: ELF.h:246
llvm::ELF::SHN_MIPS_ACOMMON
@ SHN_MIPS_ACOMMON
Definition: ELF.h:570
llvm::ELF::EI_DATA
@ EI_DATA
Definition: ELF.h:53
llvm::ELF::EF_ARM_EABI_UNKNOWN
@ EF_ARM_EABI_UNKNOWN
Definition: ELF.h:439
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX703
@ EF_AMDGPU_MACH_AMDGCN_GFX703
Definition: ELF.h:740
llvm::ELF::EF_ARM_EABIMASK
@ EF_ARM_EABIMASK
Definition: ELF.h:445
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_ANY_V4
@ EF_AMDGPU_FEATURE_XNACK_ANY_V4
Definition: ELF.h:809
llvm::ELF::SHF_MIPS_GPREL
@ SHF_MIPS_GPREL
Definition: ELF.h:1143
llvm::ELF::Elf64_Sxword
int64_t Elf64_Sxword
Definition: ELF.h:41
llvm::ELF::EM_INTEL207
@ EM_INTEL207
Definition: ELF.h:303
llvm::ELF::Elf64_Ehdr::e_machine
Elf64_Half e_machine
Definition: ELF.h:90
llvm::ELF::EF_AVR_ARCH_XMEGA4
@ EF_AVR_ARCH_XMEGA4
Definition: ELF.h:490
llvm::ELF::Elf64_Ehdr::e_phoff
Elf64_Off e_phoff
Definition: ELF.h:93
llvm::ELF::EF_AMDGPU_MACH_R600_RV730
@ EF_AMDGPU_MACH_R600_RV730
Definition: ELF.h:712
llvm::ELF::Elf64_Ehdr::e_phnum
Elf64_Half e_phnum
Definition: ELF.h:98
llvm::ELF::EF_MIPS_ARCH_1
@ EF_MIPS_ARCH_1
Definition: ELF.h:554
llvm::ELF::EF_MSP430_MACH_MSP430x41
@ EF_MSP430_MACH_MSP430x41
Definition: ELF.h:861
llvm::ELF::NT_PRPSINFO
@ NT_PRPSINFO
Definition: ELF.h:1533
llvm::ELF::SHT_MIPS_DWARF
@ SHT_MIPS_DWARF
Definition: ELF.h:1040
llvm::ELF::EF_MIPS_ARCH_5
@ EF_MIPS_ARCH_5
Definition: ELF.h:558
llvm::ELF::EM_M32R
@ EM_M32R
Definition: ELF.h:204
llvm::ELF::NT_ANDROID_TYPE_MEMTAG
@ NT_ANDROID_TYPE_MEMTAG
Definition: ELF.h:1608
llvm::ELF::VER_NEED_NONE
@ VER_NEED_NONE
Definition: ELF.h:1517
llvm::ELF::EF_AVR_LINKRELAX_PREPARED
@ EF_AVR_LINKRELAX_PREPARED
Definition: ELF.h:497
llvm::ELF::GNU_PROPERTY_STACK_SIZE
@ GNU_PROPERTY_STACK_SIZE
Definition: ELF.h:1631
llvm::ELF::NT_S390_GS_CB
@ NT_S390_GS_CB
Definition: ELF.h:1574
llvm::ELF::Elf64_Shdr::sh_addralign
Elf64_Xword sh_addralign
Definition: ELF.h:955
llvm::ELF::PT_MIPS_REGINFO
@ PT_MIPS_REGINFO
Definition: ELF.h:1394
llvm::ELF::Elf64_Phdr::p_memsz
Elf64_Xword p_memsz
Definition: ELF.h:1352
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX601
@ EF_AMDGPU_MACH_AMDGCN_GFX601
Definition: ELF.h:736
llvm::ELF::Elf64_Ehdr::e_flags
Elf64_Word e_flags
Definition: ELF.h:95
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1011
@ EF_AMDGPU_MACH_AMDGCN_GFX1011
Definition: ELF.h:755
llvm::ELF::Elf64_Ehdr::e_ident
unsigned char e_ident[EI_NIDENT]
Definition: ELF.h:88
StringRef.h
llvm::ELF::PT_HIPROC
@ PT_HIPROC
Definition: ELF.h:1369
llvm::ELF::EM_H8_300H
@ EM_H8_300H
Definition: ELF.h:163
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX90C
@ EF_AMDGPU_MACH_AMDGCN_GFX90C
Definition: ELF.h:753
llvm::ELF::Elf32_Shdr::sh_entsize
Elf32_Word sh_entsize
Definition: ELF.h:942
llvm::ELF::EM_MCHP_PIC
@ EM_MCHP_PIC
Definition: ELF.h:300
llvm::ELF::Elf32_Ehdr::e_machine
Elf32_Half e_machine
Definition: ELF.h:64
llvm::ELF::Elf32_Ehdr::e_version
Elf32_Word e_version
Definition: ELF.h:65
llvm::ELF::SHT_GNU_verdef
@ SHT_GNU_verdef
Definition: ELF.h:1020
llvm::ELF::Elf32_Sword
int32_t Elf32_Sword
Definition: ELF.h:33
llvm::ELF::PT_OPENBSD_BOOTDATA
@ PT_OPENBSD_BOOTDATA
Definition: ELF.h:1383
llvm::ELF::SHT_LLVM_PART_PHDR
@ SHT_LLVM_PART_PHDR
Definition: ELF.h:1008
llvm::ELF::Elf32_Sym::setBindingAndType
void setBindingAndType(unsigned char b, unsigned char t)
Definition: ELF.h:1180
llvm::ELF::SHF_MASKPROC
@ SHF_MASKPROC
Definition: ELF.h:1104
llvm::ELF::EM_MICROBLAZE
@ EM_MICROBLAZE
Definition: ELF.h:285
llvm::ELF::EF_MIPS_MACH_4111
@ EF_MIPS_MACH_4111
Definition: ELF.h:532
llvm::ELF::ELFOSABI_AMDGPU_MESA3D
@ ELFOSABI_AMDGPU_MESA3D
Definition: ELF.h:362
llvm::ELF::EM_SNP1K
@ EM_SNP1K
Definition: ELF.h:216
llvm::ELF::PF_R
@ PF_R
Definition: ELF.h:1407
llvm::ELF::Elf64_Rel::getType
Elf64_Word getType() const
Definition: ELF.h:1304
llvm::ELF::NT_OPENBSD_PROCINFO
@ NT_OPENBSD_PROCINFO
Definition: ELF.h:1714
llvm::ELF::PT_GNU_EH_FRAME
@ PT_GNU_EH_FRAME
Definition: ELF.h:1373
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1013
@ EF_AMDGPU_MACH_AMDGCN_GFX1013
Definition: ELF.h:769
llvm::ELF::EF_AVR_ARCH_XMEGA6
@ EF_AVR_ARCH_XMEGA6
Definition: ELF.h:492
llvm::ELF::DF_BIND_NOW
@ DF_BIND_NOW
Definition: ELF.h:1442
llvm::ELF::SHT_MIPS_OPTIONS
@ SHT_MIPS_OPTIONS
Definition: ELF.h:1039
llvm::ELF::EF_ARM_EABI_VER5
@ EF_ARM_EABI_VER5
Definition: ELF.h:444
llvm::ELF::Elf32_Sym::st_info
unsigned char st_info
Definition: ELF.h:1170
llvm::ELF::EI_PAD
@ EI_PAD
Definition: ELF.h:57
llvm::ELF::SHN_HEXAGON_SCOMMON
@ SHN_HEXAGON_SCOMMON
Definition: ELF.h:645
llvm::ELF::Elf64_Rel::getSymbol
Elf64_Word getSymbol() const
Definition: ELF.h:1303
llvm::ELF::Elf64_Chdr::ch_size
Elf64_Xword ch_size
Definition: ELF.h:1782
llvm::ELF::Elf64_Shdr::sh_type
Elf64_Word sh_type
Definition: ELF.h:948
llvm::ELF::NT_MEMTAG_LEVEL_MASK
@ NT_MEMTAG_LEVEL_MASK
Definition: ELF.h:1622
llvm::ELF::ODK_PAD
@ ODK_PAD
Definition: ELF.h:596
llvm::ELF::EF_CSKY_810
@ EF_CSKY_810
Definition: ELF.h:888
llvm::ELF::ELFCOMPRESS_HIPROC
@ ELFCOMPRESS_HIPROC
Definition: ELF.h:1807
llvm::ELF::EF_HEXAGON_MACH_V69
@ EF_HEXAGON_MACH_V69
Definition: ELF.h:622
llvm::ELF::EF_MIPS_ARCH_4
@ EF_MIPS_ARCH_4
Definition: ELF.h:557
llvm::ELF::Elf32_Nhdr::n_type
Elf32_Word n_type
Definition: ELF.h:1790
llvm::ELF::EF_CSKY_EFV2
@ EF_CSKY_EFV2
Definition: ELF.h:895
llvm::ELF::SHT_HASH
@ SHT_HASH
Definition: ELF.h:980
llvm::ELF::EM_HEXAGON
@ EM_HEXAGON
Definition: ELF.h:257
llvm::ELF::ET_HIOS
@ ET_HIOS
Definition: ELF.h:121
llvm::ELF::EM_R32C
@ EM_R32C
Definition: ELF.h:255
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_OFF_V4
@ EF_AMDGPU_FEATURE_SRAMECC_OFF_V4
Definition: ELF.h:824
llvm::ELF::EM_LOONGARCH
@ EM_LOONGARCH
Definition: ELF.h:322
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1103
@ EF_AMDGPU_MACH_AMDGCN_GFX1103
Definition: ELF.h:771
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1100
@ EF_AMDGPU_MACH_AMDGCN_GFX1100
Definition: ELF.h:768
llvm::ELF::DF_1_INITFIRST
@ DF_1_INITFIRST
Definition: ELF.h:1453
llvm::ELF::DF_1_IGNMULDEF
@ DF_1_IGNMULDEF
Definition: ELF.h:1466
llvm::ELF::E_ARC_MACH_ARC700
@ E_ARC_MACH_ARC700
Definition: ELF.h:459
llvm::ELF::EF_HEXAGON_ISA_V5
@ EF_HEXAGON_ISA_V5
Definition: ELF.h:631
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX805
@ EF_AMDGPU_MACH_AMDGCN_GFX805
Definition: ELF.h:763
llvm::ELF::EF_ARC_CPU_ARCV2HS
@ EF_ARC_CPU_ARCV2HS
Definition: ELF.h:461
llvm::ELF::EM_RCE
@ EM_RCE
Definition: ELF.h:155
llvm::ELF::GNU_PROPERTY_X86_FEATURE_1_IBT
@ GNU_PROPERTY_X86_FEATURE_1_IBT
Definition: ELF.h:1653
llvm::ELF::EF_HEXAGON_MACH_V55
@ EF_HEXAGON_MACH_V55
Definition: ELF.h:614
llvm::ELF::Elf64_Dyn::d_un
union llvm::ELF::Elf64_Dyn::@133 d_un
memcmp
Merge contiguous icmps into a memcmp
Definition: MergeICmps.cpp:899
llvm::ELF::E_ARC_OSABI_ORIG
@ E_ARC_OSABI_ORIG
Definition: ELF.h:462
llvm::ELF::NT_386_TLS
@ NT_386_TLS
Definition: ELF.h:1559
llvm::ELF::EF_CSKY_EFV3
@ EF_CSKY_EFV3
Definition: ELF.h:896
llvm::ELF::Elf64_Sym::setBindingAndType
void setBindingAndType(unsigned char b, unsigned char t)
Definition: ELF.h:1200
llvm::ELF::NT_GNU_GOLD_VERSION
@ NT_GNU_GOLD_VERSION
Definition: ELF.h:1599
llvm::ELF::EM_ST9PLUS
@ EM_ST9PLUS
Definition: ELF.h:183
llvm::ELF::GNU_PROPERTY_X86_ISA_1_V4
@ GNU_PROPERTY_X86_ISA_1_V4
Definition: ELF.h:1670
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX602
@ EF_AMDGPU_MACH_AMDGCN_GFX602
Definition: ELF.h:761
llvm::ELF::SHT_DYNSYM
@ SHT_DYNSYM
Definition: ELF.h:986
llvm::ELF::EF_MSP430_MACH_MSP430x14
@ EF_MSP430_MACH_MSP430x14
Definition: ELF.h:850
llvm::ELF::EF_LOONGARCH_BASE_ABI_LP64S
@ EF_LOONGARCH_BASE_ABI_LP64S
Definition: ELF.h:915
llvm::ELF::Elf64_Nhdr::n_descsz
Elf64_Word n_descsz
Definition: ELF.h:1796
llvm::ELF::EF_AMDGPU_MACH_R600_RESERVED_LAST
@ EF_AMDGPU_MACH_R600_RESERVED_LAST
Definition: ELF.h:728
llvm::ELF::EM_LANAI
@ EM_LANAI
Definition: ELF.h:318
llvm::ELF::GRP_MASKPROC
@ GRP_MASKPROC
Definition: ELF.h:1162
llvm::ELF::SHT_NOBITS
@ SHT_NOBITS
Definition: ELF.h:983
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_XMM
@ GNU_PROPERTY_X86_FEATURE_2_XMM
Definition: ELF.h:1659
llvm::ELF::EM_MMIX
@ EM_MMIX
Definition: ELF.h:196
llvm::ELF::Elf32_Sym::getType
unsigned char getType() const
Definition: ELF.h:1177
llvm::ELF::NT_GNU_BUILD_ID
@ NT_GNU_BUILD_ID
Definition: ELF.h:1598
llvm::ELF::SHT_LLVM_DEPENDENT_LIBRARIES
@ SHT_LLVM_DEPENDENT_LIBRARIES
Definition: ELF.h:1004
llvm::ELF::EM_TI_C5500
@ EM_TI_C5500
Definition: ELF.h:252
llvm::ELF::STT_NOTYPE
@ STT_NOTYPE
Definition: ELF.h:1225
llvm::ELF::STO_MIPS_PLT
@ STO_MIPS_PLT
Definition: ELF.h:585
llvm::ELF::NT_WIN32PSTATUS
@ NT_WIN32PSTATUS
Definition: ELF.h:1541
llvm::ELF::EM_NONE
@ EM_NONE
Definition: ELF.h:133
llvm::ELF::RHF_RLD_ORDER_SAFE
@ RHF_RLD_ORDER_SAFE
Definition: ELF.h:1499
llvm::ELF::EF_PPC64_ABI
@ EF_PPC64_ABI
Definition: ELF.h:403
llvm::ELF::EF_CSKY_EFV1
@ EF_CSKY_EFV1
Definition: ELF.h:894
llvm::ELF::E_ARC_MACH_ARC601
@ E_ARC_MACH_ARC601
Definition: ELF.h:458
llvm::ELF::STB_HIOS
@ STB_HIOS
Definition: ELF.h:1218
llvm::ELF::EF_MIPS_32BITMODE
@ EF_MIPS_32BITMODE
Definition: ELF.h:512
llvm::ELF::VER_FLG_BASE
@ VER_FLG_BASE
Definition: ELF.h:1506
llvm::ELF::SHT_SYMTAB
@ SHT_SYMTAB
Definition: ELF.h:977
llvm::ELF::ET_CORE
@ ET_CORE
Definition: ELF.h:119
llvm::ELF::EF_ARC_CPU_ARCV2EM
@ EF_ARC_CPU_ARCV2EM
Definition: ELF.h:460
llvm::ELF::SHT_ARM_ATTRIBUTES
@ SHT_ARM_ATTRIBUTES
Definition: ELF.h:1031
llvm::ELF::SHF_MIPS_NOSTRIP
@ SHF_MIPS_NOSTRIP
Definition: ELF.h:1140
llvm::ELF::Elf64_Sym::st_info
unsigned char st_info
Definition: ELF.h:1188
llvm::ELF::SHF_MERGE
@ SHF_MERGE
Definition: ELF.h:1066
llvm::ELF::SHT_ARM_PREEMPTMAP
@ SHT_ARM_PREEMPTMAP
Definition: ELF.h:1029
llvm::ELF::DF_1_EDITED
@ DF_1_EDITED
Definition: ELF.h:1469
llvm::ELF::SHF_OS_NONCONFORMING
@ SHF_OS_NONCONFORMING
Definition: ELF.h:1079
llvm::ELF::SHT_LLVM_PART_EHDR
@ SHT_LLVM_PART_EHDR
Definition: ELF.h:1007
llvm::ELF::SHN_HEXAGON_SCOMMON_1
@ SHN_HEXAGON_SCOMMON_1
Definition: ELF.h:646
llvm::ELF::VER_FLG_WEAK
@ VER_FLG_WEAK
Definition: ELF.h:1506
llvm::ELF::SHF_MIPS_NODUPES
@ SHF_MIPS_NODUPES
Definition: ELF.h:1131
llvm::ELF::EF_HEXAGON_ISA_V62
@ EF_HEXAGON_ISA_V62
Definition: ELF.h:634
llvm::ELF::EM_SPARCV9
@ EM_SPARCV9
Definition: ELF.h:159
llvm::ELF::EF_MIPS_PIC
@ EF_MIPS_PIC
Definition: ELF.h:509
llvm::ELF::Elf64_Xword
uint64_t Elf64_Xword
Definition: ELF.h:40
llvm::ELF::EF_MSP430_MACH_MSP430x24
@ EF_MSP430_MACH_MSP430x24
Definition: ELF.h:856
llvm::ELF::SHF_X86_64_LARGE
@ SHF_X86_64_LARGE
Definition: ELF.h:1123
llvm::ELF::PT_PHDR
@ PT_PHDR
Definition: ELF.h:1364
llvm::ELF::Elf64_Ehdr::e_shentsize
Elf64_Half e_shentsize
Definition: ELF.h:99
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_RESERVED_0X43
@ EF_AMDGPU_MACH_AMDGCN_RESERVED_0X43
Definition: ELF.h:770
llvm::ELF::EM_CUDA
@ EM_CUDA
Definition: ELF.h:286
llvm::ELF::NT_FREEBSD_PROCSTAT_PSSTRINGS
@ NT_FREEBSD_PROCSTAT_PSSTRINGS
Definition: ELF.h:1701
llvm::ELF::EF_HEXAGON_ISA_V4
@ EF_HEXAGON_ISA_V4
Definition: ELF.h:630
llvm::ELF::NT_AMD_HSA_ISA_VERSION
@ NT_AMD_HSA_ISA_VERSION
Definition: ELF.h:1731
llvm::ELF::PT_SUNW_EH_FRAME
@ PT_SUNW_EH_FRAME
Definition: ELF.h:1374
llvm::ELF::NT_S390_SYSTEM_CALL
@ NT_S390_SYSTEM_CALL
Definition: ELF.h:1570
llvm::ELF::EF_MIPS_MACH_5400
@ EF_MIPS_MACH_5400
Definition: ELF.h:538
llvm::ELF::EF_LOONGARCH_BASE_ABI_MASK
@ EF_LOONGARCH_BASE_ABI_MASK
Definition: ELF.h:921
llvm::ELF::NT_FREEBSD_FCTL_ASG_DISABLE
@ NT_FREEBSD_FCTL_ASG_DISABLE
Definition: ELF.h:1688
llvm::ELF::ET_NONE
@ ET_NONE
Definition: ELF.h:115
llvm::ELF::EF_LOONGARCH_BASE_ABI_LP64D
@ EF_LOONGARCH_BASE_ABI_LP64D
Definition: ELF.h:917
llvm::ELF::SHT_PROGBITS
@ SHT_PROGBITS
Definition: ELF.h:976
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX802
@ EF_AMDGPU_MACH_AMDGCN_GFX802
Definition: ELF.h:744
llvm::ELF::EF_HEXAGON_MACH
@ EF_HEXAGON_MACH
Definition: ELF.h:623
llvm::ELF::SHT_GNU_versym
@ SHT_GNU_versym
Definition: ELF.h:1022
llvm::ELF::ET_LOPROC
@ ET_LOPROC
Definition: ELF.h:122
llvm::ELF::EF_MIPS_ABI_O64
@ EF_MIPS_ABI_O64
Definition: ELF.h:520
llvm::ELF::SHF_TLS
@ SHF_TLS
Definition: ELF.h:1085
llvm::ELF::SHN_AMDGPU_LDS
@ SHN_AMDGPU_LDS
Definition: ELF.h:1724
llvm::ELF::EM_AVR
@ EM_AVR
Definition: ELF.h:199
llvm::ELF::Elf32_Sym::setBinding
void setBinding(unsigned char b)
Definition: ELF.h:1178
llvm::ELF::EF_ARM_EABI_VER3
@ EF_ARM_EABI_VER3
Definition: ELF.h:442
llvm::ELF::EF_AMDGPU_MACH_R600_RS880
@ EF_AMDGPU_MACH_R600_RS880
Definition: ELF.h:708
llvm::ELF::EM_NS32K
@ EM_NS32K
Definition: ELF.h:214
llvm::ELF::SHN_HIOS
@ SHN_HIOS
Definition: ELF.h:966
llvm::ELF::SHT_STRTAB
@ SHT_STRTAB
Definition: ELF.h:978
llvm::ELF::GNU_PROPERTY_X86_FEATURE_1_SHSTK
@ GNU_PROPERTY_X86_FEATURE_1_SHSTK
Definition: ELF.h:1654
llvm::ELF::EF_MSP430_MACH_MSP430x54
@ EF_MSP430_MACH_MSP430x54
Definition: ELF.h:868
llvm::ELF::EM_SEP
@ EM_SEP
Definition: ELF.h:225
llvm::ELF::Elf64_Dyn::d_val
Elf64_Xword d_val
Definition: ELF.h:1425
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_ZMM
@ GNU_PROPERTY_X86_FEATURE_2_ZMM
Definition: ELF.h:1661
llvm::ELF::EF_AMDGPU_MACH_R600_RV710
@ EF_AMDGPU_MACH_R600_RV710
Definition: ELF.h:711
llvm::ELF::EF_MIPS_MACH_4100
@ EF_MIPS_MACH_4100
Definition: ELF.h:529
llvm::ELF::PT_LOOS
@ PT_LOOS
Definition: ELF.h:1366
llvm::ELF::SHF_INFO_LINK
@ SHF_INFO_LINK
Definition: ELF.h:1072
llvm::ELF::SHF_COMPRESSED
@ SHF_COMPRESSED
Definition: ELF.h:1088
llvm::ELF::GNU_PROPERTY_X86_UINT32_OR_AND_LO
@ GNU_PROPERTY_X86_UINT32_OR_AND_LO
Definition: ELF.h:1640
llvm::ELF::Elf64_Rel::r_offset
Elf64_Addr r_offset
Definition: ELF.h:1298
llvm::ELF::EM_VAX
@ EM_VAX
Definition: ELF.h:191
llvm::ELF::SHN_MIPS_SUNDEFINED
@ SHN_MIPS_SUNDEFINED
Definition: ELF.h:574
llvm::ELF::EM_TSK3000
@ EM_TSK3000
Definition: ELF.h:240
llvm::ELF::Elf32_Shdr::sh_info
Elf32_Word sh_info
Definition: ELF.h:940
llvm::ELF::Elf64_Rela
Definition: ELF.h:1313
llvm::ELF::ELFOSABI_HPUX
@ ELFOSABI_HPUX
Definition: ELF.h:342
llvm::ELF::SHT_LOOS
@ SHT_LOOS
Definition: ELF.h:995
llvm::ELF::ELFOSABI_ARM
@ ELFOSABI_ARM
Definition: ELF.h:363
llvm::ELF::Elf32_Rel::getType
unsigned char getType() const
Definition: ELF.h:1268
llvm::ELF::Elf32_Nhdr::n_descsz
Elf32_Word n_descsz
Definition: ELF.h:1789
llvm::ELF::EV_NONE
@ EV_NONE
Definition: ELF.h:127
llvm::ELF::EF_MIPS_ARCH_ASE_MDMX
@ EF_MIPS_ARCH_ASE_MDMX
Definition: ELF.h:550
llvm::ELF::NT_ARM_HW_WATCH
@ NT_ARM_HW_WATCH
Definition: ELF.h:1580
llvm::ELF::NT_PPC_TM_SPR
@ NT_PPC_TM_SPR
Definition: ELF.h:1554
llvm::ELF::EM_CE
@ EM_CE
Definition: ELF.h:238
llvm::ELF::ELFOSABI_OPENVMS
@ ELFOSABI_OPENVMS
Definition: ELF.h:354
llvm::ELF::VER_NEED_CURRENT
@ VER_NEED_CURRENT
Definition: ELF.h:1517
llvm::ELF::SHN_LORESERVE
@ SHN_LORESERVE
Definition: ELF.h:962
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX908
@ EF_AMDGPU_MACH_AMDGCN_GFX908
Definition: ELF.h:751
llvm::ELF::SHN_HEXAGON_SCOMMON_4
@ SHN_HEXAGON_SCOMMON_4
Definition: ELF.h:648
llvm::ELF::Elf64_Shdr::sh_link
Elf64_Word sh_link
Definition: ELF.h:953
llvm::ELF::EF_MIPS_ABI_O32
@ EF_MIPS_ABI_O32
Definition: ELF.h:519
llvm::ELF::Elf32_Ehdr::e_shstrndx
Elf32_Half e_shstrndx
Definition: ELF.h:75
llvm::ELF::EM_ST100
@ EM_ST100
Definition: ELF.h:176
llvm::ELF::ELFOSABI_NSK
@ ELFOSABI_NSK
Definition: ELF.h:355
llvm::ELF::EM_COREA_1ST
@ EM_COREA_1ST
Definition: ELF.h:289
llvm::ELF::EM_CRX
@ EM_CRX
Definition: ELF.h:232
llvm::ELF::STV_HIDDEN
@ STV_HIDDEN
Definition: ELF.h:1245
llvm::ELF::PT_LOAD
@ PT_LOAD
Definition: ELF.h:1359
llvm::ELF::EF_AVR_ARCH_AVR51
@ EF_AVR_ARCH_AVR51
Definition: ELF.h:484
llvm::ELF::ELFOSABI_AIX
@ ELFOSABI_AIX
Definition: ELF.h:348
llvm::ELF::EM_SCORE7
@ EM_SCORE7
Definition: ELF.h:245
llvm::ELF::SHT_LLVM_OFFLOADING
@ SHT_LLVM_OFFLOADING
Definition: ELF.h:1014
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4
@ EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4
Definition: ELF.h:820
llvm::ELF::Elf64_Sword
int32_t Elf64_Sword
Definition: ELF.h:39
llvm::ELF::STT_FUNC
@ STT_FUNC
Definition: ELF.h:1227
llvm::ELF::EF_MSP430_MACH_MSP430x23
@ EF_MSP430_MACH_MSP430x23
Definition: ELF.h:855
llvm::ELF::EM_78KOR
@ EM_78KOR
Definition: ELF.h:295
llvm::ELF::EF_MIPS_MACH_4650
@ EF_MIPS_MACH_4650
Definition: ELF.h:530
llvm::ELF::GNU_ABI_TAG_LINUX
@ GNU_ABI_TAG_LINUX
Definition: ELF.h:1752
llvm::ELF::DF_1_NODIRECT
@ DF_1_NODIRECT
Definition: ELF.h:1465
llvm::ELF::EF_LOONGARCH_BASE_ABI_ILP32F
@ EF_LOONGARCH_BASE_ABI_ILP32F
Definition: ELF.h:919
llvm::ELF::ELFCOMPRESS_HIOS
@ ELFCOMPRESS_HIOS
Definition: ELF.h:1805
llvm::ELF::NT_FREEBSD_ABI_TAG
@ NT_FREEBSD_ABI_TAG
Definition: ELF.h:1675
llvm::ELF::EM_960
@ EM_960
Definition: ELF.h:147
llvm::ELF::EM_RH32
@ EM_RH32
Definition: ELF.h:154
llvm::ELF::EM_SPU
@ EM_SPU
Definition: ELF.h:151
llvm::ELF::EF_MSP430_MACH_MSP430x20
@ EF_MSP430_MACH_MSP430x20
Definition: ELF.h:853
llvm::ELF::ELFCOMPRESS_ZLIB
@ ELFCOMPRESS_ZLIB
Definition: ELF.h:1802
llvm::ELF::EF_HEXAGON_ISA_V2
@ EF_HEXAGON_ISA_V2
Definition: ELF.h:628
llvm::ELF::PT_NOTE
@ PT_NOTE
Definition: ELF.h:1362
llvm::ELF::EF_MIPS_ARCH_ASE
@ EF_MIPS_ARCH_ASE
Definition: ELF.h:551
llvm::ELF::Elf32_Rel::r_info
Elf32_Word r_info
Definition: ELF.h:1263
llvm::ELF::NT_FREEBSD_NOINIT_TAG
@ NT_FREEBSD_NOINIT_TAG
Definition: ELF.h:1676
llvm::ELF::NT_OPENBSD_FPREGS
@ NT_OPENBSD_FPREGS
Definition: ELF.h:1717
llvm::ELF::DF_1_NOHDR
@ DF_1_NOHDR
Definition: ELF.h:1468
llvm::ELF::DF_1_LOADFLTR
@ DF_1_LOADFLTR
Definition: ELF.h:1452
llvm::ELF::GNU_ABI_TAG_NACL
@ GNU_ABI_TAG_NACL
Definition: ELF.h:1758
llvm::ELF::EM_ST19
@ EM_ST19
Definition: ELF.h:190
llvm::ELF::NT_PPC_VSX
@ NT_PPC_VSX
Definition: ELF.h:1544
llvm::ELF::EF_MSP430_MACH_MSP430x42
@ EF_MSP430_MACH_MSP430x42
Definition: ELF.h:862
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX900
@ EF_AMDGPU_MACH_AMDGCN_GFX900
Definition: ELF.h:747
llvm::ELF::EM_C166
@ EM_C166
Definition: ELF.h:234
llvm::ELF::EF_RISCV_FLOAT_ABI_SOFT
@ EF_RISCV_FLOAT_ABI_SOFT
Definition: ELF.h:666
llvm::ELF::NT_OPENBSD_XFPREGS
@ NT_OPENBSD_XFPREGS
Definition: ELF.h:1718
llvm::ELF::STV_PROTECTED
@ STV_PROTECTED
Definition: ELF.h:1246
llvm::ELF::NT_FREEBSD_FCTL_WXNEEDED
@ NT_FREEBSD_FCTL_WXNEEDED
Definition: ELF.h:1686
llvm::ELF::Elf32_Phdr::p_type
Elf32_Word p_type
Definition: ELF.h:1334
llvm::ELF::EM_S370
@ EM_S370
Definition: ELF.h:142
llvm::ELF::EF_ARM_VFP_FLOAT
@ EF_ARM_VFP_FLOAT
Definition: ELF.h:436
llvm::ELF::DF_STATIC_TLS
@ DF_STATIC_TLS
Definition: ELF.h:1443
llvm::ELF::ELFOSABI_NONE
@ ELFOSABI_NONE
Definition: ELF.h:341
llvm::ELF::Elf32_Rel
Definition: ELF.h:1261
llvm::ELF::Elf64_Sym::st_name
Elf64_Word st_name
Definition: ELF.h:1187
llvm::ELF::STO_AARCH64_VARIANT_PCS
@ STO_AARCH64_VARIANT_PCS
Definition: ELF.h:429
llvm::ELF::EM_68K
@ EM_68K
Definition: ELF.h:137
llvm::ELF::SHF_MIPS_LOCAL
@ SHF_MIPS_LOCAL
Definition: ELF.h:1137
llvm::ELF::EF_HEXAGON_ISA_V67
@ EF_HEXAGON_ISA_V67
Definition: ELF.h:637
llvm::ELF::Elf32_Shdr::sh_size
Elf32_Word sh_size
Definition: ELF.h:938
llvm::ELF::EF_MSP430_MACH_MSP430x44
@ EF_MSP430_MACH_MSP430x44
Definition: ELF.h:864
llvm::ELF::Elf64_Sym::st_size
Elf64_Xword st_size
Definition: ELF.h:1192
llvm::ELF::NT_NETBSDCORE_LWPSTATUS
@ NT_NETBSDCORE_LWPSTATUS
Definition: ELF.h:1709
llvm::ELF::EM_860
@ EM_860
Definition: ELF.h:140
llvm::ELF::Elf32_Phdr::p_vaddr
Elf32_Addr p_vaddr
Definition: ELF.h:1336
llvm::ELF::RHF_NOTPOT
@ RHF_NOTPOT
Definition: ELF.h:1481
llvm::ELF::EM_ARM
@ EM_ARM
Definition: ELF.h:156
llvm::ELF::SHT_HIOS
@ SHT_HIOS
Definition: ELF.h:1023
llvm::ELF::EM_XTENSA
@ EM_XTENSA
Definition: ELF.h:211
llvm::ELF::ELFOSABI_OPENBSD
@ ELFOSABI_OPENBSD
Definition: ELF.h:353
llvm::ELF::EM_RS08
@ EM_RS08
Definition: ELF.h:241
llvm::ELF::ODK_HWOR
@ ODK_HWOR
Definition: ELF.h:601
llvm::ELF::DF_1_NORELOC
@ DF_1_NORELOC
Definition: ELF.h:1470
llvm::ELF::Elf32_Rela::setSymbolAndType
void setSymbolAndType(Elf32_Word s, unsigned char t)
Definition: ELF.h:1288
llvm::ELF::STB_GNU_UNIQUE
@ STB_GNU_UNIQUE
Definition: ELF.h:1216
llvm::ELF::Elf64_Shdr::sh_offset
Elf64_Off sh_offset
Definition: ELF.h:951
llvm::ELF::EM_LATTICEMICO32
@ EM_LATTICEMICO32
Definition: ELF.h:248
llvm::ELF::PT_SHLIB
@ PT_SHLIB
Definition: ELF.h:1363
llvm::ELF::SHF_MIPS_STRING
@ SHF_MIPS_STRING
Definition: ELF.h:1152
llvm::ELF::Elf64_Chdr::ch_addralign
Elf64_Xword ch_addralign
Definition: ELF.h:1783
llvm::ELF::PT_GNU_STACK
@ PT_GNU_STACK
Definition: ELF.h:1377
llvm::ELF::EF_AVR_ARCH_XMEGA3
@ EF_AVR_ARCH_XMEGA3
Definition: ELF.h:489
llvm::ELF::STB_HIPROC
@ STB_HIPROC
Definition: ELF.h:1220
llvm::ELF::EF_MIPS_MACH_LS2E
@ EF_MIPS_MACH_LS2E
Definition: ELF.h:542
llvm::ELF::NT_PPC_TM_CVSX
@ NT_PPC_TM_CVSX
Definition: ELF.h:1553
llvm::ELF::EM_IP2K
@ EM_IP2K
Definition: ELF.h:218
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_LAST
@ EF_AMDGPU_MACH_AMDGCN_LAST
Definition: ELF.h:778
llvm::ELF::EM_EXCESS
@ EM_EXCESS
Definition: ELF.h:229
llvm::ELF::EM_BA1
@ EM_BA1
Definition: ELF.h:297
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX940
@ EF_AMDGPU_MACH_AMDGCN_GFX940
Definition: ELF.h:767
llvm::ELF::NT_LLVM_OPENMP_OFFLOAD_PRODUCER_VERSION
@ NT_LLVM_OPENMP_OFFLOAD_PRODUCER_VERSION
Definition: ELF.h:1748
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX810
@ EF_AMDGPU_MACH_AMDGCN_GFX810
Definition: ELF.h:746
llvm::ELF::DF_1_NOOPEN
@ DF_1_NOOPEN
Definition: ELF.h:1454
llvm::ELF::EM_OPEN8
@ EM_OPEN8
Definition: ELF.h:292
llvm::ELF::SHN_MIPS_TEXT
@ SHN_MIPS_TEXT
Definition: ELF.h:571
llvm::ELF::NT_FREEBSD_FCTL_PROTMAX_DISABLE
@ NT_FREEBSD_FCTL_PROTMAX_DISABLE
Definition: ELF.h:1684
llvm::ELF::Elf64_Shdr::sh_info
Elf64_Word sh_info
Definition: ELF.h:954
llvm::ELF::EF_ARM_SOFT_FLOAT
@ EF_ARM_SOFT_FLOAT
Definition: ELF.h:434
llvm::ELF::Elf64_Nhdr::n_type
Elf64_Word n_type
Definition: ELF.h:1797
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_FXSR
@ GNU_PROPERTY_X86_FEATURE_2_FXSR
Definition: ELF.h:1662
llvm::ELF::Elf32_Rela::r_info
Elf32_Word r_info
Definition: ELF.h:1279
llvm::ELF::NT_PRXFPREG
@ NT_PRXFPREG
Definition: ELF.h:1585
llvm::ELF::EF_ARM_BE8
@ EF_ARM_BE8
Definition: ELF.h:438
llvm::ELF::EF_AVR_ARCH_AVR25
@ EF_AVR_ARCH_AVR25
Definition: ELF.h:478
llvm::ELF::EM_BA2
@ EM_BA2
Definition: ELF.h:298
llvm::ELF::NT_AMD_HSA_CODE_OBJECT_VERSION
@ NT_AMD_HSA_CODE_OBJECT_VERSION
Definition: ELF.h:1729
llvm::ELF::SHT_SHLIB
@ SHT_SHLIB
Definition: ELF.h:985
llvm::ELF::ELFCOMPRESS_ZSTD
@ ELFCOMPRESS_ZSTD
Definition: ELF.h:1803
llvm::ELF::DF_1_CONFALT
@ DF_1_CONFALT
Definition: ELF.h:1461
llvm::ELF::EF_HEXAGON_ISA
@ EF_HEXAGON_ISA
Definition: ELF.h:640
llvm::ELF::EF_AMDGPU_MACH_R600_REDWOOD
@ EF_AMDGPU_MACH_R600_REDWOOD
Definition: ELF.h:718
llvm::ELF::NT_SIGINFO
@ NT_SIGINFO
Definition: ELF.h:1586
t
bitcast float %x to i32 %s=and i32 %t, 2147483647 %d=bitcast i32 %s to float ret float %d } declare float @fabsf(float %n) define float @bar(float %x) nounwind { %d=call float @fabsf(float %x) ret float %d } This IR(from PR6194):target datalayout="e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple="x86_64-apple-darwin10.0.0" %0=type { double, double } %struct.float3=type { float, float, float } define void @test(%0, %struct.float3 *nocapture %res) nounwind noinline ssp { entry:%tmp18=extractvalue %0 %0, 0 t
Definition: README-SSE.txt:788
b
the resulting code requires compare and branches when and if the revised code is with conditional branches instead of More there is a byte word extend before each where there should be only and the condition codes are not remembered when the same two values are compared twice More LSR enhancements i8 and i32 load store addressing modes are identical int b
Definition: README.txt:418
llvm::ELF::EI_MAG1
@ EI_MAG1
Definition: ELF.h:49
llvm::ELF::NT_FREEBSD_ARCH_TAG
@ NT_FREEBSD_ARCH_TAG
Definition: ELF.h:1677
llvm::ELF::PT_NULL
@ PT_NULL
Definition: ELF.h:1358
llvm::ELF::Elf32_Ehdr::e_ehsize
Elf32_Half e_ehsize
Definition: ELF.h:70
llvm::ELF::SHN_LOOS
@ SHN_LOOS
Definition: ELF.h:965
llvm::ELF::Elf32_Ehdr::e_flags
Elf32_Word e_flags
Definition: ELF.h:69
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1010
@ EF_AMDGPU_MACH_AMDGCN_GFX1010
Definition: ELF.h:754
llvm::ELF::EM_CRAYNV2
@ EM_CRAYNV2
Definition: ELF.h:268
llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V5
@ ELFABIVERSION_AMDGPU_HSA_V5
Definition: ELF.h:377
llvm::ELF::EF_HEXAGON_MACH_V60
@ EF_HEXAGON_MACH_V60
Definition: ELF.h:615
llvm::ELF::EM_INTEL208
@ EM_INTEL208
Definition: ELF.h:304
llvm::ELF::EM_SVX
@ EM_SVX
Definition: ELF.h:189
llvm::ELF::SHT_LLVM_ODRTAB
@ SHT_LLVM_ODRTAB
Definition: ELF.h:1000
llvm::ELF::NT_PRSTATUS
@ NT_PRSTATUS
Definition: ELF.h:1531
llvm::ELF::Elf32_Sym::st_value
Elf32_Addr st_value
Definition: ELF.h:1168
llvm::ELF::EF_AVR_ARCH_AVR5
@ EF_AVR_ARCH_AVR5
Definition: ELF.h:483
llvm::ELF::Elf64_Sym::getBinding
unsigned char getBinding() const
Definition: ELF.h:1196
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX704
@ EF_AMDGPU_MACH_AMDGCN_GFX704
Definition: ELF.h:741
llvm::ELF::NT_OPENBSD_WCOOKIE
@ NT_OPENBSD_WCOOKIE
Definition: ELF.h:1719
llvm::ELF::Elf32_Sym::st_name
Elf32_Word st_name
Definition: ELF.h:1167
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1012
@ EF_AMDGPU_MACH_AMDGCN_GFX1012
Definition: ELF.h:756
llvm::ELF::EF_AMDGPU_MACH_R600_LAST
@ EF_AMDGPU_MACH_R600_LAST
Definition: ELF.h:732
llvm::ELF::EF_MIPS_MACH_OCTEON3
@ EF_MIPS_MACH_OCTEON3
Definition: ELF.h:537
llvm::ELF::DF_1_DIRECT
@ DF_1_DIRECT
Definition: ELF.h:1456
llvm::ELF::EF_AMDGPU_MACH_R600_JUNIPER
@ EF_AMDGPU_MACH_R600_JUNIPER
Definition: ELF.h:717
llvm::ELF::NT_LLVM_HWASAN_GLOBALS
@ NT_LLVM_HWASAN_GLOBALS
Definition: ELF.h:1591
llvm::ELF::EM_OPENRISC
@ EM_OPENRISC
Definition: ELF.h:208
llvm::ELF::NT_FREEBSD_PROCSTAT_RLIMIT
@ NT_FREEBSD_PROCSTAT_RLIMIT
Definition: ELF.h:1699
llvm::ELF::ODK_HWAND
@ ODK_HWAND
Definition: ELF.h:600
llvm::ELF::RHF_NONE
@ RHF_NONE
Definition: ELF.h:1479
llvm::ELF::EM_NORC
@ EM_NORC
Definition: ELF.h:314
llvm::ELF::EM_COGE
@ EM_COGE
Definition: ELF.h:312
llvm::ELF::EF_MIPS_ARCH_64R6
@ EF_MIPS_ARCH_64R6
Definition: ELF.h:564
llvm::ELF::EF_CSKY_800
@ EF_CSKY_800
Definition: ELF.h:890
llvm::ELF::EM_PDP11
@ EM_PDP11
Definition: ELF.h:181
llvm::ELF::EM_NDS32
@ EM_NDS32
Definition: ELF.h:261
llvm::ELF::EM_MIPS_X
@ EM_MIPS_X
Definition: ELF.h:167
llvm::ELF::SHN_HIRESERVE
@ SHN_HIRESERVE
Definition: ELF.h:970
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1034
@ EF_AMDGPU_MACH_AMDGCN_GFX1034
Definition: ELF.h:765
llvm::ELF::Elf32_Rel::setSymbol
void setSymbol(Elf32_Word s)
Definition: ELF.h:1269
llvm::ELF::RHF_DELTA_C_PLUS_PLUS
@ RHF_DELTA_C_PLUS_PLUS
Definition: ELF.h:1488
llvm::ELF::EF_MIPS_MACH
@ EF_MIPS_MACH
Definition: ELF.h:545
llvm::ELF::NT_AMD_HSA_ISA_NAME
@ NT_AMD_HSA_ISA_NAME
Definition: ELF.h:1734
llvm::ELF::EM_SH
@ EM_SH
Definition: ELF.h:158
llvm::ELF::Elf32_Rel::setSymbolAndType
void setSymbolAndType(Elf32_Word s, unsigned char t)
Definition: ELF.h:1271
llvm::ELF::GNU_PROPERTY_AARCH64_FEATURE_1_BTI
@ GNU_PROPERTY_AARCH64_FEATURE_1_BTI
Definition: ELF.h:1647
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX909
@ EF_AMDGPU_MACH_AMDGCN_GFX909
Definition: ELF.h:752
llvm::ELF::NT_GNU_BUILD_ATTRIBUTE_FUNC
@ NT_GNU_BUILD_ATTRIBUTE_FUNC
Definition: ELF.h:1526
llvm::ELF::ELFOSABI_AMDGPU_HSA
@ ELFOSABI_AMDGPU_HSA
Definition: ELF.h:360
llvm::ELF::DF_1_GLOBAUDIT
@ DF_1_GLOBAUDIT
Definition: ELF.h:1472
llvm::ELF::PT_SUNW_UNWIND
@ PT_SUNW_UNWIND
Definition: ELF.h:1375
llvm::ELF::NT_PPC_PMU
@ NT_PPC_PMU
Definition: ELF.h:1549
llvm::ELF::ELFOSABI_AROS
@ ELFOSABI_AROS
Definition: ELF.h:356
llvm::ELF::ELFOSABI_C6000_LINUX
@ ELFOSABI_C6000_LINUX
Definition: ELF.h:365
llvm::ELF::EF_MIPS_MACH_NONE
@ EF_MIPS_MACH_NONE
Definition: ELF.h:526
llvm::ELF::EF_AVR_ARCH_AVR35
@ EF_AVR_ARCH_AVR35
Definition: ELF.h:481
llvm::ELF::EF_MIPS_MACH_5500
@ EF_MIPS_MACH_5500
Definition: ELF.h:540
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT
@ GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT
Definition: ELF.h:1664
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX705
@ EF_AMDGPU_MACH_AMDGCN_GFX705
Definition: ELF.h:762
llvm::ELF::SHF_EXCLUDE
@ SHF_EXCLUDE
Definition: ELF.h:1094
llvm::ELF::EM_ST200
@ EM_ST200
Definition: ELF.h:217
llvm::ELF::NT_S390_CTRS
@ NT_S390_CTRS
Definition: ELF.h:1567
llvm::ELF::RSS_GP
@ RSS_GP
Definition: ELF.h:1255
llvm::ELF::EF_MSP430_MACH_MSP430x33
@ EF_MSP430_MACH_MSP430x33
Definition: ELF.h:860
llvm::ELF::Elf32_Rela::setSymbol
void setSymbol(Elf32_Word s)
Definition: ELF.h:1286
llvm::ELF::SHT_MIPS_ABIFLAGS
@ SHT_MIPS_ABIFLAGS
Definition: ELF.h:1041
llvm::ELF::EM_RISCV
@ EM_RISCV
Definition: ELF.h:317
llvm::ELF::NT_MEMTAG_LEVEL_NONE
@ NT_MEMTAG_LEVEL_NONE
Definition: ELF.h:1619
llvm::ELF::EM_TMM_GPP
@ EM_TMM_GPP
Definition: ELF.h:213
llvm::ELF::Elf32_Phdr::p_memsz
Elf32_Word p_memsz
Definition: ELF.h:1339
llvm::ELF::EM_IAMCU
@ EM_IAMCU
Definition: ELF.h:139
llvm::ELF::ET_LOOS
@ ET_LOOS
Definition: ELF.h:120
llvm::ELF::EM_CRIS
@ EM_CRIS
Definition: ELF.h:192
llvm::ELF::NT_ARM_HW_BREAK
@ NT_ARM_HW_BREAK
Definition: ELF.h:1579
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_OFF_V4
@ EF_AMDGPU_FEATURE_XNACK_OFF_V4
Definition: ELF.h:811
llvm::ELF::Elf64_Rel::r_info
Elf64_Xword r_info
Definition: ELF.h:1299
llvm::ELF::EF_HEXAGON_MACH_V66
@ EF_HEXAGON_MACH_V66
Definition: ELF.h:618
llvm::ELF::EF_MIPS_ARCH_3
@ EF_MIPS_ARCH_3
Definition: ELF.h:556
llvm::ELF::EM_INTEL209
@ EM_INTEL209
Definition: ELF.h:305
llvm::ELF::GNU_PROPERTY_X86_ISA_1_V3
@ GNU_PROPERTY_X86_ISA_1_V3
Definition: ELF.h:1669
llvm::ELF::NT_PPC_TM_CFPR
@ NT_PPC_TM_CFPR
Definition: ELF.h:1551
llvm::ELF::NT_AUXV
@ NT_AUXV
Definition: ELF.h:1535
llvm::ELF::NT_GNU_HWCAP
@ NT_GNU_HWCAP
Definition: ELF.h:1597
llvm::ELF::NT_FREEBSD_FEATURE_CTL
@ NT_FREEBSD_FEATURE_CTL
Definition: ELF.h:1678
llvm::ELF::EF_CSKY_860
@ EF_CSKY_860
Definition: ELF.h:889
llvm::ELF::Elf64_Phdr::p_offset
Elf64_Off p_offset
Definition: ELF.h:1348
llvm::ELF::EM_ME16
@ EM_ME16
Definition: ELF.h:175
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_ON_V4
@ EF_AMDGPU_FEATURE_SRAMECC_ON_V4
Definition: ELF.h:826
llvm::ELF::SHF_MASKOS
@ SHF_MASKOS
Definition: ELF.h:1098
llvm::ELF::EM_BPF
@ EM_BPF
Definition: ELF.h:319
llvm::ELF::RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG
@ RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG
Definition: ELF.h:1766
llvm::ELF::Elf32_Shdr::sh_addr
Elf32_Addr sh_addr
Definition: ELF.h:936
llvm::ELF::EF_MIPS_MACH_SB1
@ EF_MIPS_MACH_SB1
Definition: ELF.h:533
llvm::ELF::NT_PPC_TM_CDSCR
@ NT_PPC_TM_CDSCR
Definition: ELF.h:1557
llvm::ELF::Elf64_Phdr::p_filesz
Elf64_Xword p_filesz
Definition: ELF.h:1351
llvm::ELF::NT_PPC_TM_CVMX
@ NT_PPC_TM_CVMX
Definition: ELF.h:1552
llvm::ELF::EM_INTEL206
@ EM_INTEL206
Definition: ELF.h:302
llvm::ELF::EM_ECOG1X
@ EM_ECOG1X
Definition: ELF.h:264
llvm::ELF::EM_MIPS_RS3_LE
@ EM_MIPS_RS3_LE
Definition: ELF.h:143
llvm::ELF::EF_MIPS_ARCH_32R2
@ EF_MIPS_ARCH_32R2
Definition: ELF.h:561
llvm::ELF::NT_LWPSINFO
@ NT_LWPSINFO
Definition: ELF.h:1540
llvm::ELF::NT_NETBSDCORE_AUXV
@ NT_NETBSDCORE_AUXV
Definition: ELF.h:1708
llvm::ELF::NT_PPC_VMX
@ NT_PPC_VMX
Definition: ELF.h:1543
llvm::ELF::Elf64_Rel::setType
void setType(Elf64_Word t)
Definition: ELF.h:1306
llvm::ELF::EF_MIPS_MACH_OCTEON2
@ EF_MIPS_MACH_OCTEON2
Definition: ELF.h:536
llvm::ELF::VER_NDX_GLOBAL
@ VER_NDX_GLOBAL
Definition: ELF.h:1511
llvm::ELF::EI_OSABI
@ EI_OSABI
Definition: ELF.h:55
llvm::ELF::EF_MIPS_ARCH_64
@ EF_MIPS_ARCH_64
Definition: ELF.h:560
llvm::ELF::STT_GNU_IFUNC
@ STT_GNU_IFUNC
Definition: ELF.h:1232
llvm::ELF::SHF_LINK_ORDER
@ SHF_LINK_ORDER
Definition: ELF.h:1075
llvm::ELF::Elf32_Dyn::d_un
union llvm::ELF::Elf32_Dyn::@132 d_un
llvm::ELF::NT_AMDGPU_METADATA
@ NT_AMDGPU_METADATA
Definition: ELF.h:1741
llvm::ELF::STT_SECTION
@ STT_SECTION
Definition: ELF.h:1228
llvm::ELF::NT_PSTATUS
@ NT_PSTATUS
Definition: ELF.h:1536
llvm::ELF::Elf64_Rela::r_addend
Elf64_Sxword r_addend
Definition: ELF.h:1316
llvm::ELF::DF_1_DISPRELPND
@ DF_1_DISPRELPND
Definition: ELF.h:1464
llvm::ELF::Elf32_Ehdr::e_type
Elf32_Half e_type
Definition: ELF.h:63
llvm::ELF::ET_DYN
@ ET_DYN
Definition: ELF.h:118
llvm::ELF::EF_RISCV_FLOAT_ABI_DOUBLE
@ EF_RISCV_FLOAT_ABI_DOUBLE
Definition: ELF.h:668
llvm::ELF::PT_MIPS_RTPROC
@ PT_MIPS_RTPROC
Definition: ELF.h:1395
llvm::ELF::SHT_GNU_HASH
@ SHT_GNU_HASH
Definition: ELF.h:1019
llvm::ELF::RHF_CORD
@ RHF_CORD
Definition: ELF.h:1496
llvm::ELF::EM_TI_C2000
@ EM_TI_C2000
Definition: ELF.h:251
llvm::ELF::VERSYM_HIDDEN
@ VERSYM_HIDDEN
Definition: ELF.h:1513
llvm::ELF::NT_GNU_ABI_TAG
@ NT_GNU_ABI_TAG
Definition: ELF.h:1596
llvm::ELF::NT_ANDROID_TYPE_IDENT
@ NT_ANDROID_TYPE_IDENT
Definition: ELF.h:1606
llvm::ELF::RSS_GP0
@ RSS_GP0
Definition: ELF.h:1256
llvm::ELF::E_ARC_OSABI_V2
@ E_ARC_OSABI_V2
Definition: ELF.h:463
llvm::ELF::EF_MIPS_MACH_5900
@ EF_MIPS_MACH_5900
Definition: ELF.h:539
llvm::ELF::ET_EXEC
@ ET_EXEC
Definition: ELF.h:117
llvm::ELF::NT_TASKSTRUCT
@ NT_TASKSTRUCT
Definition: ELF.h:1534
llvm::ELF::EM_RL78
@ EM_RL78
Definition: ELF.h:293
llvm::ELF::SHT_LOUSER
@ SHT_LOUSER
Definition: ELF.h:1050
llvm::ELF::NT_S390_TIMER
@ NT_S390_TIMER
Definition: ELF.h:1564
llvm::ELF::Elf32_Nhdr
Definition: ELF.h:1787
llvm::ELF::EF_MIPS_MACH_LS2F
@ EF_MIPS_MACH_LS2F
Definition: ELF.h:543
llvm::ELF::ODK_NULL
@ ODK_NULL
Definition: ELF.h:593
llvm::ELF::EF_CSKY_803
@ EF_CSKY_803
Definition: ELF.h:885
llvm::ELF::EM_8051
@ EM_8051
Definition: ELF.h:258
llvm::ELF::EM_CSKY
@ EM_CSKY
Definition: ELF.h:321
llvm::ELF::EM_PCP
@ EM_PCP
Definition: ELF.h:171
llvm::ELF::NT_PSINFO
@ NT_PSINFO
Definition: ELF.h:1538
llvm::ELF::NT_MEMTAG_HEAP
@ NT_MEMTAG_HEAP
Definition: ELF.h:1625
llvm::ELF::EF_ARM_EABI_VER2
@ EF_ARM_EABI_VER2
Definition: ELF.h:441
llvm::ELF::EM_ARCA
@ EM_ARCA
Definition: ELF.h:226
llvm::ELF::ODK_TAGS
@ ODK_TAGS
Definition: ELF.h:599
llvm::ELF::Elf64_Nhdr::n_namesz
Elf64_Word n_namesz
Definition: ELF.h:1795
llvm::ELF::ELFOSABI_IRIX
@ ELFOSABI_IRIX
Definition: ELF.h:349
llvm::ELF::GNU_ABI_TAG_NETBSD
@ GNU_ABI_TAG_NETBSD
Definition: ELF.h:1756
llvm::ELF::NT_PPC_TM_CGPR
@ NT_PPC_TM_CGPR
Definition: ELF.h:1550
uint64_t
llvm::ELF::Elf64_Shdr::sh_entsize
Elf64_Xword sh_entsize
Definition: ELF.h:956
llvm::ELF::EF_AMDGPU_MACH_R600_R630
@ EF_AMDGPU_MACH_R600_R630
Definition: ELF.h:707
llvm::ELF::EI_CLASS
@ EI_CLASS
Definition: ELF.h:52
llvm::ELF::EF_MSP430_MACH_MSP430x43
@ EF_MSP430_MACH_MSP430x43
Definition: ELF.h:863
llvm::ELF::RHF_REQUICKSTART
@ RHF_REQUICKSTART
Definition: ELF.h:1494
llvm::ELF::SHT_ANDROID_REL
@ SHT_ANDROID_REL
Definition: ELF.h:998
llvm::ELF::Elf32_Ehdr::e_entry
Elf32_Addr e_entry
Definition: ELF.h:66
llvm::ELF::EM_XIMO16
@ EM_XIMO16
Definition: ELF.h:266
llvm::ELF::NT_S390_TODCMP
@ NT_S390_TODCMP
Definition: ELF.h:1565
llvm::ELF::EM_TILEGX
@ EM_TILEGX
Definition: ELF.h:287
llvm::ELF::NT_GNU_PROPERTY_TYPE_0
@ NT_GNU_PROPERTY_TYPE_0
Definition: ELF.h:1600
llvm::ELF::STB_LOPROC
@ STB_LOPROC
Definition: ELF.h:1219
llvm::ELF::EM_STXP7X
@ EM_STXP7X
Definition: ELF.h:259
llvm::ELF::EF_MSP430_MACH_MSP430x15
@ EF_MSP430_MACH_MSP430x15
Definition: ELF.h:851
llvm::ELF::EF_MSP430_MACH_MSP430x26
@ EF_MSP430_MACH_MSP430x26
Definition: ELF.h:857
llvm::ELF::EM_PPC64
@ EM_PPC64
Definition: ELF.h:149
llvm::ELF::SHF_STRINGS
@ SHF_STRINGS
Definition: ELF.h:1069
llvm::ELF::EM_SPARC32PLUS
@ EM_SPARC32PLUS
Definition: ELF.h:146
llvm::ELF::Elf32_Sym::st_shndx
Elf32_Half st_shndx
Definition: ELF.h:1172
s
multiplies can be turned into SHL s
Definition: README.txt:370
llvm::ELF::PT_GNU_PROPERTY
@ PT_GNU_PROPERTY
Definition: ELF.h:1379
llvm::ELF::Elf64_Sym::setBinding
void setBinding(unsigned char b)
Definition: ELF.h:1198
llvm::ELF::EF_AMDGPU_MACH_R600_CYPRESS
@ EF_AMDGPU_MACH_R600_CYPRESS
Definition: ELF.h:716
llvm::ELF::EM_JAVELIN
@ EM_JAVELIN
Definition: ELF.h:193
llvm::ELF::EF_AMDGPU_MACH_NONE
@ EF_AMDGPU_MACH_NONE
Definition: ELF.h:701
llvm::ELF::SHT_HEX_ORDERED
@ SHT_HEX_ORDERED
Definition: ELF.h:1034
llvm::ELF::Elf32_Shdr::sh_offset
Elf32_Off sh_offset
Definition: ELF.h:937
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_YMM
@ GNU_PROPERTY_X86_FEATURE_2_YMM
Definition: ELF.h:1660
llvm::ELF::ODK_EXCEPTIONS
@ ODK_EXCEPTIONS
Definition: ELF.h:595
llvm::ELF::EM_MIPS
@ EM_MIPS
Definition: ELF.h:141
llvm::ELF::EF_MSP430_MACH_MSP430x47
@ EF_MSP430_MACH_MSP430x47
Definition: ELF.h:867
llvm::ELF::ELFOSABI_FIRST_ARCH
@ ELFOSABI_FIRST_ARCH
Definition: ELF.h:359
llvm::ELF::EF_AMDGPU_MACH_R600_CAYMAN
@ EF_AMDGPU_MACH_R600_CAYMAN
Definition: ELF.h:723
llvm::ELF::NT_MEMTAG_LEVEL_ASYNC
@ NT_MEMTAG_LEVEL_ASYNC
Definition: ELF.h:1620
llvm::ELF::EV_CURRENT
@ EV_CURRENT
Definition: ELF.h:127
llvm::ELF::Elf32_Dyn::d_val
Elf32_Word d_val
Definition: ELF.h:1416
llvm::ELF::EM_88K
@ EM_88K
Definition: ELF.h:138
llvm::ELF::EM_CSR_KALIMBA
@ EM_CSR_KALIMBA
Definition: ELF.h:315
llvm::ELF::EM_ARC_COMPACT2
@ EM_ARC_COMPACT2
Definition: ELF.h:291
llvm::ELF::DF_1_SINGLETON
@ DF_1_SINGLETON
Definition: ELF.h:1473
llvm::ELF::RSS_LOC
@ RSS_LOC
Definition: ELF.h:1257
llvm::ELF::SHN_HEXAGON_SCOMMON_2
@ SHN_HEXAGON_SCOMMON_2
Definition: ELF.h:647
llvm::ELF::DF_SYMBOLIC
@ DF_SYMBOLIC
Definition: ELF.h:1440
llvm::ELF::RHF_NO_MOVE
@ RHF_NO_MOVE
Definition: ELF.h:1483
llvm::ELF::EF_MIPS_MACH_XLR
@ EF_MIPS_MACH_XLR
Definition: ELF.h:535
llvm::ELF::EM_MAX
@ EM_MAX
Definition: ELF.h:219
llvm::ELF::DF_1_ENDFILTEE
@ DF_1_ENDFILTEE
Definition: ELF.h:1462
llvm::ELF::NT_LWPSTATUS
@ NT_LWPSTATUS
Definition: ELF.h:1539
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1032
@ EF_AMDGPU_MACH_AMDGCN_GFX1032
Definition: ELF.h:759
llvm::ELF::RHF_PIXIE
@ RHF_PIXIE
Definition: ELF.h:1492
llvm::ELF::EM_DSPIC30F
@ EM_DSPIC30F
Definition: ELF.h:236
llvm::ELF::PT_AARCH64_MEMTAG_MTE
@ PT_AARCH64_MEMTAG_MTE
Definition: ELF.h:1391
llvm::ELF::PT_DYNAMIC
@ PT_DYNAMIC
Definition: ELF.h:1360
llvm::ELF::STT_LOOS
@ STT_LOOS
Definition: ELF.h:1233
llvm::ELF::EM_XCORE
@ EM_XCORE
Definition: ELF.h:299
llvm::ELF::NT_X86_XSTATE
@ NT_X86_XSTATE
Definition: ELF.h:1561
llvm::ELF::NT_FREEBSD_PROCSTAT_PROC
@ NT_FREEBSD_PROCSTAT_PROC
Definition: ELF.h:1694
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_XSAVEC
@ GNU_PROPERTY_X86_FEATURE_2_XSAVEC
Definition: ELF.h:1665
llvm::ELF::NT_ARCH
@ NT_ARCH
Definition: ELF.h:1524
llvm::ELF::EF_RISCV_TSO
@ EF_RISCV_TSO
Definition: ELF.h:671
llvm::ELF::EM_M32C
@ EM_M32C
Definition: ELF.h:239
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX702
@ EF_AMDGPU_MACH_AMDGCN_GFX702
Definition: ELF.h:739
llvm::ELF::SHF_ALLOC
@ SHF_ALLOC
Definition: ELF.h:1060
llvm::ELF::SHT_LLVM_BB_ADDR_MAP
@ SHT_LLVM_BB_ADDR_MAP
Definition: ELF.h:1013
llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V2
@ ELFABIVERSION_AMDGPU_HSA_V2
Definition: ELF.h:374
llvm::ELF::EF_MIPS_MICROMIPS
@ EF_MIPS_MICROMIPS
Definition: ELF.h:548
llvm::ELF::STO_MIPS_MIPS16
@ STO_MIPS_MIPS16
Definition: ELF.h:588
llvm::ELF::EF_MIPS_ARCH_32R6
@ EF_MIPS_ARCH_32R6
Definition: ELF.h:563
llvm::ELF::EM_XGATE
@ EM_XGATE
Definition: ELF.h:233
llvm::ELF::SHT_NOTE
@ SHT_NOTE
Definition: ELF.h:982
llvm::ELF::RHF_DEFAULT_DELAY_LOAD
@ RHF_DEFAULT_DELAY_LOAD
Definition: ELF.h:1493
llvm::ELF::SHT_LLVM_CALL_GRAPH_PROFILE
@ SHT_LLVM_CALL_GRAPH_PROFILE
Definition: ELF.h:1012
llvm::ELF::EM_K10M
@ EM_K10M
Definition: ELF.h:279
llvm::ELF::NT_MEMTAG_LEVEL_SYNC
@ NT_MEMTAG_LEVEL_SYNC
Definition: ELF.h:1621
llvm::ELF::GNU_PROPERTY_X86_FEATURE_1_AND
@ GNU_PROPERTY_X86_FEATURE_1_AND
Definition: ELF.h:1634
llvm::ELF::EF_HEXAGON_ISA_V68
@ EF_HEXAGON_ISA_V68
Definition: ELF.h:638
llvm::ELF::EF_AVR_ARCH_AVR3
@ EF_AVR_ARCH_AVR3
Definition: ELF.h:479
llvm::ELF::NT_AMD_HSA_METADATA
@ NT_AMD_HSA_METADATA
Definition: ELF.h:1733
llvm::ELF::Elf64_Ehdr::e_type
Elf64_Half e_type
Definition: ELF.h:89
llvm::ELF::Elf64_Nhdr
Definition: ELF.h:1794
llvm::ELF::Elf64_Shdr::sh_size
Elf64_Xword sh_size
Definition: ELF.h:952
llvm::ELF::E_ARC_OSABI_V3
@ E_ARC_OSABI_V3
Definition: ELF.h:464
llvm::ELF::EM_TINYJ
@ EM_TINYJ
Definition: ELF.h:177
llvm::ELF::STT_LOPROC
@ STT_LOPROC
Definition: ELF.h:1235
llvm::ELF::Elf64_Ehdr::e_entry
Elf64_Addr e_entry
Definition: ELF.h:92
llvm::ELF::ELFOSABI_NETBSD
@ ELFOSABI_NETBSD
Definition: ELF.h:343
llvm::ELF::Elf32_Ehdr::getFileClass
unsigned char getFileClass() const
Definition: ELF.h:81
llvm::ELF::EF_MIPS_NOREORDER
@ EF_MIPS_NOREORDER
Definition: ELF.h:508
llvm::ELF::SHT_ARM_EXIDX
@ SHT_ARM_EXIDX
Definition: ELF.h:1027
llvm::ELF::decodePPC64LocalEntryOffset
static int64_t decodePPC64LocalEntryOffset(unsigned Other)
Definition: ELF.h:411
llvm::ELF::EM_KM32
@ EM_KM32
Definition: ELF.h:306
llvm::ELF::Elf32_Shdr::sh_addralign
Elf32_Word sh_addralign
Definition: ELF.h:941
llvm::ELF::GNU_PROPERTY_AARCH64_FEATURE_1_PAC
@ GNU_PROPERTY_AARCH64_FEATURE_1_PAC
Definition: ELF.h:1648
llvm::ELF::EF_MIPS_MACH_LS3A
@ EF_MIPS_MACH_LS3A
Definition: ELF.h:544
llvm::ELF::STO_MIPS_PIC
@ STO_MIPS_PIC
Definition: ELF.h:586
llvm::ELF::PT_MIPS_ABIFLAGS
@ PT_MIPS_ABIFLAGS
Definition: ELF.h:1397
llvm::ELF::EF_MIPS_FP64
@ EF_MIPS_FP64
Definition: ELF.h:514
llvm::ELF::RELOCATION_GROUPED_BY_INFO_FLAG
@ RELOCATION_GROUPED_BY_INFO_FLAG
Definition: ELF.h:1765
llvm::ELF::EF_RISCV_FLOAT_ABI_QUAD
@ EF_RISCV_FLOAT_ABI_QUAD
Definition: ELF.h:669
llvm::ELF::Elf32_Rela::r_offset
Elf32_Addr r_offset
Definition: ELF.h:1278
llvm::ELF::Elf64_Relr
Elf64_Xword Elf64_Relr
Definition: ELF.h:1330
llvm::ELF::NT_FREEBSD_FCTL_STKGAP_DISABLE
@ NT_FREEBSD_FCTL_STKGAP_DISABLE
Definition: ELF.h:1685
llvm::ELF::EM_BLACKFIN
@ EM_BLACKFIN
Definition: ELF.h:223
llvm::ELF::EF_ARC_MACH_MSK
@ EF_ARC_MACH_MSK
Definition: ELF.h:455
llvm::ELF::EF_AVR_ARCH_AVRTINY
@ EF_AVR_ARCH_AVRTINY
Definition: ELF.h:486
llvm::ELF::STT_HIPROC
@ STT_HIPROC
Definition: ELF.h:1236
llvm::ELF::SHT_LLVM_ADDRSIG
@ SHT_LLVM_ADDRSIG
Definition: ELF.h:1002
llvm::ELF::SHT_ARM_DEBUGOVERLAY
@ SHT_ARM_DEBUGOVERLAY
Definition: ELF.h:1032
llvm::ELF::Elf32_Sym::st_size
Elf32_Word st_size
Definition: ELF.h:1169
llvm::ELF::NT_OPENBSD_AUXV
@ NT_OPENBSD_AUXV
Definition: ELF.h:1715
llvm::ELF::EF_ARM_ABI_FLOAT_HARD
@ EF_ARM_ABI_FLOAT_HARD
Definition: ELF.h:437
llvm::ELF::EM_VIDEOCORE3
@ EM_VIDEOCORE3
Definition: ELF.h:247
llvm::ELF::Elf32_Sym::getBinding
unsigned char getBinding() const
Definition: ELF.h:1176
llvm::ELF::EM_AMDGPU
@ EM_AMDGPU
Definition: ELF.h:316
llvm::ELF::EM_M16C
@ EM_M16C
Definition: ELF.h:235
llvm::ELF::SHT_X86_64_UNWIND
@ SHT_X86_64_UNWIND
Definition: ELF.h:1036
llvm::ELF::EM_NCPU
@ EM_NCPU
Definition: ELF.h:172
llvm::ELF::PF_MASKPROC
@ PF_MASKPROC
Definition: ELF.h:1409
llvm::ELF::Elf32_Ehdr::e_shnum
Elf32_Half e_shnum
Definition: ELF.h:74
llvm::ELF::EM_H8S
@ EM_H8S
Definition: ELF.h:164
llvm::ELF::EM_ALPHA
@ EM_ALPHA
Definition: ELF.h:157
llvm::ELF::PT_ARM_ARCHEXT
@ PT_ARM_ARCHEXT
Definition: ELF.h:1386
llvm::ELF::EF_MIPS_MACH_OCTEON
@ EF_MIPS_MACH_OCTEON
Definition: ELF.h:534
llvm::ELF::EF_AMDGPU_MACH_R600_TURKS
@ EF_AMDGPU_MACH_R600_TURKS
Definition: ELF.h:724
llvm::ELF::VER_NDX_LOCAL
@ VER_NDX_LOCAL
Definition: ELF.h:1510
llvm::ELF::EM_MN10300
@ EM_MN10300
Definition: ELF.h:205
llvm::ELF::Elf64_Rela::r_offset
Elf64_Addr r_offset
Definition: ELF.h:1314
llvm::ELF::NT_PPC_EBB
@ NT_PPC_EBB
Definition: ELF.h:1548
llvm::ELF::EM_D30V
@ EM_D30V
Definition: ELF.h:202
llvm::ELF::EM_INTEL205
@ EM_INTEL205
Definition: ELF.h:301
llvm::ELF::DF_TEXTREL
@ DF_TEXTREL
Definition: ELF.h:1441
llvm::ELF::Elf32_Dyn
Definition: ELF.h:1413
llvm::ELF::EF_HEXAGON_ISA_V60
@ EF_HEXAGON_ISA_V60
Definition: ELF.h:633
llvm::ELF::EF_MIPS_ARCH
@ EF_MIPS_ARCH
Definition: ELF.h:565
llvm::ELF::EF_AVR_ARCH_AVR6
@ EF_AVR_ARCH_AVR6
Definition: ELF.h:485
llvm::ELF::SHT_INIT_ARRAY
@ SHT_INIT_ARRAY
Definition: ELF.h:987
llvm::ELF::DF_1_ORIGIN
@ DF_1_ORIGIN
Definition: ELF.h:1455
llvm::ELF::Elf64_Rel
Definition: ELF.h:1297
llvm::ELF::PT_RISCV_ATTRIBUTES
@ PT_RISCV_ATTRIBUTES
Definition: ELF.h:1400
llvm::ELF::Elf32_Shdr::sh_name
Elf32_Word sh_name
Definition: ELF.h:933
llvm::ELF::EM_SHARC
@ EM_SHARC
Definition: ELF.h:242
llvm::ELF::SHN_HEXAGON_SCOMMON_8
@ SHN_HEXAGON_SCOMMON_8
Definition: ELF.h:649
llvm::ELF::GNU_ABI_TAG_SOLARIS
@ GNU_ABI_TAG_SOLARIS
Definition: ELF.h:1754
llvm::ELF::Elf64_Dyn::d_tag
Elf64_Sxword d_tag
Definition: ELF.h:1423
llvm::ELF::EF_CSKY_805
@ EF_CSKY_805
Definition: ELF.h:886
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
llvm::ELF::EF_AVR_ARCH_AVR1
@ EF_AVR_ARCH_AVR1
Definition: ELF.h:476
llvm::ELF::EF_MIPS_ARCH_32
@ EF_MIPS_ARCH_32
Definition: ELF.h:559
llvm::ELF::ELFDATA2LSB
@ ELFDATA2LSB
Definition: ELF.h:335
llvm::ELF::XCORE_SHF_CP_SECTION
@ XCORE_SHF_CP_SECTION
All sections with the "c" flag are grouped together by the linker to form the constant pool and the c...
Definition: ELF.h:1114
llvm::ELF::NT_FREEBSD_PROCSTAT_OSREL
@ NT_FREEBSD_PROCSTAT_OSREL
Definition: ELF.h:1700
llvm::ELF::EF_ARM_EABI_VER4
@ EF_ARM_EABI_VER4
Definition: ELF.h:443
llvm::ELF::STB_LOOS
@ STB_LOOS
Definition: ELF.h:1217
llvm::ELF::EF_ARC_OSABI_MSK
@ EF_ARC_OSABI_MSK
Definition: ELF.h:456
llvm::ELF::GRP_COMDAT
@ GRP_COMDAT
Definition: ELF.h:1160
llvm::ELF::RHF_REQUICKSTARTED
@ RHF_REQUICKSTARTED
Definition: ELF.h:1495
llvm::ELF::Elf64_Sym
Definition: ELF.h:1186
llvm::ELF::EM_PDP10
@ EM_PDP10
Definition: ELF.h:180
llvm::ELF::EF_CSKY_802
@ EF_CSKY_802
Definition: ELF.h:884
llvm::ELF::SHF_HEX_GPREL
@ SHF_HEX_GPREL
Definition: ELF.h:1127
llvm::ELF::SHN_XINDEX
@ SHN_XINDEX
Definition: ELF.h:969
llvm::ELF::EF_CSKY_DSP
@ EF_CSKY_DSP
Definition: ELF.h:892
llvm::ELF::SYMENTRY_SIZE64
@ SYMENTRY_SIZE64
Definition: ELF.h:1208
llvm::ELF::SHT_PREINIT_ARRAY
@ SHT_PREINIT_ARRAY
Definition: ELF.h:989
uint32_t
llvm::ELF::EM_TRIMEDIA
@ EM_TRIMEDIA
Definition: ELF.h:256
llvm::ELF::EM_VIDEOCORE
@ EM_VIDEOCORE
Definition: ELF.h:212
llvm::ELF::Elf64_Shdr::sh_addr
Elf64_Addr sh_addr
Definition: ELF.h:950
llvm::ELF::SHT_GNU_ATTRIBUTES
@ SHT_GNU_ATTRIBUTES
Definition: ELF.h:1018
llvm::ELF::EM_H8_500
@ EM_H8_500
Definition: ELF.h:165
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_XSAVE
@ GNU_PROPERTY_X86_FEATURE_2_XSAVE
Definition: ELF.h:1663
llvm::ELF::NT_AMD_HSA_HSAIL
@ NT_AMD_HSA_HSAIL
Definition: ELF.h:1730
llvm::ELF::EI_ABIVERSION
@ EI_ABIVERSION
Definition: ELF.h:56
llvm::ELF::PT_TLS
@ PT_TLS
Definition: ELF.h:1365
llvm::ELF::Elf64_Shdr::sh_flags
Elf64_Xword sh_flags
Definition: ELF.h:949
llvm::ELF::Elf64_Chdr::ch_type
Elf64_Word ch_type
Definition: ELF.h:1780
llvm::ELF::RELOCATION_GROUP_HAS_ADDEND_FLAG
@ RELOCATION_GROUP_HAS_ADDEND_FLAG
Definition: ELF.h:1768
llvm::ELF::VER_FLG_INFO
@ VER_FLG_INFO
Definition: ELF.h:1506
llvm::ELF::EM_FX66
@ EM_FX66
Definition: ELF.h:182
llvm::ELF::NT_ARM_SVE
@ NT_ARM_SVE
Definition: ELF.h:1581
llvm::ELF::EF_HEXAGON_MACH_V68
@ EF_HEXAGON_MACH_V68
Definition: ELF.h:621
llvm::ELF::EM_56800EX
@ EM_56800EX
Definition: ELF.h:296
llvm::ELF::VER_DEF_NONE
@ VER_DEF_NONE
Definition: ELF.h:1503
llvm::ELF::EM_H8_300
@ EM_H8_300
Definition: ELF.h:162
llvm::ELF::Elf32_Sym::setType
void setType(unsigned char t)
Definition: ELF.h:1179
llvm::ELF::Elf32_Sym::st_other
unsigned char st_other
Definition: ELF.h:1171
llvm::ELF::ELFCLASSNONE
@ ELFCLASSNONE
Definition: ELF.h:327
llvm::ELF::EM_68HC16
@ EM_68HC16
Definition: ELF.h:185
llvm::ELF::NT_FREEBSD_PROCSTAT_GROUPS
@ NT_FREEBSD_PROCSTAT_GROUPS
Definition: ELF.h:1697
llvm::ELF::NT_PPC_TM_CPPR
@ NT_PPC_TM_CPPR
Definition: ELF.h:1556
llvm::ELF::EM_ST7
@ EM_ST7
Definition: ELF.h:184
llvm::ELF::Elf32_Ehdr::checkMagic
bool checkMagic() const
Definition: ELF.h:77
llvm::ELF::Elf32_Nhdr::n_namesz
Elf32_Word n_namesz
Definition: ELF.h:1788
llvm::ELF::EF_MIPS_ARCH_64R2
@ EF_MIPS_ARCH_64R2
Definition: ELF.h:562
llvm::ELF::EF_AMDGPU_MACH_R600_RV770
@ EF_AMDGPU_MACH_R600_RV770
Definition: ELF.h:713
llvm::ELF::EF_ARC_PIC
@ EF_ARC_PIC
Definition: ELF.h:466
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_ON_V4
@ EF_AMDGPU_FEATURE_XNACK_ON_V4
Definition: ELF.h:813
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_V4
@ EF_AMDGPU_FEATURE_XNACK_V4
Definition: ELF.h:805
llvm::ELF::ODK_PAGESIZE
@ ODK_PAGESIZE
Definition: ELF.h:604
llvm::ELF::EM_KMX8
@ EM_KMX8
Definition: ELF.h:309
llvm::ELF::SYMENTRY_SIZE32
@ SYMENTRY_SIZE32
Definition: ELF.h:1207
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1035
@ EF_AMDGPU_MACH_AMDGCN_GFX1035
Definition: ELF.h:764
llvm::ELF::SHF_MIPS_NAMES
@ SHF_MIPS_NAMES
Definition: ELF.h:1134
llvm::ELF::Elf64_Sym::setType
void setType(unsigned char t)
Definition: ELF.h:1199
llvm::ELF::Elf64_Phdr::p_type
Elf64_Word p_type
Definition: ELF.h:1346
llvm::ELF::RSS_UNDEF
@ RSS_UNDEF
Definition: ELF.h:1254
llvm::ELF::EM_FR20
@ EM_FR20
Definition: ELF.h:153
llvm::ELF::EM_ARC
@ EM_ARC
Definition: ELF.h:161
llvm::ELF::EF_CSKY_801
@ EF_CSKY_801
Definition: ELF.h:883
llvm::ELF::STO_PPC64_LOCAL_MASK
@ STO_PPC64_LOCAL_MASK
Definition: ELF.h:409
llvm::ELF::ELFOSABI_SOLARIS
@ ELFOSABI_SOLARIS
Definition: ELF.h:347
llvm::ELF::E_ARC_MACH_ARC600
@ E_ARC_MACH_ARC600
Definition: ELF.h:457
llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V4
@ ELFABIVERSION_AMDGPU_HSA_V4
Definition: ELF.h:376
llvm::ELF::NT_LLVM_OPENMP_OFFLOAD_VERSION
@ NT_LLVM_OPENMP_OFFLOAD_VERSION
Definition: ELF.h:1746
llvm::ELF::GNU_PROPERTY_X86_ISA_1_USED
@ GNU_PROPERTY_X86_ISA_1_USED
Definition: ELF.h:1642
llvm::ELF::Elf64_Rela::setSymbol
void setSymbol(Elf64_Word s)
Definition: ELF.h:1322
llvm::ELF::GNU_ABI_TAG_HURD
@ GNU_ABI_TAG_HURD
Definition: ELF.h:1753
llvm::ELF::EF_MSP430_MACH_MSP430x31
@ EF_MSP430_MACH_MSP430x31
Definition: ELF.h:858
llvm::ELF::Elf32_Shdr::sh_link
Elf32_Word sh_link
Definition: ELF.h:939
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX801
@ EF_AMDGPU_MACH_AMDGCN_GFX801
Definition: ELF.h:743
llvm::ELF::EI_VERSION
@ EI_VERSION
Definition: ELF.h:54
llvm::ELF::ELFCOMPRESS_LOPROC
@ ELFCOMPRESS_LOPROC
Definition: ELF.h:1806
llvm::ELF::EF_CSKY_FLOAT
@ EF_CSKY_FLOAT
Definition: ELF.h:891
llvm::ELF::GNU_PROPERTY_X86_ISA_1_NEEDED
@ GNU_PROPERTY_X86_ISA_1_NEEDED
Definition: ELF.h:1638
llvm::ELF::Elf64_Ehdr::e_version
Elf64_Word e_version
Definition: ELF.h:91
llvm::ELF::Elf64_Ehdr::e_shstrndx
Elf64_Half e_shstrndx
Definition: ELF.h:101
llvm::ELF::NT_S390_VXRS_HIGH
@ NT_S390_VXRS_HIGH
Definition: ELF.h:1573
llvm::ELF::EF_RISCV_FLOAT_ABI
@ EF_RISCV_FLOAT_ABI
Definition: ELF.h:665
llvm::ELF::Elf64_Rela::getSymbol
Elf64_Word getSymbol() const
Definition: ELF.h:1320
llvm::ELF::Elf32_Rel::getSymbol
Elf32_Word getSymbol() const
Definition: ELF.h:1267
llvm::ELF::RHF_SGI_ONLY
@ RHF_SGI_ONLY
Definition: ELF.h:1484
llvm::ELF::Elf64_Sym::st_other
unsigned char st_other
Definition: ELF.h:1189
llvm::ELF::DF_1_PIE
@ DF_1_PIE
Definition: ELF.h:1474
llvm::ELF::ELFOSABI_CLOUDABI
@ ELFOSABI_CLOUDABI
Definition: ELF.h:358
llvm::ELF::EM_PARISC
@ EM_PARISC
Definition: ELF.h:144
llvm::ELF::EF_AVR_ARCH_AVR31
@ EF_AVR_ARCH_AVR31
Definition: ELF.h:480
llvm::ELF::EF_HEXAGON_ISA_V3
@ EF_HEXAGON_ISA_V3
Definition: ELF.h:629
llvm::ELF::Elf32_Phdr::p_paddr
Elf32_Addr p_paddr
Definition: ELF.h:1337
llvm::ELF::ODK_FILL
@ ODK_FILL
Definition: ELF.h:598
llvm::ELF::Elf32_Phdr::p_align
Elf32_Word p_align
Definition: ELF.h:1341
llvm::ELF::EF_MIPS_NAN2008
@ EF_MIPS_NAN2008
Definition: ELF.h:516
llvm::ELF::NT_GNU_BUILD_ATTRIBUTE_OPEN
@ NT_GNU_BUILD_ATTRIBUTE_OPEN
Definition: ELF.h:1525
llvm::ELF::DF_1_NODEFLIB
@ DF_1_NODEFLIB
Definition: ELF.h:1459
llvm::ELF::EF_AMDGPU_MACH_R600_CAICOS
@ EF_AMDGPU_MACH_R600_CAICOS
Definition: ELF.h:722
llvm::ELF::EM_TRICORE
@ EM_TRICORE
Definition: ELF.h:160
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_V4
@ EF_AMDGPU_FEATURE_SRAMECC_V4
Definition: ELF.h:818
llvm::ELF::PT_OPENBSD_WXNEEDED
@ PT_OPENBSD_WXNEEDED
Definition: ELF.h:1382
llvm::ELF::NT_386_IOPERM
@ NT_386_IOPERM
Definition: ELF.h:1560
llvm::ELF::SHT_GNU_verneed
@ SHT_GNU_verneed
Definition: ELF.h:1021
llvm::ELF::SHF_MIPS_MERGE
@ SHF_MIPS_MERGE
Definition: ELF.h:1146
llvm::ELF::ELFOSABI_LAST_ARCH
@ ELFOSABI_LAST_ARCH
Definition: ELF.h:367
uint16_t
llvm::ELF::NT_MEMTAG_STACK
@ NT_MEMTAG_STACK
Definition: ELF.h:1626
llvm::ELF::EI_MAG0
@ EI_MAG0
Definition: ELF.h:48
llvm::ELF::Elf64_Rela::setSymbolAndType
void setSymbolAndType(Elf64_Word s, Elf64_Word t)
Definition: ELF.h:1324
llvm::ELF::EF_CSKY_807
@ EF_CSKY_807
Definition: ELF.h:887
llvm::ELF::STO_MIPS_MICROMIPS
@ STO_MIPS_MICROMIPS
Definition: ELF.h:587
llvm::ELF::DF_1_DISPRELDNE
@ DF_1_DISPRELDNE
Definition: ELF.h:1463
llvm::ELF::SHT_LOPROC
@ SHT_LOPROC
Definition: ELF.h:1024
llvm::ELF::ELFOSABI_FREEBSD
@ ELFOSABI_FREEBSD
Definition: ELF.h:350
llvm::ELF::EF_MIPS_MACH_4010
@ EF_MIPS_MACH_4010
Definition: ELF.h:528
llvm::ELF::EM_CYPRESS_M8C
@ EM_CYPRESS_M8C
Definition: ELF.h:254
llvm::ELF::STT_AMDGPU_HSA_KERNEL
@ STT_AMDGPU_HSA_KERNEL
Definition: ELF.h:1239
llvm::ELF::Elf32_Rel::setType
void setType(unsigned char t)
Definition: ELF.h:1270
llvm::ELF::EF_AVR_ARCH_XMEGA7
@ EF_AVR_ARCH_XMEGA7
Definition: ELF.h:493
llvm::ELF::NT_FREEBSD_THRMISC
@ NT_FREEBSD_THRMISC
Definition: ELF.h:1693
llvm::ELF::RHS_NO_LIBRARY_REPLACEMENT
@ RHS_NO_LIBRARY_REPLACEMENT
Definition: ELF.h:1482
llvm::ELF::EM_STARCORE
@ EM_STARCORE
Definition: ELF.h:174
llvm::ELF::Elf32_Phdr::p_flags
Elf32_Word p_flags
Definition: ELF.h:1340
llvm::ELF::EF_MSP430_MACH_MSP430x32
@ EF_MSP430_MACH_MSP430x32
Definition: ELF.h:859
llvm::ELF::Elf32_Ehdr::e_ident
unsigned char e_ident[EI_NIDENT]
Definition: ELF.h:62
llvm::ELF::Elf32_Rela::getSymbol
Elf32_Word getSymbol() const
Definition: ELF.h:1284
llvm::ELF::EF_HEXAGON_MACH_V2
@ EF_HEXAGON_MACH_V2
Definition: ELF.h:610
llvm::ELF::DF_1_INTERPOSE
@ DF_1_INTERPOSE
Definition: ELF.h:1458
llvm::ELF::ELFDATA2MSB
@ ELFDATA2MSB
Definition: ELF.h:336
llvm::ELF::GNU_PROPERTY_X86_ISA_1_V2
@ GNU_PROPERTY_X86_ISA_1_V2
Definition: ELF.h:1668
llvm::ELF::EM_SLE9X
@ EM_SLE9X
Definition: ELF.h:277
llvm::ELF::EM_S390
@ EM_S390
Definition: ELF.h:150
llvm::ELF::ELFOSABI_TRU64
@ ELFOSABI_TRU64
Definition: ELF.h:351
llvm::ELF::GNU_ABI_TAG_SYLLABLE
@ GNU_ABI_TAG_SYLLABLE
Definition: ELF.h:1757
llvm::ELF::convertEMachineToArchName
StringRef convertEMachineToArchName(uint16_t EMachine)
Convert an ELF's e_machine value into an architecture name.
Definition: ELF.cpp:204
llvm::ELF::EF_HEXAGON_MACH_V4
@ EF_HEXAGON_MACH_V4
Definition: ELF.h:612
llvm::ELF::ELF_NOTE_GNU
constexpr const char * ELF_NOTE_GNU
Definition: ELF.h:1761
llvm::ELF::EF_RISCV_RVE
@ EF_RISCV_RVE
Definition: ELF.h:670
llvm::ELF::EM_D10V
@ EM_D10V
Definition: ELF.h:201
llvm::ELF::Elf32_Ehdr::e_phoff
Elf32_Off e_phoff
Definition: ELF.h:67
llvm::ELF::NT_FREEBSD_FCTL_ASLR_DISABLE
@ NT_FREEBSD_FCTL_ASLR_DISABLE
Definition: ELF.h:1683
llvm::ELF::Elf32_Ehdr
Definition: ELF.h:61
llvm::ELF::EF_AMDGPU_MACH_R600_RV670
@ EF_AMDGPU_MACH_R600_RV670
Definition: ELF.h:709
llvm::ELF::RELOCATION_GROUPED_BY_ADDEND_FLAG
@ RELOCATION_GROUPED_BY_ADDEND_FLAG
Definition: ELF.h:1767
llvm::ELF::EF_LOONGARCH_BASE_ABI_ILP32D
@ EF_LOONGARCH_BASE_ABI_ILP32D
Definition: ELF.h:920
llvm::ELF::EF_AMDGPU_FEATURE_TRAP_HANDLER_V2
@ EF_AMDGPU_FEATURE_TRAP_HANDLER_V2
Definition: ELF.h:789
llvm::ELF::GRP_MASKOS
@ GRP_MASKOS
Definition: ELF.h:1161
llvm::ELF::DF_1_GLOBAL
@ DF_1_GLOBAL
Definition: ELF.h:1449
llvm::ELF::PT_ARM_UNWIND
@ PT_ARM_UNWIND
Definition: ELF.h:1389
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_ANY_V4
@ EF_AMDGPU_FEATURE_SRAMECC_ANY_V4
Definition: ELF.h:822
llvm::ELF::Elf32_Shdr
Definition: ELF.h:932
llvm::ELF::EF_MIPS_MACH_9000
@ EF_MIPS_MACH_9000
Definition: ELF.h:541
llvm::ELF::SHF_WRITE
@ SHF_WRITE
Definition: ELF.h:1057
llvm::ELF::SHT_MIPS_REGINFO
@ SHT_MIPS_REGINFO
Definition: ELF.h:1038
llvm::ELF::NT_S390_VXRS_LOW
@ NT_S390_VXRS_LOW
Definition: ELF.h:1572
llvm::ELF::EF_LOONGARCH_BASE_ABI_ILP32S
@ EF_LOONGARCH_BASE_ABI_ILP32S
Definition: ELF.h:918
llvm::ELF::EM_NDR1
@ EM_NDR1
Definition: ELF.h:173
llvm::ELF::EM_MAXQ30
@ EM_MAXQ30
Definition: ELF.h:265
llvm::ELF::SHT_HIUSER
@ SHT_HIUSER
Definition: ELF.h:1051
llvm::ELF::Elf32_Ehdr::e_phnum
Elf32_Half e_phnum
Definition: ELF.h:72
llvm::ELF::ELFOSABI_FENIXOS
@ ELFOSABI_FENIXOS
Definition: ELF.h:357
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_X86
@ GNU_PROPERTY_X86_FEATURE_2_X86
Definition: ELF.h:1656
llvm::ELF::Elf32_Dyn::d_ptr
Elf32_Addr d_ptr
Definition: ELF.h:1417
llvm::ELF::ELFCOMPRESS_LOOS
@ ELFCOMPRESS_LOOS
Definition: ELF.h:1804
llvm::ELF::SHT_CSKY_ATTRIBUTES
@ SHT_CSKY_ATTRIBUTES
Definition: ELF.h:1047
llvm::ELF::Elf64_Ehdr::e_shnum
Elf64_Half e_shnum
Definition: ELF.h:100
llvm::ELF::EM_ECOG1
@ EM_ECOG1
Definition: ELF.h:263
llvm::ELF::NT_PPC_PPR
@ NT_PPC_PPR
Definition: ELF.h:1546
llvm::ELF::Elf32_Shdr::sh_type
Elf32_Word sh_type
Definition: ELF.h:934
llvm::ELF::EM_TPC
@ EM_TPC
Definition: ELF.h:215
llvm::ELF::SHF_ARM_PURECODE
@ SHF_ARM_PURECODE
Definition: ELF.h:1155
llvm::ELF::RHF_GUARANTEE_INIT
@ RHF_GUARANTEE_INIT
Definition: ELF.h:1485
llvm::ELF::Elf32_Phdr
Definition: ELF.h:1333
llvm::ELF::XCORE_SHF_DP_SECTION
@ XCORE_SHF_DP_SECTION
All sections with the "d" flag are grouped together by the linker to form the data section and the dp...
Definition: ELF.h:1109
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX803
@ EF_AMDGPU_MACH_AMDGCN_GFX803
Definition: ELF.h:745
llvm::ELF::ET_REL
@ ET_REL
Definition: ELF.h:116
llvm::ELF::FDO_PACKAGING_METADATA
@ FDO_PACKAGING_METADATA
Definition: ELF.h:1601
llvm::ELF::Elf32_Rela
Definition: ELF.h:1277
llvm::ELF::SHT_HIPROC
@ SHT_HIPROC
Definition: ELF.h:1049
llvm::ELF::EM_SPARC
@ EM_SPARC
Definition: ELF.h:135
llvm::ELF::EF_HEXAGON_MACH_V5
@ EF_HEXAGON_MACH_V5
Definition: ELF.h:613
llvm::ELF::EF_MIPS_ARCH_ASE_M16
@ EF_MIPS_ARCH_ASE_M16
Definition: ELF.h:549
llvm::ELF::EF_CSKY_ABIV2
@ EF_CSKY_ABIV2
Definition: ELF.h:893
llvm::ELF::EF_AMDGPU_MACH_R600_FIRST
@ EF_AMDGPU_MACH_R600_FIRST
Definition: ELF.h:731
llvm::ELF::EM_TI_C6000
@ EM_TI_C6000
Definition: ELF.h:250
llvm::ELF::EM_MMA
@ EM_MMA
Definition: ELF.h:170
llvm::ELF::EM_KMX16
@ EM_KMX16
Definition: ELF.h:308
llvm::ELF::SHT_ARM_OVERLAYSECTION
@ SHT_ARM_OVERLAYSECTION
Definition: ELF.h:1033
llvm::ELF::DF_1_NODELETE
@ DF_1_NODELETE
Definition: ELF.h:1451
llvm::ELF::EM_HUANY
@ EM_HUANY
Definition: ELF.h:197
llvm::ELF::NT_FREEBSD_PROCSTAT_UMASK
@ NT_FREEBSD_PROCSTAT_UMASK
Definition: ELF.h:1698
llvm::ELF::EM_TILE64
@ EM_TILE64
Definition: ELF.h:283
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_USED
@ GNU_PROPERTY_X86_FEATURE_2_USED
Definition: ELF.h:1641
llvm::ELF::NT_AMD_PAL_METADATA
@ NT_AMD_PAL_METADATA
Definition: ELF.h:1735
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_FIRST
@ EF_AMDGPU_MACH_AMDGCN_FIRST
Definition: ELF.h:777
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX906
@ EF_AMDGPU_MACH_AMDGCN_GFX906
Definition: ELF.h:750
llvm::ELF::Elf32_Chdr
Definition: ELF.h:1772
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_V3
@ EF_AMDGPU_FEATURE_SRAMECC_V3
Definition: ELF.h:800
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX701
@ EF_AMDGPU_MACH_AMDGCN_GFX701
Definition: ELF.h:738
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX600
@ EF_AMDGPU_MACH_AMDGCN_GFX600
Definition: ELF.h:735
llvm::ELF::EM_MN10200
@ EM_MN10200
Definition: ELF.h:206
llvm::ELF::EM_MANIK
@ EM_MANIK
Definition: ELF.h:267
llvm::ELF::ElfMagic
static const char ElfMagic[]
Definition: ELF.h:44
llvm::ELF::EM_ECOG16
@ EM_ECOG16
Definition: ELF.h:273
llvm::ELF::NT_S390_TODPREG
@ NT_S390_TODPREG
Definition: ELF.h:1566
llvm::ELF::EF_AVR_ARCH_AVR4
@ EF_AVR_ARCH_AVR4
Definition: ELF.h:482
llvm::ELF::PT_MIPS_OPTIONS
@ PT_MIPS_OPTIONS
Definition: ELF.h:1396
llvm::ELF::DF_1_NOKSYMS
@ DF_1_NOKSYMS
Definition: ELF.h:1467
llvm::ELF::STV_INTERNAL
@ STV_INTERNAL
Definition: ELF.h:1244
llvm::ELF::ODK_REGINFO
@ ODK_REGINFO
Definition: ELF.h:594
llvm::ELF::EM_PRISM
@ EM_PRISM
Definition: ELF.h:198
llvm::ELF::RHF_NO_UNRES_UNDEF
@ RHF_NO_UNRES_UNDEF
Definition: ELF.h:1497
llvm::ELF::SHT_ANDROID_RELA
@ SHT_ANDROID_RELA
Definition: ELF.h:999
llvm::ELF::ODK_HWPATCH
@ ODK_HWPATCH
Definition: ELF.h:597
llvm::ELF::EI_NIDENT
@ EI_NIDENT
Definition: ELF.h:58
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1102
@ EF_AMDGPU_MACH_AMDGCN_GFX1102
Definition: ELF.h:774
llvm::ELF::NT_S390_GS_BC
@ NT_S390_GS_BC
Definition: ELF.h:1575
llvm::ELF::EM_V850
@ EM_V850
Definition: ELF.h:203
llvm::ELF::EM_FR30
@ EM_FR30
Definition: ELF.h:200
llvm::ELF::PT_INTERP
@ PT_INTERP
Definition: ELF.h:1361
llvm::ELF::E_ARC_OSABI_V4
@ E_ARC_OSABI_V4
Definition: ELF.h:465
llvm::ELF::PF_MASKOS
@ PF_MASKOS
Definition: ELF.h:1408
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX700
@ EF_AMDGPU_MACH_AMDGCN_GFX700
Definition: ELF.h:737
llvm::ELF::EM_PPC
@ EM_PPC
Definition: ELF.h:148
llvm::ELF::SHN_HIPROC
@ SHN_HIPROC
Definition: ELF.h:964
llvm::ELF::NT_FREEBSD_PROCSTAT_FILES
@ NT_FREEBSD_PROCSTAT_FILES
Definition: ELF.h:1695
llvm::ELF::Elf64_Ehdr::getDataEncoding
unsigned char getDataEncoding() const
Definition: ELF.h:108
llvm::ELF::Elf64_Dyn
Definition: ELF.h:1422
llvm::ELF::EF_MIPS_ABI
@ EF_MIPS_ABI
Definition: ELF.h:523
llvm::ELF::EF_MSP430_MACH_MSP430x13
@ EF_MSP430_MACH_MSP430x13
Definition: ELF.h:849
llvm::ELF::SHT_LLVM_SYMPART
@ SHT_LLVM_SYMPART
Definition: ELF.h:1006
llvm::ELF::NT_PPC_TAR
@ NT_PPC_TAR
Definition: ELF.h:1545
llvm::ELF::NT_ANDROID_TYPE_KUSER
@ NT_ANDROID_TYPE_KUSER
Definition: ELF.h:1607
llvm::ELF::EM_ETPU
@ EM_ETPU
Definition: ELF.h:276
llvm::ELF::SHT_RELA
@ SHT_RELA
Definition: ELF.h:979
llvm::ELF::STO_MIPS_OPTIONAL
@ STO_MIPS_OPTIONAL
Definition: ELF.h:584
llvm::ELF::EF_HEXAGON_ISA_V66
@ EF_HEXAGON_ISA_V66
Definition: ELF.h:636
llvm::ELF::EM_X86_64
@ EM_X86_64
Definition: ELF.h:178
llvm::ELF::Elf64_Rela::r_info
Elf64_Xword r_info
Definition: ELF.h:1315
llvm::ELF::Elf64_Ehdr::getFileClass
unsigned char getFileClass() const
Definition: ELF.h:107
llvm::ELF::Elf64_Ehdr
Definition: ELF.h:87
llvm::ELF::EF_HEXAGON_ISA_MACH
@ EF_HEXAGON_ISA_MACH
Definition: ELF.h:626
llvm::ELF::Elf64_Phdr::p_flags
Elf64_Word p_flags
Definition: ELF.h:1347
llvm::ELF::PF_W
@ PF_W
Definition: ELF.h:1406
llvm::ELF::EM_TILEPRO
@ EM_TILEPRO
Definition: ELF.h:284
llvm::ELF::STB_WEAK
@ STB_WEAK
Definition: ELF.h:1215
llvm::ELF::NT_S390_PREFIX
@ NT_S390_PREFIX
Definition: ELF.h:1568
llvm::ELF::NT_LLVM_OPENMP_OFFLOAD_PRODUCER
@ NT_LLVM_OPENMP_OFFLOAD_PRODUCER
Definition: ELF.h:1747
llvm::ELF::EF_MIPS_CPIC
@ EF_MIPS_CPIC
Definition: ELF.h:510
llvm::ELF::SHT_SYMTAB_SHNDX
@ SHT_SYMTAB_SHNDX
Definition: ELF.h:991
llvm::ELF::Elf64_Shdr
Definition: ELF.h:946
llvm::ELF::EM_MSP430
@ EM_MSP430
Definition: ELF.h:222
llvm::ELF::EF_AVR_ARCH_XMEGA5
@ EF_AVR_ARCH_XMEGA5
Definition: ELF.h:491
llvm::ELF::EF_HEXAGON_ISA_V55
@ EF_HEXAGON_ISA_V55
Definition: ELF.h:632
llvm::ELF::SHT_RISCV_ATTRIBUTES
@ SHT_RISCV_ATTRIBUTES
Definition: ELF.h:1045
llvm::ELF::NT_FREEBSD_PROCSTAT_AUXV
@ NT_FREEBSD_PROCSTAT_AUXV
Definition: ELF.h:1702
llvm::ELF::DF_1_NODUMP
@ DF_1_NODUMP
Definition: ELF.h:1460
llvm::ELF::DF_1_TRANS
@ DF_1_TRANS
Definition: ELF.h:1457
llvm::ELF::ELFCLASS64
@ ELFCLASS64
Definition: ELF.h:329
llvm::ELF::NT_S390_TDB
@ NT_S390_TDB
Definition: ELF.h:1571
llvm::ELF::Elf32_Rel::r_offset
Elf32_Addr r_offset
Definition: ELF.h:1262
llvm::ELF::PT_LOPROC
@ PT_LOPROC
Definition: ELF.h:1368
llvm::ELF::EM_COREA_2ND
@ EM_COREA_2ND
Definition: ELF.h:290
llvm::ELF::EF_ARM_ABI_FLOAT_SOFT
@ EF_ARM_ABI_FLOAT_SOFT
Definition: ELF.h:435
llvm::ELF::Elf64_Phdr::p_paddr
Elf64_Addr p_paddr
Definition: ELF.h:1350
llvm::ELF::STB_LOCAL
@ STB_LOCAL
Definition: ELF.h:1213
llvm::ELF::STV_DEFAULT
@ STV_DEFAULT
Definition: ELF.h:1243
llvm::ELF::EM_STM8
@ EM_STM8
Definition: ELF.h:282
llvm::ELF::SHT_MSP430_ATTRIBUTES
@ SHT_MSP430_ATTRIBUTES
Definition: ELF.h:1043
llvm::ELF::SHF_GROUP
@ SHF_GROUP
Definition: ELF.h:1082
llvm::ELF::EF_MIPS_ABI2
@ EF_MIPS_ABI2
Definition: ELF.h:511
llvm::ELF::EM_68HC11
@ EM_68HC11
Definition: ELF.h:186
llvm::ELF::SHN_MIPS_SCOMMON
@ SHN_MIPS_SCOMMON
Definition: ELF.h:573
llvm::ELF::SHN_ABS
@ SHN_ABS
Definition: ELF.h:967
llvm::ELF::EF_AMDGPU_MACH_R600_BARTS
@ EF_AMDGPU_MACH_R600_BARTS
Definition: ELF.h:721
llvm::ELF::Elf32_Sym
Definition: ELF.h:1166
llvm::ELF::EM_CR
@ EM_CR
Definition: ELF.h:220
llvm::ELF::DF_1_NOW
@ DF_1_NOW
Definition: ELF.h:1448
llvm::ELF::Elf64_Rela::getType
Elf64_Word getType() const
Definition: ELF.h:1321
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1033
@ EF_AMDGPU_MACH_AMDGCN_GFX1033
Definition: ELF.h:760
llvm::ELF::EM_CLOUDSHIELD
@ EM_CLOUDSHIELD
Definition: ELF.h:288
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1101
@ EF_AMDGPU_MACH_AMDGCN_GFX1101
Definition: ELF.h:773
llvm::ELF::SHN_UNDEF
@ SHN_UNDEF
Definition: ELF.h:961
llvm::ELF::Elf64_Rel::setSymbolAndType
void setSymbolAndType(Elf64_Word s, Elf64_Word t)
Definition: ELF.h:1307
llvm::ELF::EF_MIPS_ABI_EABI64
@ EF_MIPS_ABI_EABI64
Definition: ELF.h:522
llvm::ELF::EM_CR16
@ EM_CR16
Definition: ELF.h:274
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX90A
@ EF_AMDGPU_MACH_AMDGCN_GFX90A
Definition: ELF.h:766
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_X87
@ GNU_PROPERTY_X86_FEATURE_2_X87
Definition: ELF.h:1657
llvm::ELF::EI_MAG2
@ EI_MAG2
Definition: ELF.h:50
llvm::ELF::EM_KMX32
@ EM_KMX32
Definition: ELF.h:307
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_V2
@ EF_AMDGPU_FEATURE_XNACK_V2
Definition: ELF.h:784
llvm::ELF::NT_ARM_TLS
@ NT_ARM_TLS
Definition: ELF.h:1578
llvm::ELF::Elf64_Phdr
Definition: ELF.h:1345
llvm::ELF::EF_AMDGPU_MACH_R600_RESERVED_FIRST
@ EF_AMDGPU_MACH_R600_RESERVED_FIRST
Definition: ELF.h:727
llvm::ELF::ELFOSABI_C6000_ELFABI
@ ELFOSABI_C6000_ELFABI
Definition: ELF.h:364
llvm::ELF::SHT_ANDROID_RELR
@ SHT_ANDROID_RELR
Definition: ELF.h:1017
llvm::ELF::SHT_NULL
@ SHT_NULL
Definition: ELF.h:975
llvm::ELF::EM_METAG
@ EM_METAG
Definition: ELF.h:270
llvm::ELF::GNU_PROPERTY_AARCH64_FEATURE_1_AND
@ GNU_PROPERTY_AARCH64_FEATURE_1_AND
Definition: ELF.h:1633
llvm::ELF::EF_AVR_ARCH_AVR2
@ EF_AVR_ARCH_AVR2
Definition: ELF.h:477
llvm::ELF::ELFOSABI_GNU
@ ELFOSABI_GNU
Definition: ELF.h:344
llvm::ELF::EM_SE_C33
@ EM_SE_C33
Definition: ELF.h:224
llvm::ELF::SHT_LLVM_LINKER_OPTIONS
@ SHT_LLVM_LINKER_OPTIONS
Definition: ELF.h:1001
llvm::ELF::NT_S390_LAST_BREAK
@ NT_S390_LAST_BREAK
Definition: ELF.h:1569
llvm::ELF::ELFOSABI_HURD
@ ELFOSABI_HURD
Definition: ELF.h:346
llvm::ELF::EF_MIPS_ABI_EABI32
@ EF_MIPS_ABI_EABI32
Definition: ELF.h:521
llvm::ELF::EM_AVR32
@ EM_AVR32
Definition: ELF.h:281
llvm::ELF::PT_HIOS
@ PT_HIOS
Definition: ELF.h:1367
llvm::ELF::PT_ARM_EXIDX
@ PT_ARM_EXIDX
Definition: ELF.h:1388
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_NEEDED
@ GNU_PROPERTY_X86_FEATURE_2_NEEDED
Definition: ELF.h:1637
llvm::ELF::EM_VE
@ EM_VE
Definition: ELF.h:320
llvm::ELF::SHT_RELR
@ SHT_RELR
Definition: ELF.h:994
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX902
@ EF_AMDGPU_MACH_AMDGCN_GFX902
Definition: ELF.h:748
llvm::ELF::EM_FIREPATH
@ EM_FIREPATH
Definition: ELF.h:194
llvm::ELF::NT_FILE
@ NT_FILE
Definition: ELF.h:1584
llvm::ELF::Elf64_Chdr
Definition: ELF.h:1779
llvm::ELF::SHF_GNU_RETAIN
@ SHF_GNU_RETAIN
Definition: ELF.h:1091
llvm::ELF::SHN_COMMON
@ SHN_COMMON
Definition: ELF.h:968
llvm::ELF::ELFCLASS32
@ ELFCLASS32
Definition: ELF.h:328
llvm::ELF::SHN_MIPS_DATA
@ SHN_MIPS_DATA
Definition: ELF.h:572
llvm::ELF::EF_MSP430_MACH_MSP430X
@ EF_MSP430_MACH_MSP430X
Definition: ELF.h:865
llvm::ELF::EM_AARCH64
@ EM_AARCH64
Definition: ELF.h:280
llvm::ELF::EM_UNICORE
@ EM_UNICORE
Definition: ELF.h:227
llvm::ELF::convertArchNameToEMachine
uint16_t convertArchNameToEMachine(StringRef Arch)
Convert an architecture name into ELF's e_machine value.
Definition: ELF.cpp:17
llvm::ELF::SHN_LOPROC
@ SHN_LOPROC
Definition: ELF.h:963
llvm::ELF::Elf64_Chdr::ch_reserved
Elf64_Word ch_reserved
Definition: ELF.h:1781
llvm::ELF::Elf64_Sym::st_value
Elf64_Addr st_value
Definition: ELF.h:1191
llvm::ELF::EM_M32
@ EM_M32
Definition: ELF.h:134
llvm::ELF::STO_RISCV_VARIANT_CC
@ STO_RISCV_VARIANT_CC
Definition: ELF.h:682
llvm::ELF::EF_AVR_ARCH_MASK
@ EF_AVR_ARCH_MASK
Definition: ELF.h:495
llvm::ELF::VER_DEF_CURRENT
@ VER_DEF_CURRENT
Definition: ELF.h:1503
llvm::ELF::EF_AMDGPU_MACH_R600_CEDAR
@ EF_AMDGPU_MACH_R600_CEDAR
Definition: ELF.h:715
llvm::ELF::EF_AVR_ARCH_XMEGA1
@ EF_AVR_ARCH_XMEGA1
Definition: ELF.h:487
llvm::ELF::GNU_PROPERTY_NO_COPY_ON_PROTECTED
@ GNU_PROPERTY_NO_COPY_ON_PROTECTED
Definition: ELF.h:1632
llvm::ELF::STN_UNDEF
@ STN_UNDEF
Definition: ELF.h:1250
llvm::ELF::EM_DXP
@ EM_DXP
Definition: ELF.h:230
llvm::ELF::VERSYM_VERSION
@ VERSYM_VERSION
Definition: ELF.h:1512
llvm::ELF::EF_HEXAGON_MACH_V67T
@ EF_HEXAGON_MACH_V67T
Definition: ELF.h:620
llvm::ELF::PT_OPENBSD_RANDOMIZE
@ PT_OPENBSD_RANDOMIZE
Definition: ELF.h:1381
llvm::ELF::EF_MSP430_MACH_MSP430x12
@ EF_MSP430_MACH_MSP430x12
Definition: ELF.h:848
llvm::ELF::NT_FREEBSD_PROCSTAT_VMMAP
@ NT_FREEBSD_PROCSTAT_VMMAP
Definition: ELF.h:1696
llvm::ELF::EF_ARM_EABI_VER1
@ EF_ARM_EABI_VER1
Definition: ELF.h:440
llvm::ELF::Elf64_Ehdr::e_ehsize
Elf64_Half e_ehsize
Definition: ELF.h:96
llvm::ELF::Elf32_Ehdr::e_shentsize
Elf32_Half e_shentsize
Definition: ELF.h:73
llvm::ELF::NT_PPC_DSCR
@ NT_PPC_DSCR
Definition: ELF.h:1547
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX904
@ EF_AMDGPU_MACH_AMDGCN_GFX904
Definition: ELF.h:749
llvm::ELF::Elf64_Ehdr::e_shoff
Elf64_Off e_shoff
Definition: ELF.h:94
llvm::ELF::STT_COMMON
@ STT_COMMON
Definition: ELF.h:1230
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4
@ EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4
Definition: ELF.h:807
llvm::ELF::EF_HEXAGON_ISA_V69
@ EF_HEXAGON_ISA_V69
Definition: ELF.h:639
llvm::ELF::STT_FILE
@ STT_FILE
Definition: ELF.h:1229
llvm::ELF::EM_ALTERA_NIOS2
@ EM_ALTERA_NIOS2
Definition: ELF.h:231
llvm::ELF::EF_RISCV_RVC
@ EF_RISCV_RVC
Definition: ELF.h:664
llvm::ELF::EM_68HC08
@ EM_68HC08
Definition: ELF.h:187
llvm::ELF::STT_OBJECT
@ STT_OBJECT
Definition: ELF.h:1226
llvm::ELF::EM_ARC_COMPACT
@ EM_ARC_COMPACT
Definition: ELF.h:209
llvm::ELF::EF_MIPS_MACH_3900
@ EF_MIPS_MACH_3900
Definition: ELF.h:527
llvm::ELF::NT_ARM_VFP
@ NT_ARM_VFP
Definition: ELF.h:1577
llvm::ELF::SHT_REL
@ SHT_REL
Definition: ELF.h:984
llvm::ELF::Elf64_Rel::setSymbol
void setSymbol(Elf64_Word s)
Definition: ELF.h:1305
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_RESERVED_0X27
@ EF_AMDGPU_MACH_AMDGCN_RESERVED_0X27
Definition: ELF.h:742
llvm::ELF::EF_AMDGPU_MACH_R600_R600
@ EF_AMDGPU_MACH_R600_R600
Definition: ELF.h:706
llvm::ELF::EM_386
@ EM_386
Definition: ELF.h:136
llvm::ELF::NT_VERSION
@ NT_VERSION
Definition: ELF.h:1523
llvm::ELF::EM_68HC05
@ EM_68HC05
Definition: ELF.h:188
llvm::ELF::ELFOSABI_STANDALONE
@ ELFOSABI_STANDALONE
Definition: ELF.h:366
llvm::ELF::SHT_DYNAMIC
@ SHT_DYNAMIC
Definition: ELF.h:981
llvm::ELF::Elf32_Shdr::sh_flags
Elf32_Word sh_flags
Definition: ELF.h:935
llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V3
@ ELFABIVERSION_AMDGPU_HSA_V3
Definition: ELF.h:375
llvm::ELF::NT_FPREGSET
@ NT_FPREGSET
Definition: ELF.h:1532
llvm::ELF::EI_MAG3
@ EI_MAG3
Definition: ELF.h:51
llvm::ELF::EM_ECOG2
@ EM_ECOG2
Definition: ELF.h:244
llvm::ELF::EM_COLDFIRE
@ EM_COLDFIRE
Definition: ELF.h:168
llvm::ELF::EM_ZSP
@ EM_ZSP
Definition: ELF.h:195
llvm::ELF::DF_1_SYMINTPOSE
@ DF_1_SYMINTPOSE
Definition: ELF.h:1471
llvm::ELF::NT_FREEBSD_FCTL_LA48
@ NT_FREEBSD_FCTL_LA48
Definition: ELF.h:1687
llvm::ELF::EM_SE_C17
@ EM_SE_C17
Definition: ELF.h:249
llvm::ELF::Elf64_Ehdr::e_phentsize
Elf64_Half e_phentsize
Definition: ELF.h:97
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_V3
@ EF_AMDGPU_FEATURE_XNACK_V3
Definition: ELF.h:795
llvm::ELF::EF_HEXAGON_MACH_V62
@ EF_HEXAGON_MACH_V62
Definition: ELF.h:616
llvm::ELF::EF_MSP430_MACH_MSP430x22
@ EF_MSP430_MACH_MSP430x22
Definition: ELF.h:854
llvm::ELF::SHT_LLVM_BB_ADDR_MAP_V0
@ SHT_LLVM_BB_ADDR_MAP_V0
Definition: ELF.h:1009
llvm::ELF::EM_VIDEOCORE5
@ EM_VIDEOCORE5
Definition: ELF.h:294
llvm::ELF::RHF_QUICKSTART
@ RHF_QUICKSTART
Definition: ELF.h:1480
llvm::ELF::EM_PJ
@ EM_PJ
Definition: ELF.h:207
Other
Optional< std::vector< StOtherPiece > > Other
Definition: ELFYAML.cpp:1247
llvm::ELF::ELFDATANONE
@ ELFDATANONE
Definition: ELF.h:334
llvm::ELF::Elf32_Rela::r_addend
Elf32_Sword r_addend
Definition: ELF.h:1280
llvm::ELF::SHT_FINI_ARRAY
@ SHT_FINI_ARRAY
Definition: ELF.h:988
llvm::ELF::Elf64_Phdr::p_vaddr
Elf64_Addr p_vaddr
Definition: ELF.h:1349
llvm::ELF::EM_VPP500
@ EM_VPP500
Definition: ELF.h:145
llvm::ELF::NT_FPREGS
@ NT_FPREGS
Definition: ELF.h:1537
llvm::ELF::SHF_SUNW_NODISCARD
@ SHF_SUNW_NODISCARD
Definition: ELF.h:1101
llvm::ELF::EF_RISCV_FLOAT_ABI_SINGLE
@ EF_RISCV_FLOAT_ABI_SINGLE
Definition: ELF.h:667
llvm::ELF::EF_HEXAGON_MACH_V67
@ EF_HEXAGON_MACH_V67
Definition: ELF.h:619
llvm::ELF::ELFOSABI_MODESTO
@ ELFOSABI_MODESTO
Definition: ELF.h:352
llvm::ELF::EM_F2MC16
@ EM_F2MC16
Definition: ELF.h:221
llvm::ELF::EM_IA_64
@ EM_IA_64
Definition: ELF.h:166
llvm::ELF::DF_1_GROUP
@ DF_1_GROUP
Definition: ELF.h:1450
llvm::ELF::Elf32_Phdr::p_filesz
Elf32_Word p_filesz
Definition: ELF.h:1338
llvm::ELF::Elf32_Ehdr::e_phentsize
Elf32_Half e_phentsize
Definition: ELF.h:71
llvm::ELF::Elf32_Phdr::p_offset
Elf32_Off p_offset
Definition: ELF.h:1335
llvm::ELF::Elf32_Chdr::ch_type
Elf32_Word ch_type
Definition: ELF.h:1773
llvm::ELF::Elf32_Ehdr::e_shoff
Elf32_Off e_shoff
Definition: ELF.h:68
llvm::ELF::EF_MIPS_MACH_4120
@ EF_MIPS_MACH_4120
Definition: ELF.h:531
llvm::ELF::EM_KVARC
@ EM_KVARC
Definition: ELF.h:310
llvm::ELF::EM_68HC12
@ EM_68HC12
Definition: ELF.h:169