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 &region,
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