1//===------------ ARMDecoderEmitter.h - Decoder Generator -------*- 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 ARM Disassembler.
11// It contains the tablegen backend declaration ARMDecoderEmitter.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef ARMDECODEREMITTER_H
16#define ARMDECODEREMITTER_H
17
18#include "llvm/Support/DataTypes.h"
19#include "llvm/TableGen/TableGenBackend.h"
20
21namespace llvm {
22
23class ARMDecoderEmitter : public TableGenBackend {
24  RecordKeeper &Records;
25public:
26  ARMDecoderEmitter(RecordKeeper &R) : Records(R) {
27    initBackend();
28  }
29
30  ~ARMDecoderEmitter() {
31    shutdownBackend();
32  }
33
34  // run - Output the code emitter
35  void run(raw_ostream &o);
36
37private:
38  // Helper class for ARMDecoderEmitter.
39  class ARMDEBackend;
40
41  ARMDEBackend *Backend;
42
43  void initBackend();
44  void shutdownBackend();
45};
46
47} // end llvm namespace
48
49#endif
50