LLVM
15.0.0git
|
#include "Target/Lanai/MCTargetDesc/LanaiInstPrinter.h"
Public Member Functions | |
LanaiInstPrinter (const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI) | |
void | printInst (const MCInst *MI, uint64_t Address, StringRef Annot, const MCSubtargetInfo &STI, raw_ostream &O) override |
Print the specified MCInst to the specified raw_ostream. More... | |
void | printOperand (const MCInst *MI, unsigned OpNo, raw_ostream &O, const char *Modifier=nullptr) |
void | printPredicateOperand (const MCInst *MI, unsigned OpNum, raw_ostream &O) |
void | printMemRiOperand (const MCInst *MI, int OpNo, raw_ostream &O, const char *Modifier=nullptr) |
void | printMemRrOperand (const MCInst *MI, int OpNo, raw_ostream &O, const char *Modifier=nullptr) |
void | printMemSplsOperand (const MCInst *MI, int OpNo, raw_ostream &O, const char *Modifier=nullptr) |
void | printCCOperand (const MCInst *MI, int OpNo, raw_ostream &O) |
void | printHi16ImmOperand (const MCInst *MI, unsigned OpNo, raw_ostream &O) |
void | printHi16AndImmOperand (const MCInst *MI, unsigned OpNo, raw_ostream &O) |
void | printLo16AndImmOperand (const MCInst *MI, unsigned OpNo, raw_ostream &O) |
void | printMemImmOperand (const MCInst *MI, unsigned OpNo, raw_ostream &O) |
std::pair< const char *, uint64_t > | getMnemonic (const MCInst *MI) override |
Returns a pair containing the mnemonic for MI and the number of bits left for further processing by printInstruction (generated by tablegen). More... | |
void | printInstruction (const MCInst *MI, uint64_t Address, raw_ostream &O) |
bool | printAliasInstr (const MCInst *MI, uint64_t Address, raw_ostream &OS) |
void | printCustomAliasOperand (const MCInst *MI, uint64_t Address, unsigned OpIdx, unsigned PrintMethodIdx, raw_ostream &O) |
void | printRegName (raw_ostream &OS, unsigned RegNo) const override |
Print the assembler register name. More... | |
![]() | |
MCInstPrinter (const MCAsmInfo &mai, const MCInstrInfo &mii, const MCRegisterInfo &mri) | |
virtual | ~MCInstPrinter () |
virtual bool | applyTargetSpecificCLOption (StringRef Opt) |
Customize the printer according to a command line option. More... | |
void | setCommentStream (raw_ostream &OS) |
Specify a stream to emit comments to. More... | |
StringRef | getOpcodeName (unsigned Opcode) const |
Return the name of the specified opcode enum (e.g. More... | |
bool | getUseMarkup () const |
void | setUseMarkup (bool Value) |
StringRef | markup (StringRef s) const |
Utility functions to make adding mark ups simpler. More... | |
bool | getPrintImmHex () const |
void | setPrintImmHex (bool Value) |
void | setPrintHexStyle (HexStyle::Style Value) |
void | setPrintBranchImmAsAddress (bool Value) |
void | setSymbolizeOperands (bool Value) |
void | setMCInstrAnalysis (const MCInstrAnalysis *Value) |
format_object< int64_t > | formatImm (int64_t Value) const |
Utility function to print immediates in decimal or hex. More... | |
format_object< int64_t > | formatDec (int64_t Value) const |
Utility functions to print decimal/hexadecimal values. More... | |
format_object< int64_t > | formatHex (int64_t Value) const |
format_object< uint64_t > | formatHex (uint64_t Value) const |
Static Public Member Functions | |
static const char * | getRegisterName (unsigned RegNo) |
Additional Inherited Members | |
![]() | |
void | printAnnotation (raw_ostream &OS, StringRef Annot) |
Utility function for printing annotations. More... | |
const char * | matchAliasPatterns (const MCInst *MI, const MCSubtargetInfo *STI, const AliasMatchingData &M) |
Helper for matching MCInsts to alias patterns when printing instructions. More... | |
![]() | |
raw_ostream * | CommentStream = nullptr |
A stream that comments can be emitted to if desired. More... | |
const MCAsmInfo & | MAI |
const MCInstrInfo & | MII |
const MCRegisterInfo & | MRI |
const MCInstrAnalysis * | MIA = nullptr |
bool | UseMarkup = false |
True if we are printing marked up assembly. More... | |
bool | PrintAliases = true |
True if we prefer aliases (e.g. nop) to raw mnemonics. More... | |
bool | PrintImmHex = false |
True if we are printing immediates as hex. More... | |
HexStyle::Style | PrintHexStyle = HexStyle::C |
Which style to use for printing hexadecimal values. More... | |
bool | PrintBranchImmAsAddress = false |
If true, a branch immediate (e.g. More... | |
bool | SymbolizeOperands = false |
If true, symbolize branch target and memory reference operands. More... | |
Definition at line 21 of file LanaiInstPrinter.h.
|
inline |
Definition at line 23 of file LanaiInstPrinter.h.
|
overridevirtual |
Returns a pair containing the mnemonic for MI
and the number of bits left for further processing by printInstruction (generated by tablegen).
Implements llvm::MCInstPrinter.
|
static |
Referenced by printMemoryBaseRegister(), printMemRrOperand(), printOperand(), and printRegName().
bool llvm::LanaiInstPrinter::printAliasInstr | ( | const MCInst * | MI, |
uint64_t | Address, | ||
raw_ostream & | OS | ||
) |
Referenced by printInst().
void LanaiInstPrinter::printCCOperand | ( | const MCInst * | MI, |
int | OpNo, | ||
raw_ostream & | O | ||
) |
Definition at line 288 of file LanaiInstPrinter.cpp.
References llvm::LPCC::lanaiCondCodeToString(), MI, and llvm::LPCC::UNKNOWN.
void llvm::LanaiInstPrinter::printCustomAliasOperand | ( | const MCInst * | MI, |
uint64_t | Address, | ||
unsigned | OpIdx, | ||
unsigned | PrintMethodIdx, | ||
raw_ostream & | O | ||
) |
void LanaiInstPrinter::printHi16AndImmOperand | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O | ||
) |
Definition at line 189 of file LanaiInstPrinter.cpp.
References assert(), llvm::MCInstPrinter::formatHex(), llvm::MCInstPrinter::MAI, and MI.
void LanaiInstPrinter::printHi16ImmOperand | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O | ||
) |
Definition at line 177 of file LanaiInstPrinter.cpp.
References assert(), llvm::MCInstPrinter::formatHex(), llvm::MCInstPrinter::MAI, and MI.
|
overridevirtual |
Print the specified MCInst to the specified raw_ostream.
Address
the address of current instruction on most targets, used to print a PC relative immediate as the target address. On targets where a PC relative immediate is relative to the next instruction and the length of a MCInst is difficult to measure (e.g. x86), this is the address of the next instruction. If Address is 0, the immediate will be printed.
Implements llvm::MCInstPrinter.
Definition at line 140 of file LanaiInstPrinter.cpp.
References MI, printAliasInstr(), llvm::MCInstPrinter::printAnnotation(), and printInstruction().
void llvm::LanaiInstPrinter::printInstruction | ( | const MCInst * | MI, |
uint64_t | Address, | ||
raw_ostream & | O | ||
) |
Referenced by printInst().
void LanaiInstPrinter::printLo16AndImmOperand | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O | ||
) |
Definition at line 201 of file LanaiInstPrinter.cpp.
References assert(), llvm::MCInstPrinter::formatHex(), llvm::MCInstPrinter::MAI, and MI.
void LanaiInstPrinter::printMemImmOperand | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O | ||
) |
Definition at line 163 of file LanaiInstPrinter.cpp.
References assert(), llvm::MCInstPrinter::formatHex(), llvm::MCInstPrinter::MAI, and MI.
void LanaiInstPrinter::printMemRiOperand | ( | const MCInst * | MI, |
int | OpNo, | ||
raw_ostream & | O, | ||
const char * | Modifier = nullptr |
||
) |
Definition at line 237 of file LanaiInstPrinter.cpp.
References llvm::MCOperand::getImm(), llvm::MCInstPrinter::MAI, MI, and printMemoryBaseRegister().
void LanaiInstPrinter::printMemRrOperand | ( | const MCInst * | MI, |
int | OpNo, | ||
raw_ostream & | O, | ||
const char * | Modifier = nullptr |
||
) |
Definition at line 252 of file LanaiInstPrinter.cpp.
References assert(), llvm::MCOperand::getImm(), llvm::MCOperand::getReg(), getRegisterName(), llvm::LPAC::isPostOp(), llvm::LPAC::isPreOp(), llvm::MCOperand::isReg(), llvm::LPAC::lanaiAluCodeToString(), and MI.
void LanaiInstPrinter::printMemSplsOperand | ( | const MCInst * | MI, |
int | OpNo, | ||
raw_ostream & | O, | ||
const char * | Modifier = nullptr |
||
) |
Definition at line 273 of file LanaiInstPrinter.cpp.
References llvm::MCOperand::getImm(), llvm::MCInstPrinter::MAI, MI, and printMemoryBaseRegister().
void LanaiInstPrinter::printOperand | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O, | ||
const char * | Modifier = nullptr |
||
) |
Definition at line 149 of file LanaiInstPrinter.cpp.
References assert(), llvm::MCInstPrinter::formatHex(), getRegisterName(), llvm::MCInstPrinter::MAI, and MI.
void LanaiInstPrinter::printPredicateOperand | ( | const MCInst * | MI, |
unsigned | OpNum, | ||
raw_ostream & | O | ||
) |
Definition at line 299 of file LanaiInstPrinter.cpp.
References llvm::LPCC::ICC_T, llvm::LPCC::lanaiCondCodeToString(), MI, and llvm::LPCC::UNKNOWN.
|
overridevirtual |
Print the assembler register name.
Reimplemented from llvm::MCInstPrinter.
Definition at line 34 of file LanaiInstPrinter.cpp.
References getRegisterName(), and llvm::StringRef::lower().