Merge XXXGenRegisterDesc.inc XXXGenRegisterNames.inc XXXGenRegisterInfo.h.inc
[oota-llvm.git] / utils / TableGen / RegisterInfoEmitter.h
index 6bf14b259a8370bdfa10af3942db92ca30799451..d625b7d39a682b5ef472e99b662fd1d9a88b40c4 100644 (file)
 
 namespace llvm {
 
+class CodeGenRegBank;
+class CodeGenTarget;
+
 class RegisterInfoEmitter : public TableGenBackend {
   RecordKeeper &Records;
 public:
   RegisterInfoEmitter(RecordKeeper &R) : Records(R) {}
 
-  // run - Output the register file description, returning true on failure.
-  void run(raw_ostream &o);
+  // runEnums - Print out enum values for all of the registers.
+  void runEnums(raw_ostream &o, CodeGenTarget &Target, CodeGenRegBank &Bank);
 
   // runHeader - Emit a header fragment for the register info emitter.
-  void runHeader(raw_ostream &o);
+  void runHeader(raw_ostream &o, CodeGenTarget &Target);
 
-  // runEnums - Print out enum values for all of the registers.
-  void runEnums(raw_ostream &o);
+  // runMCDesc - Print out MC register descriptions.
+  void runMCDesc(raw_ostream &o, CodeGenTarget &Target, CodeGenRegBank &Bank);
+
+  // runTargetDesc - Output the target register and register file descriptions.
+  void runTargetDesc(raw_ostream &o, CodeGenTarget &Target, CodeGenRegBank &Bank);
 
-  // runDesc - Print out register descriptions.
-  void runDesc(raw_ostream &o);
+  // run - Output the register file description.
+  void run(raw_ostream &o);
 };
 
 } // End llvm namespace