1 //===-- SparcInstPrinter.h - Convert Sparc MCInst to assembly syntax ------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This class prints an Sparc MCInst to a .s file. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef SparcINSTPRINTER_H 15 #define SparcINSTPRINTER_H 16 17 #include "llvm/MC/MCInstPrinter.h" 18 19 namespace llvm { 20 21 class MCOperand; 22 23 class SparcInstPrinter : public MCInstPrinter { 24 public: SparcInstPrinter(const MCAsmInfo & MAI,const MCInstrInfo & MII,const MCRegisterInfo & MRI)25 SparcInstPrinter(const MCAsmInfo &MAI, 26 const MCInstrInfo &MII, 27 const MCRegisterInfo &MRI) 28 : MCInstPrinter(MAI, MII, MRI) {} 29 30 virtual void printRegName(raw_ostream &OS, unsigned RegNo) const; 31 virtual void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot); 32 bool printSparcAliasInstr(const MCInst *MI, raw_ostream &OS); 33 34 // Autogenerated by tblgen. 35 void printInstruction(const MCInst *MI, raw_ostream &O); 36 bool printAliasInstr(const MCInst *MI, raw_ostream &O); 37 static const char *getRegisterName(unsigned RegNo); 38 39 void printOperand(const MCInst *MI, int opNum, raw_ostream &OS); 40 void printMemOperand(const MCInst *MI, int opNum, raw_ostream &OS, 41 const char *Modifier = 0); 42 void printCCOperand(const MCInst *MI, int opNum, raw_ostream &OS); 43 bool printGetPCX(const MCInst *MI, unsigned OpNo, raw_ostream &OS); 44 45 }; 46 } // end namespace llvm 47 48 #endif 49