blob: 4b87da5067ee5683d30ab36f8fa62267570b5881 [file] [log] [blame]
Misha Brukman9fff7e12003-05-24 00:15:53 +00001//===- CodeEmitterGen.h - Code Emitter Generator ----------------*- C++ -*-===//
2//
Chris Lattneraaa39392003-07-31 04:32:37 +00003// FIXME: document
Misha Brukman9fff7e12003-05-24 00:15:53 +00004//
5//===----------------------------------------------------------------------===//
6
7#ifndef CODEMITTERGEN_H
8#define CODEMITTERGEN_H
9
Chris Lattner0e5e49e2003-08-06 04:36:35 +000010#include "TableGenBackend.h"
Misha Brukman9fff7e12003-05-24 00:15:53 +000011
Chris Lattner0e5e49e2003-08-06 04:36:35 +000012class CodeEmitterGen : public TableGenBackend {
Misha Brukman9fff7e12003-05-24 00:15:53 +000013 RecordKeeper &Records;
Misha Brukman9fff7e12003-05-24 00:15:53 +000014public:
15 CodeEmitterGen(RecordKeeper &R) : Records(R) {}
16
Chris Lattner048c00d2003-08-01 04:38:18 +000017 // run - Output the code emitter
18 void run(std::ostream &o);
Chris Lattneraaa39392003-07-31 04:32:37 +000019private:
Misha Brukman9fff7e12003-05-24 00:15:53 +000020 void emitMachineOpEmitter(std::ostream &o, const std::string &Namespace);
21 void emitGetValueBit(std::ostream &o, const std::string &Namespace);
22};
23
24#endif