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