[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