Add MCSubtargetInfo target registry stuff.
[oota-llvm.git] / lib / Target / X86 / MCTargetDesc / X86TargetDesc.cpp
index 44d10979ca2619998864d8f928b5e74e249474ba..b55cfdc2f82cc6d9ac9fe09f2d7c167cdb79d1fd 100644 (file)
@@ -14,6 +14,7 @@
 #include "X86TargetDesc.h"
 #include "llvm/MC/MCInstrInfo.h"
 #include "llvm/MC/MCRegisterInfo.h"
+#include "llvm/MC/MCSubtargetInfo.h"
 #include "llvm/Target/TargetRegistry.h"
 
 #define GET_REGINFO_MC_DESC
@@ -22,6 +23,9 @@
 #define GET_INSTRINFO_MC_DESC
 #include "X86GenInstrInfo.inc"
 
+#define GET_SUBTARGETINFO_MC_DESC
+#include "X86GenSubtarget.inc"
+
 using namespace llvm;
 
 MCInstrInfo *createX86MCInstrInfo() {
@@ -36,7 +40,21 @@ MCRegisterInfo *createX86MCRegisterInfo() {
   return X;
 }
 
+MCSubtargetInfo *createX86MCSubtargetInfo() {
+  MCSubtargetInfo *X = new MCSubtargetInfo();
+  InitX86MCSubtargetInfo(X);
+  return X;
+}
+
 // Force static initialization.
+extern "C" void LLVMInitializeX86MCInstrInfo() {
+  RegisterMCInstrInfo<MCInstrInfo> X(TheX86_32Target);
+  RegisterMCInstrInfo<MCInstrInfo> Y(TheX86_64Target);
+
+  TargetRegistry::RegisterMCInstrInfo(TheX86_32Target, createX86MCInstrInfo);
+  TargetRegistry::RegisterMCInstrInfo(TheX86_64Target, createX86MCInstrInfo);
+}
+
 extern "C" void LLVMInitializeX86MCRegInfo() {
   RegisterMCRegInfo<MCRegisterInfo> X(TheX86_32Target);
   RegisterMCRegInfo<MCRegisterInfo> Y(TheX86_64Target);
@@ -44,3 +62,13 @@ extern "C" void LLVMInitializeX86MCRegInfo() {
   TargetRegistry::RegisterMCRegInfo(TheX86_32Target, createX86MCRegisterInfo);
   TargetRegistry::RegisterMCRegInfo(TheX86_64Target, createX86MCRegisterInfo);
 }
+
+extern "C" void LLVMInitializeX86MCSubtargetInfo() {
+  RegisterMCSubtargetInfo<MCSubtargetInfo> X(TheX86_32Target);
+  RegisterMCSubtargetInfo<MCSubtargetInfo> Y(TheX86_64Target);
+
+  TargetRegistry::RegisterMCSubtargetInfo(TheX86_32Target,
+                                          createX86MCSubtargetInfo);
+  TargetRegistry::RegisterMCSubtargetInfo(TheX86_64Target,
+                                          createX86MCSubtargetInfo);
+}