Finally eliminate printMCInst and send instructions through

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
This commit is contained in:
Chris Lattner 2010-02-03 01:13:25 +00:00
parent d1ff72b8a7
commit c760be99db
3 changed files with 4 additions and 17 deletions

View 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,

View 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);

View 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);
}