xref: /aosp_15_r20/external/llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.h (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker //===- AArch64ExternalSymbolizer.h - Symbolizer for AArch64 -----*- C++ -*-===//
2*9880d681SAndroid Build Coastguard Worker //
3*9880d681SAndroid Build Coastguard Worker //                     The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker //
5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker //
8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker //
10*9880d681SAndroid Build Coastguard Worker // Symbolize AArch64 assembly code during disassembly using callbacks.
11*9880d681SAndroid Build Coastguard Worker //
12*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
13*9880d681SAndroid Build Coastguard Worker 
14*9880d681SAndroid Build Coastguard Worker #ifndef LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64EXTERNALSYMBOLIZER_H
15*9880d681SAndroid Build Coastguard Worker #define LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64EXTERNALSYMBOLIZER_H
16*9880d681SAndroid Build Coastguard Worker 
17*9880d681SAndroid Build Coastguard Worker #include "llvm/MC/MCDisassembler/MCExternalSymbolizer.h"
18*9880d681SAndroid Build Coastguard Worker 
19*9880d681SAndroid Build Coastguard Worker namespace llvm {
20*9880d681SAndroid Build Coastguard Worker 
21*9880d681SAndroid Build Coastguard Worker class AArch64ExternalSymbolizer : public MCExternalSymbolizer {
22*9880d681SAndroid Build Coastguard Worker public:
AArch64ExternalSymbolizer(MCContext & Ctx,std::unique_ptr<MCRelocationInfo> RelInfo,LLVMOpInfoCallback GetOpInfo,LLVMSymbolLookupCallback SymbolLookUp,void * DisInfo)23*9880d681SAndroid Build Coastguard Worker   AArch64ExternalSymbolizer(MCContext &Ctx,
24*9880d681SAndroid Build Coastguard Worker                             std::unique_ptr<MCRelocationInfo> RelInfo,
25*9880d681SAndroid Build Coastguard Worker                             LLVMOpInfoCallback GetOpInfo,
26*9880d681SAndroid Build Coastguard Worker                             LLVMSymbolLookupCallback SymbolLookUp,
27*9880d681SAndroid Build Coastguard Worker                             void *DisInfo)
28*9880d681SAndroid Build Coastguard Worker       : MCExternalSymbolizer(Ctx, std::move(RelInfo), GetOpInfo, SymbolLookUp,
29*9880d681SAndroid Build Coastguard Worker                              DisInfo) {}
30*9880d681SAndroid Build Coastguard Worker 
31*9880d681SAndroid Build Coastguard Worker   bool tryAddingSymbolicOperand(MCInst &MI, raw_ostream &CommentStream,
32*9880d681SAndroid Build Coastguard Worker                                 int64_t Value, uint64_t Address, bool IsBranch,
33*9880d681SAndroid Build Coastguard Worker                                 uint64_t Offset, uint64_t InstSize) override;
34*9880d681SAndroid Build Coastguard Worker };
35*9880d681SAndroid Build Coastguard Worker 
36*9880d681SAndroid Build Coastguard Worker } // namespace llvm
37*9880d681SAndroid Build Coastguard Worker 
38*9880d681SAndroid Build Coastguard Worker #endif
39