LLVM  16.0.0git
COFFYAML.cpp
Go to the documentation of this file.
1 //===- COFFYAML.cpp - COFF YAMLIO implementation --------------------------===//
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 file defines classes for handling the YAML representation of COFF.
10 //
11 //===----------------------------------------------------------------------===//
12 
14 #include "llvm/ADT/StringRef.h"
16 #include <cstdint>
17 #include <cstring>
18 
19 #define ECase(X) IO.enumCase(Value, #X, COFF::X);
20 
21 namespace llvm {
22 
23 namespace COFFYAML {
24 
25 Section::Section() { memset(&Header, 0, sizeof(COFF::section)); }
26 Symbol::Symbol() { memset(&Header, 0, sizeof(COFF::symbol)); }
27 Object::Object() { memset(&Header, 0, sizeof(COFF::header)); }
28 
29 } // end namespace COFFYAML
30 
31 namespace yaml {
32 
34  IO &IO, COFFYAML::COMDATType &Value) {
35  IO.enumCase(Value, "0", 0);
43 }
44 
45 void
48  IO.enumCase(Value, "0", 0);
53 }
54 
56  IO &IO, COFFYAML::AuxSymbolType &Value) {
58 }
59 
61  IO &IO, COFF::MachineTypes &Value) {
88 }
89 
91  IO &IO, COFF::SymbolBaseType &Value) {
108 }
109 
111  IO &IO, COFF::SymbolStorageClass &Value) {
139 }
140 
142  IO &IO, COFF::SymbolComplexType &Value) {
147 }
148 
150  IO &IO, COFF::RelocationTypeI386 &Value) {
162 }
163 
165  IO &IO, COFF::RelocationTypeAMD64 &Value) {
183 }
184 
186  IO &IO, COFF::RelocationTypesARM &Value) {
204 }
205 
226 }
227 
229  IO &IO, COFF::WindowsSubsystem &Value) {
244 }
245 #undef ECase
246 
247 #define BCase(X) IO.bitSetCase(Value, #X, COFF::X);
249  IO &IO, COFF::Characteristics &Value) {
265 }
266 
291 }
292 
294  IO &IO, COFF::DLLCharacteristics &Value) {
306 }
307 #undef BCase
308 
309 namespace {
310 
311 struct NSectionSelectionType {
312  NSectionSelectionType(IO &)
313  : SelectionType(COFFYAML::COMDATType(0)) {}
314  NSectionSelectionType(IO &, uint8_t C)
315  : SelectionType(COFFYAML::COMDATType(C)) {}
316 
317  uint8_t denormalize(IO &) { return SelectionType; }
318 
320 };
321 
322 struct NWeakExternalCharacteristics {
323  NWeakExternalCharacteristics(IO &)
325  NWeakExternalCharacteristics(IO &, uint32_t C)
327 
328  uint32_t denormalize(IO &) { return Characteristics; }
329 
331 };
332 
333 struct NSectionCharacteristics {
334  NSectionCharacteristics(IO &)
336  NSectionCharacteristics(IO &, uint32_t C)
338 
339  uint32_t denormalize(IO &) { return Characteristics; }
340 
342 };
343 
344 struct NAuxTokenType {
345  NAuxTokenType(IO &)
346  : AuxType(COFFYAML::AuxSymbolType(0)) {}
347  NAuxTokenType(IO &, uint8_t C)
348  : AuxType(COFFYAML::AuxSymbolType(C)) {}
349 
350  uint32_t denormalize(IO &) { return AuxType; }
351 
353 };
354 
355 struct NStorageClass {
356  NStorageClass(IO &) : StorageClass(COFF::SymbolStorageClass(0)) {}
357  NStorageClass(IO &, uint8_t S) : StorageClass(COFF::SymbolStorageClass(S)) {}
358 
359  uint8_t denormalize(IO &) { return StorageClass; }
360 
362 };
363 
364 struct NMachine {
365  NMachine(IO &) : Machine(COFF::MachineTypes(0)) {}
366  NMachine(IO &, uint16_t M) : Machine(COFF::MachineTypes(M)) {}
367 
368  uint16_t denormalize(IO &) { return Machine; }
369 
371 };
372 
373 struct NHeaderCharacteristics {
374  NHeaderCharacteristics(IO &) : Characteristics(COFF::Characteristics(0)) {}
375  NHeaderCharacteristics(IO &, uint16_t C)
377 
378  uint16_t denormalize(IO &) { return Characteristics; }
379 
381 };
382 
383 template <typename RelocType>
384 struct NType {
385  NType(IO &) : Type(RelocType(0)) {}
386  NType(IO &, uint16_t T) : Type(RelocType(T)) {}
387 
388  uint16_t denormalize(IO &) { return Type; }
389 
390  RelocType Type;
391 };
392 
393 struct NWindowsSubsystem {
394  NWindowsSubsystem(IO &) : Subsystem(COFF::WindowsSubsystem(0)) {}
395  NWindowsSubsystem(IO &, uint16_t C) : Subsystem(COFF::WindowsSubsystem(C)) {}
396 
397  uint16_t denormalize(IO &) { return Subsystem; }
398 
400 };
401 
402 struct NDLLCharacteristics {
403  NDLLCharacteristics(IO &) : Characteristics(COFF::DLLCharacteristics(0)) {}
404  NDLLCharacteristics(IO &, uint16_t C)
406 
407  uint16_t denormalize(IO &) { return Characteristics; }
408 
410 };
411 
412 } // end anonymous namespace
413 
415  COFFYAML::Relocation &Rel) {
416  IO.mapRequired("VirtualAddress", Rel.VirtualAddress);
417  IO.mapOptional("SymbolName", Rel.SymbolName, StringRef());
418  IO.mapOptional("SymbolTableIndex", Rel.SymbolTableIndex);
419 
420  COFF::header &H = *static_cast<COFF::header *>(IO.getContext());
421  if (H.Machine == COFF::IMAGE_FILE_MACHINE_I386) {
422  MappingNormalization<NType<COFF::RelocationTypeI386>, uint16_t> NT(
423  IO, Rel.Type);
424  IO.mapRequired("Type", NT->Type);
425  } else if (H.Machine == COFF::IMAGE_FILE_MACHINE_AMD64) {
426  MappingNormalization<NType<COFF::RelocationTypeAMD64>, uint16_t> NT(
427  IO, Rel.Type);
428  IO.mapRequired("Type", NT->Type);
429  } else if (H.Machine == COFF::IMAGE_FILE_MACHINE_ARMNT) {
430  MappingNormalization<NType<COFF::RelocationTypesARM>, uint16_t> NT(
431  IO, Rel.Type);
432  IO.mapRequired("Type", NT->Type);
433  } else if (H.Machine == COFF::IMAGE_FILE_MACHINE_ARM64 ||
434  H.Machine == COFF::IMAGE_FILE_MACHINE_ARM64EC) {
435  MappingNormalization<NType<COFF::RelocationTypesARM64>, uint16_t> NT(
436  IO, Rel.Type);
437  IO.mapRequired("Type", NT->Type);
438  } else {
439  IO.mapRequired("Type", Rel.Type);
440  }
441 }
442 
444  COFF::DataDirectory &DD) {
445  IO.mapRequired("RelativeVirtualAddress", DD.RelativeVirtualAddress);
446  IO.mapRequired("Size", DD.Size);
447 }
448 
450  COFFYAML::PEHeader &PH) {
451  MappingNormalization<NWindowsSubsystem, uint16_t> NWS(IO,
452  PH.Header.Subsystem);
453  MappingNormalization<NDLLCharacteristics, uint16_t> NDC(
454  IO, PH.Header.DLLCharacteristics);
455 
456  IO.mapOptional("AddressOfEntryPoint", PH.Header.AddressOfEntryPoint);
457  IO.mapOptional("ImageBase", PH.Header.ImageBase);
458  IO.mapOptional("SectionAlignment", PH.Header.SectionAlignment, 1);
459  IO.mapOptional("FileAlignment", PH.Header.FileAlignment, 1);
460  IO.mapOptional("MajorOperatingSystemVersion",
462  IO.mapOptional("MinorOperatingSystemVersion",
464  IO.mapOptional("MajorImageVersion", PH.Header.MajorImageVersion);
465  IO.mapOptional("MinorImageVersion", PH.Header.MinorImageVersion);
466  IO.mapOptional("MajorSubsystemVersion", PH.Header.MajorSubsystemVersion);
467  IO.mapOptional("MinorSubsystemVersion", PH.Header.MinorSubsystemVersion);
468  IO.mapOptional("Subsystem", NWS->Subsystem);
469  IO.mapOptional("DLLCharacteristics", NDC->Characteristics);
470  IO.mapOptional("SizeOfStackReserve", PH.Header.SizeOfStackReserve);
471  IO.mapOptional("SizeOfStackCommit", PH.Header.SizeOfStackCommit);
472  IO.mapOptional("SizeOfHeapReserve", PH.Header.SizeOfHeapReserve);
473  IO.mapOptional("SizeOfHeapCommit", PH.Header.SizeOfHeapCommit);
474 
475  IO.mapOptional("NumberOfRvaAndSize", PH.Header.NumberOfRvaAndSize,
477  IO.mapOptional("ExportTable", PH.DataDirectories[COFF::EXPORT_TABLE]);
478  IO.mapOptional("ImportTable", PH.DataDirectories[COFF::IMPORT_TABLE]);
479  IO.mapOptional("ResourceTable", PH.DataDirectories[COFF::RESOURCE_TABLE]);
480  IO.mapOptional("ExceptionTable", PH.DataDirectories[COFF::EXCEPTION_TABLE]);
481  IO.mapOptional("CertificateTable", PH.DataDirectories[COFF::CERTIFICATE_TABLE]);
482  IO.mapOptional("BaseRelocationTable",
484  IO.mapOptional("Debug", PH.DataDirectories[COFF::DEBUG_DIRECTORY]);
485  IO.mapOptional("Architecture", PH.DataDirectories[COFF::ARCHITECTURE]);
486  IO.mapOptional("GlobalPtr", PH.DataDirectories[COFF::GLOBAL_PTR]);
487  IO.mapOptional("TlsTable", PH.DataDirectories[COFF::TLS_TABLE]);
488  IO.mapOptional("LoadConfigTable",
490  IO.mapOptional("BoundImport", PH.DataDirectories[COFF::BOUND_IMPORT]);
491  IO.mapOptional("IAT", PH.DataDirectories[COFF::IAT]);
492  IO.mapOptional("DelayImportDescriptor",
494  IO.mapOptional("ClrRuntimeHeader",
496 }
497 
499  MappingNormalization<NMachine, uint16_t> NM(IO, H.Machine);
500  MappingNormalization<NHeaderCharacteristics, uint16_t> NC(IO,
501  H.Characteristics);
502 
503  IO.mapRequired("Machine", NM->Machine);
504  IO.mapOptional("Characteristics", NC->Characteristics);
505  IO.setContext(static_cast<void *>(&H));
506 }
507 
509  IO &IO, COFF::AuxiliaryFunctionDefinition &AFD) {
510  IO.mapRequired("TagIndex", AFD.TagIndex);
511  IO.mapRequired("TotalSize", AFD.TotalSize);
512  IO.mapRequired("PointerToLinenumber", AFD.PointerToLinenumber);
513  IO.mapRequired("PointerToNextFunction", AFD.PointerToNextFunction);
514 }
515 
517  IO &IO, COFF::AuxiliarybfAndefSymbol &AAS) {
518  IO.mapRequired("Linenumber", AAS.Linenumber);
519  IO.mapRequired("PointerToNextFunction", AAS.PointerToNextFunction);
520 }
521 
523  IO &IO, COFF::AuxiliaryWeakExternal &AWE) {
524  MappingNormalization<NWeakExternalCharacteristics, uint32_t> NWEC(
525  IO, AWE.Characteristics);
526  IO.mapRequired("TagIndex", AWE.TagIndex);
527  IO.mapRequired("Characteristics", NWEC->Characteristics);
528 }
529 
531  IO &IO, COFF::AuxiliarySectionDefinition &ASD) {
532  MappingNormalization<NSectionSelectionType, uint8_t> NSST(
533  IO, ASD.Selection);
534 
535  IO.mapRequired("Length", ASD.Length);
536  IO.mapRequired("NumberOfRelocations", ASD.NumberOfRelocations);
537  IO.mapRequired("NumberOfLinenumbers", ASD.NumberOfLinenumbers);
538  IO.mapRequired("CheckSum", ASD.CheckSum);
539  IO.mapRequired("Number", ASD.Number);
540  IO.mapOptional("Selection", NSST->SelectionType, COFFYAML::COMDATType(0));
541 }
542 
544  IO &IO, COFF::AuxiliaryCLRToken &ACT) {
545  MappingNormalization<NAuxTokenType, uint8_t> NATT(IO, ACT.AuxType);
546  IO.mapRequired("AuxType", NATT->AuxType);
547  IO.mapRequired("SymbolTableIndex", ACT.SymbolTableIndex);
548 }
549 
551  MappingNormalization<NStorageClass, uint8_t> NS(IO, S.Header.StorageClass);
552 
553  IO.mapRequired("Name", S.Name);
554  IO.mapRequired("Value", S.Header.Value);
555  IO.mapRequired("SectionNumber", S.Header.SectionNumber);
556  IO.mapRequired("SimpleType", S.SimpleType);
557  IO.mapRequired("ComplexType", S.ComplexType);
558  IO.mapRequired("StorageClass", NS->StorageClass);
559  IO.mapOptional("FunctionDefinition", S.FunctionDefinition);
560  IO.mapOptional("bfAndefSymbol", S.bfAndefSymbol);
561  IO.mapOptional("WeakExternal", S.WeakExternal);
562  IO.mapOptional("File", S.File, StringRef());
563  IO.mapOptional("SectionDefinition", S.SectionDefinition);
564  IO.mapOptional("CLRToken", S.CLRToken);
565 }
566 
568  MappingNormalization<NSectionCharacteristics, uint32_t> NC(
569  IO, Sec.Header.Characteristics);
570  IO.mapRequired("Name", Sec.Name);
571  IO.mapRequired("Characteristics", NC->Characteristics);
572  IO.mapOptional("VirtualAddress", Sec.Header.VirtualAddress, 0U);
573  IO.mapOptional("VirtualSize", Sec.Header.VirtualSize, 0U);
574  IO.mapOptional("Alignment", Sec.Alignment, 0U);
575 
576  // If this is a .debug$S .debug$T .debug$P, or .debug$H section parse the
577  // semantic representation of the symbols/types. If it is any other kind
578  // of section, just deal in raw bytes.
579  IO.mapOptional("SectionData", Sec.SectionData);
580  if (Sec.Name == ".debug$S")
581  IO.mapOptional("Subsections", Sec.DebugS);
582  else if (Sec.Name == ".debug$T")
583  IO.mapOptional("Types", Sec.DebugT);
584  else if (Sec.Name == ".debug$P")
585  IO.mapOptional("PrecompTypes", Sec.DebugP);
586  else if (Sec.Name == ".debug$H")
587  IO.mapOptional("GlobalHashes", Sec.DebugH);
588 
589  // Uninitialized sections, such as .bss, typically have no data, but the size
590  // is carried in SizeOfRawData, even though PointerToRawData is zero.
591  if (Sec.SectionData.binary_size() == 0 &&
592  NC->Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA)
593  IO.mapOptional("SizeOfRawData", Sec.Header.SizeOfRawData);
594 
595  IO.mapOptional("Relocations", Sec.Relocations);
596 }
597 
599  IO.mapTag("!COFF", true);
600  IO.mapOptional("OptionalHeader", Obj.OptionalHeader);
601  IO.mapRequired("header", Obj.Header);
602  IO.mapRequired("sections", Obj.Sections);
603  IO.mapRequired("symbols", Obj.Symbols);
604 }
605 
606 } // end namespace yaml
607 
608 } // end namespace llvm
llvm::yaml::ScalarEnumerationTraits< COFFYAML::COMDATType >::enumeration
static void enumeration(IO &IO, COFFYAML::COMDATType &Value)
Definition: COFFYAML.cpp:33
llvm::COFF::IMAGE_FILE_MACHINE_SH3DSP
@ IMAGE_FILE_MACHINE_SH3DSP
Definition: COFF.h:116
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER
@ IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER
Image supports Control Flow Guard.
Definition: COFF.h:640
llvm::COFFYAML::PEHeader::Header
COFF::PE32Header Header
Definition: COFFYAML.h:100
llvm::COFF::IMAGE_FILE_MACHINE_MIPSFPU
@ IMAGE_FILE_MACHINE_MIPSFPU
Definition: COFF.h:107
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_NX_COMPAT
@ IMAGE_DLL_CHARACTERISTICS_NX_COMPAT
Definition: COFF.h:629
llvm::COFF::IMAGE_COMDAT_SELECT_EXACT_MATCH
@ IMAGE_COMDAT_SELECT_EXACT_MATCH
Definition: COFF.h:410
llvm::COFF::CERTIFICATE_TABLE
@ CERTIFICATE_TABLE
Definition: COFF.h:587
llvm::COFF::IMAGE_REL_I386_SECTION
@ IMAGE_REL_I386_SECTION
Definition: COFF.h:338
llvm::COFF::AuxiliarySectionDefinition::NumberOfLinenumbers
uint16_t NumberOfLinenumbers
Definition: COFF.h:449
llvm::COFF::IMAGE_REL_AMD64_PAIR
@ IMAGE_REL_AMD64_PAIR
Definition: COFF.h:361
llvm::COFF::IMAGE_REL_AMD64_ADDR32
@ IMAGE_REL_AMD64_ADDR32
Definition: COFF.h:348
llvm::COFF::IMAGE_REL_ARM64_SECREL
@ IMAGE_REL_ARM64_SECREL
Definition: COFF.h:394
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18
llvm::COFF::IMAGE_SCN_LNK_NRELOC_OVFL
@ IMAGE_SCN_LNK_NRELOC_OVFL
Definition: COFF.h:315
llvm::COFF::IMAGE_FILE_DLL
@ IMAGE_FILE_DLL
The image file is a DLL.
Definition: COFF.h:155
llvm::COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA
@ IMAGE_SCN_CNT_UNINITIALIZED_DATA
Definition: COFF.h:290
M
We currently emits eax Perhaps this is what we really should generate is Is imull three or four cycles eax eax The current instruction priority is based on pattern complexity The former is more complex because it folds a load so the latter will not be emitted Perhaps we should use AddedComplexity to give LEA32r a higher priority We should always try to match LEA first since the LEA matching code does some estimate to determine whether the match is profitable if we care more about code then imull is better It s two bytes shorter than movl leal On a Pentium M
Definition: README.txt:252
llvm::COFF::IMAGE_SYM_DTYPE_POINTER
@ IMAGE_SYM_DTYPE_POINTER
A pointer to base type.
Definition: COFF.h:260
llvm::COFF::IMAGE_REL_ARM64_ADDR32NB
@ IMAGE_REL_ARM64_ADDR32NB
Definition: COFF.h:388
llvm::COFF::DataDirectory
Definition: COFF.h:577
llvm::COFFYAML::Symbol::Symbol
Symbol()
Definition: COFFYAML.cpp:26
llvm::COFF::DataDirectory::Size
uint32_t Size
Definition: COFF.h:579
llvm::COFF::IMAGE_SYM_CLASS_STATIC
@ IMAGE_SYM_CLASS_STATIC
Static.
Definition: COFF.h:210
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION
@ IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION
Isolation aware, but do not isolate the image.
Definition: COFF.h:631
llvm::COFF::AuxiliarybfAndefSymbol
Definition: COFF.h:425
llvm::COFF::IMAGE_REL_ARM64_PAGEBASE_REL21
@ IMAGE_REL_ARM64_PAGEBASE_REL21
Definition: COFF.h:390
llvm::COFF::IMAGE_SYM_CLASS_UNDEFINED_LABEL
@ IMAGE_SYM_CLASS_UNDEFINED_LABEL
Undefined label.
Definition: COFF.h:214
llvm::COFF::IMAGE_COMDAT_SELECT_NODUPLICATES
@ IMAGE_COMDAT_SELECT_NODUPLICATES
Definition: COFF.h:407
llvm::COFFYAML::Object::Sections
std::vector< Section > Sections
Definition: COFFYAML.h:108
StringRef.h
llvm::COFF::IMAGE_FILE_MACHINE_IA64
@ IMAGE_FILE_MACHINE_IA64
Definition: COFF.h:104
llvm::COFFYAML::Object::Object
Object()
Definition: COFFYAML.cpp:27
llvm::COFF::IMAGE_SCN_MEM_NOT_PAGED
@ IMAGE_SCN_MEM_NOT_PAGED
Definition: COFF.h:318
llvm::COFF::IMAGE_SYM_CLASS_FUNCTION
@ IMAGE_SYM_CLASS_FUNCTION
".bf" or ".ef" - beginning or end of function
Definition: COFF.h:229
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_NO_BIND
@ IMAGE_DLL_CHARACTERISTICS_NO_BIND
Do not bind the image.
Definition: COFF.h:636
llvm::COFF::PE32Header::MinorOperatingSystemVersion
uint16_t MinorOperatingSystemVersion
Definition: COFF.h:556
llvm::COFFYAML::Object::OptionalHeader
std::optional< PEHeader > OptionalHeader
Definition: COFFYAML.h:106
llvm::COFF::PE32Header::Subsystem
uint16_t Subsystem
Definition: COFF.h:565
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA
@ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA
ASLR with 64 bit address space.
Definition: COFF.h:623
llvm::COFF::PE32Header::ImageBase
uint64_t ImageBase
Definition: COFF.h:552
llvm::COFF::IMAGE_REL_ARM64_PAGEOFFSET_12L
@ IMAGE_REL_ARM64_PAGEOFFSET_12L
Definition: COFF.h:393
llvm::COFF::IMAGE_FILE_AGGRESSIVE_WS_TRIM
@ IMAGE_FILE_AGGRESSIVE_WS_TRIM
Aggressively trim working set. This is deprecated and must be 0.
Definition: COFF.h:138
llvm::COFF::IMAGE_SCN_MEM_DISCARDABLE
@ IMAGE_SCN_MEM_DISCARDABLE
Definition: COFF.h:316
llvm::yaml::ScalarEnumerationTraits< COFFYAML::AuxSymbolType >::enumeration
static void enumeration(IO &IO, COFFYAML::AuxSymbolType &Value)
Definition: COFFYAML.cpp:55
llvm::COFF::IMAGE_FILE_LOCAL_SYMS_STRIPPED
@ IMAGE_FILE_LOCAL_SYMS_STRIPPED
COFF symbol table entries for local symbols have been removed.
Definition: COFF.h:136
llvm::COFF::AuxiliarySectionDefinition::NumberOfRelocations
uint16_t NumberOfRelocations
Definition: COFF.h:448
llvm::COFF::IMAGE_SYM_CLASS_EXTERNAL
@ IMAGE_SYM_CLASS_EXTERNAL
External symbol.
Definition: COFF.h:209
llvm::COFF::IMAGE_REL_I386_ABSOLUTE
@ IMAGE_REL_I386_ABSOLUTE
Definition: COFF.h:332
llvm::COFF::IMAGE_REL_ARM_MOV32A
@ IMAGE_REL_ARM_MOV32A
Definition: COFF.h:377
llvm::COFF::IMAGE_FILE_MACHINE_AMD64
@ IMAGE_FILE_MACHINE_AMD64
Definition: COFF.h:97
llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN
@ IMAGE_FILE_MACHINE_UNKNOWN
Definition: COFF.h:95
llvm::COFF::IMAGE_REL_ARM64_REL21
@ IMAGE_REL_ARM64_REL21
Definition: COFF.h:391
llvm::COFFYAML::Section::Name
StringRef Name
Definition: COFFYAML.h:79
llvm::COFF::IMAGE_SUBSYSTEM_XBOX
@ IMAGE_SUBSYSTEM_XBOX
XBOX.
Definition: COFF.h:617
llvm::COFF::Characteristics
Characteristics
Definition: COFF.h:123
llvm::yaml::ScalarEnumerationTraits< COFF::RelocationTypesARM64 >::enumeration
static void enumeration(IO &IO, COFF::RelocationTypesARM64 &Value)
Definition: COFFYAML.cpp:206
llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CE_GUI
@ IMAGE_SUBSYSTEM_WINDOWS_CE_GUI
Windows CE.
Definition: COFF.h:610
llvm::COFF::IMAGE_REL_I386_DIR32NB
@ IMAGE_REL_I386_DIR32NB
Definition: COFF.h:336
llvm::COFF::IMAGE_SYM_TYPE_UINT
@ IMAGE_SYM_TYPE_UINT
An unsigned integer of natural size.
Definition: COFF.h:254
BCase
#define BCase(X)
Definition: COFFYAML.cpp:247
llvm::COFF::IMAGE_REL_AMD64_REL32
@ IMAGE_REL_AMD64_REL32
Definition: COFF.h:350
llvm::COFF::IMAGE_FILE_MACHINE_ARMNT
@ IMAGE_FILE_MACHINE_ARMNT
Definition: COFF.h:99
llvm::COFF::IMAGE_SYM_CLASS_MEMBER_OF_UNION
@ IMAGE_SYM_CLASS_MEMBER_OF_UNION
Member of union.
Definition: COFF.h:218
llvm::COFF::AuxiliaryCLRToken::AuxType
uint8_t AuxType
Definition: COFF.h:457
llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE
@ IMAGE_COMDAT_SELECT_ASSOCIATIVE
Definition: COFF.h:411
llvm::COFFYAML::Relocation
Definition: COFFYAML.h:58
T
#define T
Definition: Mips16ISelLowering.cpp:341
llvm::COFF::RESOURCE_TABLE
@ RESOURCE_TABLE
Definition: COFF.h:585
llvm::COFF::IMAGE_REL_ARM64_SECREL_HIGH12A
@ IMAGE_REL_ARM64_SECREL_HIGH12A
Definition: COFF.h:396
llvm::COFFYAML::Section
Definition: COFFYAML.h:70
llvm::COFF::IMAGE_REL_ARM_BRANCH20T
@ IMAGE_REL_ARM_BRANCH20T
Definition: COFF.h:379
llvm::yaml::MappingTraits
Definition: ModuleSummaryIndex.h:53
llvm::COFF::IMAGE_WEAK_EXTERN_SEARCH_ALIAS
@ IMAGE_WEAK_EXTERN_SEARCH_ALIAS
Definition: COFF.h:442
llvm::COFF::AuxiliarySectionDefinition::Length
uint32_t Length
Definition: COFF.h:447
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY
@ IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY
Code integrity checks are enforced.
Definition: COFF.h:627
llvm::COFF::section::VirtualSize
uint32_t VirtualSize
Definition: COFF.h:272
llvm::COFF::IMAGE_REL_ARM64_BRANCH26
@ IMAGE_REL_ARM64_BRANCH26
Definition: COFF.h:389
llvm::COFF::AuxiliaryFunctionDefinition
Definition: COFF.h:417
llvm::COFF::IMAGE_FILE_MACHINE_SH5
@ IMAGE_FILE_MACHINE_SH5
Definition: COFF.h:118
llvm::COFF::IMAGE_REL_ARM64_ABSOLUTE
@ IMAGE_REL_ARM64_ABSOLUTE
Definition: COFF.h:386
llvm::COFF::IMAGE_SUBSYSTEM_EFI_ROM
@ IMAGE_SUBSYSTEM_EFI_ROM
An EFI ROM image.
Definition: COFF.h:616
llvm::COFF::IMAGE_REL_ARM64_SECREL_LOW12A
@ IMAGE_REL_ARM64_SECREL_LOW12A
Definition: COFF.h:395
llvm::COFF::RelocationTypesARM
RelocationTypesARM
Definition: COFF.h:365
llvm::COFF::section::SizeOfRawData
uint32_t SizeOfRawData
Definition: COFF.h:274
llvm::COFF::COMDATType
COMDATType
Definition: COFF.h:406
llvm::COFF::SymbolStorageClass
SymbolStorageClass
Storage class tells where and what the symbol represents.
Definition: COFF.h:203
llvm::COFF::PE32Header::MajorSubsystemVersion
uint16_t MajorSubsystemVersion
Definition: COFF.h:559
llvm::COFFYAML::Relocation::SymbolTableIndex
std::optional< uint32_t > SymbolTableIndex
Definition: COFFYAML.h:67
llvm::COFF::IMAGE_REL_I386_DIR16
@ IMAGE_REL_I386_DIR16
Definition: COFF.h:333
llvm::COFF::PE32Header::FileAlignment
uint32_t FileAlignment
Definition: COFF.h:554
llvm::COFF::IMAGE_SYM_CLASS_NULL
@ IMAGE_SYM_CLASS_NULL
No symbol.
Definition: COFF.h:207
llvm::COFF::GLOBAL_PTR
@ GLOBAL_PTR
Definition: COFF.h:591
llvm::COFF::IMAGE_FILE_SYSTEM
@ IMAGE_FILE_SYSTEM
The image file is a system file, not a user program.
Definition: COFF.h:153
llvm::COFF::DELAY_IMPORT_DESCRIPTOR
@ DELAY_IMPORT_DESCRIPTOR
Definition: COFF.h:596
llvm::COFF::IMAGE_REL_ARM_SECREL
@ IMAGE_REL_ARM_SECREL
Definition: COFF.h:376
llvm::COFF::IMAGE_SCN_LNK_INFO
@ IMAGE_SCN_LNK_INFO
Definition: COFF.h:292
llvm::COFF::IMAGE_FILE_MACHINE_I386
@ IMAGE_FILE_MACHINE_I386
Definition: COFF.h:103
llvm::COFF::IMAGE_SCN_CNT_INITIALIZED_DATA
@ IMAGE_SCN_CNT_INITIALIZED_DATA
Definition: COFF.h:289
llvm::COFF::IMAGE_FILE_LARGE_ADDRESS_AWARE
@ IMAGE_FILE_LARGE_ADDRESS_AWARE
Image can handle > 2GiB addresses.
Definition: COFF.h:140
llvm::COFF::IMAGE_SYM_CLASS_FILE
@ IMAGE_SYM_CLASS_FILE
File name.
Definition: COFF.h:231
llvm::COFF::IMAGE_COMDAT_SELECT_NEWEST
@ IMAGE_COMDAT_SELECT_NEWEST
Definition: COFF.h:413
llvm::COFF::IMAGE_REL_ARM_MOV32T
@ IMAGE_REL_ARM_MOV32T
Definition: COFF.h:378
llvm::COFF::IMAGE_COMDAT_SELECT_SAME_SIZE
@ IMAGE_COMDAT_SELECT_SAME_SIZE
Definition: COFF.h:409
llvm::COFF::IMAGE_SCN_LNK_REMOVE
@ IMAGE_SCN_LNK_REMOVE
Definition: COFF.h:293
llvm::COFF::LOAD_CONFIG_TABLE
@ LOAD_CONFIG_TABLE
Definition: COFF.h:593
llvm::COFF::IMAGE_FILE_BYTES_REVERSED_LO
@ IMAGE_FILE_BYTES_REVERSED_LO
Little endian: the LSB precedes the MSB in memory.
Definition: COFF.h:143
llvm::COFF::IMAGE_SYM_CLASS_END_OF_FUNCTION
@ IMAGE_SYM_CLASS_END_OF_FUNCTION
Physical end of function.
Definition: COFF.h:206
C
(vector float) vec_cmpeq(*A, *B) C
Definition: README_ALTIVEC.txt:86
llvm::COFF::IMAGE_FILE_MACHINE_SH4
@ IMAGE_FILE_MACHINE_SH4
Definition: COFF.h:117
llvm::COFF::IAT
@ IAT
Definition: COFF.h:595
StorageClass
COFF::SymbolStorageClass StorageClass
Definition: COFFYAML.cpp:361
llvm::COFFYAML::Section::Relocations
std::vector< Relocation > Relocations
Definition: COFFYAML.h:78
llvm::COFF::IMAGE_SYM_CLASS_TYPE_DEFINITION
@ IMAGE_SYM_CLASS_TYPE_DEFINITION
Type definition.
Definition: COFF.h:220
llvm::COFFYAML::PEHeader::DataDirectories
std::optional< COFF::DataDirectory > DataDirectories[COFF::NUM_DATA_DIRECTORIES]
Definition: COFFYAML.h:102
llvm::COFF::IMAGE_SCN_MEM_READ
@ IMAGE_SCN_MEM_READ
Definition: COFF.h:321
llvm::COFF::IMAGE_SYM_CLASS_MEMBER_OF_ENUM
@ IMAGE_SYM_CLASS_MEMBER_OF_ENUM
Member of enumeration.
Definition: COFF.h:223
llvm::COFF::IMAGE_FILE_MACHINE_RISCV32
@ IMAGE_FILE_MACHINE_RISCV32
Definition: COFF.h:112
llvm::COFF::IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF
@ IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF
Definition: COFF.h:268
llvm::logicalview::LVBinaryType::COFF
@ COFF
llvm::COFF::AuxiliarySectionDefinition::CheckSum
uint32_t CheckSum
Definition: COFF.h:450
llvm::AMDGPU::CPol::NT
@ NT
Definition: SIDefines.h:313
llvm::COFF::IMAGE_FILE_MACHINE_WCEMIPSV2
@ IMAGE_FILE_MACHINE_WCEMIPSV2
Definition: COFF.h:120
llvm::COFF::IMAGE_REL_ARM_ADDR32NB
@ IMAGE_REL_ARM_ADDR32NB
Definition: COFF.h:368
llvm::COFF::IMAGE_SYM_CLASS_REGISTER
@ IMAGE_SYM_CLASS_REGISTER
Register variable.
Definition: COFF.h:211
llvm::COFF::IMAGE_REL_ARM_TOKEN
@ IMAGE_REL_ARM_TOKEN
Definition: COFF.h:371
llvm::COFF::IMAGE_REL_ARM64_ADDR32
@ IMAGE_REL_ARM64_ADDR32
Definition: COFF.h:387
llvm::COFF::IMAGE_SYM_CLASS_BIT_FIELD
@ IMAGE_SYM_CLASS_BIT_FIELD
Bit field.
Definition: COFF.h:225
llvm::COFF::IMAGE_FILE_MACHINE_POWERPCFP
@ IMAGE_FILE_MACHINE_POWERPCFP
Definition: COFF.h:110
llvm::COFF::IMAGE_FILE_BYTES_REVERSED_HI
@ IMAGE_FILE_BYTES_REVERSED_HI
Big endian: the MSB precedes the LSB in memory.
Definition: COFF.h:160
llvm::COFF::IMAGE_REL_I386_DIR32
@ IMAGE_REL_I386_DIR32
Definition: COFF.h:335
llvm::yaml::ScalarBitSetTraits< COFF::DLLCharacteristics >::bitset
static void bitset(IO &IO, COFF::DLLCharacteristics &Value)
Definition: COFFYAML.cpp:293
llvm::yaml::ScalarEnumerationTraits< COFF::MachineTypes >::enumeration
static void enumeration(IO &IO, COFF::MachineTypes &Value)
Definition: COFFYAML.cpp:60
llvm::COFF::IMAGE_SYM_CLASS_REGISTER_PARAM
@ IMAGE_SYM_CLASS_REGISTER_PARAM
Register parameter.
Definition: COFF.h:224
llvm::COFF::IMAGE_FILE_MACHINE_EBC
@ IMAGE_FILE_MACHINE_EBC
Definition: COFF.h:102
llvm::COFF::PE32Header::SectionAlignment
uint32_t SectionAlignment
Definition: COFF.h:553
llvm::COFF::EXCEPTION_TABLE
@ EXCEPTION_TABLE
Definition: COFF.h:586
llvm::COFF::IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY
@ IMAGE_WEAK_EXTERN_ANTI_DEPENDENCY
Definition: COFF.h:443
llvm::COFF::IMAGE_SYM_CLASS_WEAK_EXTERNAL
@ IMAGE_SYM_CLASS_WEAK_EXTERNAL
Duplicate tag.
Definition: COFF.h:234
llvm::COFF::IMAGE_REL_AMD64_SREL32
@ IMAGE_REL_AMD64_SREL32
Definition: COFF.h:360
llvm::COFF::AuxiliaryWeakExternal
Definition: COFF.h:433
llvm::COFF::IMAGE_FILE_MACHINE_RISCV128
@ IMAGE_FILE_MACHINE_RISCV128
Definition: COFF.h:114
llvm::COFF::IMAGE_SUBSYSTEM_OS2_CUI
@ IMAGE_SUBSYSTEM_OS2_CUI
The OS/2 character subsystem.
Definition: COFF.h:607
llvm::COFF::AuxiliaryFunctionDefinition::TagIndex
uint32_t TagIndex
Definition: COFF.h:418
llvm::COFFYAML::Object
Definition: COFFYAML.h:105
llvm::COFF::IMAGE_REL_AMD64_SSPAN32
@ IMAGE_REL_AMD64_SSPAN32
Definition: COFF.h:362
llvm::COFF::IMAGE_SYM_CLASS_END_OF_STRUCT
@ IMAGE_SYM_CLASS_END_OF_STRUCT
End of structure.
Definition: COFF.h:230
llvm::COFF::IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER
@ IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER
An EFI driver with run-time services.
Definition: COFF.h:614
llvm::COFF::SymbolComplexType
SymbolComplexType
Definition: COFF.h:258
llvm::COFF::TLS_TABLE
@ TLS_TABLE
Definition: COFF.h:592
llvm::COFF::IMAGE_SCN_TYPE_NOLOAD
@ IMAGE_SCN_TYPE_NOLOAD
Definition: COFF.h:286
llvm::yaml::ScalarBitSetTraits< COFF::Characteristics >::bitset
static void bitset(IO &IO, COFF::Characteristics &Value)
Definition: COFFYAML.cpp:248
llvm::COFF::symbol
Definition: COFF.h:187
llvm::COFF::IMAGE_FILE_MACHINE_MIPS16
@ IMAGE_FILE_MACHINE_MIPS16
Definition: COFF.h:106
llvm::COFFYAML::Relocation::SymbolName
StringRef SymbolName
Definition: COFFYAML.h:66
llvm::COFF::IMAGE_SCN_LNK_OTHER
@ IMAGE_SCN_LNK_OTHER
Definition: COFF.h:291
llvm::COFF::section::Characteristics
uint32_t Characteristics
Definition: COFF.h:280
llvm::COFF::IMAGE_REL_ARM64_SECREL_LOW12L
@ IMAGE_REL_ARM64_SECREL_LOW12L
Definition: COFF.h:397
llvm::COFF::IMAGE_REL_ARM_PAIR
@ IMAGE_REL_ARM_PAIR
Definition: COFF.h:382
llvm::COFF::IMAGE_FILE_UP_SYSTEM_ONLY
@ IMAGE_FILE_UP_SYSTEM_ONLY
This file should only be run on a uniprocessor machine.
Definition: COFF.h:157
llvm::COFF::IMAGE_SCN_MEM_PURGEABLE
@ IMAGE_SCN_MEM_PURGEABLE
Definition: COFF.h:296
llvm::COFF::IMAGE_SYM_TYPE_NULL
@ IMAGE_SYM_TYPE_NULL
No type information or unknown base type.
Definition: COFF.h:240
llvm::COFF::IMAGE_SYM_TYPE_WORD
@ IMAGE_SYM_TYPE_WORD
A word; unsigned 2-byte integer.
Definition: COFF.h:253
llvm::COFF::IMAGE_FILE_32BIT_MACHINE
@ IMAGE_FILE_32BIT_MACHINE
Machine is based on a 32bit word architecture.
Definition: COFF.h:145
llvm::COFF::section::VirtualAddress
uint32_t VirtualAddress
Definition: COFF.h:273
llvm::COFF::PE32Header::MajorImageVersion
uint16_t MajorImageVersion
Definition: COFF.h:557
llvm::COFF::SymbolBaseType
SymbolBaseType
Definition: COFF.h:239
llvm::COFF::IMAGE_SYM_TYPE_LONG
@ IMAGE_SYM_TYPE_LONG
A 4-byte signed integer.
Definition: COFF.h:245
llvm::COFFYAML::Section::DebugH
std::optional< CodeViewYAML::DebugHSection > DebugH
Definition: COFFYAML.h:77
llvm::COFF::IMAGE_SYM_CLASS_EXTERNAL_DEF
@ IMAGE_SYM_CLASS_EXTERNAL_DEF
External definition.
Definition: COFF.h:212
llvm::yaml::ScalarEnumerationTraits< COFF::RelocationTypesARM >::enumeration
static void enumeration(IO &IO, COFF::RelocationTypesARM &Value)
Definition: COFFYAML.cpp:185
ECase
#define ECase(X)
Definition: COFFYAML.cpp:19
llvm::COFF::AuxiliarybfAndefSymbol::PointerToNextFunction
uint32_t PointerToNextFunction
Definition: COFF.h:429
llvm::COFF::IMAGE_REL_AMD64_ABSOLUTE
@ IMAGE_REL_AMD64_ABSOLUTE
Definition: COFF.h:346
llvm::COFF::IMAGE_FILE_MACHINE_THUMB
@ IMAGE_FILE_MACHINE_THUMB
Definition: COFF.h:119
llvm::COFF::IMAGE_SCN_TYPE_NO_PAD
@ IMAGE_SCN_TYPE_NO_PAD
Definition: COFF.h:287
llvm::COFF::IMAGE_SYM_CLASS_ARGUMENT
@ IMAGE_SYM_CLASS_ARGUMENT
Function argument.
Definition: COFF.h:216
llvm::COFF::IMAGE_REL_I386_REL32
@ IMAGE_REL_I386_REL32
Definition: COFF.h:342
llvm::COFF::AuxiliaryCLRToken
Definition: COFF.h:456
llvm::COFF::IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER
@ IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER
An EFI driver with boot services.
Definition: COFF.h:612
llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI
@ IMAGE_SUBSYSTEM_WINDOWS_CUI
The Windows character subsystem.
Definition: COFF.h:606
llvm::COFF::AuxiliarybfAndefSymbol::Linenumber
uint16_t Linenumber
Definition: COFF.h:427
llvm::COFF::ARCHITECTURE
@ ARCHITECTURE
Definition: COFF.h:590
llvm::COFF::IMAGE_REL_ARM_BRANCH24T
@ IMAGE_REL_ARM_BRANCH24T
Definition: COFF.h:380
llvm::COFF::IMAGE_REL_AMD64_REL32_4
@ IMAGE_REL_AMD64_REL32_4
Definition: COFF.h:354
llvm::COFFYAML::PEHeader
Definition: COFFYAML.h:99
llvm::yaml::ScalarEnumerationTraits< COFFYAML::WeakExternalCharacteristics >::enumeration
static void enumeration(IO &IO, COFFYAML::WeakExternalCharacteristics &Value)
Definition: COFFYAML.cpp:46
llvm::COFF::IMAGE_REL_ARM_BRANCH24
@ IMAGE_REL_ARM_BRANCH24
Definition: COFF.h:369
llvm::COFF::IMAGE_REL_ARM_BRANCH11
@ IMAGE_REL_ARM_BRANCH11
Definition: COFF.h:370
llvm::COFF::IMAGE_SCN_MEM_SHARED
@ IMAGE_SCN_MEM_SHARED
Definition: COFF.h:319
llvm::COFF::IMAGE_FILE_LINE_NUMS_STRIPPED
@ IMAGE_FILE_LINE_NUMS_STRIPPED
COFF line numbers have been stripped.
Definition: COFF.h:133
llvm::COFF::IMAGE_SUBSYSTEM_NATIVE
@ IMAGE_SUBSYSTEM_NATIVE
Device drivers and native Windows processes.
Definition: COFF.h:604
llvm::COFF::IMAGE_SYM_TYPE_DWORD
@ IMAGE_SYM_TYPE_DWORD
An unsigned 4-byte integer.
Definition: COFF.h:255
llvm::COFF::IMAGE_REL_AMD64_REL32_5
@ IMAGE_REL_AMD64_REL32_5
Definition: COFF.h:355
llvm::COFFYAML::Section::SectionData
yaml::BinaryRef SectionData
Definition: COFFYAML.h:73
llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION
@ IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION
A BCD application.
Definition: COFF.h:618
llvm::COFF::IMAGE_SYM_CLASS_CLR_TOKEN
@ IMAGE_SYM_CLASS_CLR_TOKEN
External symbol in dmert public lib.
Definition: COFF.h:236
llvm::COFF::IMAGE_SYM_TYPE_STRUCT
@ IMAGE_SYM_TYPE_STRUCT
A structure.
Definition: COFF.h:248
llvm::COFF::PE32Header::MinorSubsystemVersion
uint16_t MinorSubsystemVersion
Definition: COFF.h:560
llvm::COFF::IMAGE_REL_AMD64_ADDR64
@ IMAGE_REL_AMD64_ADDR64
Definition: COFF.h:347
llvm::COFF::IMAGE_SCN_GPREL
@ IMAGE_SCN_GPREL
Definition: COFF.h:295
llvm::COFF::IMAGE_SYM_CLASS_UNDEFINED_STATIC
@ IMAGE_SYM_CLASS_UNDEFINED_STATIC
Undefined static.
Definition: COFF.h:221
llvm::COFF::IMAGE_SYM_DTYPE_ARRAY
@ IMAGE_SYM_DTYPE_ARRAY
An array of base type.
Definition: COFF.h:262
llvm::COFF::IMAGE_SYM_TYPE_CHAR
@ IMAGE_SYM_TYPE_CHAR
A character (signed byte).
Definition: COFF.h:242
llvm::COFF::RelocationTypeI386
RelocationTypeI386
Definition: COFF.h:331
llvm::COFF::IMAGE_FILE_MACHINE_RISCV64
@ IMAGE_FILE_MACHINE_RISCV64
Definition: COFF.h:113
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_GUARD_CF
@ IMAGE_DLL_CHARACTERISTICS_GUARD_CF
Definition: COFF.h:642
llvm::COFF::PE32Header::MajorOperatingSystemVersion
uint16_t MajorOperatingSystemVersion
Definition: COFF.h:555
llvm::COFF::IMAGE_REL_AMD64_SECREL7
@ IMAGE_REL_AMD64_SECREL7
Definition: COFF.h:358
llvm::COFF::AuxSymbolType
AuxSymbolType
Definition: COFF.h:268
llvm::COFFYAML::Symbol
Definition: COFFYAML.h:84
llvm::COFF::AuxiliarySectionDefinition::Selection
uint8_t Selection
Definition: COFF.h:452
llvm::COFF::IMAGE_FILE_MACHINE_ARM
@ IMAGE_FILE_MACHINE_ARM
Definition: COFF.h:98
llvm::COFF::IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
@ IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
If the image is on removable media, fully load it and copy it to swap.
Definition: COFF.h:149
llvm::COFFYAML::Section::DebugP
std::vector< CodeViewYAML::LeafRecord > DebugP
Definition: COFFYAML.h:76
llvm::yaml::ScalarEnumerationTraits< COFF::WindowsSubsystem >::enumeration
static void enumeration(IO &IO, COFF::WindowsSubsystem &Value)
Definition: COFFYAML.cpp:228
llvm::COFF::IMAGE_SCN_LNK_COMDAT
@ IMAGE_SCN_LNK_COMDAT
Definition: COFF.h:294
llvm::COFF::WeakExternalCharacteristics
WeakExternalCharacteristics
Definition: COFF.h:439
llvm::COFF::IMAGE_SYM_CLASS_LABEL
@ IMAGE_SYM_CLASS_LABEL
Label.
Definition: COFF.h:213
llvm::COFF::IMAGE_FILE_MACHINE_ARM64EC
@ IMAGE_FILE_MACHINE_ARM64EC
Definition: COFF.h:101
llvm::COFF::IMAGE_REL_ARM_ABSOLUTE
@ IMAGE_REL_ARM_ABSOLUTE
Definition: COFF.h:366
AuxType
COFFYAML::AuxSymbolType AuxType
Definition: COFFYAML.cpp:352
llvm::yaml::ScalarEnumerationTraits< COFF::SymbolStorageClass >::enumeration
static void enumeration(IO &IO, COFF::SymbolStorageClass &Value)
Definition: COFFYAML.cpp:110
llvm::COFF::IMAGE_FILE_RELOCS_STRIPPED
@ IMAGE_FILE_RELOCS_STRIPPED
The file does not contain base relocations and must be loaded at its preferred base.
Definition: COFF.h:128
llvm::COFF::IMAGE_SYM_TYPE_MOE
@ IMAGE_SYM_TYPE_MOE
A member of enumeration (a specific value).
Definition: COFF.h:251
llvm::COFF::IMAGE_SYM_TYPE_INT
@ IMAGE_SYM_TYPE_INT
A natural integer type on the target.
Definition: COFF.h:244
llvm::COFF::IMAGE_SYM_CLASS_STRUCT_TAG
@ IMAGE_SYM_CLASS_STRUCT_TAG
Structure tag.
Definition: COFF.h:217
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_NO_SEH
@ IMAGE_DLL_CHARACTERISTICS_NO_SEH
Does not use structured exception handling (SEH).
Definition: COFF.h:634
llvm::COFF::DEBUG_DIRECTORY
@ DEBUG_DIRECTORY
Definition: COFF.h:589
llvm::COFF::IMAGE_COMDAT_SELECT_LARGEST
@ IMAGE_COMDAT_SELECT_LARGEST
Definition: COFF.h:412
llvm::COFF::IMAGE_FILE_MACHINE_MIPSFPU16
@ IMAGE_FILE_MACHINE_MIPSFPU16
Definition: COFF.h:108
llvm::COFFYAML::Relocation::VirtualAddress
uint32_t VirtualAddress
Definition: COFFYAML.h:59
YAMLTraits.h
llvm::COFFYAML::Section::Section
Section()
Definition: COFFYAML.cpp:25
llvm::COFF::IMAGE_SYM_CLASS_BLOCK
@ IMAGE_SYM_CLASS_BLOCK
".bb" or ".eb" - beginning or end of block
Definition: COFF.h:227
llvm::yaml::ScalarBitSetTraits< COFF::SectionCharacteristics >::bitset
static void bitset(IO &IO, COFF::SectionCharacteristics &Value)
Definition: COFFYAML.cpp:267
llvm::COFF::PE32Header::SizeOfHeapCommit
uint64_t SizeOfHeapCommit
Definition: COFF.h:571
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:50
llvm::COFF::IMAGE_SYM_CLASS_UNION_TAG
@ IMAGE_SYM_CLASS_UNION_TAG
Union tag.
Definition: COFF.h:219
uint32_t
llvm::COFF::IMAGE_SYM_TYPE_BYTE
@ IMAGE_SYM_TYPE_BYTE
A byte; unsigned 1-byte integer.
Definition: COFF.h:252
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE
@ IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE
Terminal Server aware.
Definition: COFF.h:644
S
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
Definition: README.txt:210
llvm::COFF::IMAGE_REL_AMD64_REL32_2
@ IMAGE_REL_AMD64_REL32_2
Definition: COFF.h:352
llvm::COFF::IMAGE_REL_ARM64_PAGEOFFSET_12A
@ IMAGE_REL_ARM64_PAGEOFFSET_12A
Definition: COFF.h:392
llvm::COFF::AuxiliaryWeakExternal::TagIndex
uint32_t TagIndex
Definition: COFF.h:434
llvm::COFF::IMAGE_REL_AMD64_SECREL
@ IMAGE_REL_AMD64_SECREL
Definition: COFF.h:357
llvm::COFF::IMAGE_REL_ARM_REL32
@ IMAGE_REL_ARM_REL32
Definition: COFF.h:374
llvm::COFF::PE32Header::SizeOfStackCommit
uint64_t SizeOfStackCommit
Definition: COFF.h:569
llvm::COFFYAML::Object::Symbols
std::vector< Symbol > Symbols
Definition: COFFYAML.h:109
llvm::COFF::IMAGE_FILE_MACHINE_ARM64
@ IMAGE_FILE_MACHINE_ARM64
Definition: COFF.h:100
llvm::COFF::IMAGE_REL_ARM_BLX24
@ IMAGE_REL_ARM_BLX24
Definition: COFF.h:372
llvm::COFF::IMAGE_REL_I386_TOKEN
@ IMAGE_REL_I386_TOKEN
Definition: COFF.h:340
llvm::COFFYAML::Section::DebugT
std::vector< CodeViewYAML::LeafRecord > DebugT
Definition: COFFYAML.h:75
llvm::COFF::IMAGE_REL_ARM64_REL32
@ IMAGE_REL_ARM64_REL32
Definition: COFF.h:403
llvm::COFF::PE32Header::SizeOfHeapReserve
uint64_t SizeOfHeapReserve
Definition: COFF.h:570
llvm::COFF::IMPORT_TABLE
@ IMPORT_TABLE
Definition: COFF.h:584
llvm::COFF::IMAGE_SCN_MEM_LOCKED
@ IMAGE_SCN_MEM_LOCKED
Definition: COFF.h:298
llvm::COFF::BASE_RELOCATION_TABLE
@ BASE_RELOCATION_TABLE
Definition: COFF.h:588
llvm::COFF::IMAGE_REL_ARM_SECTION
@ IMAGE_REL_ARM_SECTION
Definition: COFF.h:375
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE
@ IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE
DLL can be relocated at load time.
Definition: COFF.h:625
llvm::COFF::IMAGE_FILE_MACHINE_POWERPC
@ IMAGE_FILE_MACHINE_POWERPC
Definition: COFF.h:109
llvm::yaml::ScalarEnumerationTraits< COFF::RelocationTypeAMD64 >::enumeration
static void enumeration(IO &IO, COFF::RelocationTypeAMD64 &Value)
Definition: COFFYAML.cpp:164
COFFYAML.h
H
#define H(x, y, z)
Definition: MD5.cpp:57
llvm::COFF::AuxiliaryCLRToken::SymbolTableIndex
uint32_t SymbolTableIndex
Definition: COFF.h:459
uint16_t
llvm::COFF::NUM_DATA_DIRECTORIES
@ NUM_DATA_DIRECTORIES
Definition: COFF.h:599
llvm::COFF::IMAGE_SCN_MEM_PRELOAD
@ IMAGE_SCN_MEM_PRELOAD
Definition: COFF.h:299
llvm::COFF::EXPORT_TABLE
@ EXPORT_TABLE
Definition: COFF.h:583
NC
#define NC
Definition: regutils.h:42
llvm::COFF::PE32Header::NumberOfRvaAndSize
uint32_t NumberOfRvaAndSize
Definition: COFF.h:574
llvm::COFF::WindowsSubsystem
WindowsSubsystem
Definition: COFF.h:602
llvm::COFF::IMAGE_REL_ARM64_TOKEN
@ IMAGE_REL_ARM64_TOKEN
Definition: COFF.h:398
llvm::yaml::ScalarEnumerationTraits< COFF::SymbolBaseType >::enumeration
static void enumeration(IO &IO, COFF::SymbolBaseType &Value)
Definition: COFFYAML.cpp:90
llvm::COFF::IMAGE_REL_ARM64_BRANCH14
@ IMAGE_REL_ARM64_BRANCH14
Definition: COFF.h:402
llvm::yaml::ScalarEnumerationTraits< COFF::RelocationTypeI386 >::enumeration
static void enumeration(IO &IO, COFF::RelocationTypeI386 &Value)
Definition: COFFYAML.cpp:149
llvm::COFF::IMAGE_SCN_CNT_CODE
@ IMAGE_SCN_CNT_CODE
Definition: COFF.h:288
llvm::COFF::AuxiliarySectionDefinition::Number
uint32_t Number
Definition: COFF.h:451
llvm::COFF::section
Definition: COFF.h:270
llvm::COFF::IMAGE_REL_AMD64_ADDR32NB
@ IMAGE_REL_AMD64_ADDR32NB
Definition: COFF.h:349
llvm::COFF::IMAGE_SYM_TYPE_SHORT
@ IMAGE_SYM_TYPE_SHORT
A 2-byte signed integer.
Definition: COFF.h:243
llvm::COFF::AuxiliaryFunctionDefinition::TotalSize
uint32_t TotalSize
Definition: COFF.h:419
llvm::COFF::IMAGE_REL_I386_REL16
@ IMAGE_REL_I386_REL16
Definition: COFF.h:334
llvm::COFF::IMAGE_SYM_TYPE_UNION
@ IMAGE_SYM_TYPE_UNION
An union.
Definition: COFF.h:249
llvm::COFFYAML::Section::DebugS
std::vector< CodeViewYAML::YAMLDebugSubsection > DebugS
Definition: COFFYAML.h:74
llvm::COFF::IMAGE_REL_I386_SEG12
@ IMAGE_REL_I386_SEG12
Definition: COFF.h:337
llvm::COFF::IMAGE_REL_ARM_BLX23T
@ IMAGE_REL_ARM_BLX23T
Definition: COFF.h:381
llvm::COFF::MachineTypes
MachineTypes
Definition: COFF.h:92
llvm::COFF::IMAGE_REL_AMD64_REL32_1
@ IMAGE_REL_AMD64_REL32_1
Definition: COFF.h:351
llvm::COFF::AuxiliarySectionDefinition
Definition: COFF.h:446
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_APPCONTAINER
@ IMAGE_DLL_CHARACTERISTICS_APPCONTAINER
A WDM driver.
Definition: COFF.h:638
llvm::COFF::PE32Header::AddressOfEntryPoint
uint32_t AddressOfEntryPoint
Definition: COFF.h:549
llvm::COFF::IMAGE_SYM_CLASS_SECTION
@ IMAGE_SYM_CLASS_SECTION
Line number, reformatted as symbol.
Definition: COFF.h:233
llvm::COFF::IMAGE_SUBSYSTEM_NATIVE_WINDOWS
@ IMAGE_SUBSYSTEM_NATIVE_WINDOWS
Native Windows 9x driver.
Definition: COFF.h:609
llvm::COFF::IMAGE_FILE_NET_RUN_FROM_SWAP
@ IMAGE_FILE_NET_RUN_FROM_SWAP
If the image is on network media, fully load it and copy it to swap.
Definition: COFF.h:151
llvm::COFF::DLLCharacteristics
DLLCharacteristics
Definition: COFF.h:621
llvm::COFF::IMAGE_FILE_EXECUTABLE_IMAGE
@ IMAGE_FILE_EXECUTABLE_IMAGE
The file is valid and can be run.
Definition: COFF.h:130
SelectionType
COFFYAML::COMDATType SelectionType
Definition: COFFYAML.cpp:319
llvm::COFF::AuxiliaryFunctionDefinition::PointerToNextFunction
uint32_t PointerToNextFunction
Definition: COFF.h:421
llvm::COFF::IMAGE_SYM_TYPE_VOID
@ IMAGE_SYM_TYPE_VOID
Used with void pointers and functions.
Definition: COFF.h:241
llvm::COFF::IMAGE_FILE_MACHINE_SH3
@ IMAGE_FILE_MACHINE_SH3
Definition: COFF.h:115
llvm::COFF::RelocationTypesARM64
RelocationTypesARM64
Definition: COFF.h:385
llvm::COFF::AuxiliaryWeakExternal::Characteristics
uint32_t Characteristics
Definition: COFF.h:435
llvm::COFF::IMAGE_REL_AMD64_REL32_3
@ IMAGE_REL_AMD64_REL32_3
Definition: COFF.h:353
llvm::COFF::CLR_RUNTIME_HEADER
@ CLR_RUNTIME_HEADER
Definition: COFF.h:597
llvm::COFF::IMAGE_REL_I386_SECREL
@ IMAGE_REL_I386_SECREL
Definition: COFF.h:339
Machine
COFF::MachineTypes Machine
Definition: COFFYAML.cpp:370
llvm::COFF::IMAGE_FILE_DEBUG_STRIPPED
@ IMAGE_FILE_DEBUG_STRIPPED
Debugging info has been removed.
Definition: COFF.h:147
llvm::COFFYAML::Section::Alignment
unsigned Alignment
Definition: COFFYAML.h:72
llvm::COFF::IMAGE_SYM_DTYPE_NULL
@ IMAGE_SYM_DTYPE_NULL
No complex type; simple scalar variable.
Definition: COFF.h:259
llvm::yaml::BinaryRef::binary_size
ArrayRef< uint8_t >::size_type binary_size() const
The number of bytes that are represented by this BinaryRef.
Definition: YAML.h:80
llvm::COFF::IMAGE_REL_ARM64_BRANCH19
@ IMAGE_REL_ARM64_BRANCH19
Definition: COFF.h:401
llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_GUI
@ IMAGE_SUBSYSTEM_WINDOWS_GUI
The Windows GUI subsystem.
Definition: COFF.h:605
llvm::COFF::IMAGE_FILE_MACHINE_R4000
@ IMAGE_FILE_MACHINE_R4000
Definition: COFF.h:111
Characteristics
COFFYAML::WeakExternalCharacteristics Characteristics
Definition: COFFYAML.cpp:330
llvm::COFF::AuxiliaryFunctionDefinition::PointerToLinenumber
uint32_t PointerToLinenumber
Definition: COFF.h:420
llvm::COFF::IMAGE_SUBSYSTEM_POSIX_CUI
@ IMAGE_SUBSYSTEM_POSIX_CUI
The POSIX character subsystem.
Definition: COFF.h:608
llvm::COFF::IMAGE_SCN_MEM_NOT_CACHED
@ IMAGE_SCN_MEM_NOT_CACHED
Definition: COFF.h:317
llvm::COFF::PE32Header::MinorImageVersion
uint16_t MinorImageVersion
Definition: COFF.h:558
llvm::COFF::IMAGE_REL_AMD64_SECTION
@ IMAGE_REL_AMD64_SECTION
Definition: COFF.h:356
llvm::COFF::header
Definition: COFF.h:64
llvm::COFFYAML::Object::Header
COFF::header Header
Definition: COFFYAML.h:107
llvm::COFF::IMAGE_SCN_MEM_EXECUTE
@ IMAGE_SCN_MEM_EXECUTE
Definition: COFF.h:320
llvm::COFF::IMAGE_SYM_CLASS_AUTOMATIC
@ IMAGE_SYM_CLASS_AUTOMATIC
Stack variable.
Definition: COFF.h:208
llvm::COFF::IMAGE_FILE_MACHINE_AM33
@ IMAGE_FILE_MACHINE_AM33
Definition: COFF.h:96
llvm::yaml::ScalarEnumerationTraits< COFF::SymbolComplexType >::enumeration
static void enumeration(IO &IO, COFF::SymbolComplexType &Value)
Definition: COFFYAML.cpp:141
Subsystem
COFF::WindowsSubsystem Subsystem
Definition: COFFYAML.cpp:399
llvm::msgpack::Type
Type
MessagePack types as defined in the standard, with the exception of Integer being divided into a sign...
Definition: MsgPackReader.h:48
llvm::COFFYAML::Symbol::Header
COFF::symbol Header
Definition: COFFYAML.h:85
llvm::COFFYAML::Relocation::Type
uint16_t Type
Definition: COFFYAML.h:60
llvm::COFF::PE32Header::SizeOfStackReserve
uint64_t SizeOfStackReserve
Definition: COFF.h:568
llvm::COFF::IMAGE_SCN_MEM_16BIT
@ IMAGE_SCN_MEM_16BIT
Definition: COFF.h:297
llvm::COFF::IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY
@ IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY
Definition: COFF.h:440
llvm::COFF::DataDirectory::RelativeVirtualAddress
uint32_t RelativeVirtualAddress
Definition: COFF.h:578
llvm::COFF::IMAGE_SYM_TYPE_ENUM
@ IMAGE_SYM_TYPE_ENUM
An enumerated type.
Definition: COFF.h:250
llvm::COFF::IMAGE_SYM_TYPE_DOUBLE
@ IMAGE_SYM_TYPE_DOUBLE
An 8-byte floating-point number.
Definition: COFF.h:247
llvm::COFF::IMAGE_REL_AMD64_TOKEN
@ IMAGE_REL_AMD64_TOKEN
Definition: COFF.h:359
llvm::COFF::IMAGE_REL_ARM64_ADDR64
@ IMAGE_REL_ARM64_ADDR64
Definition: COFF.h:400
llvm::COFF::IMAGE_REL_ARM_BLX11
@ IMAGE_REL_ARM_BLX11
Definition: COFF.h:373
llvm::COFFYAML::Section::Header
COFF::section Header
Definition: COFFYAML.h:71
llvm::COFF::IMAGE_REL_ARM_ADDR32
@ IMAGE_REL_ARM_ADDR32
Definition: COFF.h:367
llvm::COFF::IMAGE_SYM_CLASS_MEMBER_OF_STRUCT
@ IMAGE_SYM_CLASS_MEMBER_OF_STRUCT
Member of structure.
Definition: COFF.h:215
llvm::COFF::IMAGE_SYM_DTYPE_FUNCTION
@ IMAGE_SYM_DTYPE_FUNCTION
A function that returns a base type.
Definition: COFF.h:261
llvm::COFF::IMAGE_REL_I386_SECREL7
@ IMAGE_REL_I386_SECREL7
Definition: COFF.h:341
llvm::COFF::SectionCharacteristics
SectionCharacteristics
Definition: COFF.h:283
llvm::COFF::IMAGE_SYM_CLASS_ENUM_TAG
@ IMAGE_SYM_CLASS_ENUM_TAG
Enumeration tag.
Definition: COFF.h:222
llvm::Value
LLVM Value Representation.
Definition: Value.h:74
llvm::COFF::BOUND_IMPORT
@ BOUND_IMPORT
Definition: COFF.h:594
llvm::COFF::IMAGE_SYM_TYPE_FLOAT
@ IMAGE_SYM_TYPE_FLOAT
A 4-byte floating-point number.
Definition: COFF.h:246
llvm::COFF::IMAGE_FILE_MACHINE_M32R
@ IMAGE_FILE_MACHINE_M32R
Definition: COFF.h:105
llvm::COFF::IMAGE_WEAK_EXTERN_SEARCH_LIBRARY
@ IMAGE_WEAK_EXTERN_SEARCH_LIBRARY
Definition: COFF.h:441
llvm::COFF::IMAGE_COMDAT_SELECT_ANY
@ IMAGE_COMDAT_SELECT_ANY
Definition: COFF.h:408
llvm::COFF::IMAGE_SCN_MEM_WRITE
@ IMAGE_SCN_MEM_WRITE
Definition: COFF.h:322
llvm::COFF::IMAGE_SUBSYSTEM_UNKNOWN
@ IMAGE_SUBSYSTEM_UNKNOWN
An unknown subsystem.
Definition: COFF.h:603
llvm::COFF::RelocationTypeAMD64
RelocationTypeAMD64
Definition: COFF.h:345
llvm::COFF::IMAGE_SUBSYSTEM_EFI_APPLICATION
@ IMAGE_SUBSYSTEM_EFI_APPLICATION
An EFI application.
Definition: COFF.h:611
llvm::COFF::PE32Header::DLLCharacteristics
uint16_t DLLCharacteristics
Definition: COFF.h:567
llvm::COFF::IMAGE_REL_ARM64_SECTION
@ IMAGE_REL_ARM64_SECTION
Definition: COFF.h:399