131d157ae1ac2cd9c787dc3c1d28e64c682803844Jia Liu//= MBlazeInstPrinter.h - Convert MBlaze MCInst to assembly syntax -*- C++ -*-// 24e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck// 34e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck// The LLVM Compiler Infrastructure 44e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck// 54e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck// This file is distributed under the University of Illinois Open Source 64e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck// License. See LICENSE.TXT for details. 74e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck// 84e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck//===----------------------------------------------------------------------===// 94e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck// 104e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck// This class prints a MBlaze MCInst to a .s file. 114e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck// 124e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck//===----------------------------------------------------------------------===// 134e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck 144e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck#ifndef MBLAZEINSTPRINTER_H 154e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck#define MBLAZEINSTPRINTER_H 164e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck 174e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck#include "llvm/MC/MCInstPrinter.h" 184e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck 194e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Pecknamespace llvm { 204e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck class MCOperand; 214e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck 224e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck class MBlazeInstPrinter : public MCInstPrinter { 234e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck public: 2417463b3ef1a3d39b10619254f12e806c8c43f9e7Craig Topper MBlazeInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, 2517463b3ef1a3d39b10619254f12e806c8c43f9e7Craig Topper const MCRegisterInfo &MRI) 2617463b3ef1a3d39b10619254f12e806c8c43f9e7Craig Topper : MCInstPrinter(MAI, MII, MRI) {} 274e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck 2898c5ddabca1debf935a07d14d0cbc9732374bdb8Owen Anderson virtual void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot); 294e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck 304e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck // Autogenerated by tblgen. 314e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck void printInstruction(const MCInst *MI, raw_ostream &O); 324e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck static const char *getRegisterName(unsigned RegNo); 334e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck 344e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O, 354e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck const char *Modifier = 0); 364e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck void printFSLImm(const MCInst *MI, int OpNo, raw_ostream &O); 374e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck void printUnsignedImm(const MCInst *MI, int OpNo, raw_ostream &O); 384e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck void printMemOperand(const MCInst *MI, int OpNo,raw_ostream &O, 394e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck const char *Modifier = 0); 404e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck }; 414e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck} 424e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck 434e9141fd4c0040cd7d4d830211f7d27fd98e9338Wesley Peck#endif 44