LLVM 22.0.0git
|
Public Types | |
enum | DwoMode { AllSections , NonDwoOnly , DwoOnly } |
Public Member Functions | |
WinCOFFWriter (WinCOFFObjectWriter &OWriter, raw_pwrite_stream &OS, DwoMode Mode) | |
void | reset () |
void | setAssembler (MCAssembler *A) |
void | executePostLayoutBinding () |
void | recordRelocation (const MCFragment &F, const MCFixup &Fixup, MCValue Target, uint64_t &FixedValue) |
uint64_t | writeObject () |
int | getSectionNumber (const MCSection &Section) const |
Public Attributes | |
enum llvm::WinCOFFWriter::DwoMode | Mode |
Definition at line 122 of file WinCOFFObjectWriter.cpp.
Enumerator | |
---|---|
AllSections | |
NonDwoOnly | |
DwoOnly |
Definition at line 151 of file WinCOFFObjectWriter.cpp.
WinCOFFWriter::WinCOFFWriter | ( | WinCOFFObjectWriter & | OWriter, |
raw_pwrite_stream & | OS, | ||
DwoMode | Mode | ||
) |
Definition at line 231 of file WinCOFFObjectWriter.cpp.
References llvm::COFF::isAnyArm64().
void WinCOFFWriter::executePostLayoutBinding | ( | ) |
Definition at line 812 of file WinCOFFObjectWriter.cpp.
References DwoOnly, llvm::COFF::IMAGE_SYM_CLASS_STATIC, isDwoSection(), llvm::COFF::MaxNumberOfSections16, Mode, NonDwoOnly, llvm::report_fatal_error(), and Sym.
Definition at line 1161 of file WinCOFFObjectWriter.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::at().
void WinCOFFWriter::recordRelocation | ( | const MCFragment & | F, |
const MCFixup & | Fixup, | ||
MCValue | Target, | ||
uint64_t & | FixedValue | ||
) |
Definition at line 841 of file WinCOFFObjectWriter.cpp.
References A, assert(), B, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), F, Fixup, llvm::FK_SecRel_2, llvm::COFF::IMAGE_FILE_MACHINE_AMD64, llvm::COFF::IMAGE_FILE_MACHINE_ARMNT, llvm::COFF::IMAGE_FILE_MACHINE_I386, llvm::COFF::IMAGE_FILE_MACHINE_R4000, 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::IMAGE_REL_MIPS_PAIR, llvm::COFF::IMAGE_REL_MIPS_REFHI, llvm::COFF::IMAGE_REL_MIPS_SECRELHI, llvm::COFF::isAnyArm64(), llvm_unreachable, and llvm::MCContext::reportError().
void WinCOFFWriter::reset | ( | ) |
Definition at line 801 of file WinCOFFObjectWriter.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear(), and llvm::StringTableBuilder::clear().
|
inline |
Definition at line 161 of file WinCOFFObjectWriter.cpp.
References A.
uint64_t WinCOFFWriter::writeObject | ( | ) |
Definition at line 1001 of file WinCOFFObjectWriter.cpp.
References llvm::StringTableBuilder::add(), llvm::MCObjectWriter::AddrsigSyms, assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::contains(), Content, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::count(), llvm::MCSection::curFragList(), DwoOnly, llvm::encodeULEB128(), llvm::StringTableBuilder::finalize(), llvm::MCObjectWriter::getCGProfile(), llvm::MCContext::getCOFFSection(), 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(), Mode, llvm::COFF::section::Name, llvm::COFF::NameSize, NonDwoOnly, OS, llvm::MCContext::reportError(), llvm::MCFragment::setVarContents(), llvm::MCSection::FragList::Tail, llvm::StringTableBuilder::write(), and llvm::support::endian::write().
enum llvm::WinCOFFWriter::DwoMode llvm::WinCOFFWriter::Mode |
Referenced by executePostLayoutBinding(), and writeObject().