#include "Record.h"
#include "CodeEmitterGen.h"
-int CodeEmitterGen::createEmitter(std::ostream &o) {
+bool CodeEmitterGen::run(std::ostream &o) {
std::vector<Record*> Insts;
const std::map<std::string, Record*> &Defs = Records.getDefs();
const RecordVal *InstVal = R->getValue("Inst");
if (!InstVal) {
std::cerr << "No 'Inst' record found in target description file!\n";
- return 1;
+ return true;
}
Init *InitVal = InstVal->getValue();
<< " }\n"
<< " return Value;\n"
<< "}\n";
- return 0;
+ return false;
}
public:
CodeEmitterGen(RecordKeeper &R) : Records(R) {}
- int createEmitter(std::ostream &o);
+ // run - Output the code emitter, returning true on failure.
+ bool run(std::ostream &o);
private:
void emitMachineOpEmitter(std::ostream &o, const std::string &Namespace);
void emitGetValueBit(std::ostream &o, const std::string &Namespace);
switch (Action) {
case Parse: ParseMachineCode(); break;
case GenEmitter:
- ErrorCode = CodeEmitterGen(Records).createEmitter(*Out);
+ ErrorCode = CodeEmitterGen(Records).run(*Out);
break;
case PrintRecords:
*Out << Records; // No argument, dump all contents
#include "Record.h"
#include "CodeEmitterGen.h"
-int CodeEmitterGen::createEmitter(std::ostream &o) {
+bool CodeEmitterGen::run(std::ostream &o) {
std::vector<Record*> Insts;
const std::map<std::string, Record*> &Defs = Records.getDefs();
const RecordVal *InstVal = R->getValue("Inst");
if (!InstVal) {
std::cerr << "No 'Inst' record found in target description file!\n";
- return 1;
+ return true;
}
Init *InitVal = InstVal->getValue();
<< " }\n"
<< " return Value;\n"
<< "}\n";
- return 0;
+ return false;
}
public:
CodeEmitterGen(RecordKeeper &R) : Records(R) {}
- int createEmitter(std::ostream &o);
+ // run - Output the code emitter, returning true on failure.
+ bool run(std::ostream &o);
private:
void emitMachineOpEmitter(std::ostream &o, const std::string &Namespace);
void emitGetValueBit(std::ostream &o, const std::string &Namespace);
switch (Action) {
case Parse: ParseMachineCode(); break;
case GenEmitter:
- ErrorCode = CodeEmitterGen(Records).createEmitter(*Out);
+ ErrorCode = CodeEmitterGen(Records).run(*Out);
break;
case PrintRecords:
*Out << Records; // No argument, dump all contents