Finally eliminate printMCInst and send instructions through
authorChris Lattner <sabre@nondot.org>
Wed, 3 Feb 2010 01:13:25 +0000 (01:13 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 3 Feb 2010 01:13:25 +0000 (01:13 +0000)
the streamer.  Demo:

$ cat t.ll
define i32 @test() nounwind {
  ret i32 42
}
$ llc t.ll -o -
...
_test:
movl $42, %eax
ret
$ llc t.ll -o t.o -filetype=obj
$ otool -tv t.o
t.o:
(__TEXT,__text) section
_test:
00000000 movl $0x0000002a,%eax
00000005 ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95179 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp
lib/Target/X86/AsmPrinter/X86AsmPrinter.h
lib/Target/X86/AsmPrinter/X86MCInstLower.cpp

index 8037247fefa4f2b2d1cf95cdd97a43db229a647d..1ac55a1c326da631cfa78f8eb4bc459f468318a4 100644 (file)
@@ -45,13 +45,6 @@ using namespace llvm;
 // Primitive Helper Functions.
 //===----------------------------------------------------------------------===//
 
-void X86AsmPrinter::printMCInst(const MCInst *MI) {
-  if (MAI->getAssemblerDialect() == 0)
-    X86ATTInstPrinter(O, *MAI).printInstruction(MI);
-  else
-    X86IntelInstPrinter(O, *MAI).printInstruction(MI);
-}
-
 void X86AsmPrinter::PrintPICBaseSymbol() const {
   const TargetLowering *TLI = TM.getTargetLowering();
   O << *static_cast<const X86TargetLowering*>(TLI)->getPICBaseSymbol(MF,
index 754a13787d3044c5c47583b19f9e7402f997e9df..1d32a5f8d8950ac7d4059050eca976f3b746e86a 100644 (file)
@@ -60,8 +60,6 @@ class VISIBILITY_HIDDEN X86AsmPrinter : public AsmPrinter {
   
   virtual void EmitInstruction(const MachineInstr *MI);
   
-  void printMCInst(const MCInst *MI);
-
   void printSymbolOperand(const MachineOperand &MO);
   
   
index 3b3b9ffc53daa9b2eb9af763d6c69d3f9d01b380..eb60a8c1c1ae707103ee39bcaa862d0004521952 100644 (file)
@@ -466,8 +466,7 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
     // lot of extra uniquing.
     TmpInst.addOperand(MCOperand::CreateExpr(MCSymbolRefExpr::Create(PICBase,
                                                                  OutContext)));
-    printMCInst(&TmpInst);
-    O << '\n';
+    OutStreamer.EmitInstruction(TmpInst);
     
     // Emit the label.
     OutStreamer.EmitLabel(PICBase);
@@ -475,8 +474,7 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
     // popl $reg
     TmpInst.setOpcode(X86::POP32r);
     TmpInst.getOperand(0) = MCOperand::CreateReg(MI->getOperand(0).getReg());
-    printMCInst(&TmpInst);
-    O << '\n';
+    OutStreamer.EmitInstruction(TmpInst);
     return;
   }
       
@@ -513,8 +511,7 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
     TmpInst.addOperand(MCOperand::CreateReg(MI->getOperand(0).getReg()));
     TmpInst.addOperand(MCOperand::CreateReg(MI->getOperand(1).getReg()));
     TmpInst.addOperand(MCOperand::CreateExpr(DotExpr));
-    printMCInst(&TmpInst);
-    O << '\n';
+    OutStreamer.EmitInstruction(TmpInst);
     return;
   }
   }
@@ -523,7 +520,6 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
   MCInstLowering.Lower(MI, TmpInst);
   
   
-  printMCInst(&TmpInst);
-  O << '\n';
+  OutStreamer.EmitInstruction(TmpInst);
 }