[PowerPC] Do not emit record-form rotates when record-form andi/andis suffices
[llvm-core.git] / lib / Target / NVPTX / InstPrinter / NVPTXInstPrinter.h
blobf0f223aa057b0ae87c54b7fe8ea8d216f3be8793
1 //= NVPTXInstPrinter.h - Convert NVPTX 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 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"
19 namespace llvm {
21 class MCSubtargetInfo;
23 class NVPTXInstPrinter : public MCInstPrinter {
24 public:
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);
35 // End
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);
52 #endif