LLVM  13.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);
52 }
53 
55  IO &IO, COFFYAML::AuxSymbolType &Value) {
57 }
58 
60  IO &IO, COFF::MachineTypes &Value) {
83 }
84 
86  IO &IO, COFF::SymbolBaseType &Value) {
103 }
104 
106  IO &IO, COFF::SymbolStorageClass &Value) {
134 }
135 
137  IO &IO, COFF::SymbolComplexType &Value) {
142 }
143 
145  IO &IO, COFF::RelocationTypeI386 &Value) {
157 }
158 
160  IO &IO, COFF::RelocationTypeAMD64 &Value) {
178 }
179 
181  IO &IO, COFF::RelocationTypesARM &Value) {
199 }
200 
221 }
222 
224  IO &IO, COFF::WindowsSubsystem &Value) {
239 }
240 #undef ECase
241 
242 #define BCase(X) IO.bitSetCase(Value, #X, COFF::X);
244  IO &IO, COFF::Characteristics &Value) {
260 }
261 
286 }
287 
289  IO &IO, COFF::DLLCharacteristics &Value) {
301 }
302 #undef BCase
303 
304 namespace {
305 
306 struct NSectionSelectionType {
307  NSectionSelectionType(IO &)
308  : SelectionType(COFFYAML::COMDATType(0)) {}
309  NSectionSelectionType(IO &, uint8_t C)
310  : SelectionType(COFFYAML::COMDATType(C)) {}
311 
312  uint8_t denormalize(IO &) { return SelectionType; }
313 
315 };
316 
317 struct NWeakExternalCharacteristics {
318  NWeakExternalCharacteristics(IO &)
320  NWeakExternalCharacteristics(IO &, uint32_t C)
322 
323  uint32_t denormalize(IO &) { return Characteristics; }
324 
326 };
327 
328 struct NSectionCharacteristics {
329  NSectionCharacteristics(IO &)
331  NSectionCharacteristics(IO &, uint32_t C)
333 
334  uint32_t denormalize(IO &) { return Characteristics; }
335 
337 };
338 
339 struct NAuxTokenType {
340  NAuxTokenType(IO &)
341  : AuxType(COFFYAML::AuxSymbolType(0)) {}
342  NAuxTokenType(IO &, uint8_t C)
343  : AuxType(COFFYAML::AuxSymbolType(C)) {}
344 
345  uint32_t denormalize(IO &) { return AuxType; }
346 
348 };
349 
350 struct NStorageClass {
351  NStorageClass(IO &) : StorageClass(COFF::SymbolStorageClass(0)) {}
352  NStorageClass(IO &, uint8_t S) : StorageClass(COFF::SymbolStorageClass(S)) {}
353 
354  uint8_t denormalize(IO &) { return StorageClass; }
355 
357 };
358 
359 struct NMachine {
360  NMachine(IO &) : Machine(COFF::MachineTypes(0)) {}
361  NMachine(IO &, uint16_t M) : Machine(COFF::MachineTypes(M)) {}
362 
363  uint16_t denormalize(IO &) { return Machine; }
364 
366 };
367 
368 struct NHeaderCharacteristics {
369  NHeaderCharacteristics(IO &) : Characteristics(COFF::Characteristics(0)) {}
370  NHeaderCharacteristics(IO &, uint16_t C)
371  : Characteristics(COFF::Characteristics(C)) {}
372 
373  uint16_t denormalize(IO &) { return Characteristics; }
374 
376 };
377 
378 template <typename RelocType>
379 struct NType {
380  NType(IO &) : Type(RelocType(0)) {}
381  NType(IO &, uint16_t T) : Type(RelocType(T)) {}
382 
383  uint16_t denormalize(IO &) { return Type; }
384 
385  RelocType Type;
386 };
387 
388 struct NWindowsSubsystem {
389  NWindowsSubsystem(IO &) : Subsystem(COFF::WindowsSubsystem(0)) {}
390  NWindowsSubsystem(IO &, uint16_t C) : Subsystem(COFF::WindowsSubsystem(C)) {}
391 
392  uint16_t denormalize(IO &) { return Subsystem; }
393 
395 };
396 
397 struct NDLLCharacteristics {
398  NDLLCharacteristics(IO &) : Characteristics(COFF::DLLCharacteristics(0)) {}
399  NDLLCharacteristics(IO &, uint16_t C)
401 
402  uint16_t denormalize(IO &) { return Characteristics; }
403 
405 };
406 
407 } // end anonymous namespace
408 
410  COFFYAML::Relocation &Rel) {
411  IO.mapRequired("VirtualAddress", Rel.VirtualAddress);
412  IO.mapOptional("SymbolName", Rel.SymbolName, StringRef());
413  IO.mapOptional("SymbolTableIndex", Rel.SymbolTableIndex);
414 
415  COFF::header &H = *static_cast<COFF::header *>(IO.getContext());
416  if (H.Machine == COFF::IMAGE_FILE_MACHINE_I386) {
417  MappingNormalization<NType<COFF::RelocationTypeI386>, uint16_t> NT(
418  IO, Rel.Type);
419  IO.mapRequired("Type", NT->Type);
420  } else if (H.Machine == COFF::IMAGE_FILE_MACHINE_AMD64) {
421  MappingNormalization<NType<COFF::RelocationTypeAMD64>, uint16_t> NT(
422  IO, Rel.Type);
423  IO.mapRequired("Type", NT->Type);
424  } else if (H.Machine == COFF::IMAGE_FILE_MACHINE_ARMNT) {
425  MappingNormalization<NType<COFF::RelocationTypesARM>, uint16_t> NT(
426  IO, Rel.Type);
427  IO.mapRequired("Type", NT->Type);
428  } else if (H.Machine == COFF::IMAGE_FILE_MACHINE_ARM64) {
429  MappingNormalization<NType<COFF::RelocationTypesARM64>, uint16_t> NT(
430  IO, Rel.Type);
431  IO.mapRequired("Type", NT->Type);
432  } else {
433  IO.mapRequired("Type", Rel.Type);
434  }
435 }
436 
438  COFF::DataDirectory &DD) {
439  IO.mapRequired("RelativeVirtualAddress", DD.RelativeVirtualAddress);
440  IO.mapRequired("Size", DD.Size);
441 }
442 
444  COFFYAML::PEHeader &PH) {
445  MappingNormalization<NWindowsSubsystem, uint16_t> NWS(IO,
446  PH.Header.Subsystem);
447  MappingNormalization<NDLLCharacteristics, uint16_t> NDC(
448  IO, PH.Header.DLLCharacteristics);
449 
450  IO.mapRequired("AddressOfEntryPoint", PH.Header.AddressOfEntryPoint);
451  IO.mapRequired("ImageBase", PH.Header.ImageBase);
452  IO.mapRequired("SectionAlignment", PH.Header.SectionAlignment);
453  IO.mapRequired("FileAlignment", PH.Header.FileAlignment);
454  IO.mapRequired("MajorOperatingSystemVersion",
456  IO.mapRequired("MinorOperatingSystemVersion",
458  IO.mapRequired("MajorImageVersion", PH.Header.MajorImageVersion);
459  IO.mapRequired("MinorImageVersion", PH.Header.MinorImageVersion);
460  IO.mapRequired("MajorSubsystemVersion", PH.Header.MajorSubsystemVersion);
461  IO.mapRequired("MinorSubsystemVersion", PH.Header.MinorSubsystemVersion);
462  IO.mapRequired("Subsystem", NWS->Subsystem);
463  IO.mapRequired("DLLCharacteristics", NDC->Characteristics);
464  IO.mapRequired("SizeOfStackReserve", PH.Header.SizeOfStackReserve);
465  IO.mapRequired("SizeOfStackCommit", PH.Header.SizeOfStackCommit);
466  IO.mapRequired("SizeOfHeapReserve", PH.Header.SizeOfHeapReserve);
467  IO.mapRequired("SizeOfHeapCommit", PH.Header.SizeOfHeapCommit);
468 
469  IO.mapOptional("ExportTable", PH.DataDirectories[COFF::EXPORT_TABLE]);
470  IO.mapOptional("ImportTable", PH.DataDirectories[COFF::IMPORT_TABLE]);
471  IO.mapOptional("ResourceTable", PH.DataDirectories[COFF::RESOURCE_TABLE]);
472  IO.mapOptional("ExceptionTable", PH.DataDirectories[COFF::EXCEPTION_TABLE]);
473  IO.mapOptional("CertificateTable", PH.DataDirectories[COFF::CERTIFICATE_TABLE]);
474  IO.mapOptional("BaseRelocationTable",
476  IO.mapOptional("Debug", PH.DataDirectories[COFF::DEBUG_DIRECTORY]);
477  IO.mapOptional("Architecture", PH.DataDirectories[COFF::ARCHITECTURE]);
478  IO.mapOptional("GlobalPtr", PH.DataDirectories[COFF::GLOBAL_PTR]);
479  IO.mapOptional("TlsTable", PH.DataDirectories[COFF::TLS_TABLE]);
480  IO.mapOptional("LoadConfigTable",
482  IO.mapOptional("BoundImport", PH.DataDirectories[COFF::BOUND_IMPORT]);
483  IO.mapOptional("IAT", PH.DataDirectories[COFF::IAT]);
484  IO.mapOptional("DelayImportDescriptor",
486  IO.mapOptional("ClrRuntimeHeader",
488 }
489 
491  MappingNormalization<NMachine, uint16_t> NM(IO, H.Machine);
492  MappingNormalization<NHeaderCharacteristics, uint16_t> NC(IO,
493  H.Characteristics);
494 
495  IO.mapRequired("Machine", NM->Machine);
496  IO.mapOptional("Characteristics", NC->Characteristics);
497  IO.setContext(static_cast<void *>(&H));
498 }
499 
501  IO &IO, COFF::AuxiliaryFunctionDefinition &AFD) {
502  IO.mapRequired("TagIndex", AFD.TagIndex);
503  IO.mapRequired("TotalSize", AFD.TotalSize);
504  IO.mapRequired("PointerToLinenumber", AFD.PointerToLinenumber);
505  IO.mapRequired("PointerToNextFunction", AFD.PointerToNextFunction);
506 }
507 
509  IO &IO, COFF::AuxiliarybfAndefSymbol &AAS) {
510  IO.mapRequired("Linenumber", AAS.Linenumber);
511  IO.mapRequired("PointerToNextFunction", AAS.PointerToNextFunction);
512 }
513 
515  IO &IO, COFF::AuxiliaryWeakExternal &AWE) {
516  MappingNormalization<NWeakExternalCharacteristics, uint32_t> NWEC(
517  IO, AWE.Characteristics);
518  IO.mapRequired("TagIndex", AWE.TagIndex);
519  IO.mapRequired("Characteristics", NWEC->Characteristics);
520 }
521 
523  IO &IO, COFF::AuxiliarySectionDefinition &ASD) {
524  MappingNormalization<NSectionSelectionType, uint8_t> NSST(
525  IO, ASD.Selection);
526 
527  IO.mapRequired("Length", ASD.Length);
528  IO.mapRequired("NumberOfRelocations", ASD.NumberOfRelocations);
529  IO.mapRequired("NumberOfLinenumbers", ASD.NumberOfLinenumbers);
530  IO.mapRequired("CheckSum", ASD.CheckSum);
531  IO.mapRequired("Number", ASD.Number);
532  IO.mapOptional("Selection", NSST->SelectionType, COFFYAML::COMDATType(0));
533 }
534 
536  IO &IO, COFF::AuxiliaryCLRToken &ACT) {
537  MappingNormalization<NAuxTokenType, uint8_t> NATT(IO, ACT.AuxType);
538  IO.mapRequired("AuxType", NATT->AuxType);
539  IO.mapRequired("SymbolTableIndex", ACT.SymbolTableIndex);
540 }
541 
543  MappingNormalization<NStorageClass, uint8_t> NS(IO, S.Header.StorageClass);
544 
545  IO.mapRequired("Name", S.Name);
546  IO.mapRequired("Value", S.Header.Value);
547  IO.mapRequired("SectionNumber", S.Header.SectionNumber);
548  IO.mapRequired("SimpleType", S.SimpleType);
549  IO.mapRequired("ComplexType", S.ComplexType);
550  IO.mapRequired("StorageClass", NS->StorageClass);
551  IO.mapOptional("FunctionDefinition", S.FunctionDefinition);
552  IO.mapOptional("bfAndefSymbol", S.bfAndefSymbol);
553  IO.mapOptional("WeakExternal", S.WeakExternal);
554  IO.mapOptional("File", S.File, StringRef());
555  IO.mapOptional("SectionDefinition", S.SectionDefinition);
556  IO.mapOptional("CLRToken", S.CLRToken);
557 }
558 
560  MappingNormalization<NSectionCharacteristics, uint32_t> NC(
561  IO, Sec.Header.Characteristics);
562  IO.mapRequired("Name", Sec.Name);
563  IO.mapRequired("Characteristics", NC->Characteristics);
564  IO.mapOptional("VirtualAddress", Sec.Header.VirtualAddress, 0U);
565  IO.mapOptional("VirtualSize", Sec.Header.VirtualSize, 0U);
566  IO.mapOptional("Alignment", Sec.Alignment, 0U);
567 
568  // If this is a .debug$S .debug$T .debug$P, or .debug$H section parse the
569  // semantic representation of the symbols/types. If it is any other kind
570  // of section, just deal in raw bytes.
571  IO.mapOptional("SectionData", Sec.SectionData);
572  if (Sec.Name == ".debug$S")
573  IO.mapOptional("Subsections", Sec.DebugS);
574  else if (Sec.Name == ".debug$T")
575  IO.mapOptional("Types", Sec.DebugT);
576  else if (Sec.Name == ".debug$P")
577  IO.mapOptional("PrecompTypes", Sec.DebugP);
578  else if (Sec.Name == ".debug$H")
579  IO.mapOptional("GlobalHashes", Sec.DebugH);
580 
581  // Uninitialized sections, such as .bss, typically have no data, but the size
582  // is carried in SizeOfRawData, even though PointerToRawData is zero.
583  if (Sec.SectionData.binary_size() == 0 &&
584  NC->Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA)
585  IO.mapOptional("SizeOfRawData", Sec.Header.SizeOfRawData);
586 
587  IO.mapOptional("Relocations", Sec.Relocations);
588 }
589 
591  IO.mapTag("!COFF", true);
592  IO.mapOptional("OptionalHeader", Obj.OptionalHeader);
593  IO.mapRequired("header", Obj.Header);
594  IO.mapRequired("sections", Obj.Sections);
595  IO.mapRequired("symbols", Obj.Symbols);
596 }
597 
598 } // end namespace yaml
599 
600 } // 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:639
llvm::COFFYAML::PEHeader::Header
COFF::PE32Header Header
Definition: COFFYAML.h:99
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:628
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:586
llvm::COFF::IMAGE_REL_I386_SECTION
@ IMAGE_REL_I386_SECTION
Definition: COFF.h:338
llvm::COFF::AuxiliarySectionDefinition::NumberOfLinenumbers
uint16_t NumberOfLinenumbers
Definition: COFF.h:448
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
Definition: AllocatorList.h:23
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:576
llvm::COFFYAML::Symbol::Symbol
Symbol()
Definition: COFFYAML.cpp:26
llvm::COFF::DataDirectory::Size
uint32_t Size
Definition: COFF.h:578
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:630
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:106
StringRef.h
llvm::COFFYAML::Section::DebugH
Optional< CodeViewYAML::DebugHSection > DebugH
Definition: COFFYAML.h:76
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:635
llvm::COFF::PE32Header::MinorOperatingSystemVersion
uint16_t MinorOperatingSystemVersion
Definition: COFF.h:555
llvm::COFF::PE32Header::Subsystem
uint16_t Subsystem
Definition: COFF.h:564
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA
@ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA
ASLR with 64 bit address space.
Definition: COFF.h:622
llvm::COFF::PE32Header::ImageBase
uint64_t ImageBase
Definition: COFF.h:551
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:54
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:447
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:98
llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN
@ IMAGE_FILE_MACHINE_UNKNOWN
Definition: COFF.h:96
llvm::COFF::IMAGE_REL_ARM64_REL21
@ IMAGE_REL_ARM64_REL21
Definition: COFF.h:391
llvm::COFFYAML::Section::Name
StringRef Name
Definition: COFFYAML.h:78
llvm::COFF::IMAGE_SUBSYSTEM_XBOX
@ IMAGE_SUBSYSTEM_XBOX
XBOX.
Definition: COFF.h:616
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:201
llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CE_GUI
@ IMAGE_SUBSYSTEM_WINDOWS_CE_GUI
Windows CE.
Definition: COFF.h:609
llvm::COFFYAML::Object::OptionalHeader
Optional< PEHeader > OptionalHeader
Definition: COFFYAML.h:104
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:242
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:100
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:456
llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE
@ IMAGE_COMDAT_SELECT_ASSOCIATIVE
Definition: COFF.h:411
llvm::COFFYAML::Relocation
Definition: COFFYAML.h:57
T
#define T
Definition: Mips16ISelLowering.cpp:341
llvm::COFF::RESOURCE_TABLE
@ RESOURCE_TABLE
Definition: COFF.h:584
llvm::COFF::IMAGE_REL_ARM64_SECREL_HIGH12A
@ IMAGE_REL_ARM64_SECREL_HIGH12A
Definition: COFF.h:396
llvm::COFFYAML::Section
Definition: COFFYAML.h:69
llvm::COFF::IMAGE_REL_ARM_BRANCH20T
@ IMAGE_REL_ARM_BRANCH20T
Definition: COFF.h:379
llvm::yaml::MappingTraits
Definition: ModuleSummaryIndex.h:50
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:446
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY
@ IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY
Code integrity checks are enforced.
Definition: COFF.h:626
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:615
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:558
llvm::COFF::IMAGE_REL_I386_DIR16
@ IMAGE_REL_I386_DIR16
Definition: COFF.h:333
llvm::COFF::PE32Header::FileAlignment
uint32_t FileAlignment
Definition: COFF.h:553
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:590
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:595
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:592
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:594
StorageClass
COFF::SymbolStorageClass StorageClass
Definition: COFFYAML.cpp:356
llvm::COFFYAML::Section::Relocations
std::vector< Relocation > Relocations
Definition: COFFYAML.h:77
llvm::COFF::IMAGE_SYM_CLASS_TYPE_DEFINITION
@ IMAGE_SYM_CLASS_TYPE_DEFINITION
Type definition.
Definition: COFF.h:220
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_AUX_SYMBOL_TYPE_TOKEN_DEF
@ IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF
Definition: COFF.h:268
llvm::COFF::AuxiliarySectionDefinition::CheckSum
uint32_t CheckSum
Definition: COFF.h:449
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:288
llvm::yaml::ScalarEnumerationTraits< COFF::MachineTypes >::enumeration
static void enumeration(IO &IO, COFF::MachineTypes &Value)
Definition: COFFYAML.cpp:59
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:552
llvm::COFF::EXCEPTION_TABLE
@ EXCEPTION_TABLE
Definition: COFF.h:585
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_SUBSYSTEM_OS2_CUI
@ IMAGE_SUBSYSTEM_OS2_CUI
The OS/2 character subsystem.
Definition: COFF.h:606
llvm::COFF::AuxiliaryFunctionDefinition::TagIndex
uint32_t TagIndex
Definition: COFF.h:418
llvm::COFFYAML::Object
Definition: COFFYAML.h:103
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:613
llvm::COFF::SymbolComplexType
SymbolComplexType
Definition: COFF.h:258
llvm::COFF::TLS_TABLE
@ TLS_TABLE
Definition: COFF.h:591
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:243
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:65
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:556
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::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:180
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:455
llvm::COFF::IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER
@ IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER
An EFI driver with boot services.
Definition: COFF.h:611
llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI
@ IMAGE_SUBSYSTEM_WINDOWS_CUI
The Windows character subsystem.
Definition: COFF.h:605
llvm::COFF::AuxiliarybfAndefSymbol::Linenumber
uint16_t Linenumber
Definition: COFF.h:427
llvm::COFF::ARCHITECTURE
@ ARCHITECTURE
Definition: COFF.h:589
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:98
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:603
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:72
llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION
@ IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION
A BCD application.
Definition: COFF.h:617
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:559
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_DLL_CHARACTERISTICS_GUARD_CF
@ IMAGE_DLL_CHARACTERISTICS_GUARD_CF
Definition: COFF.h:641
llvm::COFF::PE32Header::MajorOperatingSystemVersion
uint16_t MajorOperatingSystemVersion
Definition: COFF.h:554
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:83
llvm::COFF::AuxiliarySectionDefinition::Selection
uint8_t Selection
Definition: COFF.h:451
llvm::COFF::IMAGE_FILE_MACHINE_ARM
@ IMAGE_FILE_MACHINE_ARM
Definition: COFF.h:99
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:75
llvm::yaml::ScalarEnumerationTraits< COFF::WindowsSubsystem >::enumeration
static void enumeration(IO &IO, COFF::WindowsSubsystem &Value)
Definition: COFFYAML.cpp:223
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_REL_ARM_ABSOLUTE
@ IMAGE_REL_ARM_ABSOLUTE
Definition: COFF.h:366
llvm::COFFYAML::PEHeader::DataDirectories
Optional< COFF::DataDirectory > DataDirectories[COFF::NUM_DATA_DIRECTORIES]
Definition: COFFYAML.h:100
AuxType
COFFYAML::AuxSymbolType AuxType
Definition: COFFYAML.cpp:347
llvm::yaml::ScalarEnumerationTraits< COFF::SymbolStorageClass >::enumeration
static void enumeration(IO &IO, COFF::SymbolStorageClass &Value)
Definition: COFFYAML.cpp:105
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:633
llvm::COFF::DEBUG_DIRECTORY
@ DEBUG_DIRECTORY
Definition: COFF.h:588
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:58
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:262
llvm::COFF::PE32Header::SizeOfHeapCommit
uint64_t SizeOfHeapCommit
Definition: COFF.h:570
llvm::StringRef
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:57
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:643
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:568
llvm::COFFYAML::Object::Symbols
std::vector< Symbol > Symbols
Definition: COFFYAML.h:107
llvm::COFF::IMAGE_FILE_MACHINE_ARM64
@ IMAGE_FILE_MACHINE_ARM64
Definition: COFF.h:101
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:74
llvm::COFF::IMAGE_REL_ARM64_REL32
@ IMAGE_REL_ARM64_REL32
Definition: COFF.h:403
llvm::COFF::PE32Header::SizeOfHeapReserve
uint64_t SizeOfHeapReserve
Definition: COFF.h:569
llvm::COFF::IMPORT_TABLE
@ IMPORT_TABLE
Definition: COFF.h:583
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:587
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:624
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:159
COFFYAML.h
H
#define H(x, y, z)
Definition: MD5.cpp:58
llvm::COFF::AuxiliaryCLRToken::SymbolTableIndex
uint32_t SymbolTableIndex
Definition: COFF.h:458
uint16_t
llvm::COFF::IMAGE_SCN_MEM_PRELOAD
@ IMAGE_SCN_MEM_PRELOAD
Definition: COFF.h:299
llvm::COFF::EXPORT_TABLE
@ EXPORT_TABLE
Definition: COFF.h:582
NC
#define NC
Definition: regutils.h:42
llvm::COFF::WindowsSubsystem
WindowsSubsystem
Definition: COFF.h:601
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:85
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:144
llvm::COFF::IMAGE_SCN_CNT_CODE
@ IMAGE_SCN_CNT_CODE
Definition: COFF.h:288
llvm::COFF::AuxiliarySectionDefinition::Number
uint32_t Number
Definition: COFF.h:450
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:73
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:93
llvm::COFF::IMAGE_REL_AMD64_REL32_1
@ IMAGE_REL_AMD64_REL32_1
Definition: COFF.h:351
llvm::COFF::AuxiliarySectionDefinition
Definition: COFF.h:445
llvm::COFF::IMAGE_DLL_CHARACTERISTICS_APPCONTAINER
@ IMAGE_DLL_CHARACTERISTICS_APPCONTAINER
A WDM driver.
Definition: COFF.h:637
llvm::COFF::PE32Header::AddressOfEntryPoint
uint32_t AddressOfEntryPoint
Definition: COFF.h:548
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:608
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:620
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:314
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::COFFYAML::Relocation::SymbolTableIndex
Optional< uint32_t > SymbolTableIndex
Definition: COFFYAML.h:66
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:596
llvm::COFF::IMAGE_REL_I386_SECREL
@ IMAGE_REL_I386_SECREL
Definition: COFF.h:339
Machine
COFF::MachineTypes Machine
Definition: COFFYAML.cpp:365
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:71
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:604
llvm::COFF::IMAGE_FILE_MACHINE_R4000
@ IMAGE_FILE_MACHINE_R4000
Definition: COFF.h:111
Characteristics
COFFYAML::WeakExternalCharacteristics Characteristics
Definition: COFFYAML.cpp:325
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:607
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:557
llvm::COFF::IMAGE_REL_AMD64_SECTION
@ IMAGE_REL_AMD64_SECTION
Definition: COFF.h:356
llvm::COFF::header
Definition: COFF.h:65
llvm::COFFYAML::Object::Header
COFF::header Header
Definition: COFFYAML.h:105
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:97
llvm::yaml::ScalarEnumerationTraits< COFF::SymbolComplexType >::enumeration
static void enumeration(IO &IO, COFF::SymbolComplexType &Value)
Definition: COFFYAML.cpp:136
Subsystem
COFF::WindowsSubsystem Subsystem
Definition: COFFYAML.cpp:394
llvm::msgpack::Type
Type
MessagePack types as defined in the standard, with the exception of Integer being divided into a sign...
Definition: MsgPackReader.h:49
llvm::COFFYAML::Symbol::Header
COFF::symbol Header
Definition: COFFYAML.h:84
llvm::COFFYAML::Relocation::Type
uint16_t Type
Definition: COFFYAML.h:59
llvm::COFF::PE32Header::SizeOfStackReserve
uint64_t SizeOfStackReserve
Definition: COFF.h:567
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:577
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:70
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:75
llvm::COFF::BOUND_IMPORT
@ BOUND_IMPORT
Definition: COFF.h:593
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:602
llvm::COFF::RelocationTypeAMD64
RelocationTypeAMD64
Definition: COFF.h:345
llvm::COFF::IMAGE_SUBSYSTEM_EFI_APPLICATION
@ IMAGE_SUBSYSTEM_EFI_APPLICATION
An EFI application.
Definition: COFF.h:610
llvm::COFF::PE32Header::DLLCharacteristics
uint16_t DLLCharacteristics
Definition: COFF.h:566
llvm::COFF::IMAGE_REL_ARM64_SECTION
@ IMAGE_REL_ARM64_SECTION
Definition: COFF.h:399