1274955Ssvnmir//===- AArch64ExternalSymbolizer.h - Symbolizer for AArch64 -----*- C++ -*-===//
2274955Ssvnmir//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6274955Ssvnmir//
7274955Ssvnmir//===----------------------------------------------------------------------===//
8274955Ssvnmir//
9274955Ssvnmir// Symbolize AArch64 assembly code during disassembly using callbacks.
10274955Ssvnmir//
11274955Ssvnmir//===----------------------------------------------------------------------===//
12274955Ssvnmir
13280031Sdim#ifndef LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64EXTERNALSYMBOLIZER_H
14280031Sdim#define LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64EXTERNALSYMBOLIZER_H
15274955Ssvnmir
16309124Sdim#include "llvm/MC/MCDisassembler/MCExternalSymbolizer.h"
17274955Ssvnmir
18274955Ssvnmirnamespace llvm {
19274955Ssvnmir
20274955Ssvnmirclass AArch64ExternalSymbolizer : public MCExternalSymbolizer {
21274955Ssvnmirpublic:
22274955Ssvnmir  AArch64ExternalSymbolizer(MCContext &Ctx,
23274955Ssvnmir                            std::unique_ptr<MCRelocationInfo> RelInfo,
24274955Ssvnmir                            LLVMOpInfoCallback GetOpInfo,
25274955Ssvnmir                            LLVMSymbolLookupCallback SymbolLookUp,
26274955Ssvnmir                            void *DisInfo)
27274955Ssvnmir      : MCExternalSymbolizer(Ctx, std::move(RelInfo), GetOpInfo, SymbolLookUp,
28274955Ssvnmir                             DisInfo) {}
29274955Ssvnmir
30274955Ssvnmir  bool tryAddingSymbolicOperand(MCInst &MI, raw_ostream &CommentStream,
31274955Ssvnmir                                int64_t Value, uint64_t Address, bool IsBranch,
32274955Ssvnmir                                uint64_t Offset, uint64_t InstSize) override;
33274955Ssvnmir};
34274955Ssvnmir
35274955Ssvnmir} // namespace llvm
36274955Ssvnmir
37274955Ssvnmir#endif
38