1274955Ssvnmir//===- AArch64ExternalSymbolizer.h - Symbolizer for AArch64 -----*- C++ -*-===//
2274955Ssvnmir//
3274955Ssvnmir//                     The LLVM Compiler Infrastructure
4274955Ssvnmir//
5274955Ssvnmir// This file is distributed under the University of Illinois Open Source
6274955Ssvnmir// License. See LICENSE.TXT for details.
7274955Ssvnmir//
8274955Ssvnmir//===----------------------------------------------------------------------===//
9274955Ssvnmir//
10274955Ssvnmir// Symbolize AArch64 assembly code during disassembly using callbacks.
11274955Ssvnmir//
12274955Ssvnmir//===----------------------------------------------------------------------===//
13274955Ssvnmir
14280031Sdim#ifndef LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64EXTERNALSYMBOLIZER_H
15280031Sdim#define LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64EXTERNALSYMBOLIZER_H
16274955Ssvnmir
17274955Ssvnmir#include "llvm/MC/MCExternalSymbolizer.h"
18274955Ssvnmir
19274955Ssvnmirnamespace llvm {
20274955Ssvnmir
21274955Ssvnmirclass AArch64ExternalSymbolizer : public MCExternalSymbolizer {
22274955Ssvnmirpublic:
23274955Ssvnmir  AArch64ExternalSymbolizer(MCContext &Ctx,
24274955Ssvnmir                            std::unique_ptr<MCRelocationInfo> RelInfo,
25274955Ssvnmir                            LLVMOpInfoCallback GetOpInfo,
26274955Ssvnmir                            LLVMSymbolLookupCallback SymbolLookUp,
27274955Ssvnmir                            void *DisInfo)
28274955Ssvnmir      : MCExternalSymbolizer(Ctx, std::move(RelInfo), GetOpInfo, SymbolLookUp,
29274955Ssvnmir                             DisInfo) {}
30274955Ssvnmir
31274955Ssvnmir  bool tryAddingSymbolicOperand(MCInst &MI, raw_ostream &CommentStream,
32274955Ssvnmir                                int64_t Value, uint64_t Address, bool IsBranch,
33274955Ssvnmir                                uint64_t Offset, uint64_t InstSize) override;
34274955Ssvnmir};
35274955Ssvnmir
36274955Ssvnmir} // namespace llvm
37274955Ssvnmir
38274955Ssvnmir#endif
39