brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · b9f7854 Raw
41 lines · c
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-exception6//7//===----------------------------------------------------------------------===//8//9//10//===----------------------------------------------------------------------===//11 12#ifndef LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64DISASSEMBLER_H13#define LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64DISASSEMBLER_H14 15#include "llvm/MC/MCDisassembler/MCDisassembler.h"16#include "llvm/MC/MCInstrInfo.h"17 18namespace llvm {19 20class AArch64Disassembler : public MCDisassembler {21  std::unique_ptr<const MCInstrInfo> const MCII;22 23public:24  AArch64Disassembler(const MCSubtargetInfo &STI, MCContext &Ctx,25                      MCInstrInfo const *MCII)26      : MCDisassembler(STI, Ctx), MCII(MCII) {}27 28  ~AArch64Disassembler() override = default;29 30  MCDisassembler::DecodeStatus31  getInstruction(MCInst &Instr, uint64_t &Size, ArrayRef<uint8_t> Bytes,32                 uint64_t Address, raw_ostream &CStream) const override;33 34  uint64_t suggestBytesToSkip(ArrayRef<uint8_t> Bytes,35                              uint64_t Address) const override;36};37 38} // end namespace llvm39 40#endif // LLVM_LIB_TARGET_AARCH64_DISASSEMBLER_AARCH64DISASSEMBLER_H41