- FunctionPass *Printer =
- getTarget().createAsmPrinter(Out, *this, getMCAsmInfo(),
- getVerboseAsm());
- if (Printer == 0) return CGFT_ErrorOccurred;
- PM.add(Printer);
+ MCInstPrinter *InstPrinter =
+ getTarget().createMCInstPrinter(MAI.getAssemblerDialect(), MAI);
+
+ // Create a code emitter if asked to show the encoding.
+ //
+ // FIXME: These are currently leaked.
+ MCCodeEmitter *MCE = 0;
+ if (ShowMCEncoding)
+ MCE = getTarget().createCodeEmitter(*this, *Context);
+
+ AsmStreamer.reset(createAsmStreamer(*Context, Out,
+ getTargetData()->isLittleEndian(),
+ getVerboseAsm(), InstPrinter,
+ MCE, ShowMCInst));