summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86MCInstLower.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-07-22 21:10:04 +0000
committerChris Lattner <sabre@nondot.org>2010-07-22 21:10:04 +0000
commitb3f608bbba768047905c5f8b33604bf63630c089 (patch)
tree72fea9d31a98ddf2bf6f12457308abafaaceb767 /llvm/lib/Target/X86/X86MCInstLower.cpp
parent083be4d3841cc22b74cc078ac36fcc5ce761aa23 (diff)
downloadbcm5719-llvm-b3f608bbba768047905c5f8b33604bf63630c089.tar.gz
bcm5719-llvm-b3f608bbba768047905c5f8b33604bf63630c089.zip
X86MCInstLower now depends on AsmPrinter being around.
llvm-svn: 109154
Diffstat (limited to 'llvm/lib/Target/X86/X86MCInstLower.cpp')
-rw-r--r--llvm/lib/Target/X86/X86MCInstLower.cpp36
1 files changed, 9 insertions, 27 deletions
diff --git a/llvm/lib/Target/X86/X86MCInstLower.cpp b/llvm/lib/Target/X86/X86MCInstLower.cpp
index 3eb12a969c7..e55b7265cb9 100644
--- a/llvm/lib/Target/X86/X86MCInstLower.cpp
+++ b/llvm/lib/Target/X86/X86MCInstLower.cpp
@@ -29,7 +29,7 @@
using namespace llvm;
X86MCInstLower::X86MCInstLower(Mangler *mang, const MachineFunction &mf,
- X86AsmPrinter *asmprinter)
+ X86AsmPrinter &asmprinter)
: Ctx(mf.getContext()), Mang(mang), MF(mf), TM(mf.getTarget()),
MAI(*TM.getMCAsmInfo()), AsmPrinter(asmprinter) {}
@@ -181,7 +181,7 @@ MCOperand X86MCInstLower::LowerSymbolOperand(const MachineOperand &MO,
// local labels. This is only safe when the symbols are in the same
// section so we are restricting it to jumptable references.
MCSymbol *Label = Ctx.CreateTempSymbol();
- AsmPrinter->OutStreamer.EmitAssignment(Label, Expr);
+ AsmPrinter.OutStreamer.EmitAssignment(Label, Expr);
Expr = MCSymbolRefExpr::Create(Label, Ctx);
}
break;
@@ -320,38 +320,20 @@ void X86MCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
MO.getMBB()->getSymbol(), Ctx));
break;
case MachineOperand::MO_GlobalAddress:
- // If we don't have an asmprinter, we're converting to MCInst to get
- // instruction sizes, which doesn't need precise value information for
- // symbols, just lower to a 0 immediate.
- if (AsmPrinter != 0)
- MCOp = LowerSymbolOperand(MO, GetSymbolFromOperand(MO));
- else
- MCOp = MCOperand::CreateImm(0);
+ MCOp = LowerSymbolOperand(MO, GetSymbolFromOperand(MO));
break;
case MachineOperand::MO_ExternalSymbol:
- if (AsmPrinter != 0)
- MCOp = LowerSymbolOperand(MO, GetSymbolFromOperand(MO));
- else
- MCOp = MCOperand::CreateImm(0);
+ MCOp = LowerSymbolOperand(MO, GetSymbolFromOperand(MO));
break;
case MachineOperand::MO_JumpTableIndex:
- if (AsmPrinter != 0)
- MCOp = LowerSymbolOperand(MO, AsmPrinter->GetJTISymbol(MO.getIndex()));
- else
- MCOp = MCOperand::CreateImm(0);
+ MCOp = LowerSymbolOperand(MO, AsmPrinter.GetJTISymbol(MO.getIndex()));
break;
case MachineOperand::MO_ConstantPoolIndex:
- if (AsmPrinter != 0)
- MCOp = LowerSymbolOperand(MO, AsmPrinter->GetCPISymbol(MO.getIndex()));
- else
- MCOp = MCOperand::CreateImm(0);
+ MCOp = LowerSymbolOperand(MO, AsmPrinter.GetCPISymbol(MO.getIndex()));
break;
case MachineOperand::MO_BlockAddress:
- if (AsmPrinter != 0)
- MCOp = LowerSymbolOperand(MO,
- AsmPrinter->GetBlockAddressSymbol(MO.getBlockAddress()));
- else
- MCOp = MCOperand::CreateImm(0);
+ MCOp = LowerSymbolOperand(MO,
+ AsmPrinter.GetBlockAddressSymbol(MO.getBlockAddress()));
break;
}
@@ -522,7 +504,7 @@ void X86MCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const {
void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) {
- X86MCInstLower MCInstLowering(Mang, *MF, this);
+ X86MCInstLower MCInstLowering(Mang, *MF, *this);
switch (MI->getOpcode()) {
case TargetOpcode::DBG_VALUE:
if (isVerbose() && OutStreamer.hasRawTextSupport()) {
OpenPOWER on IntegriCloud