#include "llvm/ADT/DenseMap.h"
#include "llvm/BinaryFormat/XCOFF.h"
#include "llvm/MC/StringTableBuilder.h"
#include "llvm/Object/XCOFFObjectFile.h"
#include "llvm/ObjectYAML/ObjectYAML.h"
#include "llvm/ObjectYAML/yaml2obj.h"
#include "llvm/Support/EndianStream.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/raw_ostream.h"
usingnamespacellvm;
usingnamespacellvm::object;
namespace {
constexpr unsigned DefaultSectionAlign = …;
constexpr int16_t MaxSectionIndex = …;
constexpr uint32_t MaxRawDataSize = …;
class XCOFFWriter { … };
static void writeName(StringRef StrName, support::endian::Writer W) { … }
void XCOFFWriter::reportOverwrite(uint64_t CurrentOffset,
uint64_t specifiedOffset,
const Twine &fieldName) { … }
bool XCOFFWriter::nameShouldBeInStringTable(StringRef SymbolName) { … }
bool XCOFFWriter::initRelocations(uint64_t &CurrentOffset) { … }
bool XCOFFWriter::initSectionHeaders(uint64_t &CurrentOffset) { … }
bool XCOFFWriter::initStringTable() { … }
bool XCOFFWriter::initFileHeader(uint64_t CurrentOffset) { … }
void XCOFFWriter::initAuxFileHeader() { … }
bool XCOFFWriter::assignAddressesAndIndices() { … }
void XCOFFWriter::writeFileHeader() { … }
void XCOFFWriter::writeAuxFileHeader() { … }
void XCOFFWriter::writeSectionHeaders() { … }
bool XCOFFWriter::writeSectionData() { … }
bool XCOFFWriter::writeRelocations() { … }
bool XCOFFWriter::writeAuxSymbol(const XCOFFYAML::CsectAuxEnt &AuxSym) { … }
bool XCOFFWriter::writeAuxSymbol(const XCOFFYAML::ExcpetionAuxEnt &AuxSym) { … }
bool XCOFFWriter::writeAuxSymbol(const XCOFFYAML::FunctionAuxEnt &AuxSym) { … }
bool XCOFFWriter::writeAuxSymbol(const XCOFFYAML::FileAuxEnt &AuxSym) { … }
bool XCOFFWriter::writeAuxSymbol(const XCOFFYAML::BlockAuxEnt &AuxSym) { … }
bool XCOFFWriter::writeAuxSymbol(const XCOFFYAML::SectAuxEntForDWARF &AuxSym) { … }
bool XCOFFWriter::writeAuxSymbol(const XCOFFYAML::SectAuxEntForStat &AuxSym) { … }
bool XCOFFWriter::writeAuxSymbol(
const std::unique_ptr<XCOFFYAML::AuxSymbolEnt> &AuxSym) { … }
bool XCOFFWriter::writeSymbols() { … }
void XCOFFWriter::writeStringTable() { … }
bool XCOFFWriter::writeXCOFF() { … }
}
namespace llvm {
namespace yaml {
bool yaml2xcoff(XCOFFYAML::Object &Doc, raw_ostream &Out, ErrorHandler EH) { … }
}
}