LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PPCInstPrinter.h
Go to the documentation of this file.
1 //===- PPCInstPrinter.h - Convert PPC 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 PPC MCInst to a .s file.
11 //
12 //===----------------------------------------------------------------------===//
13 
14 #ifndef PPCINSTPRINTER_H
15 #define PPCINSTPRINTER_H
16 
17 #include "llvm/MC/MCInstPrinter.h"
18 
19 namespace llvm {
20 
21 class MCOperand;
22 
23 class PPCInstPrinter : public MCInstPrinter {
24  bool IsDarwin;
25 public:
27  const MCRegisterInfo &MRI, bool isDarwin)
28  : MCInstPrinter(MAI, MII, MRI), IsDarwin(isDarwin) {}
29 
30  bool isDarwinSyntax() const {
31  return IsDarwin;
32  }
33 
34  virtual void printRegName(raw_ostream &OS, unsigned RegNo) const;
35  virtual void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot);
36 
37  // Autogenerated by tblgen.
38  void printInstruction(const MCInst *MI, raw_ostream &O);
39  static const char *getRegisterName(unsigned RegNo);
40 
41 
42  void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
43  void printPredicateOperand(const MCInst *MI, unsigned OpNo,
44  raw_ostream &O, const char *Modifier = 0);
45 
46 
47  void printS5ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
48  void printU5ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
49  void printU6ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
50  void printS16ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
51  void printU16ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
52  void printBranchOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
53  void printAbsBranchOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O);
54  void printTLSCall(const MCInst *MI, unsigned OpNo, raw_ostream &O);
55 
56  void printcrbitm(const MCInst *MI, unsigned OpNo, raw_ostream &O);
57 
58  void printMemRegImm(const MCInst *MI, unsigned OpNo, raw_ostream &O);
59  void printMemRegReg(const MCInst *MI, unsigned OpNo, raw_ostream &O);
60 };
61 } // end namespace llvm
62 
63 #endif
void printS16ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printS5ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printU16ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
bool isDarwinSyntax() const
void printcrbitm(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printPredicateOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O, const char *Modifier=0)
virtual void printRegName(raw_ostream &OS, unsigned RegNo) const
printRegName - Print the assembler register name.
void printAbsBranchOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
static const char * getRegisterName(unsigned RegNo)
void printMemRegImm(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printMemRegReg(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printBranchOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printTLSCall(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printU6ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
void printInstruction(const MCInst *MI, raw_ostream &O)
const MCAsmInfo & MAI
Definition: MCInstPrinter.h:39
const MCInstrInfo & MII
Definition: MCInstPrinter.h:40
PPCInstPrinter(const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI, bool isDarwin)
virtual void printInst(const MCInst *MI, raw_ostream &O, StringRef Annot)
void printU5ImmOperand(const MCInst *MI, unsigned OpNo, raw_ostream &O)
const MCRegisterInfo & MRI
Definition: MCInstPrinter.h:41