blob: 97c4af963c92dbf78394de1a578bdc4266f8e9cf [file] [log] [blame]
Jia Liu31d157a2012-02-18 12:03:15 +00001//===-- MBlazeDisassembler.h - Disassembler for MicroBlaze -----*- C++ -*-===//
Wesley Pecka0603832010-10-27 00:23:01 +00002//
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
Wesley Pecka0603832010-10-27 00:23:01 +000020namespace 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 ///
James Molloyb9505852011-09-07 17:24:38 +000033 MBlazeDisassembler(const MCSubtargetInfo &STI) :
34 MCDisassembler(STI) {
Wesley Pecka0603832010-10-27 00:23:01 +000035 }
36
37 ~MBlazeDisassembler() {
38 }
39
40 /// getInstruction - See MCDisassembler.
Owen Anderson83e3f672011-08-17 17:44:15 +000041 MCDisassembler::DecodeStatus getInstruction(MCInst &instr,
Wesley Pecka0603832010-10-27 00:23:01 +000042 uint64_t &size,
Derek Schuff2ea93872012-02-06 22:30:29 +000043 MemoryObject &region,
Wesley Pecka0603832010-10-27 00:23:01 +000044 uint64_t address,
Owen Anderson98c5dda2011-09-15 23:38:46 +000045 raw_ostream &vStream,
46 raw_ostream &cStream) const;
Wesley Pecka0603832010-10-27 00:23:01 +000047
48 /// getEDInfo - See MCDisassembler.
Benjamin Kramer88b6fc02012-02-11 14:51:07 +000049 const EDInstInfo *getEDInfo() const;
Wesley Pecka0603832010-10-27 00:23:01 +000050};
51
52} // namespace llvm
53
54#endif