LLVM  17.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_V71 = 0x00000071, // Hexagon V71
624  EF_HEXAGON_MACH_V71T = 0x00008071, // Hexagon V71T
625  EF_HEXAGON_MACH_V73 = 0x00000073, // Hexagon V73
626  EF_HEXAGON_MACH = 0x000003ff, // Hexagon V..
627 
628  // Highest ISA version flags
629  EF_HEXAGON_ISA_MACH = 0x00000000, // Same as specified in bits[11:0]
630  // of e_flags
631  EF_HEXAGON_ISA_V2 = 0x00000010, // Hexagon V2 ISA
632  EF_HEXAGON_ISA_V3 = 0x00000020, // Hexagon V3 ISA
633  EF_HEXAGON_ISA_V4 = 0x00000030, // Hexagon V4 ISA
634  EF_HEXAGON_ISA_V5 = 0x00000040, // Hexagon V5 ISA
635  EF_HEXAGON_ISA_V55 = 0x00000050, // Hexagon V55 ISA
636  EF_HEXAGON_ISA_V60 = 0x00000060, // Hexagon V60 ISA
637  EF_HEXAGON_ISA_V62 = 0x00000062, // Hexagon V62 ISA
638  EF_HEXAGON_ISA_V65 = 0x00000065, // Hexagon V65 ISA
639  EF_HEXAGON_ISA_V66 = 0x00000066, // Hexagon V66 ISA
640  EF_HEXAGON_ISA_V67 = 0x00000067, // Hexagon V67 ISA
641  EF_HEXAGON_ISA_V68 = 0x00000068, // Hexagon V68 ISA
642  EF_HEXAGON_ISA_V69 = 0x00000069, // Hexagon V69 ISA
643  EF_HEXAGON_ISA_V71 = 0x00000071, // Hexagon V71 ISA
644  EF_HEXAGON_ISA_V73 = 0x00000073, // Hexagon V73 ISA
645  EF_HEXAGON_ISA_V75 = 0x00000075, // Hexagon V75 ISA
646  EF_HEXAGON_ISA = 0x000003ff, // Hexagon V.. ISA
647 };
648 
649 // Hexagon-specific section indexes for common small data
650 enum {
651  SHN_HEXAGON_SCOMMON = 0xff00, // Other access sizes
652  SHN_HEXAGON_SCOMMON_1 = 0xff01, // Byte-sized access
653  SHN_HEXAGON_SCOMMON_2 = 0xff02, // Half-word-sized access
654  SHN_HEXAGON_SCOMMON_4 = 0xff03, // Word-sized access
655  SHN_HEXAGON_SCOMMON_8 = 0xff04 // Double-word-size access
656 };
657 
658 // ELF Relocation types for Hexagon
659 enum {
660 #include "ELFRelocs/Hexagon.def"
661 };
662 
663 // ELF Relocation type for Lanai.
664 enum {
665 #include "ELFRelocs/Lanai.def"
666 };
667 
668 // RISCV Specific e_flags
669 enum : unsigned {
670  EF_RISCV_RVC = 0x0001,
676  EF_RISCV_RVE = 0x0008,
677  EF_RISCV_TSO = 0x0010,
678 };
679 
680 // ELF Relocation types for RISC-V
681 enum {
682 #include "ELFRelocs/RISCV.def"
683 };
684 
685 enum {
686  // Symbol may follow different calling convention than the standard calling
687  // convention.
689 };
690 
691 // ELF Relocation types for S390/zSeries
692 enum {
693 #include "ELFRelocs/SystemZ.def"
694 };
695 
696 // ELF Relocation type for Sparc.
697 enum {
698 #include "ELFRelocs/Sparc.def"
699 };
700 
701 // AMDGPU specific e_flags.
702 enum : unsigned {
703  // Processor selection mask for EF_AMDGPU_MACH_* values.
704  EF_AMDGPU_MACH = 0x0ff,
705 
706  // Not specified processor.
708 
709  // R600-based processors.
710 
711  // Radeon HD 2000/3000 Series (R600).
716  // Radeon HD 4000 Series (R700).
720  // Radeon HD 5000 Series (Evergreen).
726  // Radeon HD 6000 Series (Northern Islands).
731 
732  // Reserved for R600-based processors.
735 
736  // First/last R600-based processors.
739 
740  // AMDGCN-based processors.
781 
782  // First/last AMDGCN-based processors.
785 
786  // Indicates if the "xnack" target feature is enabled for all code contained
787  // in the object.
788  //
789  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V2.
791  // Indicates if the trap handler is enabled for all code contained
792  // in the object.
793  //
794  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V2.
796 
797  // Indicates if the "xnack" target feature is enabled for all code contained
798  // in the object.
799  //
800  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V3.
802  // Indicates if the "sramecc" target feature is enabled for all code
803  // contained in the object.
804  //
805  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V3.
807 
808  // XNACK selection mask for EF_AMDGPU_FEATURE_XNACK_* values.
809  //
810  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V4.
812  // XNACK is not supported.
814  // XNACK is any/default/unspecified.
816  // XNACK is off.
818  // XNACK is on.
820 
821  // SRAMECC selection mask for EF_AMDGPU_FEATURE_SRAMECC_* values.
822  //
823  // Only valid for ELFOSABI_AMDGPU_HSA and ELFABIVERSION_AMDGPU_HSA_V4.
825  // SRAMECC is not supported.
827  // SRAMECC is any/default/unspecified.
829  // SRAMECC is off.
831  // SRAMECC is on.
833 };
834 
835 // ELF Relocation types for AMDGPU
836 enum {
837 #include "ELFRelocs/AMDGPU.def"
838 };
839 
840 // ELF Relocation types for BPF
841 enum {
842 #include "ELFRelocs/BPF.def"
843 };
844 
845 // ELF Relocation types for M68k
846 enum {
847 #include "ELFRelocs/M68k.def"
848 };
849 
850 // MSP430 specific e_flags
851 enum : unsigned {
875 };
876 
877 // ELF Relocation types for MSP430
878 enum {
879 #include "ELFRelocs/MSP430.def"
880 };
881 
882 // ELF Relocation type for VE.
883 enum {
884 #include "ELFRelocs/VE.def"
885 };
886 
887 // CSKY Specific e_flags
888 enum : unsigned {
889  EF_CSKY_801 = 0xa,
890  EF_CSKY_802 = 0x10,
891  EF_CSKY_803 = 0x9,
892  EF_CSKY_805 = 0x11,
893  EF_CSKY_807 = 0x6,
894  EF_CSKY_810 = 0x8,
895  EF_CSKY_860 = 0xb,
896  EF_CSKY_800 = 0x1f,
897  EF_CSKY_FLOAT = 0x2000,
898  EF_CSKY_DSP = 0x4000,
899  EF_CSKY_ABIV2 = 0x20000000,
900  EF_CSKY_EFV1 = 0x1000000,
901  EF_CSKY_EFV2 = 0x2000000,
902  EF_CSKY_EFV3 = 0x3000000
903 };
904 
905 // ELF Relocation types for CSKY
906 enum {
907 #include "ELFRelocs/CSKY.def"
908 };
909 
910 // LoongArch Specific e_flags
911 enum : unsigned {
912  // Definitions from LoongArch ELF psABI v2.01.
913  // Reference: https://github.com/loongson/LoongArch-Documentation
914  // (commit hash 296de4def055c871809068e0816325a4ac04eb12)
915 
916  // Base ABI Modifiers
921 
922  // Object file ABI versions
926 };
927 
928 // ELF Relocation types for LoongArch
929 enum {
930 #include "ELFRelocs/LoongArch.def"
931 };
932 
933 // Xtensa specific e_flags
934 enum : unsigned {
935  // Four-bit Xtensa machine type mask.
936  EF_XTENSA_MACH = 0x0000000f,
937  // Various CPU types.
938  EF_XTENSA_MACH_NONE = 0x00000000, // A base Xtensa implementation
939  EF_XTENSA_XT_INSN = 0x00000100,
940  EF_XTENSA_XT_LIT = 0x00000200,
941 };
942 
943 // ELF Relocation types for Xtensa
944 enum {
945 #include "ELFRelocs/Xtensa.def"
946 };
947 
948 #undef ELF_RELOC
949 
950 // Section header.
951 struct Elf32_Shdr {
952  Elf32_Word sh_name; // Section name (index into string table)
953  Elf32_Word sh_type; // Section type (SHT_*)
954  Elf32_Word sh_flags; // Section flags (SHF_*)
955  Elf32_Addr sh_addr; // Address where section is to be loaded
956  Elf32_Off sh_offset; // File offset of section data, in bytes
957  Elf32_Word sh_size; // Size of section, in bytes
958  Elf32_Word sh_link; // Section type-specific header table index link
959  Elf32_Word sh_info; // Section type-specific extra information
960  Elf32_Word sh_addralign; // Section address alignment
961  Elf32_Word sh_entsize; // Size of records contained within the section
962 };
963 
964 // Section header for ELF64 - same fields as ELF32, different types.
965 struct Elf64_Shdr {
976 };
977 
978 // Special section indices.
979 enum {
980  SHN_UNDEF = 0, // Undefined, missing, irrelevant, or meaningless
981  SHN_LORESERVE = 0xff00, // Lowest reserved index
982  SHN_LOPROC = 0xff00, // Lowest processor-specific index
983  SHN_HIPROC = 0xff1f, // Highest processor-specific index
984  SHN_LOOS = 0xff20, // Lowest operating system-specific index
985  SHN_HIOS = 0xff3f, // Highest operating system-specific index
986  SHN_ABS = 0xfff1, // Symbol has absolute value; does not need relocation
987  SHN_COMMON = 0xfff2, // FORTRAN COMMON or C external global variables
988  SHN_XINDEX = 0xffff, // Mark that the index is >= SHN_LORESERVE
989  SHN_HIRESERVE = 0xffff // Highest reserved index
990 };
991 
992 // Section types.
993 enum : unsigned {
994  SHT_NULL = 0, // No associated section (inactive entry).
995  SHT_PROGBITS = 1, // Program-defined contents.
996  SHT_SYMTAB = 2, // Symbol table.
997  SHT_STRTAB = 3, // String table.
998  SHT_RELA = 4, // Relocation entries; explicit addends.
999  SHT_HASH = 5, // Symbol hash table.
1000  SHT_DYNAMIC = 6, // Information for dynamic linking.
1001  SHT_NOTE = 7, // Information about the file.
1002  SHT_NOBITS = 8, // Data occupies no space in the file.
1003  SHT_REL = 9, // Relocation entries; no explicit addends.
1004  SHT_SHLIB = 10, // Reserved.
1005  SHT_DYNSYM = 11, // Symbol table.
1006  SHT_INIT_ARRAY = 14, // Pointers to initialization functions.
1007  SHT_FINI_ARRAY = 15, // Pointers to termination functions.
1008  SHT_PREINIT_ARRAY = 16, // Pointers to pre-init functions.
1009  SHT_GROUP = 17, // Section group.
1010  SHT_SYMTAB_SHNDX = 18, // Indices for SHN_XINDEX entries.
1011  // Experimental support for SHT_RELR sections. For details, see proposal
1012  // at https://groups.google.com/forum/#!topic/generic-abi/bX460iggiKg
1013  SHT_RELR = 19, // Relocation entries; only offsets.
1014  SHT_LOOS = 0x60000000, // Lowest operating system-specific type.
1015  // Android packed relocation section types.
1016  // https://android.googlesource.com/platform/bionic/+/6f12bfece5dcc01325e0abba56a46b1bcf991c69/tools/relocation_packer/src/elf_file.cc#37
1017  SHT_ANDROID_REL = 0x60000001,
1018  SHT_ANDROID_RELA = 0x60000002,
1019  SHT_LLVM_ODRTAB = 0x6fff4c00, // LLVM ODR table.
1020  SHT_LLVM_LINKER_OPTIONS = 0x6fff4c01, // LLVM Linker Options.
1021  SHT_LLVM_ADDRSIG = 0x6fff4c03, // List of address-significant symbols
1022  // for safe ICF.
1024  0x6fff4c04, // LLVM Dependent Library Specifiers.
1025  SHT_LLVM_SYMPART = 0x6fff4c05, // Symbol partition specification.
1026  SHT_LLVM_PART_EHDR = 0x6fff4c06, // ELF header for loadable partition.
1027  SHT_LLVM_PART_PHDR = 0x6fff4c07, // Phdrs for loadable partition.
1029  0x6fff4c08, // LLVM Basic Block Address Map (old version kept for
1030  // backward-compatibility).
1031  SHT_LLVM_CALL_GRAPH_PROFILE = 0x6fff4c09, // LLVM Call Graph Profile.
1032  SHT_LLVM_BB_ADDR_MAP = 0x6fff4c0a, // LLVM Basic Block Address Map.
1033  SHT_LLVM_OFFLOADING = 0x6fff4c0b, // LLVM device offloading data.
1034  // Android's experimental support for SHT_RELR sections.
1035  // https://android.googlesource.com/platform/bionic/+/b7feec74547f84559a1467aca02708ff61346d2a/libc/include/elf.h#512
1036  SHT_ANDROID_RELR = 0x6fffff00, // Relocation entries; only offsets.
1037  SHT_GNU_ATTRIBUTES = 0x6ffffff5, // Object attributes.
1038  SHT_GNU_HASH = 0x6ffffff6, // GNU-style hash table.
1039  SHT_GNU_verdef = 0x6ffffffd, // GNU version definitions.
1040  SHT_GNU_verneed = 0x6ffffffe, // GNU version references.
1041  SHT_GNU_versym = 0x6fffffff, // GNU symbol versions table.
1042  SHT_HIOS = 0x6fffffff, // Highest operating system-specific type.
1043  SHT_LOPROC = 0x70000000, // Lowest processor arch-specific type.
1044  // Fixme: All this is duplicated in MCSectionELF. Why??
1045  // Exception Index table
1046  SHT_ARM_EXIDX = 0x70000001U,
1047  // BPABI DLL dynamic linking pre-emption map
1048  SHT_ARM_PREEMPTMAP = 0x70000002U,
1049  // Object file compatibility attributes
1050  SHT_ARM_ATTRIBUTES = 0x70000003U,
1051  SHT_ARM_DEBUGOVERLAY = 0x70000004U,
1052  SHT_ARM_OVERLAYSECTION = 0x70000005U,
1053  // Special aarch64-specific sections for MTE support, as described in:
1054  // https://github.com/ARM-software/abi-aa/blob/main/memtagabielf64/memtagabielf64.rst#7section-types
1057  SHT_HEX_ORDERED = 0x70000000, // Link editor is to sort the entries in
1058  // this section based on their sizes
1059  SHT_X86_64_UNWIND = 0x70000001, // Unwind information
1060 
1061  SHT_MIPS_REGINFO = 0x70000006, // Register usage information
1062  SHT_MIPS_OPTIONS = 0x7000000d, // General options
1063  SHT_MIPS_DWARF = 0x7000001e, // DWARF debugging section.
1064  SHT_MIPS_ABIFLAGS = 0x7000002a, // ABI information.
1065 
1066  SHT_MSP430_ATTRIBUTES = 0x70000003U,
1067 
1068  SHT_RISCV_ATTRIBUTES = 0x70000003U,
1069 
1070  SHT_CSKY_ATTRIBUTES = 0x70000001U,
1071 
1072  SHT_HIPROC = 0x7fffffff, // Highest processor arch-specific type.
1073  SHT_LOUSER = 0x80000000, // Lowest type reserved for applications.
1074  SHT_HIUSER = 0xffffffff // Highest type reserved for applications.
1075 };
1076 
1077 // Section flags.
1078 enum : unsigned {
1079  // Section data should be writable during execution.
1080  SHF_WRITE = 0x1,
1081 
1082  // Section occupies memory during program execution.
1083  SHF_ALLOC = 0x2,
1084 
1085  // Section contains executable machine instructions.
1087 
1088  // The data in this section may be merged.
1089  SHF_MERGE = 0x10,
1090 
1091  // The data in this section is null-terminated strings.
1092  SHF_STRINGS = 0x20,
1093 
1094  // A field in this section holds a section header table index.
1095  SHF_INFO_LINK = 0x40U,
1096 
1097  // Adds special ordering requirements for link editors.
1099 
1100  // This section requires special OS-specific processing to avoid incorrect
1101  // behavior.
1103 
1104  // This section is a member of a section group.
1105  SHF_GROUP = 0x200U,
1106 
1107  // This section holds Thread-Local Storage.
1108  SHF_TLS = 0x400U,
1109 
1110  // Identifies a section containing compressed data.
1111  SHF_COMPRESSED = 0x800U,
1112 
1113  // This section should not be garbage collected by the linker.
1114  SHF_GNU_RETAIN = 0x200000,
1115 
1116  // This section is excluded from the final executable or shared library.
1117  SHF_EXCLUDE = 0x80000000U,
1118 
1119  // Start of target-specific flags.
1120 
1121  SHF_MASKOS = 0x0ff00000,
1122 
1123  // Solaris equivalent of SHF_GNU_RETAIN.
1124  SHF_SUNW_NODISCARD = 0x00100000,
1125 
1126  // Bits indicating processor-specific flags.
1127  SHF_MASKPROC = 0xf0000000,
1128 
1129  /// All sections with the "d" flag are grouped together by the linker to form
1130  /// the data section and the dp register is set to the start of the section by
1131  /// the boot code.
1132  XCORE_SHF_DP_SECTION = 0x10000000,
1133 
1134  /// All sections with the "c" flag are grouped together by the linker to form
1135  /// the constant pool and the cp register is set to the start of the constant
1136  /// pool by the boot code.
1137  XCORE_SHF_CP_SECTION = 0x20000000,
1138 
1139  // If an object file section does not have this flag set, then it may not hold
1140  // more than 2GB and can be freely referred to in objects using smaller code
1141  // models. Otherwise, only objects using larger code models can refer to them.
1142  // For example, a medium code model object can refer to data in a section that
1143  // sets this flag besides being able to refer to data in a section that does
1144  // not set it; likewise, a small code model object can refer only to code in a
1145  // section that does not set this flag.
1146  SHF_X86_64_LARGE = 0x10000000,
1147 
1148  // All sections with the GPREL flag are grouped into a global data area
1149  // for faster accesses
1150  SHF_HEX_GPREL = 0x10000000,
1151 
1152  // Section contains text/data which may be replicated in other sections.
1153  // Linker must retain only one copy.
1154  SHF_MIPS_NODUPES = 0x01000000,
1155 
1156  // Linker must generate implicit hidden weak names.
1157  SHF_MIPS_NAMES = 0x02000000,
1158 
1159  // Section data local to process.
1160  SHF_MIPS_LOCAL = 0x04000000,
1161 
1162  // Do not strip this section.
1163  SHF_MIPS_NOSTRIP = 0x08000000,
1164 
1165  // Section must be part of global data area.
1166  SHF_MIPS_GPREL = 0x10000000,
1167 
1168  // This section should be merged.
1169  SHF_MIPS_MERGE = 0x20000000,
1170 
1171  // Address size to be inferred from section entry size.
1172  SHF_MIPS_ADDR = 0x40000000,
1173 
1174  // Section data is string data by default.
1175  SHF_MIPS_STRING = 0x80000000,
1176 
1177  // Make code section unreadable when in execute-only mode
1178  SHF_ARM_PURECODE = 0x20000000
1179 };
1180 
1181 // Section Group Flags
1182 enum : unsigned {
1183  GRP_COMDAT = 0x1,
1184  GRP_MASKOS = 0x0ff00000,
1185  GRP_MASKPROC = 0xf0000000
1186 };
1187 
1188 // Symbol table entries for ELF32.
1189 struct Elf32_Sym {
1190  Elf32_Word st_name; // Symbol name (index into string table)
1191  Elf32_Addr st_value; // Value or address associated with the symbol
1192  Elf32_Word st_size; // Size of the symbol
1193  unsigned char st_info; // Symbol's type and binding attributes
1194  unsigned char st_other; // Must be zero; reserved
1195  Elf32_Half st_shndx; // Which section (header table index) it's defined in
1196 
1197  // These accessors and mutators correspond to the ELF32_ST_BIND,
1198  // ELF32_ST_TYPE, and ELF32_ST_INFO macros defined in the ELF specification:
1199  unsigned char getBinding() const { return st_info >> 4; }
1200  unsigned char getType() const { return st_info & 0x0f; }
1201  void setBinding(unsigned char b) { setBindingAndType(b, getType()); }
1202  void setType(unsigned char t) { setBindingAndType(getBinding(), t); }
1203  void setBindingAndType(unsigned char b, unsigned char t) {
1204  st_info = (b << 4) + (t & 0x0f);
1205  }
1206 };
1207 
1208 // Symbol table entries for ELF64.
1209 struct Elf64_Sym {
1210  Elf64_Word st_name; // Symbol name (index into string table)
1211  unsigned char st_info; // Symbol's type and binding attributes
1212  unsigned char st_other; // Must be zero; reserved
1213  Elf64_Half st_shndx; // Which section (header tbl index) it's defined in
1214  Elf64_Addr st_value; // Value or address associated with the symbol
1215  Elf64_Xword st_size; // Size of the symbol
1216 
1217  // These accessors and mutators are identical to those defined for ELF32
1218  // symbol table entries.
1219  unsigned char getBinding() const { return st_info >> 4; }
1220  unsigned char getType() const { return st_info & 0x0f; }
1221  void setBinding(unsigned char b) { setBindingAndType(b, getType()); }
1222  void setType(unsigned char t) { setBindingAndType(getBinding(), t); }
1223  void setBindingAndType(unsigned char b, unsigned char t) {
1224  st_info = (b << 4) + (t & 0x0f);
1225  }
1226 };
1227 
1228 // The size (in bytes) of symbol table entries.
1229 enum {
1230  SYMENTRY_SIZE32 = 16, // 32-bit symbol entry size
1231  SYMENTRY_SIZE64 = 24 // 64-bit symbol entry size.
1232 };
1233 
1234 // Symbol bindings.
1235 enum {
1236  STB_LOCAL = 0, // Local symbol, not visible outside obj file containing def
1237  STB_GLOBAL = 1, // Global symbol, visible to all object files being combined
1238  STB_WEAK = 2, // Weak symbol, like global but lower-precedence
1240  STB_LOOS = 10, // Lowest operating system-specific binding type
1241  STB_HIOS = 12, // Highest operating system-specific binding type
1242  STB_LOPROC = 13, // Lowest processor-specific binding type
1243  STB_HIPROC = 15 // Highest processor-specific binding type
1244 };
1245 
1246 // Symbol types.
1247 enum {
1248  STT_NOTYPE = 0, // Symbol's type is not specified
1249  STT_OBJECT = 1, // Symbol is a data object (variable, array, etc.)
1250  STT_FUNC = 2, // Symbol is executable code (function, etc.)
1251  STT_SECTION = 3, // Symbol refers to a section
1252  STT_FILE = 4, // Local, absolute symbol that refers to a file
1253  STT_COMMON = 5, // An uninitialized common block
1254  STT_TLS = 6, // Thread local data object
1255  STT_GNU_IFUNC = 10, // GNU indirect function
1256  STT_LOOS = 10, // Lowest operating system-specific symbol type
1257  STT_HIOS = 12, // Highest operating system-specific symbol type
1258  STT_LOPROC = 13, // Lowest processor-specific symbol type
1259  STT_HIPROC = 15, // Highest processor-specific symbol type
1260 
1261  // AMDGPU symbol types
1263 };
1264 
1265 enum {
1266  STV_DEFAULT = 0, // Visibility is specified by binding type
1267  STV_INTERNAL = 1, // Defined by processor supplements
1268  STV_HIDDEN = 2, // Not visible to other components
1269  STV_PROTECTED = 3 // Visible in other components but not preemptable
1270 };
1271 
1272 // Symbol number.
1273 enum { STN_UNDEF = 0 };
1274 
1275 // Special relocation symbols used in the MIPS64 ELF relocation entries
1276 enum {
1277  RSS_UNDEF = 0, // None
1278  RSS_GP = 1, // Value of gp
1279  RSS_GP0 = 2, // Value of gp used to create object being relocated
1280  RSS_LOC = 3 // Address of location being relocated
1281 };
1282 
1283 // Relocation entry, without explicit addend.
1284 struct Elf32_Rel {
1285  Elf32_Addr r_offset; // Location (file byte offset, or program virtual addr)
1286  Elf32_Word r_info; // Symbol table index and type of relocation to apply
1287 
1288  // These accessors and mutators correspond to the ELF32_R_SYM, ELF32_R_TYPE,
1289  // and ELF32_R_INFO macros defined in the ELF specification:
1290  Elf32_Word getSymbol() const { return (r_info >> 8); }
1291  unsigned char getType() const { return (unsigned char)(r_info & 0x0ff); }
1293  void setType(unsigned char t) { setSymbolAndType(getSymbol(), t); }
1294  void setSymbolAndType(Elf32_Word s, unsigned char t) {
1295  r_info = (s << 8) + t;
1296  }
1297 };
1298 
1299 // Relocation entry with explicit addend.
1300 struct Elf32_Rela {
1301  Elf32_Addr r_offset; // Location (file byte offset, or program virtual addr)
1302  Elf32_Word r_info; // Symbol table index and type of relocation to apply
1303  Elf32_Sword r_addend; // Compute value for relocatable field by adding this
1304 
1305  // These accessors and mutators correspond to the ELF32_R_SYM, ELF32_R_TYPE,
1306  // and ELF32_R_INFO macros defined in the ELF specification:
1307  Elf32_Word getSymbol() const { return (r_info >> 8); }
1308  unsigned char getType() const { return (unsigned char)(r_info & 0x0ff); }
1310  void setType(unsigned char t) { setSymbolAndType(getSymbol(), t); }
1311  void setSymbolAndType(Elf32_Word s, unsigned char t) {
1312  r_info = (s << 8) + t;
1313  }
1314 };
1315 
1316 // Relocation entry without explicit addend or info (relative relocations only).
1317 typedef Elf32_Word Elf32_Relr; // offset/bitmap for relative relocations
1318 
1319 // Relocation entry, without explicit addend.
1320 struct Elf64_Rel {
1321  Elf64_Addr r_offset; // Location (file byte offset, or program virtual addr).
1322  Elf64_Xword r_info; // Symbol table index and type of relocation to apply.
1323 
1324  // These accessors and mutators correspond to the ELF64_R_SYM, ELF64_R_TYPE,
1325  // and ELF64_R_INFO macros defined in the ELF specification:
1326  Elf64_Word getSymbol() const { return (r_info >> 32); }
1327  Elf64_Word getType() const { return (Elf64_Word)(r_info & 0xffffffffL); }
1331  r_info = ((Elf64_Xword)s << 32) + (t & 0xffffffffL);
1332  }
1333 };
1334 
1335 // Relocation entry with explicit addend.
1336 struct Elf64_Rela {
1337  Elf64_Addr r_offset; // Location (file byte offset, or program virtual addr).
1338  Elf64_Xword r_info; // Symbol table index and type of relocation to apply.
1339  Elf64_Sxword r_addend; // Compute value for relocatable field by adding this.
1340 
1341  // These accessors and mutators correspond to the ELF64_R_SYM, ELF64_R_TYPE,
1342  // and ELF64_R_INFO macros defined in the ELF specification:
1343  Elf64_Word getSymbol() const { return (r_info >> 32); }
1344  Elf64_Word getType() const { return (Elf64_Word)(r_info & 0xffffffffL); }
1348  r_info = ((Elf64_Xword)s << 32) + (t & 0xffffffffL);
1349  }
1350 };
1351 
1352 // Relocation entry without explicit addend or info (relative relocations only).
1353 typedef Elf64_Xword Elf64_Relr; // offset/bitmap for relative relocations
1354 
1355 // Program header for ELF32.
1356 struct Elf32_Phdr {
1357  Elf32_Word p_type; // Type of segment
1358  Elf32_Off p_offset; // File offset where segment is located, in bytes
1359  Elf32_Addr p_vaddr; // Virtual address of beginning of segment
1360  Elf32_Addr p_paddr; // Physical address of beginning of segment (OS-specific)
1361  Elf32_Word p_filesz; // Num. of bytes in file image of segment (may be zero)
1362  Elf32_Word p_memsz; // Num. of bytes in mem image of segment (may be zero)
1363  Elf32_Word p_flags; // Segment flags
1364  Elf32_Word p_align; // Segment alignment constraint
1365 };
1366 
1367 // Program header for ELF64.
1368 struct Elf64_Phdr {
1369  Elf64_Word p_type; // Type of segment
1370  Elf64_Word p_flags; // Segment flags
1371  Elf64_Off p_offset; // File offset where segment is located, in bytes
1372  Elf64_Addr p_vaddr; // Virtual address of beginning of segment
1373  Elf64_Addr p_paddr; // Physical addr of beginning of segment (OS-specific)
1374  Elf64_Xword p_filesz; // Num. of bytes in file image of segment (may be zero)
1375  Elf64_Xword p_memsz; // Num. of bytes in mem image of segment (may be zero)
1376  Elf64_Xword p_align; // Segment alignment constraint
1377 };
1378 
1379 // Segment types.
1380 enum {
1381  PT_NULL = 0, // Unused segment.
1382  PT_LOAD = 1, // Loadable segment.
1383  PT_DYNAMIC = 2, // Dynamic linking information.
1384  PT_INTERP = 3, // Interpreter pathname.
1385  PT_NOTE = 4, // Auxiliary information.
1386  PT_SHLIB = 5, // Reserved.
1387  PT_PHDR = 6, // The program header table itself.
1388  PT_TLS = 7, // The thread-local storage template.
1389  PT_LOOS = 0x60000000, // Lowest operating system-specific pt entry type.
1390  PT_HIOS = 0x6fffffff, // Highest operating system-specific pt entry type.
1391  PT_LOPROC = 0x70000000, // Lowest processor-specific program hdr entry type.
1392  PT_HIPROC = 0x7fffffff, // Highest processor-specific program hdr entry type.
1393 
1394  // x86-64 program header types.
1395  // These all contain stack unwind tables.
1396  PT_GNU_EH_FRAME = 0x6474e550,
1397  PT_SUNW_EH_FRAME = 0x6474e550,
1398  PT_SUNW_UNWIND = 0x6464e550,
1399 
1400  PT_GNU_STACK = 0x6474e551, // Indicates stack executability.
1401  PT_GNU_RELRO = 0x6474e552, // Read-only after relocation.
1402  PT_GNU_PROPERTY = 0x6474e553, // .note.gnu.property notes sections.
1403 
1404  PT_OPENBSD_MUTABLE = 0x65a3dbe5, // Like bss, but not immutable.
1405  PT_OPENBSD_RANDOMIZE = 0x65a3dbe6, // Fill with random data.
1406  PT_OPENBSD_WXNEEDED = 0x65a3dbe7, // Program does W^X violations.
1407  PT_OPENBSD_BOOTDATA = 0x65a41be6, // Section for boot arguments.
1408 
1409  // ARM program header types.
1410  PT_ARM_ARCHEXT = 0x70000000, // Platform architecture compatibility info
1411  // These all contain stack unwind tables.
1412  PT_ARM_EXIDX = 0x70000001,
1413  PT_ARM_UNWIND = 0x70000001,
1414  // MTE memory tag segment type
1416 
1417  // MIPS program header types.
1418  PT_MIPS_REGINFO = 0x70000000, // Register usage information.
1419  PT_MIPS_RTPROC = 0x70000001, // Runtime procedure table.
1420  PT_MIPS_OPTIONS = 0x70000002, // Options segment.
1421  PT_MIPS_ABIFLAGS = 0x70000003, // Abiflags segment.
1422 
1423  // RISCV program header types.
1424  PT_RISCV_ATTRIBUTES = 0x70000003,
1425 };
1426 
1427 // Segment flag bits.
1428 enum : unsigned {
1429  PF_X = 1, // Execute
1430  PF_W = 2, // Write
1431  PF_R = 4, // Read
1432  PF_MASKOS = 0x0ff00000, // Bits for operating system-specific semantics.
1433  PF_MASKPROC = 0xf0000000 // Bits for processor-specific semantics.
1434 };
1435 
1436 // Dynamic table entry for ELF32.
1437 struct Elf32_Dyn {
1438  Elf32_Sword d_tag; // Type of dynamic table entry.
1439  union {
1440  Elf32_Word d_val; // Integer value of entry.
1441  Elf32_Addr d_ptr; // Pointer value of entry.
1442  } d_un;
1443 };
1444 
1445 // Dynamic table entry for ELF64.
1446 struct Elf64_Dyn {
1447  Elf64_Sxword d_tag; // Type of dynamic table entry.
1448  union {
1449  Elf64_Xword d_val; // Integer value of entry.
1450  Elf64_Addr d_ptr; // Pointer value of entry.
1451  } d_un;
1452 };
1453 
1454 // Dynamic table entry tags.
1455 enum {
1456 #define DYNAMIC_TAG(name, value) DT_##name = value,
1457 #include "DynamicTags.def"
1458 #undef DYNAMIC_TAG
1459 };
1460 
1461 // DT_FLAGS values.
1462 enum {
1463  DF_ORIGIN = 0x01, // The object may reference $ORIGIN.
1464  DF_SYMBOLIC = 0x02, // Search the shared lib before searching the exe.
1465  DF_TEXTREL = 0x04, // Relocations may modify a non-writable segment.
1466  DF_BIND_NOW = 0x08, // Process all relocations on load.
1467  DF_STATIC_TLS = 0x10 // Reject attempts to load dynamically.
1468 };
1469 
1470 // State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1 entry.
1471 enum {
1472  DF_1_NOW = 0x00000001, // Set RTLD_NOW for this object.
1473  DF_1_GLOBAL = 0x00000002, // Set RTLD_GLOBAL for this object.
1474  DF_1_GROUP = 0x00000004, // Set RTLD_GROUP for this object.
1475  DF_1_NODELETE = 0x00000008, // Set RTLD_NODELETE for this object.
1476  DF_1_LOADFLTR = 0x00000010, // Trigger filtee loading at runtime.
1477  DF_1_INITFIRST = 0x00000020, // Set RTLD_INITFIRST for this object.
1478  DF_1_NOOPEN = 0x00000040, // Set RTLD_NOOPEN for this object.
1479  DF_1_ORIGIN = 0x00000080, // $ORIGIN must be handled.
1480  DF_1_DIRECT = 0x00000100, // Direct binding enabled.
1481  DF_1_TRANS = 0x00000200,
1482  DF_1_INTERPOSE = 0x00000400, // Object is used to interpose.
1483  DF_1_NODEFLIB = 0x00000800, // Ignore default lib search path.
1484  DF_1_NODUMP = 0x00001000, // Object can't be dldump'ed.
1485  DF_1_CONFALT = 0x00002000, // Configuration alternative created.
1486  DF_1_ENDFILTEE = 0x00004000, // Filtee terminates filters search.
1487  DF_1_DISPRELDNE = 0x00008000, // Disp reloc applied at build time.
1488  DF_1_DISPRELPND = 0x00010000, // Disp reloc applied at run-time.
1489  DF_1_NODIRECT = 0x00020000, // Object has no-direct binding.
1490  DF_1_IGNMULDEF = 0x00040000,
1491  DF_1_NOKSYMS = 0x00080000,
1492  DF_1_NOHDR = 0x00100000,
1493  DF_1_EDITED = 0x00200000, // Object is modified after built.
1494  DF_1_NORELOC = 0x00400000,
1495  DF_1_SYMINTPOSE = 0x00800000, // Object has individual interposers.
1496  DF_1_GLOBAUDIT = 0x01000000, // Global auditing required.
1497  DF_1_SINGLETON = 0x02000000, // Singleton symbols are used.
1498  DF_1_PIE = 0x08000000, // Object is a position-independent executable.
1499 };
1500 
1501 // DT_MIPS_FLAGS values.
1502 enum {
1503  RHF_NONE = 0x00000000, // No flags.
1504  RHF_QUICKSTART = 0x00000001, // Uses shortcut pointers.
1505  RHF_NOTPOT = 0x00000002, // Hash size is not a power of two.
1506  RHS_NO_LIBRARY_REPLACEMENT = 0x00000004, // Ignore LD_LIBRARY_PATH.
1507  RHF_NO_MOVE = 0x00000008, // DSO address may not be relocated.
1508  RHF_SGI_ONLY = 0x00000010, // SGI specific features.
1509  RHF_GUARANTEE_INIT = 0x00000020, // Guarantee that .init will finish
1510  // executing before any non-init
1511  // code in DSO is called.
1512  RHF_DELTA_C_PLUS_PLUS = 0x00000040, // Contains Delta C++ code.
1513  RHF_GUARANTEE_START_INIT = 0x00000080, // Guarantee that .init will start
1514  // executing before any non-init
1515  // code in DSO is called.
1516  RHF_PIXIE = 0x00000100, // Generated by pixie.
1517  RHF_DEFAULT_DELAY_LOAD = 0x00000200, // Delay-load DSO by default.
1518  RHF_REQUICKSTART = 0x00000400, // Object may be requickstarted
1519  RHF_REQUICKSTARTED = 0x00000800, // Object has been requickstarted
1520  RHF_CORD = 0x00001000, // Generated by cord.
1521  RHF_NO_UNRES_UNDEF = 0x00002000, // Object contains no unresolved
1522  // undef symbols.
1523  RHF_RLD_ORDER_SAFE = 0x00004000 // Symbol table is in a safe order.
1524 };
1525 
1526 // ElfXX_VerDef structure version (GNU versioning)
1527 enum { VER_DEF_NONE = 0, VER_DEF_CURRENT = 1 };
1528 
1529 // VerDef Flags (ElfXX_VerDef::vd_flags)
1530 enum { VER_FLG_BASE = 0x1, VER_FLG_WEAK = 0x2, VER_FLG_INFO = 0x4 };
1531 
1532 // Special constants for the version table. (SHT_GNU_versym/.gnu.version)
1533 enum {
1534  VER_NDX_LOCAL = 0, // Unversioned local symbol
1535  VER_NDX_GLOBAL = 1, // Unversioned global symbol
1536  VERSYM_VERSION = 0x7fff, // Version Index mask
1537  VERSYM_HIDDEN = 0x8000 // Hidden bit (non-default version)
1538 };
1539 
1540 // ElfXX_VerNeed structure version (GNU versioning)
1542 
1543 // SHT_NOTE section types.
1544 
1545 // Generic note types.
1546 enum : unsigned {
1548  NT_ARCH = 2,
1551 };
1552 
1553 // Core note types.
1554 enum : unsigned {
1559  NT_AUXV = 6,
1566 
1567  NT_PPC_VMX = 0x100,
1568  NT_PPC_VSX = 0x102,
1569  NT_PPC_TAR = 0x103,
1570  NT_PPC_PPR = 0x104,
1571  NT_PPC_DSCR = 0x105,
1572  NT_PPC_EBB = 0x106,
1573  NT_PPC_PMU = 0x107,
1578  NT_PPC_TM_SPR = 0x10c,
1582 
1583  NT_386_TLS = 0x200,
1584  NT_386_IOPERM = 0x201,
1585  NT_X86_XSTATE = 0x202,
1586 
1588  NT_S390_TIMER = 0x301,
1591  NT_S390_CTRS = 0x304,
1595  NT_S390_TDB = 0x308,
1598  NT_S390_GS_CB = 0x30b,
1599  NT_S390_GS_BC = 0x30c,
1600 
1601  NT_ARM_VFP = 0x400,
1602  NT_ARM_TLS = 0x401,
1605  NT_ARM_SVE = 0x405,
1607 
1608  NT_FILE = 0x46494c45,
1609  NT_PRXFPREG = 0x46e62b7f,
1610  NT_SIGINFO = 0x53494749,
1611 };
1612 
1613 // LLVM-specific notes.
1614 enum {
1616 };
1617 
1618 // GNU note types.
1619 enum {
1626 };
1627 
1628 // Android note types.
1629 enum {
1633 };
1634 
1635 // Memory tagging values used in NT_ANDROID_TYPE_MEMTAG notes.
1636 enum {
1637  // Enumeration to determine the tagging mode. In Android-land, 'SYNC' means
1638  // running all threads in MTE Synchronous mode, and 'ASYNC' means to use the
1639  // kernels auto-upgrade feature to allow for either MTE Asynchronous,
1640  // Asymmetric, or Synchronous mode. This allows silicon vendors to specify, on
1641  // a per-cpu basis what 'ASYNC' should mean. Generally, the expectation is
1642  // "pick the most precise mode that's very fast".
1647  // Bits indicating whether the loader should prepare for MTE to be enabled on
1648  // the heap and/or stack.
1651 };
1652 
1653 // Property types used in GNU_PROPERTY_TYPE_0 notes.
1654 enum : unsigned {
1659 
1663 
1667 };
1668 
1669 // aarch64 processor feature bits.
1670 enum : unsigned {
1673 };
1674 
1675 // x86 processor feature bits.
1676 enum : unsigned {
1679 
1690 
1695 };
1696 
1697 // FreeBSD note types.
1698 enum {
1703 };
1704 
1705 // NT_FREEBSD_FEATURE_CTL values (see FreeBSD's sys/sys/elf_common.h).
1706 enum {
1711  NT_FREEBSD_FCTL_LA48 = 0x00000010,
1713 };
1714 
1715 // FreeBSD core note types.
1716 enum {
1727 };
1728 
1729 // NetBSD core note types.
1730 enum {
1734 };
1735 
1736 // OpenBSD core note types.
1737 enum {
1744 };
1745 
1746 // AMDGPU-specific section indices.
1747 enum {
1748  SHN_AMDGPU_LDS = 0xff00, // Variable in LDS; symbol encoded like SHN_COMMON
1749 };
1750 
1751 // AMD vendor specific notes. (Code Object V2)
1752 enum {
1756  // Note types with values between 4 and 9 (inclusive) are reserved.
1760 };
1761 
1762 // AMDGPU vendor specific notes. (Code Object V3)
1763 enum {
1764  // Note types with values between 0 and 31 (inclusive) are reserved.
1766 };
1767 
1768 // LLVMOMPOFFLOAD specific notes.
1769 enum : unsigned {
1773 };
1774 
1775 enum {
1783 };
1784 
1785 constexpr const char *ELF_NOTE_GNU = "GNU";
1786 
1787 // Android packed relocation group flags.
1788 enum {
1793 };
1794 
1795 // Compressed section header for ELF32.
1796 struct Elf32_Chdr {
1800 };
1801 
1802 // Compressed section header for ELF64.
1803 struct Elf64_Chdr {
1808 };
1809 
1810 // Note header for ELF32.
1811 struct Elf32_Nhdr {
1815 };
1816 
1817 // Note header for ELF64.
1818 struct Elf64_Nhdr {
1822 };
1823 
1824 // Legal values for ch_type field of compressed section header.
1825 enum {
1826  ELFCOMPRESS_ZLIB = 1, // ZLIB/DEFLATE algorithm.
1827  ELFCOMPRESS_ZSTD = 2, // Zstandard algorithm
1828  ELFCOMPRESS_LOOS = 0x60000000, // Start of OS-specific.
1829  ELFCOMPRESS_HIOS = 0x6fffffff, // End of OS-specific.
1830  ELFCOMPRESS_LOPROC = 0x70000000, // Start of processor-specific.
1831  ELFCOMPRESS_HIPROC = 0x7fffffff // End of processor-specific.
1832 };
1833 
1834 /// Convert an architecture name into ELF's e_machine value.
1836 
1837 /// Convert an ELF's e_machine value into an architecture name.
1839 
1840 } // end namespace ELF
1841 } // end namespace llvm
1842 
1843 #endif // LLVM_BINARYFORMAT_ELF_H
llvm::ELF::EM_IAMCU
@ EM_IAMCU
Definition: ELF.h:139
llvm::ELF::Elf64_Dyn::d_ptr
Elf64_Addr d_ptr
Definition: ELF.h:1450
llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V4
@ ELFABIVERSION_AMDGPU_HSA_V4
Definition: ELF.h:376
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_LAST
@ EF_AMDGPU_MACH_AMDGCN_LAST
Definition: ELF.h:784
llvm::ELF::SHF_EXECINSTR
@ SHF_EXECINSTR
Definition: ELF.h:1086
llvm::ELF::EF_HEXAGON_ISA_V62
@ EF_HEXAGON_ISA_V62
Definition: ELF.h:637
llvm::ELF::ET_HIOS
@ ET_HIOS
Definition: ELF.h:121
llvm::ELF::EF_RISCV_FLOAT_ABI_SOFT
@ EF_RISCV_FLOAT_ABI_SOFT
Definition: ELF.h:672
llvm::ELF::ELFDATA2LSB
@ ELFDATA2LSB
Definition: ELF.h:335
llvm::ELF::EF_XTENSA_XT_LIT
@ EF_XTENSA_XT_LIT
Definition: ELF.h:940
llvm::ELF::Elf32_Chdr::ch_addralign
Elf32_Word ch_addralign
Definition: ELF.h:1799
llvm::ELF::NT_TASKSTRUCT
@ NT_TASKSTRUCT
Definition: ELF.h:1558
llvm::ELF::Elf64_Phdr::p_align
Elf64_Xword p_align
Definition: ELF.h:1376
llvm::ELF::Elf64_Sym::st_shndx
Elf64_Half st_shndx
Definition: ELF.h:1213
llvm::ELF::EI_PAD
@ EI_PAD
Definition: ELF.h:57
llvm::ELF::ELFOSABI_LAST_ARCH
@ ELFOSABI_LAST_ARCH
Definition: ELF.h:367
llvm::ELF::NT_MEMTAG_HEAP
@ NT_MEMTAG_HEAP
Definition: ELF.h:1649
llvm::ELF::SHT_MIPS_ABIFLAGS
@ SHT_MIPS_ABIFLAGS
Definition: ELF.h:1064
llvm::ELF::Elf64_Shdr::sh_name
Elf64_Word sh_name
Definition: ELF.h:966
llvm::ELF::ODK_HWOR
@ ODK_HWOR
Definition: ELF.h:601
llvm::ELF::PT_HIPROC
@ PT_HIPROC
Definition: ELF.h:1392
llvm::ELF::EF_RISCV_RVE
@ EF_RISCV_RVE
Definition: ELF.h:676
llvm::ELF::SHN_MIPS_SUNDEFINED
@ SHN_MIPS_SUNDEFINED
Definition: ELF.h:574
llvm::ELF::EF_HEXAGON_ISA_V69
@ EF_HEXAGON_ISA_V69
Definition: ELF.h:642
llvm::ELF::NT_LLVM_HWASAN_GLOBALS
@ NT_LLVM_HWASAN_GLOBALS
Definition: ELF.h:1615
llvm::ELF::NT_GNU_GOLD_VERSION
@ NT_GNU_GOLD_VERSION
Definition: ELF.h:1623
llvm::ELF::EM_METAG
@ EM_METAG
Definition: ELF.h:270
llvm::ELF::EM_S370
@ EM_S370
Definition: ELF.h:142
llvm::ELF::SHF_EXCLUDE
@ SHF_EXCLUDE
Definition: ELF.h:1117
llvm::ELF::Elf64_Ehdr::checkMagic
bool checkMagic() const
Definition: ELF.h:103
llvm::ELF::EM_COOL
@ EM_COOL
Definition: ELF.h:313
llvm::ELF::STB_LOOS
@ STB_LOOS
Definition: ELF.h:1240
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_FXSR
@ GNU_PROPERTY_X86_FEATURE_2_FXSR
Definition: ELF.h:1686
llvm::ELF::GNU_PROPERTY_X86_ISA_1_V4
@ GNU_PROPERTY_X86_ISA_1_V4
Definition: ELF.h:1694
llvm::ELF::EM_RISCV
@ EM_RISCV
Definition: ELF.h:317
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
llvm::ELF::Elf32_Relr
Elf32_Word Elf32_Relr
Definition: ELF.h:1317
llvm::ELF::EV_NONE
@ EV_NONE
Definition: ELF.h:127
llvm::ELF::EF_CSKY_802
@ EF_CSKY_802
Definition: ELF.h:890
llvm::ELF::EF_CSKY_EFV2
@ EF_CSKY_EFV2
Definition: ELF.h:901
llvm::ELF::SHN_HEXAGON_SCOMMON
@ SHN_HEXAGON_SCOMMON
Definition: ELF.h:651
llvm::ELF::EM_ALPHA
@ EM_ALPHA
Definition: ELF.h:157
llvm::ELF::ELFOSABI_AMDGPU_HSA
@ ELFOSABI_AMDGPU_HSA
Definition: ELF.h:360
llvm::ELF::Elf32_Rela::setType
void setType(unsigned char t)
Definition: ELF.h:1310
llvm::ELF::EM_AARCH64
@ EM_AARCH64
Definition: ELF.h:280
llvm::ELF::Elf64_Rela::setType
void setType(Elf64_Word t)
Definition: ELF.h:1346
llvm::ELF::Elf32_Chdr::ch_size
Elf32_Word ch_size
Definition: ELF.h:1798
llvm::ELF::Elf64_Sym::getType
unsigned char getType() const
Definition: ELF.h:1220
llvm::ELF::DF_1_NOKSYMS
@ DF_1_NOKSYMS
Definition: ELF.h:1491
llvm::ELF::EF_HEXAGON_MACH_V60
@ EF_HEXAGON_MACH_V60
Definition: ELF.h:615
llvm::ELF::NT_PRSTATUS
@ NT_PRSTATUS
Definition: ELF.h:1555
llvm::ELF::EM_PARISC
@ EM_PARISC
Definition: ELF.h:144
llvm::ELF::DF_1_DIRECT
@ DF_1_DIRECT
Definition: ELF.h:1480
llvm::ELF::SHN_HIRESERVE
@ SHN_HIRESERVE
Definition: ELF.h:989
llvm::ELF::EF_AMDGPU_MACH_R600_TURKS
@ EF_AMDGPU_MACH_R600_TURKS
Definition: ELF.h:730
llvm::ELF::EF_AMDGPU_MACH_R600_REDWOOD
@ EF_AMDGPU_MACH_R600_REDWOOD
Definition: ELF.h:724
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:1308
llvm::ELF::EF_LOONGARCH_ABI_MODIFIER_MASK
@ EF_LOONGARCH_ABI_MODIFIER_MASK
Definition: ELF.h:920
llvm::ELF::ET_REL
@ ET_REL
Definition: ELF.h:116
llvm::ELF::EF_LOONGARCH_OBJABI_V1
@ EF_LOONGARCH_OBJABI_V1
Definition: ELF.h:924
llvm::ELF::Elf32_Dyn::d_tag
Elf32_Sword d_tag
Definition: ELF.h:1438
llvm::ELF::EF_MIPS_MACH_LS2F
@ EF_MIPS_MACH_LS2F
Definition: ELF.h:543
llvm::ELF::EF_RISCV_FLOAT_ABI_QUAD
@ EF_RISCV_FLOAT_ABI_QUAD
Definition: ELF.h:675
llvm::ELF::EM_V800
@ EM_V800
Definition: ELF.h:152
llvm::ELF::EM_CYPRESS_M8C
@ EM_CYPRESS_M8C
Definition: ELF.h:254
llvm::ELF::NT_PPC_TM_CPPR
@ NT_PPC_TM_CPPR
Definition: ELF.h:1580
llvm::ELF::EI_OSABI
@ EI_OSABI
Definition: ELF.h:55
llvm::ELF::SHN_LOOS
@ SHN_LOOS
Definition: ELF.h:984
llvm::ELF::RELOCATION_GROUPED_BY_INFO_FLAG
@ RELOCATION_GROUPED_BY_INFO_FLAG
Definition: ELF.h:1789
llvm::ELF::EF_MIPS_MICROMIPS
@ EF_MIPS_MICROMIPS
Definition: ELF.h:548
llvm::ELF::EM_TI_C5500
@ EM_TI_C5500
Definition: ELF.h:252
llvm::ELF::EM_BA2
@ EM_BA2
Definition: ELF.h:298
llvm::ELF::EF_AMDGPU_MACH_R600_CYPRESS
@ EF_AMDGPU_MACH_R600_CYPRESS
Definition: ELF.h:722
llvm::ELF::Elf64_Sxword
int64_t Elf64_Sxword
Definition: ELF.h:41
llvm::ELF::NT_S390_GS_CB
@ NT_S390_GS_CB
Definition: ELF.h:1598
llvm::ELF::EF_AVR_ARCH_AVR1
@ EF_AVR_ARCH_AVR1
Definition: ELF.h:476
llvm::ELF::NT_GNU_BUILD_ID
@ NT_GNU_BUILD_ID
Definition: ELF.h:1622
llvm::ELF::SHN_HIOS
@ SHN_HIOS
Definition: ELF.h:985
llvm::ELF::EF_ARM_EABI_VER3
@ EF_ARM_EABI_VER3
Definition: ELF.h:442
llvm::ELF::Elf64_Ehdr::e_machine
Elf64_Half e_machine
Definition: ELF.h:90
llvm::ELF::DF_1_NOW
@ DF_1_NOW
Definition: ELF.h:1472
llvm::ELF::Elf64_Ehdr::e_phoff
Elf64_Off e_phoff
Definition: ELF.h:93
llvm::ELF::ELFOSABI_HURD
@ ELFOSABI_HURD
Definition: ELF.h:346
llvm::ELF::SHT_LLVM_DEPENDENT_LIBRARIES
@ SHT_LLVM_DEPENDENT_LIBRARIES
Definition: ELF.h:1023
llvm::ELF::Elf64_Ehdr::e_phnum
Elf64_Half e_phnum
Definition: ELF.h:98
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_OFF_V4
@ EF_AMDGPU_FEATURE_XNACK_OFF_V4
Definition: ELF.h:817
llvm::ELF::STB_HIPROC
@ STB_HIPROC
Definition: ELF.h:1243
llvm::ELF::EM_INTEL206
@ EM_INTEL206
Definition: ELF.h:302
llvm::ELF::PT_PHDR
@ PT_PHDR
Definition: ELF.h:1387
llvm::ELF::EF_ARC_OSABI_MSK
@ EF_ARC_OSABI_MSK
Definition: ELF.h:456
llvm::ELF::EF_HEXAGON_MACH
@ EF_HEXAGON_MACH
Definition: ELF.h:626
llvm::ELF::NT_MEMTAG_LEVEL_ASYNC
@ NT_MEMTAG_LEVEL_ASYNC
Definition: ELF.h:1644
llvm::ELF::EM_SPARCV9
@ EM_SPARCV9
Definition: ELF.h:159
llvm::ELF::EF_CSKY_807
@ EF_CSKY_807
Definition: ELF.h:893
llvm::ELF::EF_HEXAGON_MACH_V66
@ EF_HEXAGON_MACH_V66
Definition: ELF.h:618
llvm::ELF::GNU_ABI_TAG_FREEBSD
@ GNU_ABI_TAG_FREEBSD
Definition: ELF.h:1779
llvm::ELF::DF_STATIC_TLS
@ DF_STATIC_TLS
Definition: ELF.h:1467
llvm::ELF::Elf64_Shdr::sh_addralign
Elf64_Xword sh_addralign
Definition: ELF.h:974
llvm::ELF::ELFOSABI_AIX
@ ELFOSABI_AIX
Definition: ELF.h:348
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_YMM
@ GNU_PROPERTY_X86_FEATURE_2_YMM
Definition: ELF.h:1684
llvm::ELF::Elf64_Phdr::p_memsz
Elf64_Xword p_memsz
Definition: ELF.h:1375
llvm::ELF::Elf64_Ehdr::e_flags
Elf64_Word e_flags
Definition: ELF.h:95
llvm::ELF::ELFOSABI_C6000_ELFABI
@ ELFOSABI_C6000_ELFABI
Definition: ELF.h:364
llvm::ELF::Elf64_Ehdr::e_ident
unsigned char e_ident[EI_NIDENT]
Definition: ELF.h:88
StringRef.h
llvm::ELF::SHT_LOUSER
@ SHT_LOUSER
Definition: ELF.h:1073
llvm::ELF::DF_1_GLOBAUDIT
@ DF_1_GLOBAUDIT
Definition: ELF.h:1496
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX90C
@ EF_AMDGPU_MACH_AMDGCN_GFX90C
Definition: ELF.h:759
llvm::ELF::Elf32_Shdr::sh_entsize
Elf32_Word sh_entsize
Definition: ELF.h:961
llvm::ELF::PF_W
@ PF_W
Definition: ELF.h:1430
llvm::ELF::Elf32_Ehdr::e_machine
Elf32_Half e_machine
Definition: ELF.h:64
llvm::ELF::EM_68HC12
@ EM_68HC12
Definition: ELF.h:169
llvm::ELF::SHN_LOPROC
@ SHN_LOPROC
Definition: ELF.h:982
llvm::ELF::STT_GNU_IFUNC
@ STT_GNU_IFUNC
Definition: ELF.h:1255
llvm::ELF::Elf32_Ehdr::e_version
Elf32_Word e_version
Definition: ELF.h:65
llvm::ELF::EM_PPC
@ EM_PPC
Definition: ELF.h:148
llvm::ELF::Elf32_Sword
int32_t Elf32_Sword
Definition: ELF.h:33
llvm::ELF::GNU_PROPERTY_AARCH64_FEATURE_1_PAC
@ GNU_PROPERTY_AARCH64_FEATURE_1_PAC
Definition: ELF.h:1672
llvm::ELF::Elf32_Sym::setBindingAndType
void setBindingAndType(unsigned char b, unsigned char t)
Definition: ELF.h:1203
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_V4
@ EF_AMDGPU_FEATURE_SRAMECC_V4
Definition: ELF.h:824
llvm::ELF::SHT_NULL
@ SHT_NULL
Definition: ELF.h:994
llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V2
@ ELFABIVERSION_AMDGPU_HSA_V2
Definition: ELF.h:374
llvm::ELF::EM_COGE
@ EM_COGE
Definition: ELF.h:312
llvm::ELF::EF_MIPS_ARCH_1
@ EF_MIPS_ARCH_1
Definition: ELF.h:554
llvm::ELF::EF_CSKY_ABIV2
@ EF_CSKY_ABIV2
Definition: ELF.h:899
llvm::ELF::NT_S390_VXRS_LOW
@ NT_S390_VXRS_LOW
Definition: ELF.h:1596
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_V4
@ EF_AMDGPU_FEATURE_XNACK_V4
Definition: ELF.h:811
llvm::ELF::EM_CR16
@ EM_CR16
Definition: ELF.h:274
llvm::ELF::Elf64_Rel::getType
Elf64_Word getType() const
Definition: ELF.h:1327
llvm::ELF::EF_LOONGARCH_OBJABI_MASK
@ EF_LOONGARCH_OBJABI_MASK
Definition: ELF.h:925
llvm::ELF::EM_RL78
@ EM_RL78
Definition: ELF.h:293
llvm::ELF::EM_56800EX
@ EM_56800EX
Definition: ELF.h:296
llvm::ELF::SHF_STRINGS
@ SHF_STRINGS
Definition: ELF.h:1092
llvm::ELF::EF_RISCV_RVC
@ EF_RISCV_RVC
Definition: ELF.h:670
llvm::ELF::Elf32_Sym::st_info
unsigned char st_info
Definition: ELF.h:1193
llvm::ELF::ELFCOMPRESS_HIPROC
@ ELFCOMPRESS_HIPROC
Definition: ELF.h:1831
llvm::ELF::EM_M16C
@ EM_M16C
Definition: ELF.h:235
llvm::ELF::Elf64_Rel::getSymbol
Elf64_Word getSymbol() const
Definition: ELF.h:1326
llvm::ELF::ELFCLASS64
@ ELFCLASS64
Definition: ELF.h:329
llvm::ELF::Elf64_Chdr::ch_size
Elf64_Xword ch_size
Definition: ELF.h:1806
llvm::ELF::EF_MSP430_MACH_MSP430x54
@ EF_MSP430_MACH_MSP430x54
Definition: ELF.h:874
llvm::ELF::Elf64_Shdr::sh_type
Elf64_Word sh_type
Definition: ELF.h:967
llvm::ELF::SHT_HIOS
@ SHT_HIOS
Definition: ELF.h:1042
llvm::ELF::NT_PRXFPREG
@ NT_PRXFPREG
Definition: ELF.h:1609
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX602
@ EF_AMDGPU_MACH_AMDGCN_GFX602
Definition: ELF.h:767
llvm::ELF::ELFOSABI_TRU64
@ ELFOSABI_TRU64
Definition: ELF.h:351
llvm::ELF::EM_HUANY
@ EM_HUANY
Definition: ELF.h:197
llvm::ELF::EM_AVR32
@ EM_AVR32
Definition: ELF.h:281
llvm::ELF::ODK_GP_GROUP
@ ODK_GP_GROUP
Definition: ELF.h:602
llvm::ELF::SHT_HEX_ORDERED
@ SHT_HEX_ORDERED
Definition: ELF.h:1057
llvm::ELF::EM_DXP
@ EM_DXP
Definition: ELF.h:230
llvm::ELF::NT_S390_TODPREG
@ NT_S390_TODPREG
Definition: ELF.h:1590
llvm::ELF::GNU_PROPERTY_X86_UINT32_OR_AND_LO
@ GNU_PROPERTY_X86_UINT32_OR_AND_LO
Definition: ELF.h:1664
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_RESERVED_0X27
@ EF_AMDGPU_MACH_AMDGCN_RESERVED_0X27
Definition: ELF.h:748
llvm::ELF::Elf32_Nhdr::n_type
Elf32_Word n_type
Definition: ELF.h:1814
llvm::ELF::GRP_MASKPROC
@ GRP_MASKPROC
Definition: ELF.h:1185
llvm::ELF::EF_MSP430_MACH_MSP430x20
@ EF_MSP430_MACH_MSP430x20
Definition: ELF.h:859
llvm::ELF::EF_AVR_ARCH_AVR25
@ EF_AVR_ARCH_AVR25
Definition: ELF.h:478
llvm::ELF::EF_HEXAGON_MACH_V4
@ EF_HEXAGON_MACH_V4
Definition: ELF.h:612
llvm::ELF::EF_MIPS_ARCH_64R6
@ EF_MIPS_ARCH_64R6
Definition: ELF.h:564
llvm::ELF::NT_FREEBSD_THRMISC
@ NT_FREEBSD_THRMISC
Definition: ELF.h:1717
llvm::ELF::EF_AMDGPU_MACH_R600_RV730
@ EF_AMDGPU_MACH_R600_RV730
Definition: ELF.h:718
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1036
@ EF_AMDGPU_MACH_AMDGCN_GFX1036
Definition: ELF.h:778
llvm::ELF::EF_AVR_ARCH_XMEGA5
@ EF_AVR_ARCH_XMEGA5
Definition: ELF.h:491
llvm::ELF::PT_ARM_UNWIND
@ PT_ARM_UNWIND
Definition: ELF.h:1413
llvm::ELF::NT_AMD_HSA_ISA_VERSION
@ NT_AMD_HSA_ISA_VERSION
Definition: ELF.h:1755
memcmp
Merge contiguous icmps into a memcmp
Definition: MergeICmps.cpp:908
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_USED
@ GNU_PROPERTY_X86_FEATURE_2_USED
Definition: ELF.h:1665
llvm::ELF::SHN_MIPS_DATA
@ SHN_MIPS_DATA
Definition: ELF.h:572
llvm::ELF::ELFOSABI_MODESTO
@ ELFOSABI_MODESTO
Definition: ELF.h:352
llvm::ELF::EM_88K
@ EM_88K
Definition: ELF.h:138
llvm::ELF::EM_MSP430
@ EM_MSP430
Definition: ELF.h:222
llvm::ELF::Elf64_Sym::setBindingAndType
void setBindingAndType(unsigned char b, unsigned char t)
Definition: ELF.h:1223
llvm::ELF::EF_ARC_PIC
@ EF_ARC_PIC
Definition: ELF.h:466
llvm::ELF::SHF_SUNW_NODISCARD
@ SHF_SUNW_NODISCARD
Definition: ELF.h:1124
llvm::ELF::EF_MIPS_ARCH_ASE_M16
@ EF_MIPS_ARCH_ASE_M16
Definition: ELF.h:549
llvm::ELF::EM_SE_C33
@ EM_SE_C33
Definition: ELF.h:224
llvm::ELF::Elf64_Nhdr::n_descsz
Elf64_Word n_descsz
Definition: ELF.h:1820
llvm::ELF::NT_386_IOPERM
@ NT_386_IOPERM
Definition: ELF.h:1584
llvm::ELF::SYMENTRY_SIZE64
@ SYMENTRY_SIZE64
Definition: ELF.h:1231
llvm::ELF::RHF_NO_UNRES_UNDEF
@ RHF_NO_UNRES_UNDEF
Definition: ELF.h:1521
llvm::ELF::EF_MIPS_MACH_SB1
@ EF_MIPS_MACH_SB1
Definition: ELF.h:533
llvm::ELF::STT_TLS
@ STT_TLS
Definition: ELF.h:1254
llvm::ELF::EM_DSPIC30F
@ EM_DSPIC30F
Definition: ELF.h:236
llvm::ELF::STT_HIOS
@ STT_HIOS
Definition: ELF.h:1257
llvm::ELF::EF_ARM_BE8
@ EF_ARM_BE8
Definition: ELF.h:438
llvm::ELF::EF_CSKY_805
@ EF_CSKY_805
Definition: ELF.h:892
llvm::ELF::Elf32_Sym::getType
unsigned char getType() const
Definition: ELF.h:1200
llvm::ELF::RELOCATION_GROUP_HAS_ADDEND_FLAG
@ RELOCATION_GROUP_HAS_ADDEND_FLAG
Definition: ELF.h:1792
llvm::ELF::SHT_LLVM_ODRTAB
@ SHT_LLVM_ODRTAB
Definition: ELF.h:1019
llvm::ELF::EM_NORC
@ EM_NORC
Definition: ELF.h:314
llvm::ELF::SHT_ARM_EXIDX
@ SHT_ARM_EXIDX
Definition: ELF.h:1046
llvm::ELF::ODK_IDENT
@ ODK_IDENT
Definition: ELF.h:603
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4
@ EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4
Definition: ELF.h:813
llvm::ELF::EF_MIPS_MACH_5400
@ EF_MIPS_MACH_5400
Definition: ELF.h:538
llvm::ELF::PT_INTERP
@ PT_INTERP
Definition: ELF.h:1384
llvm::ELF::NT_PPC_TAR
@ NT_PPC_TAR
Definition: ELF.h:1569
llvm::ELF::SHT_STRTAB
@ SHT_STRTAB
Definition: ELF.h:997
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX601
@ EF_AMDGPU_MACH_AMDGCN_GFX601
Definition: ELF.h:742
llvm::ELF::NT_LLVM_OPENMP_OFFLOAD_VERSION
@ NT_LLVM_OPENMP_OFFLOAD_VERSION
Definition: ELF.h:1770
llvm::ELF::EM_XIMO16
@ EM_XIMO16
Definition: ELF.h:266
llvm::ELF::EM_78KOR
@ EM_78KOR
Definition: ELF.h:295
llvm::ELF::EM_AMDGPU
@ EM_AMDGPU
Definition: ELF.h:316
llvm::ELF::STT_NOTYPE
@ STT_NOTYPE
Definition: ELF.h:1248
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_OFF_V4
@ EF_AMDGPU_FEATURE_SRAMECC_OFF_V4
Definition: ELF.h:830
llvm::ELF::NT_AMDGPU_METADATA
@ NT_AMDGPU_METADATA
Definition: ELF.h:1765
llvm::ELF::STO_MIPS_OPTIONAL
@ STO_MIPS_OPTIONAL
Definition: ELF.h:584
llvm::ELF::Elf64_Sym::st_info
unsigned char st_info
Definition: ELF.h:1211
llvm::ELF::EM_PJ
@ EM_PJ
Definition: ELF.h:207
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX803
@ EF_AMDGPU_MACH_AMDGCN_GFX803
Definition: ELF.h:751
llvm::ELF::EM_V850
@ EM_V850
Definition: ELF.h:203
llvm::ELF::EM_TI_C6000
@ EM_TI_C6000
Definition: ELF.h:250
llvm::ELF::EF_MIPS_MACH_4120
@ EF_MIPS_MACH_4120
Definition: ELF.h:531
llvm::ELF::ELFOSABI_OPENVMS
@ ELFOSABI_OPENVMS
Definition: ELF.h:354
llvm::ELF::STO_PPC64_LOCAL_BIT
@ STO_PPC64_LOCAL_BIT
Definition: ELF.h:408
llvm::ELF::Elf64_Xword
uint64_t Elf64_Xword
Definition: ELF.h:40
llvm::ELF::Elf64_Ehdr::e_shentsize
Elf64_Half e_shentsize
Definition: ELF.h:99
llvm::ELF::DF_1_DISPRELPND
@ DF_1_DISPRELPND
Definition: ELF.h:1488
llvm::ELF::VER_FLG_WEAK
@ VER_FLG_WEAK
Definition: ELF.h:1530
llvm::ELF::EF_XTENSA_MACH_NONE
@ EF_XTENSA_MACH_NONE
Definition: ELF.h:938
llvm::ELF::EF_CSKY_EFV3
@ EF_CSKY_EFV3
Definition: ELF.h:902
llvm::ELF::SHN_COMMON
@ SHN_COMMON
Definition: ELF.h:987
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4
@ EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4
Definition: ELF.h:826
llvm::ELF::NT_OPENBSD_REGS
@ NT_OPENBSD_REGS
Definition: ELF.h:1740
llvm::ELF::EF_HEXAGON_ISA_V66
@ EF_HEXAGON_ISA_V66
Definition: ELF.h:639
llvm::ELF::NT_PPC_TM_CVSX
@ NT_PPC_TM_CVSX
Definition: ELF.h:1577
llvm::ELF::NT_LLVM_OPENMP_OFFLOAD_PRODUCER
@ NT_LLVM_OPENMP_OFFLOAD_PRODUCER
Definition: ELF.h:1771
llvm::ELF::SHF_ALLOC
@ SHF_ALLOC
Definition: ELF.h:1083
llvm::ELF::STT_LOOS
@ STT_LOOS
Definition: ELF.h:1256
llvm::ELF::EM_FR20
@ EM_FR20
Definition: ELF.h:153
llvm::ELF::STB_GNU_UNIQUE
@ STB_GNU_UNIQUE
Definition: ELF.h:1239
llvm::ELF::NT_AMD_HSA_HSAIL
@ NT_AMD_HSA_HSAIL
Definition: ELF.h:1754
llvm::ELF::EF_HEXAGON_MACH_V3
@ EF_HEXAGON_MACH_V3
Definition: ELF.h:611
llvm::ELF::STO_MIPS_PLT
@ STO_MIPS_PLT
Definition: ELF.h:585
llvm::ELF::EM_R32C
@ EM_R32C
Definition: ELF.h:255
llvm::ELF::SHT_INIT_ARRAY
@ SHT_INIT_ARRAY
Definition: ELF.h:1006
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1031
@ EF_AMDGPU_MACH_AMDGCN_GFX1031
Definition: ELF.h:764
llvm::ELF::RHF_QUICKSTART
@ RHF_QUICKSTART
Definition: ELF.h:1504
llvm::ELF::Elf32_Sym::setBinding
void setBinding(unsigned char b)
Definition: ELF.h:1201
llvm::ELF::NT_PPC_EBB
@ NT_PPC_EBB
Definition: ELF.h:1572
llvm::ELF::EF_MIPS_ARCH_ASE_MDMX
@ EF_MIPS_ARCH_ASE_MDMX
Definition: ELF.h:550
llvm::ELF::EF_MIPS_MACH
@ EF_MIPS_MACH
Definition: ELF.h:545
llvm::ELF::EM_860
@ EM_860
Definition: ELF.h:140
llvm::ELF::EM_PPC64
@ EM_PPC64
Definition: ELF.h:149
llvm::ELF::ET_NONE
@ ET_NONE
Definition: ELF.h:115
llvm::ELF::EF_HEXAGON_ISA_V68
@ EF_HEXAGON_ISA_V68
Definition: ELF.h:641
llvm::ELF::PT_OPENBSD_MUTABLE
@ PT_OPENBSD_MUTABLE
Definition: ELF.h:1404
llvm::ELF::VER_FLG_BASE
@ VER_FLG_BASE
Definition: ELF.h:1530
llvm::ELF::EF_CSKY_801
@ EF_CSKY_801
Definition: ELF.h:889
llvm::ELF::SHF_LINK_ORDER
@ SHF_LINK_ORDER
Definition: ELF.h:1098
llvm::ELF::STN_UNDEF
@ STN_UNDEF
Definition: ELF.h:1273
llvm::ELF::EF_AVR_ARCH_XMEGA2
@ EF_AVR_ARCH_XMEGA2
Definition: ELF.h:488
llvm::ELF::EF_MSP430_MACH_MSP430x47
@ EF_MSP430_MACH_MSP430x47
Definition: ELF.h:873
llvm::ELF::DF_1_NODEFLIB
@ DF_1_NODEFLIB
Definition: ELF.h:1483
llvm::ELF::ET_HIPROC
@ ET_HIPROC
Definition: ELF.h:123
llvm::ELF::NT_GNU_BUILD_ATTRIBUTE_FUNC
@ NT_GNU_BUILD_ATTRIBUTE_FUNC
Definition: ELF.h:1550
llvm::ELF::NT_PPC_VSX
@ NT_PPC_VSX
Definition: ELF.h:1568
llvm::ELF::Elf64_Dyn::d_val
Elf64_Xword d_val
Definition: ELF.h:1449
llvm::ELF::EM_M32C
@ EM_M32C
Definition: ELF.h:239
llvm::ELF::ELFOSABI_STANDALONE
@ ELFOSABI_STANDALONE
Definition: ELF.h:366
llvm::ELF::RHF_REQUICKSTART
@ RHF_REQUICKSTART
Definition: ELF.h:1518
llvm::ELF::SHF_MIPS_LOCAL
@ SHF_MIPS_LOCAL
Definition: ELF.h:1160
llvm::ELF::NT_OPENBSD_XFPREGS
@ NT_OPENBSD_XFPREGS
Definition: ELF.h:1742
llvm::ELF::EF_ARM_SOFT_FLOAT
@ EF_ARM_SOFT_FLOAT
Definition: ELF.h:434
llvm::ELF::EF_MSP430_MACH_MSP430x11
@ EF_MSP430_MACH_MSP430x11
Definition: ELF.h:852
llvm::ELF::EM_8051
@ EM_8051
Definition: ELF.h:258
llvm::ELF::PT_GNU_STACK
@ PT_GNU_STACK
Definition: ELF.h:1400
llvm::ELF::NT_FILE
@ NT_FILE
Definition: ELF.h:1608
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_ANY_V4
@ EF_AMDGPU_FEATURE_SRAMECC_ANY_V4
Definition: ELF.h:828
llvm::ELF::Elf64_Rel::r_offset
Elf64_Addr r_offset
Definition: ELF.h:1321
llvm::ELF::SHF_MIPS_NAMES
@ SHF_MIPS_NAMES
Definition: ELF.h:1157
llvm::ELF::Elf32_Shdr::sh_info
Elf32_Word sh_info
Definition: ELF.h:959
llvm::ELF::Elf64_Rela
Definition: ELF.h:1336
llvm::ELF::SHT_LLVM_BB_ADDR_MAP
@ SHT_LLVM_BB_ADDR_MAP
Definition: ELF.h:1032
llvm::ELF::NT_PSINFO
@ NT_PSINFO
Definition: ELF.h:1562
llvm::ELF::EF_MIPS_MACH_5900
@ EF_MIPS_MACH_5900
Definition: ELF.h:539
llvm::ELF::EM_RX
@ EM_RX
Definition: ELF.h:269
llvm::ELF::Elf32_Rel::getType
unsigned char getType() const
Definition: ELF.h:1291
llvm::ELF::STT_AMDGPU_HSA_KERNEL
@ STT_AMDGPU_HSA_KERNEL
Definition: ELF.h:1262
llvm::ELF::Elf32_Nhdr::n_descsz
Elf32_Word n_descsz
Definition: ELF.h:1813
llvm::ELF::PT_NULL
@ PT_NULL
Definition: ELF.h:1381
llvm::ELF::SHT_LOPROC
@ SHT_LOPROC
Definition: ELF.h:1043
llvm::ELF::EF_MSP430_MACH_MSP430x11x1
@ EF_MSP430_MACH_MSP430x11x1
Definition: ELF.h:853
llvm::ELF::EF_HEXAGON_MACH_V2
@ EF_HEXAGON_MACH_V2
Definition: ELF.h:610
llvm::ELF::EM_ECOG16
@ EM_ECOG16
Definition: ELF.h:273
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:1132
llvm::ELF::ELFOSABI_CLOUDABI
@ ELFOSABI_CLOUDABI
Definition: ELF.h:358
llvm::ELF::ODK_REGINFO
@ ODK_REGINFO
Definition: ELF.h:594
llvm::ELF::Elf64_Shdr::sh_link
Elf64_Word sh_link
Definition: ELF.h:972
llvm::ELF::NT_PSTATUS
@ NT_PSTATUS
Definition: ELF.h:1560
llvm::ELF::Elf32_Ehdr::e_shstrndx
Elf32_Half e_shstrndx
Definition: ELF.h:75
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX902
@ EF_AMDGPU_MACH_AMDGCN_GFX902
Definition: ELF.h:754
llvm::ELF::NT_NETBSDCORE_LWPSTATUS
@ NT_NETBSDCORE_LWPSTATUS
Definition: ELF.h:1733
llvm::ELF::EF_ARM_EABI_VER5
@ EF_ARM_EABI_VER5
Definition: ELF.h:444
llvm::ELF::SHN_UNDEF
@ SHN_UNDEF
Definition: ELF.h:980
llvm::ELF::GNU_PROPERTY_NO_COPY_ON_PROTECTED
@ GNU_PROPERTY_NO_COPY_ON_PROTECTED
Definition: ELF.h:1656
llvm::ELF::ELFOSABI_LINUX
@ ELFOSABI_LINUX
Definition: ELF.h:345
llvm::ELF::NT_S390_LAST_BREAK
@ NT_S390_LAST_BREAK
Definition: ELF.h:1593
llvm::ELF::SHN_HIPROC
@ SHN_HIPROC
Definition: ELF.h:983
llvm::ELF::EF_AMDGPU_MACH_R600_RESERVED_FIRST
@ EF_AMDGPU_MACH_R600_RESERVED_FIRST
Definition: ELF.h:733
llvm::ELF::EM_TILEPRO
@ EM_TILEPRO
Definition: ELF.h:284
llvm::ELF::EF_MSP430_MACH_MSP430x16
@ EF_MSP430_MACH_MSP430x16
Definition: ELF.h:858
llvm::ELF::Elf64_Sword
int32_t Elf64_Sword
Definition: ELF.h:39
llvm::ELF::NT_PPC_DSCR
@ NT_PPC_DSCR
Definition: ELF.h:1571
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX704
@ EF_AMDGPU_MACH_AMDGCN_GFX704
Definition: ELF.h:747
llvm::ELF::VERSYM_VERSION
@ VERSYM_VERSION
Definition: ELF.h:1536
llvm::ELF::NT_S390_VXRS_HIGH
@ NT_S390_VXRS_HIGH
Definition: ELF.h:1597
llvm::ELF::SHT_RISCV_ATTRIBUTES
@ SHT_RISCV_ATTRIBUTES
Definition: ELF.h:1068
llvm::ELF::PT_OPENBSD_WXNEEDED
@ PT_OPENBSD_WXNEEDED
Definition: ELF.h:1406
llvm::ELF::E_ARC_OSABI_ORIG
@ E_ARC_OSABI_ORIG
Definition: ELF.h:462
llvm::ELF::NT_PPC_TM_CDSCR
@ NT_PPC_TM_CDSCR
Definition: ELF.h:1581
llvm::ELF::SHT_ANDROID_RELA
@ SHT_ANDROID_RELA
Definition: ELF.h:1018
llvm::ELF::DF_1_ENDFILTEE
@ DF_1_ENDFILTEE
Definition: ELF.h:1486
llvm::ELF::NT_MEMTAG_LEVEL_MASK
@ NT_MEMTAG_LEVEL_MASK
Definition: ELF.h:1646
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX701
@ EF_AMDGPU_MACH_AMDGCN_GFX701
Definition: ELF.h:744
llvm::ELF::PT_LOPROC
@ PT_LOPROC
Definition: ELF.h:1391
llvm::ELF::EM_KMX32
@ EM_KMX32
Definition: ELF.h:307
llvm::ELF::NT_X86_XSTATE
@ NT_X86_XSTATE
Definition: ELF.h:1585
llvm::ELF::SHT_RELA
@ SHT_RELA
Definition: ELF.h:998
llvm::ELF::Elf32_Rel::r_info
Elf32_Word r_info
Definition: ELF.h:1286
llvm::ELF::EM_ST200
@ EM_ST200
Definition: ELF.h:217
llvm::ELF::EF_HEXAGON_ISA_V65
@ EF_HEXAGON_ISA_V65
Definition: ELF.h:638
llvm::ELF::EF_HEXAGON_ISA_V67
@ EF_HEXAGON_ISA_V67
Definition: ELF.h:640
llvm::ELF::NT_FREEBSD_PROCSTAT_GROUPS
@ NT_FREEBSD_PROCSTAT_GROUPS
Definition: ELF.h:1721
llvm::ELF::NT_GNU_PROPERTY_TYPE_0
@ NT_GNU_PROPERTY_TYPE_0
Definition: ELF.h:1624
llvm::ELF::SHF_MERGE
@ SHF_MERGE
Definition: ELF.h:1089
llvm::ELF::EM_ARC_COMPACT2
@ EM_ARC_COMPACT2
Definition: ELF.h:291
llvm::ELF::EF_CSKY_860
@ EF_CSKY_860
Definition: ELF.h:895
llvm::ELF::EM_ST9PLUS
@ EM_ST9PLUS
Definition: ELF.h:183
llvm::ELF::EF_MSP430_MACH_MSP430x26
@ EF_MSP430_MACH_MSP430x26
Definition: ELF.h:863
llvm::ELF::EM_VIDEOCORE
@ EM_VIDEOCORE
Definition: ELF.h:212
llvm::ELF::ELFOSABI_SOLARIS
@ ELFOSABI_SOLARIS
Definition: ELF.h:347
llvm::ELF::EM_X86_64
@ EM_X86_64
Definition: ELF.h:178
llvm::ELF::Elf32_Phdr::p_type
Elf32_Word p_type
Definition: ELF.h:1357
llvm::ELF::STO_AARCH64_VARIANT_PCS
@ STO_AARCH64_VARIANT_PCS
Definition: ELF.h:429
llvm::ELF::STB_WEAK
@ STB_WEAK
Definition: ELF.h:1238
llvm::ELF::EM_RH32
@ EM_RH32
Definition: ELF.h:154
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_XMM
@ GNU_PROPERTY_X86_FEATURE_2_XMM
Definition: ELF.h:1683
llvm::ELF::Elf32_Rel
Definition: ELF.h:1284
llvm::ELF::SHF_MIPS_NODUPES
@ SHF_MIPS_NODUPES
Definition: ELF.h:1154
llvm::ELF::STT_FUNC
@ STT_FUNC
Definition: ELF.h:1250
llvm::ELF::Elf64_Sym::st_name
Elf64_Word st_name
Definition: ELF.h:1210
llvm::ELF::RSS_LOC
@ RSS_LOC
Definition: ELF.h:1280
llvm::ELF::EM_INTEL209
@ EM_INTEL209
Definition: ELF.h:305
llvm::ELF::PT_HIOS
@ PT_HIOS
Definition: ELF.h:1390
llvm::ELF::Elf32_Shdr::sh_size
Elf32_Word sh_size
Definition: ELF.h:957
llvm::ELF::Elf64_Sym::st_size
Elf64_Xword st_size
Definition: ELF.h:1215
llvm::ELF::ELFOSABI_NONE
@ ELFOSABI_NONE
Definition: ELF.h:341
llvm::ELF::NT_ANDROID_TYPE_MEMTAG
@ NT_ANDROID_TYPE_MEMTAG
Definition: ELF.h:1632
llvm::ELF::GNU_PROPERTY_X86_ISA_1_V2
@ GNU_PROPERTY_X86_ISA_1_V2
Definition: ELF.h:1692
llvm::ELF::SHT_MIPS_REGINFO
@ SHT_MIPS_REGINFO
Definition: ELF.h:1061
llvm::ELF::EF_HEXAGON_MACH_V68
@ EF_HEXAGON_MACH_V68
Definition: ELF.h:621
llvm::ELF::Elf32_Phdr::p_vaddr
Elf32_Addr p_vaddr
Definition: ELF.h:1359
llvm::ELF::EF_MIPS_ARCH_64R2
@ EF_MIPS_ARCH_64R2
Definition: ELF.h:562
llvm::ELF::EV_CURRENT
@ EV_CURRENT
Definition: ELF.h:127
llvm::ELF::ELFCOMPRESS_LOPROC
@ ELFCOMPRESS_LOPROC
Definition: ELF.h:1830
llvm::ELF::EF_MIPS_ARCH_64
@ EF_MIPS_ARCH_64
Definition: ELF.h:560
llvm::ELF::Elf32_Dyn::d_un
union llvm::ELF::Elf32_Dyn::@130 d_un
llvm::ELF::SHT_MIPS_OPTIONS
@ SHT_MIPS_OPTIONS
Definition: ELF.h:1062
llvm::ELF::EF_RISCV_FLOAT_ABI
@ EF_RISCV_FLOAT_ABI
Definition: ELF.h:671
llvm::ELF::EF_MIPS_ARCH_32
@ EF_MIPS_ARCH_32
Definition: ELF.h:559
llvm::ELF::NT_FREEBSD_FCTL_PROTMAX_DISABLE
@ NT_FREEBSD_FCTL_PROTMAX_DISABLE
Definition: ELF.h:1708
llvm::ELF::RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG
@ RELOCATION_GROUPED_BY_OFFSET_DELTA_FLAG
Definition: ELF.h:1790
llvm::ELF::SHT_GNU_verneed
@ SHT_GNU_verneed
Definition: ELF.h:1040
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT
@ GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT
Definition: ELF.h:1688
llvm::ELF::EF_AMDGPU_MACH_R600_SUMO
@ EF_AMDGPU_MACH_R600_SUMO
Definition: ELF.h:725
llvm::ELF::EF_MIPS_MACH_3900
@ EF_MIPS_MACH_3900
Definition: ELF.h:527
llvm::ELF::E_ARC_MACH_ARC601
@ E_ARC_MACH_ARC601
Definition: ELF.h:458
llvm::ELF::DF_TEXTREL
@ DF_TEXTREL
Definition: ELF.h:1465
llvm::ELF::EI_VERSION
@ EI_VERSION
Definition: ELF.h:54
llvm::ELF::EM_ST7
@ EM_ST7
Definition: ELF.h:184
llvm::ELF::EF_MIPS_MACH_4010
@ EF_MIPS_MACH_4010
Definition: ELF.h:528
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_XSAVE
@ GNU_PROPERTY_X86_FEATURE_2_XSAVE
Definition: ELF.h:1687
llvm::ELF::EM_MIPS_RS3_LE
@ EM_MIPS_RS3_LE
Definition: ELF.h:143
llvm::ELF::EM_D10V
@ EM_D10V
Definition: ELF.h:201
llvm::ELF::Elf32_Rela::setSymbolAndType
void setSymbolAndType(Elf32_Word s, unsigned char t)
Definition: ELF.h:1311
llvm::ELF::EM_LATTICEMICO32
@ EM_LATTICEMICO32
Definition: ELF.h:248
llvm::ELF::Elf64_Shdr::sh_offset
Elf64_Off sh_offset
Definition: ELF.h:970
llvm::ELF::GRP_MASKOS
@ GRP_MASKOS
Definition: ELF.h:1184
llvm::ELF::STO_MIPS_PIC
@ STO_MIPS_PIC
Definition: ELF.h:586
llvm::ELF::EM_ARM
@ EM_ARM
Definition: ELF.h:156
llvm::ELF::Elf64_Chdr::ch_addralign
Elf64_Xword ch_addralign
Definition: ELF.h:1807
llvm::ELF::GNU_ABI_TAG_HURD
@ GNU_ABI_TAG_HURD
Definition: ELF.h:1777
llvm::ELF::EM_H8_300H
@ EM_H8_300H
Definition: ELF.h:163
llvm::ELF::EF_AMDGPU_MACH_R600_CAYMAN
@ EF_AMDGPU_MACH_R600_CAYMAN
Definition: ELF.h:729
llvm::ELF::DF_1_GROUP
@ DF_1_GROUP
Definition: ELF.h:1474
llvm::ELF::EM_ST19
@ EM_ST19
Definition: ELF.h:190
llvm::ELF::SHT_ARM_OVERLAYSECTION
@ SHT_ARM_OVERLAYSECTION
Definition: ELF.h:1052
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX702
@ EF_AMDGPU_MACH_AMDGCN_GFX702
Definition: ELF.h:745
llvm::ELF::NT_PPC_PMU
@ NT_PPC_PMU
Definition: ELF.h:1573
llvm::ELF::EM_68HC16
@ EM_68HC16
Definition: ELF.h:185
llvm::ELF::EM_PDP10
@ EM_PDP10
Definition: ELF.h:180
llvm::ELF::NT_S390_TDB
@ NT_S390_TDB
Definition: ELF.h:1595
llvm::ELF::EF_HEXAGON_ISA_V2
@ EF_HEXAGON_ISA_V2
Definition: ELF.h:631
llvm::ELF::Elf64_Shdr::sh_info
Elf64_Word sh_info
Definition: ELF.h:973
llvm::ELF::Elf64_Nhdr::n_type
Elf64_Word n_type
Definition: ELF.h:1821
llvm::ELF::EM_H8_300
@ EM_H8_300
Definition: ELF.h:162
llvm::ELF::EM_MICROBLAZE
@ EM_MICROBLAZE
Definition: ELF.h:285
llvm::ELF::NT_S390_PREFIX
@ NT_S390_PREFIX
Definition: ELF.h:1592
llvm::ELF::Elf32_Rela::r_info
Elf32_Word r_info
Definition: ELF.h:1302
llvm::ELF::EF_AMDGPU_MACH_R600_JUNIPER
@ EF_AMDGPU_MACH_R600_JUNIPER
Definition: ELF.h:723
llvm::ELF::EI_MAG1
@ EI_MAG1
Definition: ELF.h:49
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX90A
@ EF_AMDGPU_MACH_AMDGCN_GFX90A
Definition: ELF.h:772
llvm::ELF::EF_MSP430_MACH_MSP430x14
@ EF_MSP430_MACH_MSP430x14
Definition: ELF.h:856
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_X87
@ GNU_PROPERTY_X86_FEATURE_2_X87
Definition: ELF.h:1681
llvm::ELF::EF_MIPS_ABI_O32
@ EF_MIPS_ABI_O32
Definition: ELF.h:519
llvm::ELF::GNU_PROPERTY_X86_FEATURE_1_SHSTK
@ GNU_PROPERTY_X86_FEATURE_1_SHSTK
Definition: ELF.h:1678
llvm::ELF::ELFOSABI_AROS
@ ELFOSABI_AROS
Definition: ELF.h:356
llvm::ELF::DF_1_NOOPEN
@ DF_1_NOOPEN
Definition: ELF.h:1478
llvm::ELF::PF_MASKPROC
@ PF_MASKPROC
Definition: ELF.h:1433
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::PT_ARM_EXIDX
@ PT_ARM_EXIDX
Definition: ELF.h:1412
llvm::ELF::Elf32_Ehdr::e_ehsize
Elf32_Half e_ehsize
Definition: ELF.h:70
llvm::ELF::RHF_REQUICKSTARTED
@ RHF_REQUICKSTARTED
Definition: ELF.h:1519
llvm::ELF::Elf32_Ehdr::e_flags
Elf32_Word e_flags
Definition: ELF.h:69
llvm::ELF::NT_LWPSTATUS
@ NT_LWPSTATUS
Definition: ELF.h:1563
llvm::ELF::SHT_LLVM_CALL_GRAPH_PROFILE
@ SHT_LLVM_CALL_GRAPH_PROFILE
Definition: ELF.h:1031
llvm::ELF::EM_CE
@ EM_CE
Definition: ELF.h:238
llvm::ELF::EF_MIPS_MACH_OCTEON
@ EF_MIPS_MACH_OCTEON
Definition: ELF.h:534
llvm::ELF::NT_ARM_PAC_MASK
@ NT_ARM_PAC_MASK
Definition: ELF.h:1606
llvm::ELF::EF_AMDGPU_MACH_R600_RS880
@ EF_AMDGPU_MACH_R600_RS880
Definition: ELF.h:714
llvm::ELF::SHN_MIPS_SCOMMON
@ SHN_MIPS_SCOMMON
Definition: ELF.h:573
llvm::ELF::Elf32_Sym::st_value
Elf32_Addr st_value
Definition: ELF.h:1191
llvm::ELF::EF_RISCV_FLOAT_ABI_DOUBLE
@ EF_RISCV_FLOAT_ABI_DOUBLE
Definition: ELF.h:674
llvm::ELF::GNU_PROPERTY_X86_ISA_1_USED
@ GNU_PROPERTY_X86_ISA_1_USED
Definition: ELF.h:1666
llvm::ELF::SHT_CSKY_ATTRIBUTES
@ SHT_CSKY_ATTRIBUTES
Definition: ELF.h:1070
llvm::ELF::Elf64_Sym::getBinding
unsigned char getBinding() const
Definition: ELF.h:1219
llvm::ELF::EM_NDS32
@ EM_NDS32
Definition: ELF.h:261
llvm::ELF::STT_COMMON
@ STT_COMMON
Definition: ELF.h:1253
llvm::ELF::Elf32_Sym::st_name
Elf32_Word st_name
Definition: ELF.h:1190
llvm::ELF::VER_DEF_NONE
@ VER_DEF_NONE
Definition: ELF.h:1527
llvm::ELF::DF_1_PIE
@ DF_1_PIE
Definition: ELF.h:1498
llvm::ELF::EM_IP2K
@ EM_IP2K
Definition: ELF.h:218
llvm::ELF::EM_NCPU
@ EM_NCPU
Definition: ELF.h:172
llvm::ELF::SHT_DYNAMIC
@ SHT_DYNAMIC
Definition: ELF.h:1000
llvm::ELF::NT_PPC_VMX
@ NT_PPC_VMX
Definition: ELF.h:1567
llvm::ELF::STT_HIPROC
@ STT_HIPROC
Definition: ELF.h:1259
llvm::ELF::ELFCLASS32
@ ELFCLASS32
Definition: ELF.h:328
llvm::ELF::EM_TMM_GPP
@ EM_TMM_GPP
Definition: ELF.h:213
llvm::ELF::EF_HEXAGON_MACH_V73
@ EF_HEXAGON_MACH_V73
Definition: ELF.h:625
llvm::ELF::NT_VERSION
@ NT_VERSION
Definition: ELF.h:1547
llvm::ELF::NT_ANDROID_TYPE_KUSER
@ NT_ANDROID_TYPE_KUSER
Definition: ELF.h:1631
llvm::ELF::EF_MIPS_32BITMODE
@ EF_MIPS_32BITMODE
Definition: ELF.h:512
llvm::ELF::EM_ST100
@ EM_ST100
Definition: ELF.h:176
llvm::ELF::EM_PDSP
@ EM_PDSP
Definition: ELF.h:179
llvm::ELF::EM_68K
@ EM_68K
Definition: ELF.h:137
llvm::ELF::NT_SIGINFO
@ NT_SIGINFO
Definition: ELF.h:1610
llvm::ELF::EF_HEXAGON_MACH_V62
@ EF_HEXAGON_MACH_V62
Definition: ELF.h:616
llvm::ELF::PT_RISCV_ATTRIBUTES
@ PT_RISCV_ATTRIBUTES
Definition: ELF.h:1424
llvm::ELF::SHT_LLVM_LINKER_OPTIONS
@ SHT_LLVM_LINKER_OPTIONS
Definition: ELF.h:1020
llvm::ELF::ELFOSABI_GNU
@ ELFOSABI_GNU
Definition: ELF.h:344
llvm::ELF::EI_DATA
@ EI_DATA
Definition: ELF.h:53
llvm::ELF::SHT_SHLIB
@ SHT_SHLIB
Definition: ELF.h:1004
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_XSAVEC
@ GNU_PROPERTY_X86_FEATURE_2_XSAVEC
Definition: ELF.h:1689
llvm::ELF::Elf32_Rel::setSymbol
void setSymbol(Elf32_Word s)
Definition: ELF.h:1292
llvm::ELF::STV_INTERNAL
@ STV_INTERNAL
Definition: ELF.h:1267
llvm::ELF::EF_MSP430_MACH_MSP430x13
@ EF_MSP430_MACH_MSP430x13
Definition: ELF.h:855
llvm::ELF::EM_FIREPATH
@ EM_FIREPATH
Definition: ELF.h:194
llvm::ELF::EF_ARM_EABI_VER4
@ EF_ARM_EABI_VER4
Definition: ELF.h:443
llvm::ELF::PT_MIPS_ABIFLAGS
@ PT_MIPS_ABIFLAGS
Definition: ELF.h:1421
llvm::ELF::STO_RISCV_VARIANT_CC
@ STO_RISCV_VARIANT_CC
Definition: ELF.h:688
llvm::ELF::EM_M32
@ EM_M32
Definition: ELF.h:134
llvm::ELF::DF_1_NODIRECT
@ DF_1_NODIRECT
Definition: ELF.h:1489
llvm::ELF::Elf32_Rel::setSymbolAndType
void setSymbolAndType(Elf32_Word s, unsigned char t)
Definition: ELF.h:1294
llvm::ELF::EM_ZSP
@ EM_ZSP
Definition: ELF.h:195
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX801
@ EF_AMDGPU_MACH_AMDGCN_GFX801
Definition: ELF.h:749
llvm::ELF::ELFCOMPRESS_ZSTD
@ ELFCOMPRESS_ZSTD
Definition: ELF.h:1827
llvm::ELF::ELFOSABI_IRIX
@ ELFOSABI_IRIX
Definition: ELF.h:349
llvm::ELF::EF_MIPS_NAN2008
@ EF_MIPS_NAN2008
Definition: ELF.h:516
llvm::ELF::EM_F2MC16
@ EM_F2MC16
Definition: ELF.h:221
llvm::ELF::EF_ARC_CPU_ARCV2EM
@ EF_ARC_CPU_ARCV2EM
Definition: ELF.h:460
llvm::ELF::STO_MIPS_MICROMIPS
@ STO_MIPS_MICROMIPS
Definition: ELF.h:587
llvm::ELF::NT_MEMTAG_STACK
@ NT_MEMTAG_STACK
Definition: ELF.h:1650
llvm::ELF::EF_AMDGPU_FEATURE_TRAP_HANDLER_V2
@ EF_AMDGPU_FEATURE_TRAP_HANDLER_V2
Definition: ELF.h:795
llvm::ELF::SHT_LLVM_PART_EHDR
@ SHT_LLVM_PART_EHDR
Definition: ELF.h:1026
llvm::ELF::EF_AMDGPU_MACH_R600_RV670
@ EF_AMDGPU_MACH_R600_RV670
Definition: ELF.h:715
llvm::ELF::NT_AMD_HSA_CODE_OBJECT_VERSION
@ NT_AMD_HSA_CODE_OBJECT_VERSION
Definition: ELF.h:1753
llvm::ELF::EM_ECOG1X
@ EM_ECOG1X
Definition: ELF.h:264
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX908
@ EF_AMDGPU_MACH_AMDGCN_GFX908
Definition: ELF.h:757
llvm::ELF::NT_AMD_HSA_METADATA
@ NT_AMD_HSA_METADATA
Definition: ELF.h:1757
llvm::ELF::STV_PROTECTED
@ STV_PROTECTED
Definition: ELF.h:1269
llvm::ELF::ELFCOMPRESS_ZLIB
@ ELFCOMPRESS_ZLIB
Definition: ELF.h:1826
llvm::ELF::EF_MIPS_PIC
@ EF_MIPS_PIC
Definition: ELF.h:509
llvm::ELF::Elf32_Rela::setSymbol
void setSymbol(Elf32_Word s)
Definition: ELF.h:1309
llvm::ELF::EF_MIPS_MACH_OCTEON3
@ EF_MIPS_MACH_OCTEON3
Definition: ELF.h:537
llvm::ELF::NT_FREEBSD_FEATURE_CTL
@ NT_FREEBSD_FEATURE_CTL
Definition: ELF.h:1702
llvm::ELF::SHT_SYMTAB_SHNDX
@ SHT_SYMTAB_SHNDX
Definition: ELF.h:1010
llvm::ELF::EM_TSK3000
@ EM_TSK3000
Definition: ELF.h:240
llvm::ELF::EF_MIPS_ABI_O64
@ EF_MIPS_ABI_O64
Definition: ELF.h:520
llvm::ELF::Elf32_Phdr::p_memsz
Elf32_Word p_memsz
Definition: ELF.h:1362
llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V5
@ ELFABIVERSION_AMDGPU_HSA_V5
Definition: ELF.h:377
llvm::ELF::EF_ARM_EABIMASK
@ EF_ARM_EABIMASK
Definition: ELF.h:445
llvm::ELF::EF_LOONGARCH_ABI_DOUBLE_FLOAT
@ EF_LOONGARCH_ABI_DOUBLE_FLOAT
Definition: ELF.h:919
llvm::ELF::GNU_PROPERTY_X86_ISA_1_NEEDED
@ GNU_PROPERTY_X86_ISA_1_NEEDED
Definition: ELF.h:1662
llvm::ELF::EI_CLASS
@ EI_CLASS
Definition: ELF.h:52
llvm::ELF::EF_XTENSA_MACH
@ EF_XTENSA_MACH
Definition: ELF.h:936
llvm::ELF::EF_MIPS_ABI2
@ EF_MIPS_ABI2
Definition: ELF.h:511
llvm::ELF::Elf64_Rel::r_info
Elf64_Xword r_info
Definition: ELF.h:1322
llvm::ELF::EM_RCE
@ EM_RCE
Definition: ELF.h:155
llvm::ELF::NT_NETBSDCORE_PROCINFO
@ NT_NETBSDCORE_PROCINFO
Definition: ELF.h:1731
llvm::ELF::EM_INTEL205
@ EM_INTEL205
Definition: ELF.h:301
llvm::ELF::EF_LOONGARCH_ABI_SOFT_FLOAT
@ EF_LOONGARCH_ABI_SOFT_FLOAT
Definition: ELF.h:917
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_ON_V4
@ EF_AMDGPU_FEATURE_XNACK_ON_V4
Definition: ELF.h:819
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX705
@ EF_AMDGPU_MACH_AMDGCN_GFX705
Definition: ELF.h:768
llvm::ELF::EF_CSKY_DSP
@ EF_CSKY_DSP
Definition: ELF.h:898
llvm::ELF::SHF_HEX_GPREL
@ SHF_HEX_GPREL
Definition: ELF.h:1150
llvm::ELF::Elf64_Dyn::d_un
union llvm::ELF::Elf64_Dyn::@131 d_un
llvm::ELF::EF_AVR_ARCH_AVR6
@ EF_AVR_ARCH_AVR6
Definition: ELF.h:485
llvm::ELF::EM_KMX8
@ EM_KMX8
Definition: ELF.h:309
llvm::ELF::ODK_PAD
@ ODK_PAD
Definition: ELF.h:596
llvm::ELF::EF_MSP430_MACH_MSP430x42
@ EF_MSP430_MACH_MSP430x42
Definition: ELF.h:868
llvm::ELF::E_ARC_OSABI_V2
@ E_ARC_OSABI_V2
Definition: ELF.h:463
llvm::ELF::Elf64_Phdr::p_offset
Elf64_Off p_offset
Definition: ELF.h:1371
llvm::ELF::EM_HEXAGON
@ EM_HEXAGON
Definition: ELF.h:257
llvm::ELF::RHF_NO_MOVE
@ RHF_NO_MOVE
Definition: ELF.h:1507
llvm::ELF::GRP_COMDAT
@ GRP_COMDAT
Definition: ELF.h:1183
llvm::ELF::EF_HEXAGON_ISA_V75
@ EF_HEXAGON_ISA_V75
Definition: ELF.h:645
llvm::ELF::GNU_ABI_TAG_LINUX
@ GNU_ABI_TAG_LINUX
Definition: ELF.h:1776
llvm::ELF::NT_AMD_HSA_ISA_NAME
@ NT_AMD_HSA_ISA_NAME
Definition: ELF.h:1758
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1011
@ EF_AMDGPU_MACH_AMDGCN_GFX1011
Definition: ELF.h:761
llvm::ELF::PT_DYNAMIC
@ PT_DYNAMIC
Definition: ELF.h:1383
llvm::ELF::Elf32_Shdr::sh_addr
Elf32_Addr sh_addr
Definition: ELF.h:955
llvm::ELF::EF_MIPS_ARCH_3
@ EF_MIPS_ARCH_3
Definition: ELF.h:556
llvm::ELF::RSS_GP0
@ RSS_GP0
Definition: ELF.h:1279
llvm::ELF::EM_NONE
@ EM_NONE
Definition: ELF.h:133
llvm::ELF::SHN_HEXAGON_SCOMMON_2
@ SHN_HEXAGON_SCOMMON_2
Definition: ELF.h:653
llvm::ELF::RHS_NO_LIBRARY_REPLACEMENT
@ RHS_NO_LIBRARY_REPLACEMENT
Definition: ELF.h:1506
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX700
@ EF_AMDGPU_MACH_AMDGCN_GFX700
Definition: ELF.h:743
llvm::ELF::NT_FREEBSD_PROCSTAT_AUXV
@ NT_FREEBSD_PROCSTAT_AUXV
Definition: ELF.h:1726
llvm::ELF::NT_ARM_HW_WATCH
@ NT_ARM_HW_WATCH
Definition: ELF.h:1604
llvm::ELF::Elf64_Phdr::p_filesz
Elf64_Xword p_filesz
Definition: ELF.h:1374
llvm::ELF::EF_CSKY_EFV1
@ EF_CSKY_EFV1
Definition: ELF.h:900
llvm::ELF::ELFDATANONE
@ ELFDATANONE
Definition: ELF.h:334
llvm::ELF::SHF_INFO_LINK
@ SHF_INFO_LINK
Definition: ELF.h:1095
llvm::ELF::NT_386_TLS
@ NT_386_TLS
Definition: ELF.h:1583
llvm::ELF::NT_FPREGS
@ NT_FPREGS
Definition: ELF.h:1561
llvm::ELF::EF_HEXAGON_ISA_V55
@ EF_HEXAGON_ISA_V55
Definition: ELF.h:635
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1033
@ EF_AMDGPU_MACH_AMDGCN_GFX1033
Definition: ELF.h:766
llvm::ELF::Elf64_Rel::setType
void setType(Elf64_Word t)
Definition: ELF.h:1329
llvm::ELF::EM_SPU
@ EM_SPU
Definition: ELF.h:151
llvm::ELF::Elf64_Rela::r_addend
Elf64_Sxword r_addend
Definition: ELF.h:1339
llvm::ELF::PT_OPENBSD_RANDOMIZE
@ PT_OPENBSD_RANDOMIZE
Definition: ELF.h:1405
llvm::ELF::SHF_GNU_RETAIN
@ SHF_GNU_RETAIN
Definition: ELF.h:1114
llvm::ELF::VERSYM_HIDDEN
@ VERSYM_HIDDEN
Definition: ELF.h:1537
llvm::ELF::Elf32_Ehdr::e_type
Elf32_Half e_type
Definition: ELF.h:63
llvm::ELF::EM_L10M
@ EM_L10M
Definition: ELF.h:278
llvm::ELF::EF_HEXAGON_ISA_MACH
@ EF_HEXAGON_ISA_MACH
Definition: ELF.h:629
llvm::ELF::EF_MIPS_ARCH_4
@ EF_MIPS_ARCH_4
Definition: ELF.h:557
llvm::ELF::EF_MIPS_CPIC
@ EF_MIPS_CPIC
Definition: ELF.h:510
llvm::ELF::EM_MMDSP_PLUS
@ EM_MMDSP_PLUS
Definition: ELF.h:253
llvm::ELF::NT_WIN32PSTATUS
@ NT_WIN32PSTATUS
Definition: ELF.h:1565
llvm::ELF::EM_VAX
@ EM_VAX
Definition: ELF.h:191
llvm::ELF::PT_LOOS
@ PT_LOOS
Definition: ELF.h:1389
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_ANY_V4
@ EF_AMDGPU_FEATURE_XNACK_ANY_V4
Definition: ELF.h:815
llvm::ELF::EF_CSKY_FLOAT
@ EF_CSKY_FLOAT
Definition: ELF.h:897
llvm::ELF::EF_MSP430_MACH_MSP430x32
@ EF_MSP430_MACH_MSP430x32
Definition: ELF.h:865
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1100
@ EF_AMDGPU_MACH_AMDGCN_GFX1100
Definition: ELF.h:774
llvm::ELF::EM_STARCORE
@ EM_STARCORE
Definition: ELF.h:174
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_FIRST
@ EF_AMDGPU_MACH_AMDGCN_FIRST
Definition: ELF.h:783
llvm::ELF::Elf32_Nhdr
Definition: ELF.h:1811
llvm::ELF::EF_ARM_EABI_VER1
@ EF_ARM_EABI_VER1
Definition: ELF.h:440
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_ZMM
@ GNU_PROPERTY_X86_FEATURE_2_ZMM
Definition: ELF.h:1685
llvm::ELF::EM_INTEL208
@ EM_INTEL208
Definition: ELF.h:304
llvm::ELF::Elf64_Nhdr::n_namesz
Elf64_Word n_namesz
Definition: ELF.h:1819
llvm::ELF::DF_ORIGIN
@ DF_ORIGIN
Definition: ELF.h:1463
llvm::ELF::EM_H8S
@ EM_H8S
Definition: ELF.h:164
llvm::ELF::NT_FREEBSD_PROCSTAT_FILES
@ NT_FREEBSD_PROCSTAT_FILES
Definition: ELF.h:1719
uint64_t
llvm::ELF::EM_FR30
@ EM_FR30
Definition: ELF.h:200
llvm::ELF::Elf64_Shdr::sh_entsize
Elf64_Xword sh_entsize
Definition: ELF.h:975
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_V3
@ EF_AMDGPU_FEATURE_XNACK_V3
Definition: ELF.h:801
llvm::ELF::EF_MIPS_MACH_XLR
@ EF_MIPS_MACH_XLR
Definition: ELF.h:535
llvm::ELF::ELFOSABI_FENIXOS
@ ELFOSABI_FENIXOS
Definition: ELF.h:357
llvm::ELF::EF_HEXAGON_MACH_V67
@ EF_HEXAGON_MACH_V67
Definition: ELF.h:619
llvm::ELF::GNU_PROPERTY_X86_FEATURE_1_AND
@ GNU_PROPERTY_X86_FEATURE_1_AND
Definition: ELF.h:1658
llvm::ELF::Elf32_Ehdr::e_entry
Elf32_Addr e_entry
Definition: ELF.h:66
llvm::ELF::EM_UNICORE
@ EM_UNICORE
Definition: ELF.h:227
llvm::ELF::EM_ARC_COMPACT
@ EM_ARC_COMPACT
Definition: ELF.h:209
llvm::ELF::DF_1_DISPRELDNE
@ DF_1_DISPRELDNE
Definition: ELF.h:1487
llvm::ELF::STT_LOPROC
@ STT_LOPROC
Definition: ELF.h:1258
llvm::ELF::ELFABIVERSION_AMDGPU_HSA_V3
@ ELFABIVERSION_AMDGPU_HSA_V3
Definition: ELF.h:375
llvm::ELF::EF_MIPS_ARCH_5
@ EF_MIPS_ARCH_5
Definition: ELF.h:558
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1012
@ EF_AMDGPU_MACH_AMDGCN_GFX1012
Definition: ELF.h:762
llvm::ELF::NT_ARM_HW_BREAK
@ NT_ARM_HW_BREAK
Definition: ELF.h:1603
llvm::ELF::Elf32_Sym::st_shndx
Elf32_Half st_shndx
Definition: ELF.h:1195
llvm::ELF::NT_FREEBSD_FCTL_STKGAP_DISABLE
@ NT_FREEBSD_FCTL_STKGAP_DISABLE
Definition: ELF.h:1709
s
multiplies can be turned into SHL s
Definition: README.txt:370
llvm::ELF::EF_CSKY_803
@ EF_CSKY_803
Definition: ELF.h:891
llvm::ELF::Elf64_Sym::setBinding
void setBinding(unsigned char b)
Definition: ELF.h:1221
llvm::ELF::DF_1_NODELETE
@ DF_1_NODELETE
Definition: ELF.h:1475
llvm::ELF::SHF_ARM_PURECODE
@ SHF_ARM_PURECODE
Definition: ELF.h:1178
llvm::ELF::EF_MSP430_MACH_MSP430x24
@ EF_MSP430_MACH_MSP430x24
Definition: ELF.h:862
llvm::ELF::EM_EXCESS
@ EM_EXCESS
Definition: ELF.h:229
llvm::ELF::Elf32_Shdr::sh_offset
Elf32_Off sh_offset
Definition: ELF.h:956
llvm::ELF::EF_RISCV_FLOAT_ABI_SINGLE
@ EF_RISCV_FLOAT_ABI_SINGLE
Definition: ELF.h:673
llvm::ELF::SHF_MASKPROC
@ SHF_MASKPROC
Definition: ELF.h:1127
llvm::ELF::SHT_LLVM_OFFLOADING
@ SHT_LLVM_OFFLOADING
Definition: ELF.h:1033
llvm::ELF::NT_S390_TODCMP
@ NT_S390_TODCMP
Definition: ELF.h:1589
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1102
@ EF_AMDGPU_MACH_AMDGCN_GFX1102
Definition: ELF.h:780
llvm::ELF::PT_OPENBSD_BOOTDATA
@ PT_OPENBSD_BOOTDATA
Definition: ELF.h:1407
llvm::ELF::Elf32_Dyn::d_val
Elf32_Word d_val
Definition: ELF.h:1440
llvm::ELF::EM_SVX
@ EM_SVX
Definition: ELF.h:189
llvm::ELF::EF_AMDGPU_MACH_R600_LAST
@ EF_AMDGPU_MACH_R600_LAST
Definition: ELF.h:738
llvm::ELF::EM_ETPU
@ EM_ETPU
Definition: ELF.h:276
llvm::ELF::SHN_HEXAGON_SCOMMON_1
@ SHN_HEXAGON_SCOMMON_1
Definition: ELF.h:652
llvm::ELF::ELFOSABI_NSK
@ ELFOSABI_NSK
Definition: ELF.h:355
llvm::ELF::EM_H8_500
@ EM_H8_500
Definition: ELF.h:165
llvm::ELF::EF_MIPS_MACH_4100
@ EF_MIPS_MACH_4100
Definition: ELF.h:529
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX904
@ EF_AMDGPU_MACH_AMDGCN_GFX904
Definition: ELF.h:755
llvm::ELF::EF_AVR_ARCH_XMEGA6
@ EF_AVR_ARCH_XMEGA6
Definition: ELF.h:492
llvm::ELF::RELOCATION_GROUPED_BY_ADDEND_FLAG
@ RELOCATION_GROUPED_BY_ADDEND_FLAG
Definition: ELF.h:1791
llvm::ELF::ELFCLASSNONE
@ ELFCLASSNONE
Definition: ELF.h:327
llvm::ELF::EF_AVR_LINKRELAX_PREPARED
@ EF_AVR_LINKRELAX_PREPARED
Definition: ELF.h:497
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX906
@ EF_AMDGPU_MACH_AMDGCN_GFX906
Definition: ELF.h:756
llvm::ELF::GNU_ABI_TAG_SYLLABLE
@ GNU_ABI_TAG_SYLLABLE
Definition: ELF.h:1781
llvm::ELF::EF_AVR_ARCH_AVRTINY
@ EF_AVR_ARCH_AVRTINY
Definition: ELF.h:486
llvm::ELF::EM_TINYJ
@ EM_TINYJ
Definition: ELF.h:177
llvm::ELF::EF_CSKY_800
@ EF_CSKY_800
Definition: ELF.h:896
llvm::ELF::NT_FREEBSD_PROCSTAT_VMMAP
@ NT_FREEBSD_PROCSTAT_VMMAP
Definition: ELF.h:1720
llvm::ELF::SHT_NOBITS
@ SHT_NOBITS
Definition: ELF.h:1002
llvm::ELF::EF_AMDGPU_MACH_R600_FIRST
@ EF_AMDGPU_MACH_R600_FIRST
Definition: ELF.h:737
llvm::ELF::NT_PRPSINFO
@ NT_PRPSINFO
Definition: ELF.h:1557
llvm::ELF::ODK_FILL
@ ODK_FILL
Definition: ELF.h:598
llvm::ELF::NT_FREEBSD_FCTL_ASG_DISABLE
@ NT_FREEBSD_FCTL_ASG_DISABLE
Definition: ELF.h:1712
llvm::ELF::PT_GNU_PROPERTY
@ PT_GNU_PROPERTY
Definition: ELF.h:1402
llvm::ELF::EF_MIPS_FP64
@ EF_MIPS_FP64
Definition: ELF.h:514
llvm::ELF::EM_CRX
@ EM_CRX
Definition: ELF.h:232
llvm::ELF::SHF_MIPS_MERGE
@ SHF_MIPS_MERGE
Definition: ELF.h:1169
llvm::ELF::NT_FREEBSD_PROCSTAT_PROC
@ NT_FREEBSD_PROCSTAT_PROC
Definition: ELF.h:1718
llvm::ELF::DF_1_LOADFLTR
@ DF_1_LOADFLTR
Definition: ELF.h:1476
llvm::ELF::SHN_XINDEX
@ SHN_XINDEX
Definition: ELF.h:988
llvm::ELF::SHT_GNU_HASH
@ SHT_GNU_HASH
Definition: ELF.h:1038
llvm::ELF::RHF_PIXIE
@ RHF_PIXIE
Definition: ELF.h:1516
llvm::ELF::NT_S390_GS_BC
@ NT_S390_GS_BC
Definition: ELF.h:1599
llvm::ELF::PT_AARCH64_MEMTAG_MTE
@ PT_AARCH64_MEMTAG_MTE
Definition: ELF.h:1415
llvm::ELF::EF_MIPS_MACH_NONE
@ EF_MIPS_MACH_NONE
Definition: ELF.h:526
llvm::ELF::RHF_GUARANTEE_INIT
@ RHF_GUARANTEE_INIT
Definition: ELF.h:1509
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1032
@ EF_AMDGPU_MACH_AMDGCN_GFX1032
Definition: ELF.h:765
llvm::ELF::SHT_DYNSYM
@ SHT_DYNSYM
Definition: ELF.h:1005
llvm::ELF::EF_MIPS_MACH_4111
@ EF_MIPS_MACH_4111
Definition: ELF.h:532
llvm::ELF::EM_BA1
@ EM_BA1
Definition: ELF.h:297
llvm::ELF::SHT_ARM_ATTRIBUTES
@ SHT_ARM_ATTRIBUTES
Definition: ELF.h:1050
llvm::ELF::Elf64_Ehdr::e_type
Elf64_Half e_type
Definition: ELF.h:89
llvm::ELF::Elf64_Nhdr
Definition: ELF.h:1818
llvm::ELF::EM_TI_C2000
@ EM_TI_C2000
Definition: ELF.h:251
llvm::ELF::EF_HEXAGON_ISA_V5
@ EF_HEXAGON_ISA_V5
Definition: ELF.h:634
llvm::ELF::Elf64_Shdr::sh_size
Elf64_Xword sh_size
Definition: ELF.h:971
llvm::ELF::EF_MIPS_MACH_5500
@ EF_MIPS_MACH_5500
Definition: ELF.h:540
llvm::ELF::NT_FREEBSD_PROCSTAT_OSREL
@ NT_FREEBSD_PROCSTAT_OSREL
Definition: ELF.h:1724
llvm::ELF::NT_PPC_TM_CFPR
@ NT_PPC_TM_CFPR
Definition: ELF.h:1575
llvm::ELF::EF_MSP430_MACH_MSP430x12
@ EF_MSP430_MACH_MSP430x12
Definition: ELF.h:854
llvm::ELF::EF_AVR_ARCH_AVR2
@ EF_AVR_ARCH_AVR2
Definition: ELF.h:477
llvm::ELF::PT_SHLIB
@ PT_SHLIB
Definition: ELF.h:1386
llvm::ELF::ELFOSABI_FIRST_ARCH
@ ELFOSABI_FIRST_ARCH
Definition: ELF.h:359
llvm::ELF::Elf64_Ehdr::e_entry
Elf64_Addr e_entry
Definition: ELF.h:92
llvm::ELF::EI_MAG0
@ EI_MAG0
Definition: ELF.h:48
llvm::ELF::EF_AMDGPU_MACH_NONE
@ EF_AMDGPU_MACH_NONE
Definition: ELF.h:707
llvm::ELF::Elf32_Ehdr::getFileClass
unsigned char getFileClass() const
Definition: ELF.h:81
llvm::ELF::DF_1_CONFALT
@ DF_1_CONFALT
Definition: ELF.h:1485
llvm::ELF::EM_VE
@ EM_VE
Definition: ELF.h:320
llvm::ELF::SHF_WRITE
@ SHF_WRITE
Definition: ELF.h:1080
llvm::ELF::EM_AVR
@ EM_AVR
Definition: ELF.h:199
llvm::ELF::EM_RS08
@ EM_RS08
Definition: ELF.h:241
llvm::ELF::decodePPC64LocalEntryOffset
static int64_t decodePPC64LocalEntryOffset(unsigned Other)
Definition: ELF.h:411
llvm::ELF::EM_KMX16
@ EM_KMX16
Definition: ELF.h:308
llvm::ELF::Elf32_Shdr::sh_addralign
Elf32_Word sh_addralign
Definition: ELF.h:960
llvm::ELF::EF_MSP430_MACH_MSP430x23
@ EF_MSP430_MACH_MSP430x23
Definition: ELF.h:861
llvm::ELF::DF_1_NODUMP
@ DF_1_NODUMP
Definition: ELF.h:1484
llvm::ELF::PF_X
@ PF_X
Definition: ELF.h:1429
llvm::ELF::EF_MIPS_ARCH_2
@ EF_MIPS_ARCH_2
Definition: ELF.h:555
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX810
@ EF_AMDGPU_MACH_AMDGCN_GFX810
Definition: ELF.h:752
llvm::ELF::Elf32_Rela::r_offset
Elf32_Addr r_offset
Definition: ELF.h:1301
llvm::ELF::EM_COLDFIRE
@ EM_COLDFIRE
Definition: ELF.h:168
llvm::ELF::Elf64_Relr
Elf64_Xword Elf64_Relr
Definition: ELF.h:1353
llvm::ELF::EF_MSP430_MACH_MSP430x15
@ EF_MSP430_MACH_MSP430x15
Definition: ELF.h:857
llvm::ELF::STO_MIPS_MIPS16
@ STO_MIPS_MIPS16
Definition: ELF.h:588
llvm::ELF::NT_FREEBSD_PROCSTAT_RLIMIT
@ NT_FREEBSD_PROCSTAT_RLIMIT
Definition: ELF.h:1723
llvm::ELF::SHN_HEXAGON_SCOMMON_4
@ SHN_HEXAGON_SCOMMON_4
Definition: ELF.h:654
llvm::ELF::EF_RISCV_TSO
@ EF_RISCV_TSO
Definition: ELF.h:677
llvm::ELF::EM_CSKY
@ EM_CSKY
Definition: ELF.h:321
llvm::ELF::ELFOSABI_HPUX
@ ELFOSABI_HPUX
Definition: ELF.h:342
llvm::ELF::E_ARC_OSABI_V4
@ E_ARC_OSABI_V4
Definition: ELF.h:465
llvm::ELF::VER_NEED_CURRENT
@ VER_NEED_CURRENT
Definition: ELF.h:1541
llvm::ELF::Elf32_Sym::st_size
Elf32_Word st_size
Definition: ELF.h:1192
llvm::ELF::EM_KM32
@ EM_KM32
Definition: ELF.h:306
llvm::ELF::SHF_X86_64_LARGE
@ SHF_X86_64_LARGE
Definition: ELF.h:1146
llvm::ELF::SHF_GROUP
@ SHF_GROUP
Definition: ELF.h:1105
llvm::ELF::EF_HEXAGON_MACH_V55
@ EF_HEXAGON_MACH_V55
Definition: ELF.h:614
llvm::ELF::Elf32_Sym::getBinding
unsigned char getBinding() const
Definition: ELF.h:1199
llvm::ELF::SHF_TLS
@ SHF_TLS
Definition: ELF.h:1108
llvm::ELF::NT_ARM_VFP
@ NT_ARM_VFP
Definition: ELF.h:1601
llvm::ELF::DF_1_INTERPOSE
@ DF_1_INTERPOSE
Definition: ELF.h:1482
llvm::ELF::EF_MSP430_MACH_MSP430x41
@ EF_MSP430_MACH_MSP430x41
Definition: ELF.h:867
llvm::ELF::Elf32_Ehdr::e_shnum
Elf32_Half e_shnum
Definition: ELF.h:74
llvm::ELF::GNU_ABI_TAG_NACL
@ GNU_ABI_TAG_NACL
Definition: ELF.h:1782
llvm::ELF::EM_BPF
@ EM_BPF
Definition: ELF.h:319
llvm::ELF::EM_SNP1K
@ EM_SNP1K
Definition: ELF.h:216
llvm::ELF::EM_MAXQ30
@ EM_MAXQ30
Definition: ELF.h:265
llvm::ELF::EF_HEXAGON_MACH_V69
@ EF_HEXAGON_MACH_V69
Definition: ELF.h:622
llvm::ELF::Elf64_Rela::r_offset
Elf64_Addr r_offset
Definition: ELF.h:1337
llvm::ELF::ET_LOOS
@ ET_LOOS
Definition: ELF.h:120
llvm::ELF::EM_XGATE
@ EM_XGATE
Definition: ELF.h:233
llvm::ELF::NT_S390_TIMER
@ NT_S390_TIMER
Definition: ELF.h:1588
llvm::ELF::EF_ARM_ABI_FLOAT_SOFT
@ EF_ARM_ABI_FLOAT_SOFT
Definition: ELF.h:435
llvm::ELF::Elf32_Dyn
Definition: ELF.h:1437
llvm::ELF::NT_PPC_TM_CVMX
@ NT_PPC_TM_CVMX
Definition: ELF.h:1576
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX900
@ EF_AMDGPU_MACH_AMDGCN_GFX900
Definition: ELF.h:753
llvm::ELF::ELFOSABI_AMDGPU_MESA3D
@ ELFOSABI_AMDGPU_MESA3D
Definition: ELF.h:362
llvm::ELF::EF_AMDGPU_FEATURE_XNACK_V2
@ EF_AMDGPU_FEATURE_XNACK_V2
Definition: ELF.h:790
llvm::ELF::PF_MASKOS
@ PF_MASKOS
Definition: ELF.h:1432
llvm::ELF::EM_MCST_ELBRUS
@ EM_MCST_ELBRUS
Definition: ELF.h:272
llvm::ELF::STB_GLOBAL
@ STB_GLOBAL
Definition: ELF.h:1237
llvm::ELF::Elf64_Rel
Definition: ELF.h:1320
llvm::ELF::NT_S390_CTRS
@ NT_S390_CTRS
Definition: ELF.h:1591
llvm::ELF::NT_FREEBSD_FCTL_LA48
@ NT_FREEBSD_FCTL_LA48
Definition: ELF.h:1711
llvm::ELF::SHN_LORESERVE
@ SHN_LORESERVE
Definition: ELF.h:981
llvm::ELF::STV_DEFAULT
@ STV_DEFAULT
Definition: ELF.h:1266
llvm::ELF::Elf32_Shdr::sh_name
Elf32_Word sh_name
Definition: ELF.h:952
llvm::ELF::STO_PPC64_LOCAL_MASK
@ STO_PPC64_LOCAL_MASK
Definition: ELF.h:409
llvm::ELF::RSS_GP
@ RSS_GP
Definition: ELF.h:1278
llvm::ELF::Elf64_Dyn::d_tag
Elf64_Sxword d_tag
Definition: ELF.h:1447
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
llvm::ELF::E_ARC_OSABI_V3
@ E_ARC_OSABI_V3
Definition: ELF.h:464
llvm::ELF::SHT_REL
@ SHT_REL
Definition: ELF.h:1003
llvm::ELF::SHT_HIUSER
@ SHT_HIUSER
Definition: ELF.h:1074
llvm::ELF::EF_AVR_ARCH_XMEGA7
@ EF_AVR_ARCH_XMEGA7
Definition: ELF.h:493
llvm::ELF::EM_ECOG2
@ EM_ECOG2
Definition: ELF.h:244
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX940
@ EF_AMDGPU_MACH_AMDGCN_GFX940
Definition: ELF.h:773
llvm::ELF::PT_MIPS_RTPROC
@ PT_MIPS_RTPROC
Definition: ELF.h:1419
llvm::ELF::SHF_MIPS_ADDR
@ SHF_MIPS_ADDR
Definition: ELF.h:1172
llvm::ELF::EF_AMDGPU_MACH_R600_RV770
@ EF_AMDGPU_MACH_R600_RV770
Definition: ELF.h:719
llvm::ELF::GNU_PROPERTY_X86_UINT32_OR_LO
@ GNU_PROPERTY_X86_UINT32_OR_LO
Definition: ELF.h:1660
llvm::ELF::Elf64_Sym
Definition: ELF.h:1209
llvm::ELF::SHT_MIPS_DWARF
@ SHT_MIPS_DWARF
Definition: ELF.h:1063
llvm::ELF::NT_AUXV
@ NT_AUXV
Definition: ELF.h:1559
llvm::ELF::EM_D30V
@ EM_D30V
Definition: ELF.h:202
llvm::ELF::EM_NDR1
@ EM_NDR1
Definition: ELF.h:173
uint32_t
llvm::ELF::Elf64_Shdr::sh_addr
Elf64_Addr sh_addr
Definition: ELF.h:969
llvm::ELF::DF_1_GLOBAL
@ DF_1_GLOBAL
Definition: ELF.h:1473
llvm::ELF::RHF_NOTPOT
@ RHF_NOTPOT
Definition: ELF.h:1505
llvm::ELF::VER_FLG_INFO
@ VER_FLG_INFO
Definition: ELF.h:1530
llvm::ELF::STB_LOPROC
@ STB_LOPROC
Definition: ELF.h:1242
llvm::ELF::SHT_AARCH64_MEMTAG_GLOBALS_DYNAMIC
@ SHT_AARCH64_MEMTAG_GLOBALS_DYNAMIC
Definition: ELF.h:1056
llvm::ELF::Elf64_Shdr::sh_flags
Elf64_Xword sh_flags
Definition: ELF.h:968
llvm::ELF::EF_HEXAGON_MACH_V65
@ EF_HEXAGON_MACH_V65
Definition: ELF.h:617
llvm::ELF::Elf64_Chdr::ch_type
Elf64_Word ch_type
Definition: ELF.h:1804
llvm::ELF::EM_68HC05
@ EM_68HC05
Definition: ELF.h:188
llvm::ELF::NT_PPC_TM_CGPR
@ NT_PPC_TM_CGPR
Definition: ELF.h:1574
llvm::ELF::EF_HEXAGON_ISA_V71
@ EF_HEXAGON_ISA_V71
Definition: ELF.h:643
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1030
@ EF_AMDGPU_MACH_AMDGCN_GFX1030
Definition: ELF.h:763
llvm::ELF::EF_MIPS_NOREORDER
@ EF_MIPS_NOREORDER
Definition: ELF.h:508
llvm::ELF::SHN_ABS
@ SHN_ABS
Definition: ELF.h:986
llvm::ELF::SHT_GROUP
@ SHT_GROUP
Definition: ELF.h:1009
llvm::ELF::ODK_PAGESIZE
@ ODK_PAGESIZE
Definition: ELF.h:604
llvm::ELF::EM_VIDEOCORE5
@ EM_VIDEOCORE5
Definition: ELF.h:294
llvm::ELF::EF_AMDGPU_MACH_R600_BARTS
@ EF_AMDGPU_MACH_R600_BARTS
Definition: ELF.h:727
llvm::ELF::Elf32_Sym::setType
void setType(unsigned char t)
Definition: ELF.h:1202
llvm::ELF::Elf32_Sym::st_other
unsigned char st_other
Definition: ELF.h:1194
llvm::ELF::EF_MSP430_MACH_MSP430x46
@ EF_MSP430_MACH_MSP430x46
Definition: ELF.h:872
llvm::ELF::SHF_COMPRESSED
@ SHF_COMPRESSED
Definition: ELF.h:1111
llvm::ELF::EM_ALTERA_NIOS2
@ EM_ALTERA_NIOS2
Definition: ELF.h:231
llvm::ELF::SHT_LLVM_BB_ADDR_MAP_V0
@ SHT_LLVM_BB_ADDR_MAP_V0
Definition: ELF.h:1028
llvm::ELF::NT_PPC_TM_SPR
@ NT_PPC_TM_SPR
Definition: ELF.h:1578
llvm::ELF::NT_FREEBSD_PROCSTAT_PSSTRINGS
@ NT_FREEBSD_PROCSTAT_PSSTRINGS
Definition: ELF.h:1725
llvm::ELF::EF_AMDGPU_MACH_R600_CAICOS
@ EF_AMDGPU_MACH_R600_CAICOS
Definition: ELF.h:728
llvm::ELF::PT_MIPS_REGINFO
@ PT_MIPS_REGINFO
Definition: ELF.h:1418
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_X86
@ GNU_PROPERTY_X86_FEATURE_2_X86
Definition: ELF.h:1680
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:1812
llvm::ELF::EF_MSP430_MACH_MSP430x22
@ EF_MSP430_MACH_MSP430x22
Definition: ELF.h:860
llvm::ELF::DF_BIND_NOW
@ DF_BIND_NOW
Definition: ELF.h:1466
llvm::ELF::EM_CLOUDSHIELD
@ EM_CLOUDSHIELD
Definition: ELF.h:288
llvm::ELF::NT_OPENBSD_PROCINFO
@ NT_OPENBSD_PROCINFO
Definition: ELF.h:1738
llvm::ELF::EM_VIDEOCORE3
@ EM_VIDEOCORE3
Definition: ELF.h:247
llvm::ELF::DF_1_NORELOC
@ DF_1_NORELOC
Definition: ELF.h:1494
llvm::ELF::Elf64_Sym::setType
void setType(unsigned char t)
Definition: ELF.h:1222
llvm::ELF::Elf64_Phdr::p_type
Elf64_Word p_type
Definition: ELF.h:1369
llvm::ELF::EM_STM8
@ EM_STM8
Definition: ELF.h:282
llvm::ELF::PT_LOAD
@ PT_LOAD
Definition: ELF.h:1382
llvm::ELF::PT_GNU_EH_FRAME
@ PT_GNU_EH_FRAME
Definition: ELF.h:1396
llvm::ELF::NT_GNU_ABI_TAG
@ NT_GNU_ABI_TAG
Definition: ELF.h:1620
llvm::ELF::EF_AMDGPU_MACH_R600_R630
@ EF_AMDGPU_MACH_R600_R630
Definition: ELF.h:713
llvm::ELF::SHF_OS_NONCONFORMING
@ SHF_OS_NONCONFORMING
Definition: ELF.h:1102
llvm::ELF::EM_68HC08
@ EM_68HC08
Definition: ELF.h:187
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1010
@ EF_AMDGPU_MACH_AMDGCN_GFX1010
Definition: ELF.h:760
llvm::ELF::EF_AVR_ARCH_AVR4
@ EF_AVR_ARCH_AVR4
Definition: ELF.h:482
llvm::ELF::EM_KVARC
@ EM_KVARC
Definition: ELF.h:310
llvm::ELF::Elf64_Rela::setSymbol
void setSymbol(Elf64_Word s)
Definition: ELF.h:1345
llvm::ELF::GNU_PROPERTY_X86_ISA_1_BASELINE
@ GNU_PROPERTY_X86_ISA_1_BASELINE
Definition: ELF.h:1691
llvm::ELF::FDO_PACKAGING_METADATA
@ FDO_PACKAGING_METADATA
Definition: ELF.h:1625
llvm::ELF::Elf32_Shdr::sh_link
Elf32_Word sh_link
Definition: ELF.h:958
llvm::ELF::NT_FPREGSET
@ NT_FPREGSET
Definition: ELF.h:1556
llvm::ELF::ELFOSABI_ARM
@ ELFOSABI_ARM
Definition: ELF.h:363
llvm::ELF::EF_MSP430_MACH_MSP430x43
@ EF_MSP430_MACH_MSP430x43
Definition: ELF.h:869
llvm::ELF::Elf64_Ehdr::e_version
Elf64_Word e_version
Definition: ELF.h:91
llvm::ELF::EF_AMDGPU_MACH_R600_CEDAR
@ EF_AMDGPU_MACH_R600_CEDAR
Definition: ELF.h:721
llvm::ELF::Elf64_Ehdr::e_shstrndx
Elf64_Half e_shstrndx
Definition: ELF.h:101
llvm::ELF::EM_VPP500
@ EM_VPP500
Definition: ELF.h:145
llvm::ELF::EI_MAG2
@ EI_MAG2
Definition: ELF.h:50
llvm::ELF::GNU_PROPERTY_AARCH64_FEATURE_1_AND
@ GNU_PROPERTY_AARCH64_FEATURE_1_AND
Definition: ELF.h:1657
llvm::ELF::Elf64_Rela::getSymbol
Elf64_Word getSymbol() const
Definition: ELF.h:1343
llvm::ELF::EM_MANIK
@ EM_MANIK
Definition: ELF.h:267
llvm::ELF::EF_HEXAGON_MACH_V67T
@ EF_HEXAGON_MACH_V67T
Definition: ELF.h:620
llvm::ELF::EM_68HC11
@ EM_68HC11
Definition: ELF.h:186
llvm::ELF::Elf32_Rel::getSymbol
Elf32_Word getSymbol() const
Definition: ELF.h:1290
llvm::ELF::NT_FREEBSD_ARCH_TAG
@ NT_FREEBSD_ARCH_TAG
Definition: ELF.h:1701
llvm::ELF::Elf64_Sym::st_other
unsigned char st_other
Definition: ELF.h:1212
llvm::ELF::EF_XTENSA_XT_INSN
@ EF_XTENSA_XT_INSN
Definition: ELF.h:939
llvm::ELF::NT_S390_SYSTEM_CALL
@ NT_S390_SYSTEM_CALL
Definition: ELF.h:1594
llvm::ELF::STT_FILE
@ STT_FILE
Definition: ELF.h:1252
llvm::ELF::EF_AVR_ARCH_AVR31
@ EF_AVR_ARCH_AVR31
Definition: ELF.h:480
llvm::ELF::EF_HEXAGON_MACH_V5
@ EF_HEXAGON_MACH_V5
Definition: ELF.h:613
llvm::ELF::EM_SHARC
@ EM_SHARC
Definition: ELF.h:242
llvm::ELF::Elf32_Phdr::p_paddr
Elf32_Addr p_paddr
Definition: ELF.h:1360
llvm::ELF::Elf32_Phdr::p_align
Elf32_Word p_align
Definition: ELF.h:1364
llvm::ELF::EM_ME16
@ EM_ME16
Definition: ELF.h:175
llvm::ELF::SHT_RELR
@ SHT_RELR
Definition: ELF.h:1013
llvm::ELF::RHF_SGI_ONLY
@ RHF_SGI_ONLY
Definition: ELF.h:1508
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_V3
@ EF_AMDGPU_FEATURE_SRAMECC_V3
Definition: ELF.h:806
llvm::ELF::PT_SUNW_UNWIND
@ PT_SUNW_UNWIND
Definition: ELF.h:1398
llvm::ELF::EM_STXP7X
@ EM_STXP7X
Definition: ELF.h:259
llvm::ELF::NT_S390_HIGH_GPRS
@ NT_S390_HIGH_GPRS
Definition: ELF.h:1587
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX802
@ EF_AMDGPU_MACH_AMDGCN_GFX802
Definition: ELF.h:750
uint16_t
llvm::ELF::EM_MIPS
@ EM_MIPS
Definition: ELF.h:141
llvm::ELF::Elf64_Rela::setSymbolAndType
void setSymbolAndType(Elf64_Word s, Elf64_Word t)
Definition: ELF.h:1347
llvm::ELF::SHN_MIPS_ACOMMON
@ SHN_MIPS_ACOMMON
Definition: ELF.h:570
llvm::ELF::EM_CDP
@ EM_CDP
Definition: ELF.h:311
llvm::ELF::SHT_SYMTAB
@ SHT_SYMTAB
Definition: ELF.h:996
llvm::ELF::VER_NDX_LOCAL
@ VER_NDX_LOCAL
Definition: ELF.h:1534
llvm::ELF::SHT_PROGBITS
@ SHT_PROGBITS
Definition: ELF.h:995
llvm::ELF::ODK_EXCEPTIONS
@ ODK_EXCEPTIONS
Definition: ELF.h:595
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_NEEDED
@ GNU_PROPERTY_X86_FEATURE_2_NEEDED
Definition: ELF.h:1661
llvm::ELF::Elf32_Rel::setType
void setType(unsigned char t)
Definition: ELF.h:1293
llvm::ELF::SHT_GNU_verdef
@ SHT_GNU_verdef
Definition: ELF.h:1039
llvm::ELF::SHT_ANDROID_REL
@ SHT_ANDROID_REL
Definition: ELF.h:1017
llvm::ELF::RHF_CORD
@ RHF_CORD
Definition: ELF.h:1520
llvm::ELF::EM_MMIX
@ EM_MMIX
Definition: ELF.h:196
llvm::ELF::EF_AVR_ARCH_AVR35
@ EF_AVR_ARCH_AVR35
Definition: ELF.h:481
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1034
@ EF_AMDGPU_MACH_AMDGCN_GFX1034
Definition: ELF.h:771
llvm::ELF::Elf32_Phdr::p_flags
Elf32_Word p_flags
Definition: ELF.h:1363
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:1307
llvm::ELF::NT_FREEBSD_NOINIT_TAG
@ NT_FREEBSD_NOINIT_TAG
Definition: ELF.h:1700
llvm::ELF::EM_K10M
@ EM_K10M
Definition: ELF.h:279
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1101
@ EF_AMDGPU_MACH_AMDGCN_GFX1101
Definition: ELF.h:779
llvm::ELF::SYMENTRY_SIZE32
@ SYMENTRY_SIZE32
Definition: ELF.h:1230
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX805
@ EF_AMDGPU_MACH_AMDGCN_GFX805
Definition: ELF.h:769
llvm::ELF::EI_NIDENT
@ EI_NIDENT
Definition: ELF.h:58
llvm::ELF::EF_PPC64_ABI
@ EF_PPC64_ABI
Definition: ELF.h:403
llvm::ELF::EM_NS32K
@ EM_NS32K
Definition: ELF.h:214
llvm::ELF::EM_MN10300
@ EM_MN10300
Definition: ELF.h:205
llvm::ELF::convertEMachineToArchName
StringRef convertEMachineToArchName(uint16_t EMachine)
Convert an ELF's e_machine value into an architecture name.
Definition: ELF.cpp:205
llvm::ELF::EM_SE_C17
@ EM_SE_C17
Definition: ELF.h:249
llvm::ELF::ELF_NOTE_GNU
constexpr const char * ELF_NOTE_GNU
Definition: ELF.h:1785
llvm::ELF::EM_TRICORE
@ EM_TRICORE
Definition: ELF.h:160
llvm::ELF::SHN_HEXAGON_SCOMMON_8
@ SHN_HEXAGON_SCOMMON_8
Definition: ELF.h:655
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1013
@ EF_AMDGPU_MACH_AMDGCN_GFX1013
Definition: ELF.h:775
llvm::ELF::GNU_PROPERTY_X86_FEATURE_1_IBT
@ GNU_PROPERTY_X86_FEATURE_1_IBT
Definition: ELF.h:1677
llvm::ELF::NT_OPENBSD_WCOOKIE
@ NT_OPENBSD_WCOOKIE
Definition: ELF.h:1743
llvm::ELF::Elf32_Ehdr::e_phoff
Elf32_Off e_phoff
Definition: ELF.h:67
llvm::ELF::EM_SPARC
@ EM_SPARC
Definition: ELF.h:135
llvm::ELF::EF_AMDGPU_FEATURE_SRAMECC_ON_V4
@ EF_AMDGPU_FEATURE_SRAMECC_ON_V4
Definition: ELF.h:832
llvm::ELF::DF_1_SYMINTPOSE
@ DF_1_SYMINTPOSE
Definition: ELF.h:1495
llvm::ELF::Elf32_Ehdr
Definition: ELF.h:61
llvm::ELF::STV_HIDDEN
@ STV_HIDDEN
Definition: ELF.h:1268
llvm::ELF::EM_SH
@ EM_SH
Definition: ELF.h:158
llvm::ELF::NT_PPC_PPR
@ NT_PPC_PPR
Definition: ELF.h:1570
llvm::ELF::EM_OPENRISC
@ EM_OPENRISC
Definition: ELF.h:208
llvm::ELF::ET_CORE
@ ET_CORE
Definition: ELF.h:119
llvm::ELF::ET_DYN
@ ET_DYN
Definition: ELF.h:118
llvm::ELF::Elf32_Shdr
Definition: ELF.h:951
llvm::ELF::SHT_HIPROC
@ SHT_HIPROC
Definition: ELF.h:1072
llvm::ELF::EF_HEXAGON_ISA_V4
@ EF_HEXAGON_ISA_V4
Definition: ELF.h:633
llvm::ELF::SHF_MASKOS
@ SHF_MASKOS
Definition: ELF.h:1121
llvm::ELF::NT_FREEBSD_ABI_TAG
@ NT_FREEBSD_ABI_TAG
Definition: ELF.h:1699
llvm::ELF::STB_LOCAL
@ STB_LOCAL
Definition: ELF.h:1236
llvm::ELF::EM_960
@ EM_960
Definition: ELF.h:147
llvm::ELF::EM_SPARC32PLUS
@ EM_SPARC32PLUS
Definition: ELF.h:146
llvm::ELF::NT_ARM_SVE
@ NT_ARM_SVE
Definition: ELF.h:1605
llvm::ELF::EF_ARM_EABI_UNKNOWN
@ EF_ARM_EABI_UNKNOWN
Definition: ELF.h:439
llvm::ELF::Elf32_Ehdr::e_phnum
Elf32_Half e_phnum
Definition: ELF.h:72
llvm::ELF::ELFDATA2MSB
@ ELFDATA2MSB
Definition: ELF.h:336
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1035
@ EF_AMDGPU_MACH_AMDGCN_GFX1035
Definition: ELF.h:770
llvm::ELF::Elf32_Dyn::d_ptr
Elf32_Addr d_ptr
Definition: ELF.h:1441
llvm::ELF::ELFOSABI_C6000_LINUX
@ ELFOSABI_C6000_LINUX
Definition: ELF.h:365
llvm::ELF::SHT_HASH
@ SHT_HASH
Definition: ELF.h:999
llvm::ELF::NT_ARM_TLS
@ NT_ARM_TLS
Definition: ELF.h:1602
llvm::ELF::EM_TILE64
@ EM_TILE64
Definition: ELF.h:283
llvm::ELF::ELFOSABI_AMDGPU_PAL
@ ELFOSABI_AMDGPU_PAL
Definition: ELF.h:361
llvm::ELF::Elf64_Ehdr::e_shnum
Elf64_Half e_shnum
Definition: ELF.h:100
llvm::ELF::EM_OPEN8
@ EM_OPEN8
Definition: ELF.h:292
llvm::ELF::Elf32_Shdr::sh_type
Elf32_Word sh_type
Definition: ELF.h:953
llvm::ELF::EF_AVR_ARCH_AVR51
@ EF_AVR_ARCH_AVR51
Definition: ELF.h:484
llvm::ELF::EM_CUDA
@ EM_CUDA
Definition: ELF.h:286
llvm::ELF::Elf32_Phdr
Definition: ELF.h:1356
llvm::ELF::EF_AMDGPU_MACH_R600_R600
@ EF_AMDGPU_MACH_R600_R600
Definition: ELF.h:712
llvm::ELF::EM_M32R
@ EM_M32R
Definition: ELF.h:204
llvm::ELF::NT_OPENBSD_AUXV
@ NT_OPENBSD_AUXV
Definition: ELF.h:1739
llvm::ELF::NT_FREEBSD_FCTL_WXNEEDED
@ NT_FREEBSD_FCTL_WXNEEDED
Definition: ELF.h:1710
llvm::ELF::SHT_LOOS
@ SHT_LOOS
Definition: ELF.h:1014
llvm::ELF::ELFCOMPRESS_LOOS
@ ELFCOMPRESS_LOOS
Definition: ELF.h:1828
llvm::ELF::EM_TPC
@ EM_TPC
Definition: ELF.h:215
llvm::ELF::SHT_FINI_ARRAY
@ SHT_FINI_ARRAY
Definition: ELF.h:1007
llvm::ELF::Elf32_Rela
Definition: ELF.h:1300
llvm::ELF::ODK_HWPATCH
@ ODK_HWPATCH
Definition: ELF.h:597
llvm::ELF::PT_SUNW_EH_FRAME
@ PT_SUNW_EH_FRAME
Definition: ELF.h:1397
llvm::ELF::GNU_ABI_TAG_SOLARIS
@ GNU_ABI_TAG_SOLARIS
Definition: ELF.h:1778
llvm::ELF::EI_ABIVERSION
@ EI_ABIVERSION
Definition: ELF.h:56
llvm::ELF::EF_MIPS_MACH_4650
@ EF_MIPS_MACH_4650
Definition: ELF.h:530
llvm::ELF::NT_ARCH
@ NT_ARCH
Definition: ELF.h:1548
llvm::ELF::EF_AVR_ARCH_XMEGA3
@ EF_AVR_ARCH_XMEGA3
Definition: ELF.h:489
llvm::ELF::EM_CR
@ EM_CR
Definition: ELF.h:220
llvm::ELF::EF_AVR_ARCH_AVR5
@ EF_AVR_ARCH_AVR5
Definition: ELF.h:483
llvm::ELF::NT_GNU_HWCAP
@ NT_GNU_HWCAP
Definition: ELF.h:1621
llvm::ELF::EM_IA_64
@ EM_IA_64
Definition: ELF.h:166
llvm::ELF::ODK_HWAND
@ ODK_HWAND
Definition: ELF.h:600
llvm::ELF::EM_TILEGX
@ EM_TILEGX
Definition: ELF.h:287
llvm::ELF::EF_MIPS_MACH_LS3A
@ EF_MIPS_MACH_LS3A
Definition: ELF.h:544
llvm::ELF::SHT_AARCH64_MEMTAG_GLOBALS_STATIC
@ SHT_AARCH64_MEMTAG_GLOBALS_STATIC
Definition: ELF.h:1055
llvm::ELF::Elf32_Chdr
Definition: ELF.h:1796
llvm::ELF::EM_MCHP_PIC
@ EM_MCHP_PIC
Definition: ELF.h:300
llvm::ELF::EM_LOONGARCH
@ EM_LOONGARCH
Definition: ELF.h:322
llvm::ELF::EM_CSR_KALIMBA
@ EM_CSR_KALIMBA
Definition: ELF.h:315
llvm::ELF::ElfMagic
static const char ElfMagic[]
Definition: ELF.h:44
llvm::ELF::DF_1_ORIGIN
@ DF_1_ORIGIN
Definition: ELF.h:1479
llvm::ELF::PT_MIPS_OPTIONS
@ PT_MIPS_OPTIONS
Definition: ELF.h:1420
llvm::ELF::EF_HEXAGON_ISA_V60
@ EF_HEXAGON_ISA_V60
Definition: ELF.h:636
llvm::ELF::EM_SLE9X
@ EM_SLE9X
Definition: ELF.h:277
llvm::ELF::DF_1_SINGLETON
@ DF_1_SINGLETON
Definition: ELF.h:1497
llvm::ELF::NT_FREEBSD_FCTL_ASLR_DISABLE
@ NT_FREEBSD_FCTL_ASLR_DISABLE
Definition: ELF.h:1707
llvm::ELF::RHF_GUARANTEE_START_INIT
@ RHF_GUARANTEE_START_INIT
Definition: ELF.h:1513
llvm::ELF::SHF_MIPS_GPREL
@ SHF_MIPS_GPREL
Definition: ELF.h:1166
llvm::ELF::SHT_LLVM_PART_PHDR
@ SHT_LLVM_PART_PHDR
Definition: ELF.h:1027
llvm::ELF::NT_AMD_PAL_METADATA
@ NT_AMD_PAL_METADATA
Definition: ELF.h:1759
llvm::ELF::SHN_MIPS_TEXT
@ SHN_MIPS_TEXT
Definition: ELF.h:571
Other
std::optional< std::vector< StOtherPiece > > Other
Definition: ELFYAML.cpp:1260
llvm::ELF::EM_INTEL207
@ EM_INTEL207
Definition: ELF.h:303
llvm::ELF::EI_MAG3
@ EI_MAG3
Definition: ELF.h:51
llvm::ELF::VER_DEF_CURRENT
@ VER_DEF_CURRENT
Definition: ELF.h:1527
llvm::ELF::EM_MMA
@ EM_MMA
Definition: ELF.h:170
llvm::ELF::NT_LWPSINFO
@ NT_LWPSINFO
Definition: ELF.h:1564
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_RESERVED_0X43
@ EF_AMDGPU_MACH_AMDGCN_RESERVED_0X43
Definition: ELF.h:776
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX703
@ EF_AMDGPU_MACH_AMDGCN_GFX703
Definition: ELF.h:746
llvm::ELF::EF_HEXAGON_ISA_V3
@ EF_HEXAGON_ISA_V3
Definition: ELF.h:632
llvm::ELF::VER_NDX_GLOBAL
@ VER_NDX_GLOBAL
Definition: ELF.h:1535
llvm::ELF::EM_CRIS
@ EM_CRIS
Definition: ELF.h:192
llvm::ELF::Elf64_Ehdr::getDataEncoding
unsigned char getDataEncoding() const
Definition: ELF.h:108
llvm::ELF::Elf64_Dyn
Definition: ELF.h:1446
llvm::ELF::SHT_GNU_versym
@ SHT_GNU_versym
Definition: ELF.h:1041
llvm::ELF::DF_1_EDITED
@ DF_1_EDITED
Definition: ELF.h:1493
llvm::ELF::EM_CRAYNV2
@ EM_CRAYNV2
Definition: ELF.h:268
llvm::ELF::EF_AVR_ARCH_MASK
@ EF_AVR_ARCH_MASK
Definition: ELF.h:495
llvm::ELF::PF_R
@ PF_R
Definition: ELF.h:1431
llvm::ELF::EM_JAVELIN
@ EM_JAVELIN
Definition: ELF.h:193
llvm::ELF::EM_COREA_1ST
@ EM_COREA_1ST
Definition: ELF.h:289
llvm::ELF::EF_MIPS_MACH_LS2E
@ EF_MIPS_MACH_LS2E
Definition: ELF.h:542
llvm::ELF::EM_386
@ EM_386
Definition: ELF.h:136
llvm::ELF::EF_HEXAGON_MACH_V71
@ EF_HEXAGON_MACH_V71
Definition: ELF.h:623
llvm::ELF::Elf64_Rela::r_info
Elf64_Xword r_info
Definition: ELF.h:1338
llvm::ELF::EM_FX66
@ EM_FX66
Definition: ELF.h:182
llvm::ELF::EF_AVR_ARCH_XMEGA1
@ EF_AVR_ARCH_XMEGA1
Definition: ELF.h:487
llvm::ELF::Elf64_Ehdr::getFileClass
unsigned char getFileClass() const
Definition: ELF.h:107
llvm::ELF::Elf64_Ehdr
Definition: ELF.h:87
llvm::ELF::Elf64_Phdr::p_flags
Elf64_Word p_flags
Definition: ELF.h:1370
llvm::ELF::GNU_ABI_TAG_NETBSD
@ GNU_ABI_TAG_NETBSD
Definition: ELF.h:1780
llvm::ELF::ELFOSABI_NETBSD
@ ELFOSABI_NETBSD
Definition: ELF.h:343
llvm::ELF::NT_PPC_TM_CTAR
@ NT_PPC_TM_CTAR
Definition: ELF.h:1579
llvm::ELF::EF_ARM_ABI_FLOAT_HARD
@ EF_ARM_ABI_FLOAT_HARD
Definition: ELF.h:437
llvm::ELF::PT_NOTE
@ PT_NOTE
Definition: ELF.h:1385
llvm::ELF::EF_MIPS_MACH_OCTEON2
@ EF_MIPS_MACH_OCTEON2
Definition: ELF.h:536
llvm::ELF::EF_AMDGPU_MACH
@ EF_AMDGPU_MACH
Definition: ELF.h:704
llvm::ELF::SHN_AMDGPU_LDS
@ SHN_AMDGPU_LDS
Definition: ELF.h:1748
llvm::ELF::EF_MIPS_ARCH_32R6
@ EF_MIPS_ARCH_32R6
Definition: ELF.h:563
llvm::ELF::SHT_ARM_DEBUGOVERLAY
@ SHT_ARM_DEBUGOVERLAY
Definition: ELF.h:1051
llvm::ELF::Elf64_Shdr
Definition: ELF.h:965
llvm::ELF::SHT_LLVM_SYMPART
@ SHT_LLVM_SYMPART
Definition: ELF.h:1025
llvm::ELF::DF_1_NOHDR
@ DF_1_NOHDR
Definition: ELF.h:1492
llvm::ELF::Elf32_Rel::r_offset
Elf32_Addr r_offset
Definition: ELF.h:1285
llvm::ELF::EM_MN10200
@ EM_MN10200
Definition: ELF.h:206
llvm::ELF::EF_MSP430_MACH_MSP430X
@ EF_MSP430_MACH_MSP430X
Definition: ELF.h:871
llvm::ELF::ELFOSABI_FREEBSD
@ ELFOSABI_FREEBSD
Definition: ELF.h:350
llvm::ELF::EF_MIPS_ABI_EABI32
@ EF_MIPS_ABI_EABI32
Definition: ELF.h:521
llvm::ELF::STB_HIOS
@ STB_HIOS
Definition: ELF.h:1241
llvm::ELF::Elf64_Phdr::p_paddr
Elf64_Addr p_paddr
Definition: ELF.h:1373
llvm::ELF::EF_AVR_ARCH_AVR3
@ EF_AVR_ARCH_AVR3
Definition: ELF.h:479
llvm::ELF::GNU_PROPERTY_X86_ISA_1_V3
@ GNU_PROPERTY_X86_ISA_1_V3
Definition: ELF.h:1693
llvm::ELF::EF_MSP430_MACH_MSP430x33
@ EF_MSP430_MACH_MSP430x33
Definition: ELF.h:866
llvm::ELF::NT_MEMTAG_LEVEL_NONE
@ NT_MEMTAG_LEVEL_NONE
Definition: ELF.h:1643
llvm::ELF::Elf32_Sym
Definition: ELF.h:1189
llvm::ELF::EM_MAX
@ EM_MAX
Definition: ELF.h:219
llvm::ELF::EF_ARC_MACH_MSK
@ EF_ARC_MACH_MSK
Definition: ELF.h:455
llvm::ELF::Elf64_Rela::getType
Elf64_Word getType() const
Definition: ELF.h:1344
llvm::ELF::DF_1_IGNMULDEF
@ DF_1_IGNMULDEF
Definition: ELF.h:1490
llvm::ELF::EF_MIPS_ABI_EABI64
@ EF_MIPS_ABI_EABI64
Definition: ELF.h:522
llvm::ELF::EM_ARCA
@ EM_ARCA
Definition: ELF.h:226
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX909
@ EF_AMDGPU_MACH_AMDGCN_GFX909
Definition: ELF.h:758
llvm::ELF::STT_OBJECT
@ STT_OBJECT
Definition: ELF.h:1249
llvm::ELF::EF_ARC_CPU_ARCV2HS
@ EF_ARC_CPU_ARCV2HS
Definition: ELF.h:461
llvm::ELF::NT_MEMTAG_LEVEL_SYNC
@ NT_MEMTAG_LEVEL_SYNC
Definition: ELF.h:1645
llvm::ELF::NT_FREEBSD_PROCSTAT_UMASK
@ NT_FREEBSD_PROCSTAT_UMASK
Definition: ELF.h:1722
llvm::ELF::Elf64_Rel::setSymbolAndType
void setSymbolAndType(Elf64_Word s, Elf64_Word t)
Definition: ELF.h:1330
llvm::ELF::E_ARC_MACH_ARC700
@ E_ARC_MACH_ARC700
Definition: ELF.h:459
llvm::ELF::EM_TRIMEDIA
@ EM_TRIMEDIA
Definition: ELF.h:256
llvm::ELF::EF_LOONGARCH_ABI_SINGLE_FLOAT
@ EF_LOONGARCH_ABI_SINGLE_FLOAT
Definition: ELF.h:918
llvm::ELF::DF_1_INITFIRST
@ DF_1_INITFIRST
Definition: ELF.h:1477
llvm::ELF::SHT_LLVM_ADDRSIG
@ SHT_LLVM_ADDRSIG
Definition: ELF.h:1021
llvm::ELF::EM_MIPS_X
@ EM_MIPS_X
Definition: ELF.h:167
llvm::ELF::EM_PCP
@ EM_PCP
Definition: ELF.h:171
llvm::ELF::Elf64_Phdr
Definition: ELF.h:1368
llvm::ELF::EF_HEXAGON_ISA_V73
@ EF_HEXAGON_ISA_V73
Definition: ELF.h:644
llvm::ELF::EF_HEXAGON_MACH_V71T
@ EF_HEXAGON_MACH_V71T
Definition: ELF.h:624
llvm::ELF::ODK_TAGS
@ ODK_TAGS
Definition: ELF.h:599
llvm::ELF::SHT_X86_64_UNWIND
@ SHT_X86_64_UNWIND
Definition: ELF.h:1059
llvm::ELF::EM_S390
@ EM_S390
Definition: ELF.h:150
llvm::ELF::DF_1_TRANS
@ DF_1_TRANS
Definition: ELF.h:1481
llvm::ELF::EF_ARM_VFP_FLOAT
@ EF_ARM_VFP_FLOAT
Definition: ELF.h:436
llvm::ELF::RHF_RLD_ORDER_SAFE
@ RHF_RLD_ORDER_SAFE
Definition: ELF.h:1523
llvm::ELF::SHT_ARM_PREEMPTMAP
@ SHT_ARM_PREEMPTMAP
Definition: ELF.h:1048
llvm::ELF::STT_SECTION
@ STT_SECTION
Definition: ELF.h:1251
llvm::ELF::NT_LLVM_OPENMP_OFFLOAD_PRODUCER_VERSION
@ NT_LLVM_OPENMP_OFFLOAD_PRODUCER_VERSION
Definition: ELF.h:1772
llvm::ELF::SHT_ANDROID_RELR
@ SHT_ANDROID_RELR
Definition: ELF.h:1036
llvm::ELF::EM_ARC
@ EM_ARC
Definition: ELF.h:161
llvm::ELF::NT_GNU_BUILD_ATTRIBUTE_OPEN
@ NT_GNU_BUILD_ATTRIBUTE_OPEN
Definition: ELF.h:1549
llvm::ELF::Elf64_Chdr
Definition: ELF.h:1803
llvm::ELF::EF_MIPS_MACH_9000
@ EF_MIPS_MACH_9000
Definition: ELF.h:541
llvm::ELF::EM_SEP
@ EM_SEP
Definition: ELF.h:225
llvm::ELF::PT_ARM_ARCHEXT
@ PT_ARM_ARCHEXT
Definition: ELF.h:1410
llvm::ELF::convertArchNameToEMachine
uint16_t convertArchNameToEMachine(StringRef Arch)
Convert an architecture name into ELF's e_machine value.
Definition: ELF.cpp:17
llvm::ELF::RSS_UNDEF
@ RSS_UNDEF
Definition: ELF.h:1277
llvm::ELF::Elf64_Chdr::ch_reserved
Elf64_Word ch_reserved
Definition: ELF.h:1805
llvm::ELF::Elf64_Sym::st_value
Elf64_Addr st_value
Definition: ELF.h:1214
llvm::ELF::EM_XCORE
@ EM_XCORE
Definition: ELF.h:299
llvm::ELF::RHF_DEFAULT_DELAY_LOAD
@ RHF_DEFAULT_DELAY_LOAD
Definition: ELF.h:1517
llvm::ELF::GNU_PROPERTY_AARCH64_FEATURE_1_BTI
@ GNU_PROPERTY_AARCH64_FEATURE_1_BTI
Definition: ELF.h:1671
llvm::ELF::GNU_PROPERTY_STACK_SIZE
@ GNU_PROPERTY_STACK_SIZE
Definition: ELF.h:1655
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::Elf64_Ehdr::e_shoff
Elf64_Off e_shoff
Definition: ELF.h:94
llvm::ELF::ELFOSABI_OPENBSD
@ ELFOSABI_OPENBSD
Definition: ELF.h:353
llvm::ELF::EM_DSP24
@ EM_DSP24
Definition: ELF.h:246
llvm::ELF::E_ARC_MACH_ARC600
@ E_ARC_MACH_ARC600
Definition: ELF.h:457
llvm::ELF::EF_MIPS_ABI
@ EF_MIPS_ABI
Definition: ELF.h:523
llvm::ELF::EF_MSP430_MACH_MSP430x31
@ EF_MSP430_MACH_MSP430x31
Definition: ELF.h:864
llvm::ELF::EM_PDP11
@ EM_PDP11
Definition: ELF.h:181
llvm::ELF::EM_SCORE7
@ EM_SCORE7
Definition: ELF.h:245
llvm::ELF::Elf64_Rel::setSymbol
void setSymbol(Elf64_Word s)
Definition: ELF.h:1328
llvm::ELF::EM_BLACKFIN
@ EM_BLACKFIN
Definition: ELF.h:223
llvm::ELF::EF_CSKY_810
@ EF_CSKY_810
Definition: ELF.h:894
llvm::ELF::GNU_PROPERTY_X86_FEATURE_2_MMX
@ GNU_PROPERTY_X86_FEATURE_2_MMX
Definition: ELF.h:1682
llvm::ELF::EM_LANAI
@ EM_LANAI
Definition: ELF.h:318
llvm::ELF::RHF_DELTA_C_PLUS_PLUS
@ RHF_DELTA_C_PLUS_PLUS
Definition: ELF.h:1512
llvm::ELF::EF_MIPS_ARCH_32R2
@ EF_MIPS_ARCH_32R2
Definition: ELF.h:561
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX600
@ EF_AMDGPU_MACH_AMDGCN_GFX600
Definition: ELF.h:741
llvm::ELF::Elf32_Shdr::sh_flags
Elf32_Word sh_flags
Definition: ELF.h:954
llvm::ELF::PT_TLS
@ PT_TLS
Definition: ELF.h:1388
llvm::ELF::ELFCOMPRESS_HIOS
@ ELFCOMPRESS_HIOS
Definition: ELF.h:1829
llvm::ELF::SHT_MSP430_ATTRIBUTES
@ SHT_MSP430_ATTRIBUTES
Definition: ELF.h:1066
llvm::ELF::EF_MIPS_ARCH_ASE
@ EF_MIPS_ARCH_ASE
Definition: ELF.h:551
llvm::ELF::ET_LOPROC
@ ET_LOPROC
Definition: ELF.h:122
llvm::ELF::DF_SYMBOLIC
@ DF_SYMBOLIC
Definition: ELF.h:1464
llvm::ELF::EF_MSP430_MACH_MSP430x44
@ EF_MSP430_MACH_MSP430x44
Definition: ELF.h:870
llvm::ELF::EM_C166
@ EM_C166
Definition: ELF.h:234
llvm::ELF::SHF_MIPS_NOSTRIP
@ SHF_MIPS_NOSTRIP
Definition: ELF.h:1163
llvm::ELF::EF_AMDGPU_MACH_R600_RESERVED_LAST
@ EF_AMDGPU_MACH_R600_RESERVED_LAST
Definition: ELF.h:734
llvm::ELF::NT_NETBSDCORE_AUXV
@ NT_NETBSDCORE_AUXV
Definition: ELF.h:1732
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:1137
llvm::ELF::Elf64_Ehdr::e_phentsize
Elf64_Half e_phentsize
Definition: ELF.h:97
llvm::ELF::ET_EXEC
@ ET_EXEC
Definition: ELF.h:117
llvm::ELF::ODK_NULL
@ ODK_NULL
Definition: ELF.h:593
llvm::ELF::EF_LOONGARCH_OBJABI_V0
@ EF_LOONGARCH_OBJABI_V0
Definition: ELF.h:923
llvm::ELF::EM_XTENSA
@ EM_XTENSA
Definition: ELF.h:211
llvm::ELF::NT_OPENBSD_FPREGS
@ NT_OPENBSD_FPREGS
Definition: ELF.h:1741
llvm::ELF::EF_AMDGPU_MACH_R600_RV710
@ EF_AMDGPU_MACH_R600_RV710
Definition: ELF.h:717
llvm::ELF::RHF_NONE
@ RHF_NONE
Definition: ELF.h:1503
llvm::ELF::EM_ECOG1
@ EM_ECOG1
Definition: ELF.h:263
llvm::ELF::EF_MIPS_ARCH
@ EF_MIPS_ARCH
Definition: ELF.h:565
llvm::ELF::EM_PRISM
@ EM_PRISM
Definition: ELF.h:198
llvm::ELF::EF_ARM_EABI_VER2
@ EF_ARM_EABI_VER2
Definition: ELF.h:441
llvm::ELF::Elf32_Rela::r_addend
Elf32_Sword r_addend
Definition: ELF.h:1303
llvm::ELF::NT_ANDROID_TYPE_IDENT
@ NT_ANDROID_TYPE_IDENT
Definition: ELF.h:1630
llvm::ELF::SHT_PREINIT_ARRAY
@ SHT_PREINIT_ARRAY
Definition: ELF.h:1008
llvm::ELF::EF_HEXAGON_ISA
@ EF_HEXAGON_ISA
Definition: ELF.h:646
llvm::ELF::Elf64_Phdr::p_vaddr
Elf64_Addr p_vaddr
Definition: ELF.h:1372
llvm::ELF::SHT_NOTE
@ SHT_NOTE
Definition: ELF.h:1001
llvm::ELF::EF_AMDGPU_MACH_AMDGCN_GFX1103
@ EF_AMDGPU_MACH_AMDGCN_GFX1103
Definition: ELF.h:777
llvm::ELF::VER_NEED_NONE
@ VER_NEED_NONE
Definition: ELF.h:1541
llvm::ELF::EF_AVR_ARCH_XMEGA4
@ EF_AVR_ARCH_XMEGA4
Definition: ELF.h:490
llvm::ELF::SHT_GNU_ATTRIBUTES
@ SHT_GNU_ATTRIBUTES
Definition: ELF.h:1037
llvm::ELF::Elf32_Phdr::p_filesz
Elf32_Word p_filesz
Definition: ELF.h:1361
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:1358
llvm::ELF::SHF_MIPS_STRING
@ SHF_MIPS_STRING
Definition: ELF.h:1175
llvm::ELF::Elf32_Chdr::ch_type
Elf32_Word ch_type
Definition: ELF.h:1797
llvm::ELF::PT_GNU_RELRO
@ PT_GNU_RELRO
Definition: ELF.h:1401
llvm::ELF::Elf32_Ehdr::e_shoff
Elf32_Off e_shoff
Definition: ELF.h:68
llvm::ELF::EM_COREA_2ND
@ EM_COREA_2ND
Definition: ELF.h:290