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