1 //= NVPTXInstPrinter.h - Convert NVPTX MCInst to assembly syntax --*- C++ -*-=//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This class prints an NVPTX MCInst to .ptx file syntax.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_LIB_TARGET_NVPTX_INSTPRINTER_NVPTXINSTPRINTER_H
15 #define LLVM_LIB_TARGET_NVPTX_INSTPRINTER_NVPTXINSTPRINTER_H
17 #include "llvm/MC/MCInstPrinter.h"
21 class MCSubtargetInfo
;
23 class NVPTXInstPrinter
: public MCInstPrinter
{
25 NVPTXInstPrinter(const MCAsmInfo
&MAI
, const MCInstrInfo
&MII
,
26 const MCRegisterInfo
&MRI
);
28 void printRegName(raw_ostream
&OS
, unsigned RegNo
) const override
;
29 void printInst(const MCInst
*MI
, raw_ostream
&OS
, StringRef Annot
,
30 const MCSubtargetInfo
&STI
) override
;
32 // Autogenerated by tblgen.
33 void printInstruction(const MCInst
*MI
, raw_ostream
&O
);
34 static const char *getRegisterName(unsigned RegNo
);
37 void printOperand(const MCInst
*MI
, unsigned OpNo
, raw_ostream
&O
);
38 void printCvtMode(const MCInst
*MI
, int OpNum
, raw_ostream
&O
,
39 const char *Modifier
= nullptr);
40 void printCmpMode(const MCInst
*MI
, int OpNum
, raw_ostream
&O
,
41 const char *Modifier
= nullptr);
42 void printLdStCode(const MCInst
*MI
, int OpNum
,
43 raw_ostream
&O
, const char *Modifier
= nullptr);
44 void printMemOperand(const MCInst
*MI
, int OpNum
,
45 raw_ostream
&O
, const char *Modifier
= nullptr);
46 void printProtoIdent(const MCInst
*MI
, int OpNum
,
47 raw_ostream
&O
, const char *Modifier
= nullptr);