15ffd83dbSDimitry Andric //===-- XCOFFDump.h ---------------------------------------------*- C++ -*-===// 25ffd83dbSDimitry Andric // 35ffd83dbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 45ffd83dbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 55ffd83dbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65ffd83dbSDimitry Andric // 75ffd83dbSDimitry Andric //===----------------------------------------------------------------------===// 85ffd83dbSDimitry Andric 95ffd83dbSDimitry Andric #ifndef LLVM_TOOLS_LLVM_OBJDUMP_XCOFFDUMP_H 105ffd83dbSDimitry Andric #define LLVM_TOOLS_LLVM_OBJDUMP_XCOFFDUMP_H 115ffd83dbSDimitry Andric 125ffd83dbSDimitry Andric #include "llvm/Object/XCOFFObjectFile.h" 135ffd83dbSDimitry Andric 145ffd83dbSDimitry Andric namespace llvm { 155ffd83dbSDimitry Andric 1606c3fb27SDimitry Andric class formatted_raw_ostream; 1706c3fb27SDimitry Andric class MCSubtargetInfo; 185ffd83dbSDimitry Andric struct SymbolInfoTy; 195ffd83dbSDimitry Andric 205ffd83dbSDimitry Andric namespace objdump { 21bdd1243dSDimitry Andric std::optional<XCOFF::StorageMappingClass> 22753f127fSDimitry Andric getXCOFFSymbolCsectSMC(const object::XCOFFObjectFile &Obj, 235ffd83dbSDimitry Andric const object::SymbolRef &Sym); 245ffd83dbSDimitry Andric 25bdd1243dSDimitry Andric std::optional<object::SymbolRef> 26753f127fSDimitry Andric getXCOFFSymbolContainingSymbolRef(const object::XCOFFObjectFile &Obj, 27349cc55cSDimitry Andric const object::SymbolRef &Sym); 28349cc55cSDimitry Andric 29753f127fSDimitry Andric bool isLabel(const object::XCOFFObjectFile &Obj, const object::SymbolRef &Sym); 305ffd83dbSDimitry Andric 315ffd83dbSDimitry Andric std::string getXCOFFSymbolDescription(const SymbolInfoTy &SymbolInfo, 325ffd83dbSDimitry Andric StringRef SymbolName); 335ffd83dbSDimitry Andric 34753f127fSDimitry Andric Error getXCOFFRelocationValueString(const object::XCOFFObjectFile &Obj, 355ffd83dbSDimitry Andric const object::RelocationRef &RelRef, 36*cb14a3feSDimitry Andric bool SymbolDescription, 375ffd83dbSDimitry Andric llvm::SmallVectorImpl<char> &Result); 3806c3fb27SDimitry Andric 3906c3fb27SDimitry Andric void dumpTracebackTable(ArrayRef<uint8_t> Bytes, uint64_t Address, 4006c3fb27SDimitry Andric formatted_raw_ostream &OS, uint64_t End, 4106c3fb27SDimitry Andric const MCSubtargetInfo &STI, 4206c3fb27SDimitry Andric const object::XCOFFObjectFile *Obj); 435ffd83dbSDimitry Andric } // namespace objdump 445ffd83dbSDimitry Andric } // namespace llvm 455ffd83dbSDimitry Andric #endif 46