diff options
author | Kevin Enderby <enderby@apple.com> | 2012-10-23 22:52:52 +0000 |
---|---|---|
committer | Kevin Enderby <enderby@apple.com> | 2012-10-23 22:52:52 +0000 |
commit | dccdac6a06c31be2a013ccc43d8c92809832398b (patch) | |
tree | 49b51ad187e8507f39f6f5467c2933361d2feb9d /llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp | |
parent | 6c61cbbc49dd66f3e2849c2bb43b88c88956e648 (diff) | |
download | bcm5719-llvm-dccdac6a06c31be2a013ccc43d8c92809832398b.tar.gz bcm5719-llvm-dccdac6a06c31be2a013ccc43d8c92809832398b.zip |
Make branch heavy code for generating marked up disassembly simpler
and easier to read by adding a couple helper functions. Suggestion by
Chandler Carruth and seconded by Meador Inge!
llvm-svn: 166515
Diffstat (limited to 'llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp')
-rw-r--r-- | llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp | 46 |
1 files changed, 16 insertions, 30 deletions
diff --git a/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp b/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp index edad47312dc..a4bd1147bc5 100644 --- a/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp +++ b/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp @@ -34,11 +34,9 @@ using namespace llvm; void X86ATTInstPrinter::printRegName(raw_ostream &OS, unsigned RegNo) const { - if (UseMarkup) - OS << "<reg:"; - OS << '%' << getRegisterName(RegNo); - if (UseMarkup) - OS << ">"; + OS << markup("<reg:") + << '%' << getRegisterName(RegNo) + << markup(">"); } void X86ATTInstPrinter::printInst(const MCInst *MI, raw_ostream &OS, @@ -155,29 +153,21 @@ void X86ATTInstPrinter::printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O) { const MCOperand &Op = MI->getOperand(OpNo); if (Op.isReg()) { - if (UseMarkup) - O << "<reg:"; - O << '%' << getRegisterName(Op.getReg()); - if (UseMarkup) - O << ">"; + printRegName(O, Op.getReg()); } else if (Op.isImm()) { - if (UseMarkup) - O << "<imm:"; // Print X86 immediates as signed values. - O << '$' << (int64_t)Op.getImm(); - if (UseMarkup) - O << ">"; + O << markup("<imm:") + << '$' << (int64_t)Op.getImm() + << markup(">"); if (CommentStream && (Op.getImm() > 255 || Op.getImm() < -256)) *CommentStream << format("imm = 0x%" PRIX64 "\n", (uint64_t)Op.getImm()); } else { assert(Op.isExpr() && "unknown operand kind in printOperand"); - if (UseMarkup) - O << "<imm:"; - O << '$' << *Op.getExpr(); - if (UseMarkup) - O << ">"; + O << markup("<imm:") + << '$' << *Op.getExpr() + << markup(">"); } } @@ -188,8 +178,7 @@ void X86ATTInstPrinter::printMemReference(const MCInst *MI, unsigned Op, const MCOperand &DispSpec = MI->getOperand(Op+3); const MCOperand &SegReg = MI->getOperand(Op+4); - if (UseMarkup) - O << "<mem:"; + O << markup("<mem:"); // If this has a segment register, print it. if (SegReg.getReg()) { @@ -216,17 +205,14 @@ void X86ATTInstPrinter::printMemReference(const MCInst *MI, unsigned Op, printOperand(MI, Op+2, O); unsigned ScaleVal = MI->getOperand(Op+1).getImm(); if (ScaleVal != 1) { - O << ','; - if (UseMarkup) - O << "<imm:"; - O << ScaleVal; - if (UseMarkup) - O << ">"; + O << ',' + << markup("<imm:") + << ScaleVal + << markup(">"); } } O << ')'; } - if (UseMarkup) - O << ">"; + O << markup(">"); } |