1f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard//===-- AMDGPUInstPrinter.h - AMDGPU MC Inst -> ASM interface ---*- C++ -*-===// 2f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 3f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// The LLVM Compiler Infrastructure 4f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 5f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// This file is distributed under the University of Illinois Open Source 6f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// License. See LICENSE.TXT for details. 7f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 8f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard//===----------------------------------------------------------------------===// 9f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard// 10f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard/// \file 11f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard//===----------------------------------------------------------------------===// 12f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 13f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#ifndef AMDGPUINSTPRINTER_H 14f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#define AMDGPUINSTPRINTER_H 15f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 16f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#include "llvm/ADT/StringRef.h" 17f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#include "llvm/MC/MCInstPrinter.h" 18f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#include "llvm/Support/raw_ostream.h" 19f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 20f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardnamespace llvm { 21f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 22f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardclass AMDGPUInstPrinter : public MCInstPrinter { 23f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardpublic: 24f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard AMDGPUInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, 25f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard const MCRegisterInfo &MRI) 26f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard : MCInstPrinter(MAI, MII, MRI) {} 27f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 28f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard //Autogenerated by tblgen 29f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printInstruction(const MCInst *MI, raw_ostream &O); 30f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard static const char *getRegisterName(unsigned RegNo); 31f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 32f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard virtual void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot); 33f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 34f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellardprivate: 35f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O); 3601115b1f5032b848659669b161af1bdd9e646208Michel Danzer void printInterpSlot(const MCInst *MI, unsigned OpNum, raw_ostream &O); 37f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printMemOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O); 38f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printIfSet(const MCInst *MI, unsigned OpNo, raw_ostream &O, StringRef Asm); 39f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printAbs(const MCInst *MI, unsigned OpNo, raw_ostream &O); 40f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printClamp(const MCInst *MI, unsigned OpNo, raw_ostream &O); 41f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printLiteral(const MCInst *MI, unsigned OpNo, raw_ostream &O); 42f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printLast(const MCInst *MI, unsigned OpNo, raw_ostream &O); 43f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printNeg(const MCInst *MI, unsigned OpNo, raw_ostream &O); 44f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printOMOD(const MCInst *MI, unsigned OpNo, raw_ostream &O); 45f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printRel(const MCInst *MI, unsigned OpNo, raw_ostream &O); 46f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printUpdateExecMask(const MCInst *MI, unsigned OpNo, raw_ostream &O); 47f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printUpdatePred(const MCInst *MI, unsigned OpNo, raw_ostream &O); 48f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard void printWrite(const MCInst *MI, unsigned OpNo, raw_ostream &O); 499f7818d9bdfce2e9c7a2cbe31490a135aa6d1211Tom Stellard void printSel(const MCInst *MI, unsigned OpNo, raw_ostream &O); 50f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard}; 51f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 52f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard} // End namespace llvm 53f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard 54f98f2ce29e6e2996fa58f38979143eceaa818335Tom Stellard#endif // AMDGPUINSTRPRINTER_H 55