diff options
| author | Chris Lattner <sabre@nondot.org> | 2009-09-12 20:45:03 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2009-09-12 20:45:03 +0000 |
| commit | 5090e6c4a76b7e6d0d510dab0595718d8bc76b8a (patch) | |
| tree | 5e3b42c664b8a150f35e37046b229f18d6ce8d78 /llvm/lib | |
| parent | 317220882350ee3bb8d3ad3d5cf25fd58ea5f9fd (diff) | |
| download | bcm5719-llvm-5090e6c4a76b7e6d0d510dab0595718d8bc76b8a.tar.gz bcm5719-llvm-5090e6c4a76b7e6d0d510dab0595718d8bc76b8a.zip | |
eliminate the "MBBLabel" MCOperand type, and just use a MCSymbol for
MBB labels like everything else.
llvm-svn: 81628
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/MC/MCInst.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp | 5 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp | 14 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.h | 1 |
4 files changed, 12 insertions, 11 deletions
diff --git a/llvm/lib/MC/MCInst.cpp b/llvm/lib/MC/MCInst.cpp index f19056bc9ad..d05031870ad 100644 --- a/llvm/lib/MC/MCInst.cpp +++ b/llvm/lib/MC/MCInst.cpp @@ -21,9 +21,6 @@ void MCOperand::print(raw_ostream &OS, const MCAsmInfo *MAI) const { OS << "Reg:" << getReg(); else if (isImm()) OS << "Imm:" << getImm(); - else if (isMBBLabel()) - OS << "MBB:(" << getMBBLabelFunction() << "," - << getMBBLabelBlock() << ")"; else if (isExpr()) { OS << "Expr:("; getExpr()->print(OS, MAI); diff --git a/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp b/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp index 9841d708d86..2c0b5689ae7 100644 --- a/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp +++ b/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp @@ -58,11 +58,6 @@ void X86ATTAsmPrinter::print_pcrel_imm(const MCInst *MI, unsigned OpNo) { O << Op.getImm(); else if (Op.isExpr()) Op.getExpr()->print(O, MAI); - else if (Op.isMBBLabel()) - // FIXME: Keep in sync with printBasicBlockLabel. printBasicBlockLabel - // should eventually call into this code, not the other way around. - O << MAI->getPrivateGlobalPrefix() << "BB" << Op.getMBBLabelFunction() - << '_' << Op.getMBBLabelBlock(); else llvm_unreachable("Unknown pcrel immediate operand"); } diff --git a/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp b/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp index ed8207415f5..9946506441b 100644 --- a/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp +++ b/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp @@ -45,6 +45,16 @@ MCSymbol *X86MCInstLower::GetPICBaseSymbol() const { return Ctx.GetOrCreateSymbol(Name.str()); } +MCOperand X86MCInstLower::LowerMBBOperand(const MachineOperand &MO) const { + SmallString<60> Name; + raw_svector_ostream(Name) << AsmPrinter.MAI->getPrivateGlobalPrefix() << "BB" + << AsmPrinter.getFunctionNumber() << '_' << MO.getMBB()->getNumber(); + + MCSymbol *Sym = Ctx.GetOrCreateSymbol(Name.str()); + return MCOperand::CreateExpr(MCSymbolRefExpr::Create(Sym, Ctx)); +} + + /// LowerGlobalAddressOperand - Lower an MO_GlobalAddress operand to an /// MCOperand. @@ -331,9 +341,7 @@ void X86MCInstLower::Lower(const MachineInstr *MI, MCInst &OutMI) const { MCOp = MCOperand::CreateImm(MO.getImm()); break; case MachineOperand::MO_MachineBasicBlock: -// FIXME: Kill MBBLabel operand type! - MCOp = MCOperand::CreateMBBLabel(AsmPrinter.getFunctionNumber(), - MO.getMBB()->getNumber()); + MCOp = LowerMBBOperand(MO); break; case MachineOperand::MO_GlobalAddress: MCOp = LowerSymbolOperand(MO, GetGlobalAddressSymbol(MO)); diff --git a/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.h b/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.h index de85755d723..b7b2bb0eb4c 100644 --- a/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.h +++ b/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.h @@ -37,6 +37,7 @@ public: private: const X86Subtarget &getSubtarget() const; + MCOperand LowerMBBOperand(const MachineOperand &MO) const; MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const; MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const; MCSymbol *GetJumpTableSymbol(const MachineOperand &MO) const; |

