[llvm-commits] CVS: llvm/utils/TableGen/TableGen.cpp
Misha Brukman
brukman at cs.uiuc.edu
Fri May 23 19:18:01 PDT 2003
Changes in directory llvm/utils/TableGen:
TableGen.cpp updated: 1.3 -> 1.4
---
Log message:
Add ability to utilize the code emitter generator (CodeEmitterGen).
---
Diffs of the changes:
Index: llvm/utils/TableGen/TableGen.cpp
diff -u llvm/utils/TableGen/TableGen.cpp:1.3 llvm/utils/TableGen/TableGen.cpp:1.4
--- llvm/utils/TableGen/TableGen.cpp:1.3 Tue Dec 3 14:01:04 2002
+++ llvm/utils/TableGen/TableGen.cpp Fri May 23 19:17:12 2003
@@ -1,9 +1,11 @@
#include "Record.h"
#include "Support/CommandLine.h"
+#include "CodeEmitterGen.h"
#include <algorithm>
static cl::opt<std::string> Class("class", cl::desc("Print Enum list for this class"));
static cl::opt<bool> Parse("parse");
+static cl::opt<bool> GenEmitter("gen-emitter");
void ParseFile();
@@ -289,6 +291,7 @@
}
static void ParseMachineCode() {
+ // X86 code
unsigned char Buffer[] = {
0x55, // push EBP
0x89, 0xE5, // mov EBP, ESP
@@ -307,7 +310,18 @@
0x85, 0xC0, // test EAX, EAX
0xF4, // hlt
};
-
+
+#if 0
+ // SparcV9 code
+ unsigned char Buffer[] = { 0xbf, 0xe0, 0x20, 0x1f, 0x1, 0x0, 0x0, 0x1,
+ 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x20, 0x1, 0x1,
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x1,
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+ 0x0, 0x0, 0xaf, 0xe8, 0x20, 0x17
+ };
+#endif
+
std::vector<Record*> Insts;
const std::map<std::string, Record*> &Defs = Records.getDefs();
@@ -341,6 +355,12 @@
if (Parse) {
ParseMachineCode();
+ return 0;
+ }
+
+ if (GenEmitter) {
+ CodeEmitterGen CEG(Records);
+ CEG.createEmitter(std::cout);
return 0;
}
More information about the llvm-commits
mailing list