xref: /freebsd/contrib/llvm-project/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.h (revision ee0fe82ee2892f5ece189db0eab38913aaab5f0f)
1 //===- AArch64Disassembler.h - Disassembler for AArch64 ---------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 //
10 //===----------------------------------------------------------------------===//
11 
12 #ifndef LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64DISASSEMBLER_H
13 #define LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64DISASSEMBLER_H
14 
15 #include "llvm/MC/MCDisassembler/MCDisassembler.h"
16 
17 namespace llvm {
18 
19 class AArch64Disassembler : public MCDisassembler {
20 public:
21   AArch64Disassembler(const MCSubtargetInfo &STI, MCContext &Ctx)
22     : MCDisassembler(STI, Ctx) {}
23 
24   ~AArch64Disassembler() override = default;
25 
26   MCDisassembler::DecodeStatus
27   getInstruction(MCInst &Instr, uint64_t &Size, ArrayRef<uint8_t> Bytes,
28                  uint64_t Address, raw_ostream &VStream,
29                  raw_ostream &CStream) const override;
30 };
31 
32 } // end namespace llvm
33 
34 #endif // LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64DISASSEMBLER_H
35