LLVM  14.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) {
84 }
85 
87  IO &IO, COFF::SymbolBaseType &Value) {
104 }
105 
107  IO &IO, COFF::SymbolStorageClass &Value) {
135 }
136 
138  IO &IO, COFF::SymbolComplexType &Value) {
143 }
144 
146  IO &IO, COFF::RelocationTypeI386 &Value) {
158 }
159 
161  IO &IO, COFF::RelocationTypeAMD64 &Value) {
179 }
180 
182  IO &IO, COFF::RelocationTypesARM &Value) {
200 }
201 
222 }
223 
225  IO &IO, COFF::WindowsSubsystem &Value) {
240 }
241 #undef ECase
242 
243 #define BCase(X) IO.bitSetCase(Value, #X, COFF::X);
245  IO &IO, COFF::Characteristics &Value) {
261 }
262 
287 }
288 
290  IO &IO, COFF::DLLCharacteristics &Value) {
302 }
303 #undef BCase
304 
305 namespace {
306 
307 struct NSectionSelectionType {
308  NSectionSelectionType(IO &)
309  : SelectionType(COFFYAML::COMDATType(0)) {}
310  NSectionSelectionType(IO &, uint8_t C)
311  : SelectionType(COFFYAML::COMDATType(C)) {}
312 
313  uint8_t denormalize(IO &) { return SelectionType; }
314 
316 };
317 
318 struct NWeakExternalCharacteristics {
319  NWeakExternalCharacteristics(IO &)
321  NWeakExternalCharacteristics(IO &, uint32_t C)
323 
324  uint32_t denormalize(IO &) { return Characteristics; }
325 
327 };
328 
329 struct NSectionCharacteristics {
330  NSectionCharacteristics(IO &)
332  NSectionCharacteristics(IO &, uint32_t C)
334 
335  uint32_t denormalize(IO &) { return Characteristics; }
336 
338 };
339 
340 struct NAuxTokenType {
341  NAuxTokenType(IO &)
342  : AuxType(COFFYAML::AuxSymbolType(0)) {}
343  NAuxTokenType(IO &, uint8_t C)
344  : AuxType(COFFYAML::AuxSymbolType(C)) {}
345 
346  uint32_t denormalize(IO &) { return AuxType; }
347 
349 };
350 
351 struct NStorageClass {
352  NStorageClass(IO &) : StorageClass(COFF::SymbolStorageClass(0)) {}
353  NStorageClass(IO &, uint8_t S) : StorageClass(COFF::SymbolStorageClass(S)) {}
354 
355  uint8_t denormalize(IO &) { return StorageClass; }
356 
358 };
359 
360 struct NMachine {
361  NMachine(IO &) : Machine(COFF::MachineTypes(0)) {}
362  NMachine(IO &, uint16_t M) : Machine(COFF::MachineTypes(M)) {}
363 
364  uint16_t denormalize(IO &) { return Machine; }
365 
367 };
368 
369 struct NHeaderCharacteristics {
370  NHeaderCharacteristics(IO &) : Characteristics(COFF::Characteristics(0)) {}
371  NHeaderCharacteristics(IO &, uint16_t C)
372  : Characteristics(COFF::Characteristics(C)) {}
373 
374  uint16_t denormalize(IO &) { return Characteristics; }
375 
377 };
378 
379 template <typename RelocType>
380 struct NType {
381  NType(IO &) : Type(RelocType(0)) {}
382  NType(IO &, uint16_t T) : Type(RelocType(T)) {}
383 
384  uint16_t denormalize(IO &) { return Type; }
385 
386  RelocType Type;
387 };
388 
389 struct NWindowsSubsystem {
390  NWindowsSubsystem(IO &) : Subsystem(COFF::WindowsSubsystem(0)) {}
391  NWindowsSubsystem(IO &, uint16_t C) : Subsystem(COFF::WindowsSubsystem(C)) {}
392 
393  uint16_t denormalize(IO &) { return Subsystem; }
394 
396 };
397 
398 struct NDLLCharacteristics {
399  NDLLCharacteristics(IO &) : Characteristics(COFF::DLLCharacteristics(0)) {}
400  NDLLCharacteristics(IO &, uint16_t C)
402 
403  uint16_t denormalize(IO &) { return Characteristics; }
404 
406 };
407 
408 } // end anonymous namespace
409 
411  COFFYAML::Relocation &Rel) {
412  IO.mapRequired("VirtualAddress", Rel.VirtualAddress);
413  IO.mapOptional("SymbolName", Rel.SymbolName, StringRef());
414  IO.mapOptional("SymbolTableIndex", Rel.SymbolTableIndex);
415 
416  COFF::header &H = *static_cast<COFF::header *>(IO.getContext());
417  if (H.Machine == COFF::IMAGE_FILE_MACHINE_I386) {
418  MappingNormalization<NType<COFF::RelocationTypeI386>, uint16_t> NT(
419  IO, Rel.Type);
420  IO.mapRequired("Type", NT->Type);
421  } else if (H.Machine == COFF::IMAGE_FILE_MACHINE_AMD64) {
422  MappingNormalization<NType<COFF::RelocationTypeAMD64>, uint16_t> NT(
423  IO, Rel.Type);
424  IO.mapRequired("Type", NT->Type);
425  } else if (H.Machine == COFF::IMAGE_FILE_MACHINE_ARMNT) {
426  MappingNormalization<NType<COFF::RelocationTypesARM>, uint16_t> NT(
427  IO, Rel.Type);
428  IO.mapRequired("Type", NT->Type);
429  } else if (H.Machine == COFF::IMAGE_FILE_MACHINE_ARM64) {
430  MappingNormalization<NType<COFF::RelocationTypesARM64>, uint16_t> NT(
431  IO, Rel.Type);
432  IO.mapRequired("Type", NT->Type);
433  } else {
434  IO.mapRequired("Type", Rel.Type);
435  }
436 }
437 
439  COFF::DataDirectory &DD) {
440  IO.mapRequired("RelativeVirtualAddress", DD.RelativeVirtualAddress);
441  IO.mapRequired("Size", DD.Size);
442 }
443 
445  COFFYAML::PEHeader &PH) {
446  MappingNormalization<NWindowsSubsystem, uint16_t> NWS(IO,
447  PH.Header.Subsystem);
448  MappingNormalization<NDLLCharacteristics, uint16_t> NDC(
449  IO, PH.Header.DLLCharacteristics);
450 
451  IO.mapRequired("AddressOfEntryPoint", PH.Header.AddressOfEntryPoint);
452  IO.mapRequired("ImageBase", PH.Header.ImageBase);
453  IO.mapRequired("SectionAlignment", PH.Header.SectionAlignment);
454  IO.mapRequired("FileAlignment", PH.Header.FileAlignment);
455  IO.mapRequired("MajorOperatingSystemVersion",
457  IO.mapRequired("MinorOperatingSystemVersion",
459  IO.mapRequired("MajorImageVersion", PH.Header.MajorImageVersion);
460  IO.mapRequired("MinorImageVersion", PH.Header.MinorImageVersion);
461  IO.mapRequired("MajorSubsystemVersion", PH.Header.MajorSubsystemVersion);
462  IO.mapRequired("MinorSubsystemVersion", PH.Header.MinorSubsystemVersion);
463  IO.mapRequired("Subsystem", NWS->Subsystem);
464  IO.mapRequired("DLLCharacteristics", NDC->Characteristics);
465  IO.mapRequired("SizeOfStackReserve", PH.Header.SizeOfStackReserve);
466  IO.mapRequired("SizeOfStackCommit", PH.Header.SizeOfStackCommit);
467  IO.mapRequired("SizeOfHeapReserve", PH.Header.SizeOfHeapReserve);
468  IO.mapRequired("SizeOfHeapCommit", PH.Header.SizeOfHeapCommit);
469 
470  IO.mapOptional("NumberOfRvaAndSize", PH.Header.NumberOfRvaAndSize,
472  IO.mapOptional("ExportTable", PH.DataDirectories[COFF::EXPORT_TABLE]);
473  IO.mapOptional("ImportTable", PH.DataDirectories[COFF::IMPORT_TABLE]);
474  IO.mapOptional("ResourceTable", PH.DataDirectories[COFF::RESOURCE_TABLE]);
475  IO.mapOptional("ExceptionTable", PH.DataDirectories[COFF::EXCEPTION_TABLE]);
476  IO.mapOptional("CertificateTable", PH.DataDirectories[COFF::CERTIFICATE_TABLE]);
477  IO.mapOptional("BaseRelocationTable",
479  IO.mapOptional("Debug", PH.DataDirectories[COFF::DEBUG_DIRECTORY]);
480  IO.mapOptional("Architecture", PH.DataDirectories[COFF::ARCHITECTURE]);
481  IO.mapOptional("GlobalPtr", PH.DataDirectories[COFF::GLOBAL_PTR]);
482  IO.mapOptional("TlsTable", PH.DataDirectories[COFF::TLS_TABLE]);
483  IO.mapOptional("LoadConfigTable",
485  IO.mapOptional("BoundImport", PH.DataDirectories[COFF::BOUND_IMPORT]);
486  IO.mapOptional("IAT", PH.DataDirectories[COFF::IAT]);
487  IO.mapOptional("DelayImportDescriptor",
489  IO.mapOptional("ClrRuntimeHeader",
491 }
492 
494  MappingNormalization<NMachine, uint16_t> NM(IO, H.Machine);
495  MappingNormalization<NHeaderCharacteristics, uint16_t> NC(IO,
496  H.Characteristics);
497 
498  IO.mapRequired("Machine", NM->Machine);
499  IO.mapOptional("Characteristics", NC->Characteristics);
500  IO.setContext(static_cast<void *>(&H));
501 }
502 
504  IO &IO, COFF::AuxiliaryFunctionDefinition &AFD) {
505  IO.mapRequired("TagIndex", AFD.TagIndex);
506  IO.mapRequired("TotalSize", AFD.TotalSize);
507  IO.mapRequired("PointerToLinenumber", AFD.PointerToLinenumber);
508  IO.mapRequired("PointerToNextFunction", AFD.PointerToNextFunction);
509 }
510 
512  IO &IO, COFF::AuxiliarybfAndefSymbol &AAS) {
513  IO.mapRequired("Linenumber", AAS.Linenumber);
514  IO.mapRequired("PointerToNextFunction", AAS.PointerToNextFunction);
515 }
516 
518  IO &IO, COFF::AuxiliaryWeakExternal &AWE) {
519  MappingNormalization<NWeakExternalCharacteristics, uint32_t> NWEC(
520  IO, AWE.Characteristics);
521  IO.mapRequired("TagIndex", AWE.TagIndex);
522  IO.mapRequired("Characteristics", NWEC->Characteristics);
523 }
524 
526  IO &IO, COFF::AuxiliarySectionDefinition &ASD) {
527  MappingNormalization<NSectionSelectionType, uint8_t> NSST(
528  IO, ASD.Selection);
529 
530  IO.mapRequired("Length", ASD.Length);
531  IO.mapRequired("NumberOfRelocations", ASD.NumberOfRelocations);
532  IO.mapRequired("NumberOfLinenumbers", ASD.NumberOfLinenumbers);
533  IO.mapRequired("CheckSum", ASD.CheckSum);
534  IO.mapRequired("Number", ASD.Number);
535  IO.mapOptional("Selection", NSST->SelectionType, COFFYAML::COMDATType(0));
536 }
537 
539  IO &IO, COFF::AuxiliaryCLRToken &ACT) {
540  MappingNormalization<NAuxTokenType, uint8_t> NATT(IO, ACT.AuxType);
541  IO.mapRequired("AuxType", NATT->AuxType);
542  IO.mapRequired("SymbolTableIndex", ACT.SymbolTableIndex);
543 }
544 
546  MappingNormalization<NStorageClass, uint8_t> NS(IO, S.Header.StorageClass);
547 
548  IO.mapRequired("Name", S.Name);
549  IO.mapRequired("Value", S.Header.Value);
550  IO.mapRequired("SectionNumber", S.Header.SectionNumber);
551  IO.mapRequired("SimpleType", S.SimpleType);
552  IO.mapRequired("ComplexType", S.ComplexType);
553  IO.mapRequired("StorageClass", NS->StorageClass);
554  IO.mapOptional("FunctionDefinition", S.FunctionDefinition);
555  IO.mapOptional("bfAndefSymbol", S.bfAndefSymbol);
556  IO.mapOptional("WeakExternal", S.WeakExternal);
557  IO.mapOptional("File", S.File, StringRef());
558  IO.mapOptional("SectionDefinition", S.SectionDefinition);
559  IO.mapOptional("CLRToken", S.CLRToken);
560 }
561 
563  MappingNormalization<NSectionCharacteristics, uint32_t> NC(
564  IO, Sec.Header.Characteristics);
565  IO.mapRequired("Name", Sec.Name);
566  IO.mapRequired("Characteristics", NC->Characteristics);
567  IO.mapOptional("VirtualAddress", Sec.Header.VirtualAddress, 0U);
568  IO.mapOptional("VirtualSize", Sec.Header.VirtualSize, 0U);
569  IO.mapOptional("Alignment", Sec.Alignment, 0U);
570 
571  // If this is a .debug$S .debug$T .debug$P, or .debug$H section parse the
572  // semantic representation of the symbols/types. If it is any other kind
573  // of section, just deal in raw bytes.
574  IO.mapOptional("SectionData", Sec.SectionData);
575  if (Sec.Name == ".debug$S")
576  IO.mapOptional("Subsections", Sec.DebugS);
577  else if (Sec.Name == ".debug$T")
578  IO.mapOptional("Types", Sec.DebugT);
579  else if (Sec.Name == ".debug$P")
580  IO.mapOptional("PrecompTypes", Sec.DebugP);
581  else if (Sec.Name == ".debug$H")
582  IO.mapOptional("GlobalHashes", Sec.DebugH);
583 
584  // Uninitialized sections, such as .bss, typically have no data, but the size
585  // is carried in SizeOfRawData, even though PointerToRawData is zero.
586  if (Sec.SectionData.binary_size() == 0 &&
587  NC->Characteristics & COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA)
588  IO.mapOptional("SizeOfRawData", Sec.Header.SizeOfRawData);
589 
590  IO.mapOptional("Relocations", Sec.Relocations);
591 }
592 
594  IO.mapTag("!COFF", true);
595  IO.mapOptional("OptionalHeader", Obj.OptionalHeader);
596  IO.mapRequired("header", Obj.Header);
597  IO.mapRequired("sections", Obj.Sections);
598  IO.mapRequired("symbols", Obj.Symbols);
599 }
600 
601 } // end namespace yaml
602 
603 } // 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: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: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
---------------------— PointerInfo ------------------------------------—
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: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: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:636
llvm::COFF::PE32Header::MinorOperatingSystemVersion
uint16_t MinorOperatingSystemVersion
Definition: COFF.h:556
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: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: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:202
llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CE_GUI
@ IMAGE_SUBSYSTEM_WINDOWS_CE_GUI
Windows CE.
Definition: COFF.h:610
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:243
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:457
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:585
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:52
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::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:357
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:450
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:289
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_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: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: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:244
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: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::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:181
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: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: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:72
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_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:83
llvm::COFF::AuxiliarySectionDefinition::Selection
uint8_t Selection
Definition: COFF.h:452
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:224
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:348
llvm::yaml::ScalarEnumerationTraits< COFF::SymbolStorageClass >::enumeration
static void enumeration(IO &IO, COFF::SymbolStorageClass &Value)
Definition: COFFYAML.cpp:106
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: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:263
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:58
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: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: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:160
COFFYAML.h
H
#define H(x, y, z)
Definition: MD5.cpp:58
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:86
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:145
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: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: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:315
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:597
llvm::COFF::IMAGE_REL_I386_SECREL
@ IMAGE_REL_I386_SECREL
Definition: COFF.h:339
Machine
COFF::MachineTypes Machine
Definition: COFFYAML.cpp:366
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:605
llvm::COFF::IMAGE_FILE_MACHINE_R4000
@ IMAGE_FILE_MACHINE_R4000
Definition: COFF.h:111
Characteristics
COFFYAML::WeakExternalCharacteristics Characteristics
Definition: COFFYAML.cpp:326
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: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:137
Subsystem
COFF::WindowsSubsystem Subsystem
Definition: COFFYAML.cpp:395
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: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: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: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