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 20 struct InternalInstruction; 21 22 namespace llvm { 23 24 class MCInst; 25 class MemoryObject; 26 class raw_ostream; 27 28 struct EDInstInfo; 29 30 /// MBlazeDisassembler - Disassembler for all MBlaze platforms. 31 class MBlazeDisassembler : public MCDisassembler { 32 public: 33 /// Constructor - Initializes the disassembler. 34 /// MBlazeDisassembler(const MCSubtargetInfo & STI)35 MBlazeDisassembler(const MCSubtargetInfo &STI) : 36 MCDisassembler(STI) { 37 } 38 ~MBlazeDisassembler()39 ~MBlazeDisassembler() { 40 } 41 42 /// getInstruction - See MCDisassembler. 43 MCDisassembler::DecodeStatus getInstruction(MCInst &instr, 44 uint64_t &size, 45 const MemoryObject ®ion, 46 uint64_t address, 47 raw_ostream &vStream, 48 raw_ostream &cStream) const; 49 50 /// getEDInfo - See MCDisassembler. 51 EDInstInfo *getEDInfo() const; 52 }; 53 54 } // namespace llvm 55 56 #endif 57