aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/X86/MCTargetDesc/X86TargetDesc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/X86/MCTargetDesc/X86TargetDesc.cpp')
-rw-r--r--lib/Target/X86/MCTargetDesc/X86TargetDesc.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/Target/X86/MCTargetDesc/X86TargetDesc.cpp b/lib/Target/X86/MCTargetDesc/X86TargetDesc.cpp
index 44d10979ca..b55cfdc2f8 100644
--- a/lib/Target/X86/MCTargetDesc/X86TargetDesc.cpp
+++ b/lib/Target/X86/MCTargetDesc/X86TargetDesc.cpp
@@ -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);
+}