LLVM 22.0.0git
COFFEmitter.cpp File Reference

The COFF component of yaml2obj. More...

Go to the source code of this file.

Classes

struct  binary_le_impl< value_type >
struct  zeros_impl< NumBytes >

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_ostreamoperator<< (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_ostreamoperator<< (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)

Detailed Description

The COFF component of yaml2obj.

Definition in file COFFEmitter.cpp.

Function Documentation

◆ binary_le()

template<typename value_type>
binary_le_impl< value_type > binary_le ( value_type V)

Definition at line 318 of file COFFEmitter.cpp.

Referenced by llvm::COFFYAML::SectionDataEntry::writeAsBinary(), and writeCOFF().

◆ initializeOptionalHeader()

◆ layoutCOFF()

◆ layoutOptionalHeader()

bool layoutOptionalHeader ( COFFParser & CP)
static

◆ operator<<() [1/2]

template<typename value_type>
raw_ostream & operator<< ( raw_ostream & OS,
const binary_le_impl< value_type > & BLE )

◆ operator<<() [2/2]

template<size_t NumBytes>
raw_ostream & operator<< ( raw_ostream & OS,
const zeros_impl< NumBytes > &  )

Definition at line 325 of file COFFEmitter.cpp.

References llvm::raw_ostream::write().

◆ toDebugS()

◆ writeCOFF()

bool writeCOFF ( COFFParser & CP,
raw_ostream & OS )
static

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::header::Characteristics, llvm::COFF::section::Characteristics, E(), llvm::WithColor::error(), llvm::COFFYAML::Object::Header, llvm::COFFYAML::Section::Header, llvm::COFFYAML::Symbol::Header, I, llvm::COFF::IMAGE_FILE_MACHINE_UNKNOWN, llvm::COFF::IMAGE_SCN_LNK_NRELOC_OVFL, initializeOptionalHeader(), llvm::COFF::header::Machine, 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::header::NumberOfSections, llvm::COFF::header::NumberOfSymbols, llvm::COFFYAML::Object::OptionalHeader, 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::COFF::header::PointerToSymbolTable, llvm::COFFYAML::Section::Relocations, llvm::COFFYAML::Section::SectionData, llvm::COFFYAML::Object::Sections, Size, llvm::COFF::header::SizeOfOptionalHeader, llvm::COFF::section::SizeOfRawData, llvm::COFFYAML::Section::StructuredData, llvm::COFF::Symbol16Size, llvm::COFFYAML::Object::Symbols, llvm::raw_ostream::tell(), llvm::COFF::header::TimeDateStamp, 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()

template<typename T>
void writeLoadConfig ( T & S,
raw_ostream & OS )
static

◆ zeros()

template<typename T>
zeros_impl< sizeof(T)> zeros ( const T & )

Definition at line 332 of file COFFEmitter.cpp.

References T.

Referenced by writeCOFF().