diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/MC/MCAsmStreamer.cpp | 31 | ||||
-rw-r--r-- | lib/MC/MCExpr.cpp | 12 | ||||
-rw-r--r-- | lib/MC/MCInst.cpp | 12 | ||||
-rw-r--r-- | lib/MC/MCSymbol.cpp | 4 | ||||
-rw-r--r-- | lib/MC/MCValue.cpp | 8 | ||||
-rw-r--r-- | lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp | 6 |
6 files changed, 41 insertions, 32 deletions
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index cc77c6f8..17c591b 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -101,7 +101,8 @@ void MCAsmStreamer::EmitLabel(MCSymbol *Symbol) { assert(Symbol->isUndefined() && "Cannot define a symbol twice!"); assert(CurSection && "Cannot emit before setting section!"); - OS << Symbol << ":\n"; + Symbol->print(OS, &MAI); + OS << ":\n"; Symbol->setSection(*CurSection); } @@ -118,8 +119,9 @@ void MCAsmStreamer::EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) { assert((Symbol->isUndefined() || Symbol->isAbsolute()) && "Cannot define a symbol twice!"); - OS << Symbol << " = "; - Value->print(OS); + Symbol->print(OS, &MAI); + OS << " = "; + Value->print(OS, &MAI); OS << '\n'; } @@ -140,17 +142,22 @@ void MCAsmStreamer::EmitSymbolAttribute(MCSymbol *Symbol, case WeakReference: OS << ".weak_reference"; break; } - OS << ' ' << Symbol << '\n'; + OS << ' '; + Symbol->print(OS, &MAI); + OS << '\n'; } void MCAsmStreamer::EmitSymbolDesc(MCSymbol *Symbol, unsigned DescValue) { - OS << ".desc" << ' ' << Symbol << ',' << DescValue << '\n'; + OS << ".desc" << ' '; + Symbol->print(OS, &MAI); + OS << ',' << DescValue << '\n'; } void MCAsmStreamer::EmitCommonSymbol(MCSymbol *Symbol, unsigned Size, unsigned ByteAlignment) { - OS << ".comm"; - OS << ' ' << Symbol << ',' << Size; + OS << ".comm "; + Symbol->print(OS, &MAI); + OS << ',' << Size; if (ByteAlignment != 0) OS << ',' << Log2_32(ByteAlignment); OS << '\n'; @@ -166,7 +173,9 @@ void MCAsmStreamer::EmitZerofill(const MCSection *Section, MCSymbol *Symbol, OS << MOSection->getSegmentName() << "," << MOSection->getSectionName(); if (Symbol != NULL) { - OS << ',' << Symbol << ',' << Size; + OS << ','; + Symbol->print(OS, &MAI); + OS << ',' << Size; if (ByteAlignment != 0) OS << ',' << Log2_32(ByteAlignment); } @@ -192,7 +201,7 @@ void MCAsmStreamer::EmitValue(const MCExpr *Value, unsigned Size) { } OS << ' '; - truncateToSize(Value, Size)->print(OS); + truncateToSize(Value, Size)->print(OS, &MAI); OS << '\n'; } @@ -248,7 +257,7 @@ void MCAsmStreamer::EmitValueToOffset(const MCExpr *Offset, unsigned char Value) { // FIXME: Verify that Offset is associated with the current section. OS << ".org "; - Offset->print(OS); + Offset->print(OS, &MAI); OS << ", " << (unsigned) Value << '\n'; } @@ -281,7 +290,7 @@ void MCAsmStreamer::EmitInstruction(const MCInst &Inst) { // Otherwise fall back to a structural printing for now. Eventually we should // always have access to the target specific printer. - Inst.print(OS); + Inst.print(OS, &MAI); OS << '\n'; } diff --git a/lib/MC/MCExpr.cpp b/lib/MC/MCExpr.cpp index bc42415..9a1b641 100644 --- a/lib/MC/MCExpr.cpp +++ b/lib/MC/MCExpr.cpp @@ -14,14 +14,14 @@ #include "llvm/Support/raw_ostream.h" using namespace llvm; -void MCExpr::print(raw_ostream &OS) const { +void MCExpr::print(raw_ostream &OS, const MCAsmInfo *MAI) const { switch (getKind()) { case MCExpr::Constant: OS << cast<MCConstantExpr>(*this).getValue(); return; case MCExpr::SymbolRef: - cast<MCSymbolRefExpr>(*this).getSymbol().print(OS); + cast<MCSymbolRefExpr>(*this).getSymbol().print(OS, MAI); return; case MCExpr::Unary: { @@ -33,14 +33,14 @@ void MCExpr::print(raw_ostream &OS) const { case MCUnaryExpr::Not: OS << '~'; break; case MCUnaryExpr::Plus: OS << '+'; break; } - UE.getSubExpr()->print(OS); + UE.getSubExpr()->print(OS, MAI); return; } case MCExpr::Binary: { const MCBinaryExpr &BE = cast<MCBinaryExpr>(*this); OS << '('; - BE.getLHS()->print(OS); + BE.getLHS()->print(OS, MAI); OS << ' '; switch (BE.getOpcode()) { default: assert(0 && "Invalid opcode!"); @@ -64,7 +64,7 @@ void MCExpr::print(raw_ostream &OS) const { case MCBinaryExpr::Xor: OS << '^'; break; } OS << ' '; - BE.getRHS()->print(OS); + BE.getRHS()->print(OS, MAI); OS << ')'; return; } @@ -74,7 +74,7 @@ void MCExpr::print(raw_ostream &OS) const { } void MCExpr::dump() const { - print(errs()); + print(errs(), 0); errs() << '\n'; } diff --git a/lib/MC/MCInst.cpp b/lib/MC/MCInst.cpp index ec06146..f19056b 100644 --- a/lib/MC/MCInst.cpp +++ b/lib/MC/MCInst.cpp @@ -13,7 +13,7 @@ using namespace llvm; -void MCOperand::print(raw_ostream &OS) const { +void MCOperand::print(raw_ostream &OS, const MCAsmInfo *MAI) const { OS << "<MCOperand "; if (!isValid()) OS << "INVALID"; @@ -26,7 +26,7 @@ void MCOperand::print(raw_ostream &OS) const { << getMBBLabelBlock() << ")"; else if (isExpr()) { OS << "Expr:("; - getExpr()->print(OS); + getExpr()->print(OS, MAI); OS << ")"; } else OS << "UNDEFINED"; @@ -34,20 +34,20 @@ void MCOperand::print(raw_ostream &OS) const { } void MCOperand::dump() const { - print(errs()); + print(errs(), 0); errs() << "\n"; } -void MCInst::print(raw_ostream &OS) const { +void MCInst::print(raw_ostream &OS, const MCAsmInfo *MAI) const { OS << "<MCInst " << getOpcode(); for (unsigned i = 0, e = getNumOperands(); i != e; ++i) { OS << " "; - getOperand(i).print(OS); + getOperand(i).print(OS, MAI); } OS << ">"; } void MCInst::dump() const { - print(errs()); + print(errs(), 0); errs() << "\n"; } diff --git a/lib/MC/MCSymbol.cpp b/lib/MC/MCSymbol.cpp index 3c9894b..3b1a41d 100644 --- a/lib/MC/MCSymbol.cpp +++ b/lib/MC/MCSymbol.cpp @@ -41,7 +41,7 @@ static inline bool NeedsQuoting(const StringRef &Str) { return false; } -void MCSymbol::print(raw_ostream &OS) const { +void MCSymbol::print(raw_ostream &OS, const MCAsmInfo *MAI) const { if (NeedsQuoting(getName())) OS << '"' << getName() << '"'; else @@ -49,5 +49,5 @@ void MCSymbol::print(raw_ostream &OS) const { } void MCSymbol::dump() const { - print(errs()); + print(errs(), 0); } diff --git a/lib/MC/MCValue.cpp b/lib/MC/MCValue.cpp index c7923da..69bd10c 100644 --- a/lib/MC/MCValue.cpp +++ b/lib/MC/MCValue.cpp @@ -12,17 +12,17 @@ using namespace llvm; -void MCValue::print(raw_ostream &OS) const { +void MCValue::print(raw_ostream &OS, const MCAsmInfo *MAI) const { if (isAbsolute()) { OS << getConstant(); return; } - getSymA()->print(OS); + getSymA()->print(OS, MAI); if (getSymB()) { OS << " - "; - getSymB()->print(OS); + getSymB()->print(OS, MAI); } if (getConstant()) @@ -30,5 +30,5 @@ void MCValue::print(raw_ostream &OS) const { } void MCValue::dump() const { - print(errs()); + print(errs(), 0); } diff --git a/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp b/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp index ee79791..ccfe731 100644 --- a/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp +++ b/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp @@ -57,7 +57,7 @@ void X86ATTAsmPrinter::print_pcrel_imm(const MCInst *MI, unsigned OpNo) { if (Op.isImm()) O << Op.getImm(); else if (Op.isExpr()) - Op.getExpr()->print(O); + 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. @@ -93,7 +93,7 @@ void X86ATTAsmPrinter::printOperand(const MCInst *MI, unsigned OpNo, return; } else if (Op.isExpr()) { O << '$'; - Op.getExpr()->print(O); + Op.getExpr()->print(O, MAI); return; } @@ -111,7 +111,7 @@ void X86ATTAsmPrinter::printLeaMemReference(const MCInst *MI, unsigned Op) { if (DispVal || (!IndexReg.getReg() && !BaseReg.getReg())) O << DispVal; } else if (DispSpec.isExpr()) { - DispSpec.getExpr()->print(O); + DispSpec.getExpr()->print(O, MAI); } else { llvm_unreachable("non-immediate displacement for LEA?"); //assert(DispSpec.isGlobal() || DispSpec.isCPI() || |