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