File indexing completed on 2026-05-10 08:44:11
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef LLVM_MC_MCDISASSEMBLER_MCEXTERNALSYMBOLIZER_H
0016 #define LLVM_MC_MCDISASSEMBLER_MCEXTERNALSYMBOLIZER_H
0017
0018 #include "llvm-c/DisassemblerTypes.h"
0019 #include "llvm/MC/MCDisassembler/MCSymbolizer.h"
0020 #include <memory>
0021
0022 namespace llvm {
0023
0024
0025
0026
0027 class MCExternalSymbolizer : public MCSymbolizer {
0028 protected:
0029
0030
0031
0032 LLVMOpInfoCallback GetOpInfo;
0033
0034 LLVMSymbolLookupCallback SymbolLookUp;
0035
0036 void *DisInfo;
0037
0038
0039 public:
0040 MCExternalSymbolizer(MCContext &Ctx,
0041 std::unique_ptr<MCRelocationInfo> RelInfo,
0042 LLVMOpInfoCallback getOpInfo,
0043 LLVMSymbolLookupCallback symbolLookUp, void *disInfo)
0044 : MCSymbolizer(Ctx, std::move(RelInfo)), GetOpInfo(getOpInfo),
0045 SymbolLookUp(symbolLookUp), DisInfo(disInfo) {}
0046
0047 bool tryAddingSymbolicOperand(MCInst &MI, raw_ostream &CommentStream,
0048 int64_t Value, uint64_t Address, bool IsBranch,
0049 uint64_t Offset, uint64_t OpSize,
0050 uint64_t InstSize) override;
0051 void tryAddingPcLoadReferenceComment(raw_ostream &CommentStream,
0052 int64_t Value,
0053 uint64_t Address) override;
0054 };
0055
0056 }
0057
0058 #endif