1dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines//===- AArch64Disassembler.h - Disassembler for AArch64 ---------*- C++ -*-===// 2dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// 3dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// The LLVM Compiler Infrastructure 4dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// 5dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// This file is distributed under the University of Illinois Open Source 6dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// License. See LICENSE.TXT for details. 7dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// 8dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines//===----------------------------------------------------------------------===// 9dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// 10dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines// 11dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines//===----------------------------------------------------------------------===// 12dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 13dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines#ifndef AArch64DISASSEMBLER_H 14dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines#define AArch64DISASSEMBLER_H 15dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 16dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines#include "llvm/MC/MCDisassembler.h" 17dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 18dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinesnamespace llvm { 19dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 20dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinesclass MCInst; 21dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinesclass MemoryObject; 22dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinesclass raw_ostream; 23dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 24dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinesclass AArch64Disassembler : public MCDisassembler { 25dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hinespublic: 26dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines AArch64Disassembler(const MCSubtargetInfo &STI, MCContext &Ctx) 27dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines : MCDisassembler(STI, Ctx) {} 28dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 29dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines ~AArch64Disassembler() {} 30dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 31dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines /// getInstruction - See MCDisassembler. 32dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines MCDisassembler::DecodeStatus 33dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines getInstruction(MCInst &instr, uint64_t &size, const MemoryObject ®ion, 34dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines uint64_t address, raw_ostream &vStream, 35dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines raw_ostream &cStream) const override; 36dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines}; 37dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 38dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines} // namespace llvm 39dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 40dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines#endif 41