Index: lib/Target/PNaCl/MCTargetDesc/PNaClMCTargetDesc.cpp |
=================================================================== |
--- lib/Target/PNaCl/MCTargetDesc/PNaClMCTargetDesc.cpp (revision 0) |
+++ lib/Target/PNaCl/MCTargetDesc/PNaClMCTargetDesc.cpp (revision 0) |
@@ -0,0 +1,48 @@ |
+//===-- PNaClMCTargetDesc.cpp - PNaCl Target Descriptions -------*- C++ -*-===// |
+// |
+// The LLVM Compiler Infrastructure |
+// |
+// This file is distributed under the University of Illinois Open Source |
+// License. See LICENSE.TXT for details. |
+// |
+//===----------------------------------------------------------------------===// |
+// |
+// This file provides PNaCl specific target descriptions. |
+// |
+//===----------------------------------------------------------------------===// |
+ |
+#include "PNaClMCTargetDesc.h" |
+#include "PNaClMCAsmInfo.h" |
+#include "llvm/MC/MCCodeGenInfo.h" |
+#include "llvm/MC/MCInstrInfo.h" |
+#include "llvm/MC/MCRegisterInfo.h" |
+#include "llvm/MC/MCSubtargetInfo.h" |
+#include "llvm/Support/TargetRegistry.h" |
+ |
+using namespace llvm; |
+ |
+static MCSubtargetInfo *createPNaClMCSubtargetInfo(StringRef TT, StringRef CPU, |
+ StringRef FS) { |
+ return new MCSubtargetInfo(); |
+} |
+ |
+static MCCodeGenInfo *createPNaClMCCodeGenInfo(StringRef TT, Reloc::Model RM, |
+ CodeModel::Model CM) { |
+ MCCodeGenInfo *X = new MCCodeGenInfo(); |
+ X->InitMCCodeGenInfo(Reloc::PIC_, CM); |
+ return X; |
+} |
+ |
+// Force static initialization. |
+extern "C" void LLVMInitializePNaClTargetMC() { |
+ // Register the MC asm info. |
+ RegisterMCAsmInfo<PNaClMCAsmInfo> X(ThePNaClTarget); |
+ |
+ // Register the MC codegen info. |
+ TargetRegistry::RegisterMCCodeGenInfo(ThePNaClTarget, |
+ createPNaClMCCodeGenInfo); |
+ |
+ // Register the MC subtarget info. |
+ TargetRegistry::RegisterMCSubtargetInfo(ThePNaClTarget, |
+ createPNaClMCSubtargetInfo); |
+} |