Remove old style hacks to register AsmPrinter into TargetMachine.
[oota-llvm.git] / lib / Target / ARM / ARMTargetMachine.cpp
index ad800207382a61bbfcae0bd49e595087f3a0eac1..54df2a59e19753c1a1c2a8f14afd7b45f6eb3392 100644 (file)
@@ -45,9 +45,6 @@ static RegisterTarget<ThumbTargetMachine> Y(TheThumbTarget, "thumb", "Thumb");
 // Force static initialization.
 extern "C" void LLVMInitializeARMTarget() { }
 
-// No assembler printer by default
-ARMBaseTargetMachine::AsmPrinterCtorFn ARMBaseTargetMachine::AsmPrinterCtor = 0;
-
 /// TargetMachine ctor - Create an ARM architecture model.
 ///
 ARMBaseTargetMachine::ARMBaseTargetMachine(const Target &T,
@@ -136,11 +133,10 @@ bool ARMBaseTargetMachine::addAssemblyEmitter(PassManagerBase &PM,
                                               CodeGenOpt::Level OptLevel,
                                               bool Verbose,
                                               formatted_raw_ostream &Out) {
-  // Output assembly language.
-  assert(AsmPrinterCtor && "AsmPrinter was not linked in");
-  if (AsmPrinterCtor)
-    PM.add(AsmPrinterCtor(Out, *this, Verbose));
-
+  FunctionPass *Printer = getTarget().createAsmPrinter(Out, *this, Verbose);
+  if (!Printer)
+    llvm_report_error("unable to create assembly printer");
+  PM.add(Printer);
   return false;
 }