1//===-- MBlazeDisassembler.h - Disassembler for MicroBlaze -----*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file is part of the MBlaze Disassembler. It it the header for 11// MBlazeDisassembler, a subclass of MCDisassembler. 12// 13//===----------------------------------------------------------------------===// 14 15#ifndef MBLAZEDISASSEMBLER_H 16#define MBLAZEDISASSEMBLER_H 17 18#include "llvm/MC/MCDisassembler.h" 19 20namespace llvm { 21 22class MCInst; 23class MemoryObject; 24class raw_ostream; 25 26struct EDInstInfo; 27 28/// MBlazeDisassembler - Disassembler for all MBlaze platforms. 29class MBlazeDisassembler : public MCDisassembler { 30public: 31 /// Constructor - Initializes the disassembler. 32 /// 33 MBlazeDisassembler(const MCSubtargetInfo &STI) : 34 MCDisassembler(STI) { 35 } 36 37 ~MBlazeDisassembler() { 38 } 39 40 /// getInstruction - See MCDisassembler. 41 MCDisassembler::DecodeStatus getInstruction(MCInst &instr, 42 uint64_t &size, 43 const MemoryObject ®ion, 44 uint64_t address, 45 raw_ostream &vStream, 46 raw_ostream &cStream) const; 47 48 /// getEDInfo - See MCDisassembler. 49 const EDInstInfo *getEDInfo() const; 50}; 51 52} // namespace llvm 53 54#endif 55