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