CMake build fixes, from Xerxes Ranby
[oota-llvm.git] / lib / Target / Mips / MipsTargetMachine.cpp
index 4b13b78d020b5cf82f31b03b169334c972ae7b2e..4675536ce2a5efca263cd825b3e1c8ae23528701 100644 (file)
@@ -31,6 +31,12 @@ int MipsTargetMachineModule = 0;
 static RegisterTarget<MipsTargetMachine>    X("mips", "Mips");
 static RegisterTarget<MipselTargetMachine>  Y("mipsel", "Mipsel");
 
+MipsTargetMachine::AsmPrinterCtorFn MipsTargetMachine::AsmPrinterCtor = 0;
+
+
+// Force static initialization.
+extern "C" void LLVMInitializeMipsTarget() { }
+
 const TargetAsmInfo *MipsTargetMachine::
 createTargetAsmInfo() const 
 {
@@ -105,7 +111,7 @@ getModuleMatchQuality(const Module &M)
 // Install an instruction selector pass using 
 // the ISelDag to gen Mips code.
 bool MipsTargetMachine::
-addInstSelector(PassManagerBase &PM, bool Fast
+addInstSelector(PassManagerBase &PM, CodeGenOpt::Level OptLevel
 {
   PM.add(createMipsISelDag(*this));
   return false;
@@ -115,7 +121,7 @@ addInstSelector(PassManagerBase &PM, bool Fast)
 // machine code is emitted. return true if -print-machineinstrs should 
 // print out the code after the passes.
 bool MipsTargetMachine::
-addPreEmitPass(PassManagerBase &PM, bool Fast
+addPreEmitPass(PassManagerBase &PM, CodeGenOpt::Level OptLevel
 {
   PM.add(createMipsDelaySlotFillerPass(*this));
   return true;
@@ -124,10 +130,10 @@ addPreEmitPass(PassManagerBase &PM, bool Fast)
 // Implements the AssemblyEmitter for the target. Must return
 // true if AssemblyEmitter is supported
 bool MipsTargetMachine::
-addAssemblyEmitter(PassManagerBase &PM, bool Fast, 
-                   raw_ostream &Out) 
-{
+addAssemblyEmitter(PassManagerBase &PM, CodeGenOpt::Level OptLevel, 
+                   bool Verbose, raw_ostream &Out)  {
   // Output assembly language.
-  PM.add(createMipsCodePrinterPass(Out, *this, Fast));
+  assert(AsmPrinterCtor && "AsmPrinter was not linked in");
+  PM.add(AsmPrinterCtor(Out, *this, Verbose));
   return false;
 }