#include "XCOFFDump.h"
#include "llvm-objdump.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Demangle/Demangle.h"
#include "llvm/MC/MCInstPrinter.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/FormattedStream.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
usingnamespacellvm;
usingnamespacellvm::object;
usingnamespacellvm::XCOFF;
usingnamespacellvm::support;
namespace {
class XCOFFDumper : public objdump::Dumper { … };
void XCOFFDumper::printPrivateHeaders() { … }
FormattedString XCOFFDumper::formatName(StringRef Name) { … }
void XCOFFDumper::printHex(StringRef Name, uint64_t Value) { … }
void XCOFFDumper::printNumber(StringRef Name, uint64_t Value) { … }
void XCOFFDumper::printStrHex(StringRef Name, StringRef Str, uint64_t Value) { … }
void XCOFFDumper::printFileHeader() { … }
}
std::unique_ptr<objdump::Dumper>
objdump::createXCOFFDumper(const object::XCOFFObjectFile &Obj) { … }
Error objdump::getXCOFFRelocationValueString(const XCOFFObjectFile &Obj,
const RelocationRef &Rel,
bool SymbolDescription,
SmallVectorImpl<char> &Result) { … }
std::optional<XCOFF::StorageMappingClass>
objdump::getXCOFFSymbolCsectSMC(const XCOFFObjectFile &Obj,
const SymbolRef &Sym) { … }
std::optional<object::SymbolRef>
objdump::getXCOFFSymbolContainingSymbolRef(const XCOFFObjectFile &Obj,
const SymbolRef &Sym) { … }
bool objdump::isLabel(const XCOFFObjectFile &Obj, const SymbolRef &Sym) { … }
std::string objdump::getXCOFFSymbolDescription(const SymbolInfoTy &SymbolInfo,
StringRef SymbolName) { … }
#define PRINTBOOL …
#define PRINTGET …
#define PRINTOPTIONAL …
void objdump::dumpTracebackTable(ArrayRef<uint8_t> Bytes, uint64_t Address,
formatted_raw_ostream &OS, uint64_t End,
const MCSubtargetInfo &STI,
const XCOFFObjectFile *Obj) { … }
#undef PRINTBOOL
#undef PRINTGET
#undef PRINTOPTIONAL