LLVM 20.0.0git
|
Public Types | |
enum | DwoMode { AllSections , NonDwoOnly , DwoOnly } |
Public Member Functions | |
WinCOFFWriter (WinCOFFObjectWriter &OWriter, raw_pwrite_stream &OS, DwoMode Mode) | |
void | reset () |
void | executePostLayoutBinding (MCAssembler &Asm) |
void | recordRelocation (MCAssembler &Asm, const MCFragment *Fragment, const MCFixup &Fixup, MCValue Target, uint64_t &FixedValue) |
uint64_t | writeObject (MCAssembler &Asm) |
Public Attributes | |
enum llvm::WinCOFFWriter::DwoMode | Mode |
Definition at line 124 of file WinCOFFObjectWriter.cpp.
Enumerator | |
---|---|
AllSections | |
NonDwoOnly | |
DwoOnly |
Definition at line 152 of file WinCOFFObjectWriter.cpp.
WinCOFFWriter::WinCOFFWriter | ( | WinCOFFObjectWriter & | OWriter, |
raw_pwrite_stream & | OS, | ||
DwoMode | Mode | ||
) |
Definition at line 230 of file WinCOFFObjectWriter.cpp.
References llvm::COFF::isAnyArm64(), and llvm::COFF::header::Machine.
void WinCOFFWriter::executePostLayoutBinding | ( | MCAssembler & | Asm | ) |
Definition at line 806 of file WinCOFFObjectWriter.cpp.
References DwoOnly, llvm::COFF::IMAGE_SYM_CLASS_STATIC, isDwoSection(), Mode, and NonDwoOnly.
void WinCOFFWriter::recordRelocation | ( | MCAssembler & | Asm, |
const MCFragment * | Fragment, | ||
const MCFixup & | Fixup, | ||
MCValue | Target, | ||
uint64_t & | FixedValue | ||
) |
Definition at line 824 of file WinCOFFObjectWriter.cpp.
References A, assert(), B, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), Fixup, llvm::FK_SecRel_2, llvm::MCFragment::getParent(), llvm::MCSymbolRefExpr::getSymbol(), llvm::COFF::IMAGE_FILE_MACHINE_AMD64, llvm::COFF::IMAGE_FILE_MACHINE_ARMNT, llvm::COFF::IMAGE_FILE_MACHINE_I386, llvm::COFF::IMAGE_REL_AMD64_REL32, llvm::COFF::IMAGE_REL_ARM64_REL32, llvm::COFF::IMAGE_REL_ARM_ABSOLUTE, llvm::COFF::IMAGE_REL_ARM_ADDR32, llvm::COFF::IMAGE_REL_ARM_ADDR32NB, llvm::COFF::IMAGE_REL_ARM_BLX11, llvm::COFF::IMAGE_REL_ARM_BLX23T, llvm::COFF::IMAGE_REL_ARM_BLX24, llvm::COFF::IMAGE_REL_ARM_BRANCH11, llvm::COFF::IMAGE_REL_ARM_BRANCH20T, llvm::COFF::IMAGE_REL_ARM_BRANCH24, llvm::COFF::IMAGE_REL_ARM_BRANCH24T, llvm::COFF::IMAGE_REL_ARM_MOV32A, llvm::COFF::IMAGE_REL_ARM_MOV32T, llvm::COFF::IMAGE_REL_ARM_REL32, llvm::COFF::IMAGE_REL_ARM_SECREL, llvm::COFF::IMAGE_REL_ARM_SECTION, llvm::COFF::IMAGE_REL_ARM_TOKEN, llvm::COFF::IMAGE_REL_I386_REL32, llvm::COFF::isAnyArm64(), and llvm_unreachable.
void WinCOFFWriter::reset | ( | ) |
Definition at line 795 of file WinCOFFObjectWriter.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), and llvm::StringTableBuilder::clear().
uint64_t WinCOFFWriter::writeObject | ( | MCAssembler & | Asm | ) |
Definition at line 981 of file WinCOFFObjectWriter.cpp.
References llvm::StringTableBuilder::add(), llvm::MCObjectWriter::AddrsigSyms, assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), DwoOnly, llvm::encodeULEB128(), llvm::support::endian::Writer::Endian, llvm::StringTableBuilder::finalize(), llvm::MCObjectWriter::getCGProfile(), llvm::MCSectionCOFF::getCOMDATSymbol(), llvm::MCObjectWriter::getEmitAddrsigSection(), llvm::MCSymbol::getIndex(), llvm::MCSection::getName(), llvm::MCSymbol::getName(), llvm::MCSymbol::getSection(), getTime(), I, llvm::COFF::IMAGE_COMDAT_SELECT_ASSOCIATIVE, llvm::COFF::IMAGE_SCN_LNK_REMOVE, isDwoSection(), llvm::MCSymbol::isInSection(), llvm::MCSymbol::isRegistered(), llvm::MCSymbol::isTemporary(), llvm::COFF::MaxNumberOfSections16, Mode, llvm::COFF::section::Name, llvm::COFF::NameSize, NonDwoOnly, llvm::support::endian::Writer::OS, OS, llvm::report_fatal_error(), llvm::raw_ostream::tell(), llvm::StringTableBuilder::write(), and llvm::support::endian::write().
enum llvm::WinCOFFWriter::DwoMode llvm::WinCOFFWriter::Mode |
Referenced by executePostLayoutBinding(), and writeObject().