[llvm-commits] [llvm] r81746 - in /llvm/trunk: include/llvm/MC/MCInstPrinter.h lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp lib/Target/X86/AsmPrinter/X86ATTInstPrinter.h
Chris Lattner
sabre at nondot.org
Sun Sep 13 18:49:26 PDT 2009
Author: lattner
Date: Sun Sep 13 20:49:26 2009
New Revision: 81746
URL: http://llvm.org/viewvc/llvm-project?rev=81746&view=rev
Log:
Give MCInstPrinter a MCAsmInfo member, make X86ATTInstPrinter
be a MCInstPrinter.
Modified:
llvm/trunk/include/llvm/MC/MCInstPrinter.h
llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp
llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.h
Modified: llvm/trunk/include/llvm/MC/MCInstPrinter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCInstPrinter.h?rev=81746&r1=81745&r2=81746&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCInstPrinter.h (original)
+++ llvm/trunk/include/llvm/MC/MCInstPrinter.h Sun Sep 13 20:49:26 2009
@@ -13,13 +13,17 @@
namespace llvm {
class MCInst;
class raw_ostream;
+class MCAsmInfo;
+
/// MCInstPrinter - This is an instance of a target assembly language printer
/// that converts an MCInst to valid target assembly syntax.
class MCInstPrinter {
+protected:
raw_ostream &O;
+ const MCAsmInfo &MAI;
public:
- MCInstPrinter(raw_ostream &o) : O(o) {}
+ MCInstPrinter(raw_ostream &o, const MCAsmInfo &mai) : O(o), MAI(mai) {}
virtual ~MCInstPrinter();
Modified: llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp?rev=81746&r1=81745&r2=81746&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp Sun Sep 13 20:49:26 2009
@@ -48,7 +48,7 @@
//===----------------------------------------------------------------------===//
void X86ATTAsmPrinter::printMCInst(const MCInst *MI) {
- X86ATTInstPrinter(O, MAI).printInstruction(MI);
+ X86ATTInstPrinter(O, *MAI).printInstruction(MI);
}
void X86ATTAsmPrinter::PrintPICBaseSymbol() const {
Modified: llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp?rev=81746&r1=81745&r2=81746&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp (original)
+++ llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp Sun Sep 13 20:49:26 2009
@@ -27,6 +27,8 @@
#include "X86GenAsmWriter.inc"
#undef MachineInstr
+void X86ATTInstPrinter::printInst(const MCInst *MI) { printInstruction(MI); }
+
void X86ATTInstPrinter::printSSECC(const MCInst *MI, unsigned Op) {
switch (MI->getOperand(Op).getImm()) {
default: llvm_unreachable("Invalid ssecc argument!");
@@ -55,7 +57,7 @@
O << Op.getImm();
else {
assert(Op.isExpr() && "unknown pcrel immediate operand");
- Op.getExpr()->print(O, MAI);
+ Op.getExpr()->print(O, &MAI);
}
}
@@ -71,7 +73,7 @@
} else {
assert(Op.isExpr() && "unknown operand kind in printOperand");
O << '$';
- Op.getExpr()->print(O, MAI);
+ Op.getExpr()->print(O, &MAI);
}
}
@@ -86,7 +88,7 @@
O << DispVal;
} else {
assert(DispSpec.isExpr() && "non-immediate displacement for LEA?");
- DispSpec.getExpr()->print(O, MAI);
+ DispSpec.getExpr()->print(O, &MAI);
}
if (IndexReg.getReg() || BaseReg.getReg()) {
Modified: llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.h?rev=81746&r1=81745&r2=81746&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.h (original)
+++ llvm/trunk/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.h Sun Sep 13 20:49:26 2009
@@ -14,18 +14,19 @@
#ifndef X86_ATT_INST_PRINTER_H
#define X86_ATT_INST_PRINTER_H
+#include "llvm/MC/MCInstPrinter.h"
+
namespace llvm {
- class MCAsmInfo;
- class MCInst;
class MCOperand;
- class raw_ostream;
-class X86ATTInstPrinter {
- raw_ostream &O;
- const MCAsmInfo *MAI;
+class X86ATTInstPrinter : public MCInstPrinter {
public:
- X86ATTInstPrinter(raw_ostream &o, const MCAsmInfo *mai) : O(o), MAI(mai) {}
+ X86ATTInstPrinter(raw_ostream &O, const MCAsmInfo &MAI)
+ : MCInstPrinter(O, MAI) {}
+
+ virtual void printInst(const MCInst *MI);
+
// Autogenerated by tblgen.
void printInstruction(const MCInst *MI);
static const char *getRegisterName(unsigned RegNo);
More information about the llvm-commits
mailing list