blob: 85bc8b3d2c0b2cd640ba2651f8a72cdc4f9dfb7a [file] [log] [blame]
Johnny Chend30a98e2010-03-16 16:36:54 +00001//===- X86Disassembler.h - Disassembler for x86 and x86_64 ------*- 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//===----------------------------------------------------------------------===//
11
12#ifndef ARMDISASSEMBLER_H
13#define ARMDISASSEMBLER_H
14
15#include "llvm/MC/MCDisassembler.h"
16
17namespace llvm {
18
19class MCInst;
20class MemoryObject;
21class raw_ostream;
22
23namespace ARMDisassembler {
24
25/// ARMDisassembler - ARM disassembler for all ARM platforms.
26class ARMDisassembler : public MCDisassembler {
27public:
28 /// Constructor - Initializes the disassembler.
29 ///
30 ARMDisassembler() :
31 MCDisassembler() {
32 }
33
34 ~ARMDisassembler() {
35 }
36
37 /// getInstruction - See MCDisassembler.
38 bool getInstruction(MCInst &instr,
39 uint64_t &size,
40 const MemoryObject &region,
41 uint64_t address,
42 raw_ostream &vStream) const;
43private:
44};
45
46/// ThumbDisassembler - Thumb disassembler for all ARM platforms.
47class ThumbDisassembler : public MCDisassembler {
48public:
49 /// Constructor - Initializes the disassembler.
50 ///
51 ThumbDisassembler() :
52 MCDisassembler() {
53 }
54
55 ~ThumbDisassembler() {
56 }
57
58 /// getInstruction - See MCDisassembler.
59 bool getInstruction(MCInst &instr,
60 uint64_t &size,
61 const MemoryObject &region,
62 uint64_t address,
63 raw_ostream &vStream) const;
64private:
65};
66
67} // namespace ARMDisassembler
68
69} // namespace llvm
70
71#endif