1 //= Nios2InstPrinter.h - Convert Nios2 MCInst to assembly syntax -*- C++ -*-==// 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 a Nios2 MCInst to a .s file. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef LLVM_LIB_TARGET_NIOS2_INSTPRINTER_NIOS2INSTPRINTER_H 15 #define LLVM_LIB_TARGET_NIOS2_INSTPRINTER_NIOS2INSTPRINTER_H 16 17 #include "llvm/MC/MCInstPrinter.h" 18 19 namespace llvm { 20 21 class Nios2InstPrinter : public MCInstPrinter { 22 public: Nios2InstPrinter(const MCAsmInfo & MAI,const MCInstrInfo & MII,const MCRegisterInfo & MRI)23 Nios2InstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, 24 const MCRegisterInfo &MRI) 25 : MCInstPrinter(MAI, MII, MRI) {} 26 27 void printRegName(raw_ostream &OS, unsigned RegNo) const override; 28 void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot, 29 const MCSubtargetInfo &STI) override; 30 31 // Autogenerated by tblgen. 32 void printInstruction(const MCInst *MI, const MCSubtargetInfo &STI, 33 raw_ostream &O); 34 static const char *getRegisterName(unsigned RegNo); 35 36 bool printAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI, 37 raw_ostream &O); 38 39 void printCustomAliasOperand(const MCInst *MI, unsigned OpIdx, 40 unsigned PrintMethodIdx, 41 const MCSubtargetInfo &STI, raw_ostream &O); 42 void printOperand(const MCInst *MI, int opNum, const MCSubtargetInfo &STI, 43 raw_ostream &OS); 44 void printMemOperand(const MCInst *MI, int opNum, const MCSubtargetInfo &STI, 45 raw_ostream &OS, const char *Modifier = nullptr); 46 }; 47 } // end namespace llvm 48 49 #endif 50