LLVM: lib/ObjectYAML/COFFEmitter.cpp File Reference (original) (raw)

The COFF component of yaml2obj. More...

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
namespace llvm::yaml
Functions
static bool layoutOptionalHeader (COFFParser &CP)
static yaml::BinaryRef toDebugS (ArrayRef< CodeViewYAML::YAMLDebugSubsection > Subsections, const codeview::StringsAndChecksums &SC, BumpPtrAllocator &Allocator)
static bool layoutCOFF (COFFParser &CP)
template<typename value_type>
raw_ostream & operator<< (raw_ostream &OS, const binary_le_impl< value_type > &BLE)
template<typename value_type>
binary_le_impl< value_type > binary_le (value_type V)
template<size_t NumBytes>
raw_ostream & operator<< (raw_ostream &OS, const zeros_impl< NumBytes > &)
template<typename T>
zeros_impl< sizeof(T)> zeros (const T &)
template<typename T>
static uint32_t initializeOptionalHeader (COFFParser &CP, uint16_t Magic, T Header)
static bool writeCOFF (COFFParser &CP, raw_ostream &OS)
template<typename T>
static void writeLoadConfig (T &S, raw_ostream &OS)
LLVM_ABI bool llvm::yaml::yaml2coff (COFFYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH)

The COFF component of yaml2obj.

Definition in file COFFEmitter.cpp.

binary_le()

template<typename value_type>

binary_le_impl< value_type > binary_le ( value_type V )

initializeOptionalHeader()

template<typename T>

uint32_t initializeOptionalHeader ( COFFParser & CP, uint16_t Magic, T Header ) static

Definition at line 337 of file COFFEmitter.cpp.

References llvm::alignTo(), llvm::COFF::section::Characteristics, llvm::COFFYAML::Section::Header, llvm::COFF::IMAGE_SCN_CNT_CODE, llvm::COFF::IMAGE_SCN_CNT_INITIALIZED_DATA, llvm::COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA, llvm::COFFYAML::Section::Name, llvm::COFF::section::SizeOfRawData, T, llvm::COFF::section::VirtualAddress, and llvm::COFF::section::VirtualSize.

Referenced by writeCOFF().

layoutCOFF()

bool layoutCOFF ( COFFParser & CP) static

Definition at line 190 of file COFFEmitter.cpp.

References llvm::alignTo(), assert(), llvm::yaml::BinaryRef::binary_size(), llvm::COFF::section::Characteristics, llvm::DataSize, llvm::COFFYAML::Section::DebugH, llvm::COFFYAML::Section::DebugP, llvm::COFFYAML::Section::DebugS, llvm::COFFYAML::Section::DebugT, E(), llvm::COFFYAML::Section::Header, llvm::COFF::IMAGE_SCN_LNK_NRELOC_OVFL, llvm::CodeViewYAML::initializeStringsAndChecksums(), llvm::COFFYAML::Section::Name, llvm::COFF::section::NumberOfRelocations, llvm::COFF::PEMagic, llvm::COFF::section::PointerToRawData, llvm::COFF::section::PointerToRelocations, llvm::COFFYAML::Section::Relocations, llvm::COFF::RelocationSize, llvm::COFFYAML::Section::SectionData, llvm::COFF::SectionSize, llvm::COFF::section::SizeOfRawData, llvm::COFFYAML::Section::StructuredData, llvm::CodeViewYAML::toDebugH(), toDebugS(), and llvm::CodeViewYAML::toDebugT().

Referenced by llvm::yaml::yaml2coff().

layoutOptionalHeader()

bool layoutOptionalHeader ( COFFParser & CP) static

operator<<() [1/2]

template<typename value_type>

operator<<() [2/2]

template<size_t NumBytes>

toDebugS()

writeCOFF()

Definition at line 391 of file COFFEmitter.cpp.

References llvm::object::dos_header::AddressOfNewExeHeader, llvm::object::dos_header::AddressOfRelocationTable, assert(), llvm::object::pe32_header::BaseOfData, llvm::COFF::BigObjMagic, binary_le(), llvm::yaml::BinaryRef::binary_size(), llvm::COFF::section::Characteristics, E(), llvm::WithColor::error(), llvm::COFFYAML::Section::Header, llvm::COFFYAML::Symbol::Header, I, llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN, llvm::COFF::IMAGE_SCN_LNK_NRELOC_OVFL, initializeOptionalHeader(), llvm::object::dos_header::Magic, llvm::COFF::BigObjHeader::MinBigObjectVersion, llvm::COFF::section::Name, llvm::COFFYAML::Symbol::Name, llvm::COFF::NameSize, llvm::COFF::symbol::NumberOfAuxSymbols, llvm::COFF::section::NumberOfLineNumbers, llvm::COFF::section::NumberOfRelocations, llvm::COFF::PE32Header::PE32, llvm::COFF::PE32Header::PE32_PLUS, llvm::COFF::PEMagic, llvm::COFF::section::PointerToLineNumbers, llvm::COFF::section::PointerToRawData, llvm::COFF::section::PointerToRelocations, llvm::COFFYAML::Section::Relocations, llvm::COFFYAML::Section::SectionData, Size, llvm::COFF::section::SizeOfRawData, llvm::COFFYAML::Section::StructuredData, llvm::COFF::Symbol16Size, llvm::raw_ostream::tell(), llvm::COFF::section::VirtualAddress, llvm::COFF::section::VirtualSize, llvm::raw_ostream::write(), llvm::raw_ostream::write_zeros(), llvm::yaml::BinaryRef::writeAsBinary(), and zeros().

Referenced by llvm::yaml::yaml2coff().

writeLoadConfig()

zeros()