NVPTXInstPrinter.h revision 4d748eb0e4b55262619305c96a89c55c30bffe6c
13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)//= NVPTXInstPrinter.h - Convert NVPTX MCInst to assembly syntax --*- C++ -*-=// 23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// 33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// The LLVM Compiler Infrastructure 43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// 53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// This file is distributed under the University of Illinois Open Source 63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// License. See LICENSE.TXT for details. 73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// 83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)//===----------------------------------------------------------------------===// 93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// 103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// This class prints an NVPTX MCInst to .ptx file syntax. 113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// 123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)//===----------------------------------------------------------------------===// 133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#ifndef NVPTX_INST_PRINTER_H 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define NVPTX_INST_PRINTER_H 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "llvm/MC/MCInstPrinter.h" 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "llvm/Support/raw_ostream.h" 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace llvm { 213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class MCOperand; 233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class MCSubtargetInfo; 243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class NVPTXInstPrinter : public MCInstPrinter { 263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)public: 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) NVPTXInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) const MCRegisterInfo &MRI, const MCSubtargetInfo &STI); 293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual void printRegName(raw_ostream &OS, unsigned RegNo) const; 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual void printInst(const MCInst *MI, raw_ostream &OS, StringRef Annot); 323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // Autogenerated by tblgen. 343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) void printInstruction(const MCInst *MI, raw_ostream &O); 353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) static const char *getRegisterName(unsigned RegNo); 363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) // End 373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O); 393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) void printCvtMode(const MCInst *MI, int OpNum, raw_ostream &O, 4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const char *Modifier = 0); 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void printCmpMode(const MCInst *MI, int OpNum, raw_ostream &O, 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) const char *Modifier = 0); 4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void printLdStCode(const MCInst *MI, int OpNum, 4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) raw_ostream &O, const char *Modifier = 0); 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) void printMemOperand(const MCInst *MI, int OpNum, 463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) raw_ostream &O, const char *Modifier = 0); 473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) void printProtoIdent(const MCInst *MI, int OpNum, 483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) raw_ostream &O, const char *Modifier = 0); 493551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}; 503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 5168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)} 523551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 533551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif 543551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)