LLVM 20.0.0git
|
#include "Target/SPIRV/MCTargetDesc/SPIRVInstPrinter.h"
Public Member Functions | |
void | printInst (const MCInst *MI, uint64_t Address, StringRef Annot, const MCSubtargetInfo &STI, raw_ostream &OS) override |
Print the specified MCInst to the specified raw_ostream. | |
void | printOperand (const MCInst *MI, unsigned OpNo, raw_ostream &O, const char *Modifier=nullptr) |
void | printStringImm (const MCInst *MI, unsigned OpNo, raw_ostream &O) |
void | printOpDecorate (const MCInst *MI, raw_ostream &O) |
void | printOpExtInst (const MCInst *MI, raw_ostream &O) |
void | printRemainingVariableOps (const MCInst *MI, unsigned StartIndex, raw_ostream &O, bool SkipFirstSpace=false, bool SkipImmediates=false) |
void | printOpConstantVarOps (const MCInst *MI, unsigned StartIndex, raw_ostream &O) |
void | printExtension (const MCInst *MI, unsigned OpNo, raw_ostream &O) |
template<SPIRV::OperandCategory::OperandCategory category> | |
void | printSymbolicOperand (const MCInst *MI, unsigned OpNo, raw_ostream &O) |
std::pair< const char *, uint64_t > | getMnemonic (const MCInst &MI) const override |
Returns a pair containing the mnemonic for MI and the number of bits left for further processing by printInstruction (generated by tablegen). | |
void | printInstruction (const MCInst *MI, uint64_t Address, raw_ostream &O) |
MCInstPrinter (const MCAsmInfo &mai, const MCInstrInfo &mii, const MCRegisterInfo &mri) | |
Public Member Functions inherited from llvm::MCInstPrinter | |
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. | |
void | setCommentStream (raw_ostream &OS) |
Specify a stream to emit comments to. | |
virtual std::pair< const char *, uint64_t > | getMnemonic (const MCInst &MI) const =0 |
Returns a pair containing the mnemonic for MI and the number of bits left for further processing by printInstruction (generated by tablegen). | |
virtual void | printInst (const MCInst *MI, uint64_t Address, StringRef Annot, const MCSubtargetInfo &STI, raw_ostream &OS)=0 |
Print the specified MCInst to the specified raw_ostream. | |
StringRef | getOpcodeName (unsigned Opcode) const |
Return the name of the specified opcode enum (e.g. | |
virtual void | printRegName (raw_ostream &OS, MCRegister Reg) |
Print the assembler register name. | |
bool | getUseMarkup () const |
void | setUseMarkup (bool Value) |
bool | getUseColor () const |
void | setUseColor (bool Value) |
WithMarkup | markup (raw_ostream &OS, Markup M) |
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. | |
format_object< int64_t > | formatDec (int64_t Value) const |
Utility functions to print decimal/hexadecimal values. | |
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 (MCRegister Reg) |
Additional Inherited Members | |
Public Types inherited from llvm::MCInstPrinter | |
enum class | Markup { Immediate , Register , Target , Memory } |
Protected Member Functions inherited from llvm::MCInstPrinter | |
void | printAnnotation (raw_ostream &OS, StringRef Annot) |
Utility function for printing annotations. | |
const char * | matchAliasPatterns (const MCInst *MI, const MCSubtargetInfo *STI, const AliasMatchingData &M) |
Helper for matching MCInsts to alias patterns when printing instructions. | |
Protected Attributes inherited from llvm::MCInstPrinter | |
raw_ostream * | CommentStream = nullptr |
A stream that comments can be emitted to if desired. | |
const MCAsmInfo & | MAI |
const MCInstrInfo & | MII |
const MCRegisterInfo & | MRI |
const MCInstrAnalysis * | MIA = nullptr |
bool | UseMarkup = false |
True if we are printing marked up assembly. | |
bool | UseColor = false |
True if we are printing colored assembly. | |
bool | PrintAliases = true |
True if we prefer aliases (e.g. nop) to raw mnemonics. | |
bool | PrintImmHex = false |
True if we are printing immediates as hex. | |
HexStyle::Style | PrintHexStyle = HexStyle::C |
Which style to use for printing hexadecimal values. | |
bool | PrintBranchImmAsAddress = false |
If true, a branch immediate (e.g. | |
bool | SymbolizeOperands = false |
If true, symbolize branch target and memory reference operands. | |
SmallVector< raw_ostream::Colors, 4 > | ColorStack {raw_ostream::Colors::RESET} |
Definition at line 21 of file SPIRVInstPrinter.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 |
|
inline |
Definition at line 90 of file MCInstPrinter.h.
void SPIRVInstPrinter::printExtension | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O | ||
) |
Definition at line 390 of file SPIRVInstPrinter.cpp.
References llvm::getExtInstName(), 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 107 of file SPIRVInstPrinter.cpp.
References llvm::Address, assert(), llvm::MCInstrInfo::get(), llvm::MCInstrDesc::getNumOperands(), llvm::getSymbolicOperandMnemonic(), llvm::MCInstrDesc::isVariadic(), MI, llvm::MCInstPrinter::MII, llvm::MCOI::OPERAND_UNKNOWN, llvm::MCInstrDesc::operands(), OS, llvm::MCInstPrinter::printAnnotation(), printInstruction(), printOpConstantVarOps(), printOpDecorate(), printOperand(), printOpExtInst(), printRemainingVariableOps(), and printSymbolicOperand().
void llvm::SPIRVInstPrinter::printInstruction | ( | const MCInst * | MI, |
uint64_t | Address, | ||
raw_ostream & | O | ||
) |
Referenced by printInst().
void SPIRVInstPrinter::printOpConstantVarOps | ( | const MCInst * | MI, |
unsigned | StartIndex, | ||
raw_ostream & | O | ||
) |
Definition at line 51 of file SPIRVInstPrinter.cpp.
References llvm::SPIRV::ASM_PRINTER_WIDTH16, assert(), llvm::format(), FP, and MI.
Referenced by printInst().
void SPIRVInstPrinter::printOpDecorate | ( | const MCInst * | MI, |
raw_ostream & | O | ||
) |
Definition at line 268 of file SPIRVInstPrinter.cpp.
References llvm::MCInstrInfo::get(), llvm::MCInstrDesc::getNumOperands(), MI, llvm::MCInstPrinter::MII, printOperand(), printRemainingVariableOps(), and printStringImm().
Referenced by printInst().
void SPIRVInstPrinter::printOperand | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O, | ||
const char * | Modifier = nullptr |
||
) |
Definition at line 333 of file SPIRVInstPrinter.cpp.
References assert(), llvm::MCInstPrinter::formatImm(), llvm_unreachable, MI, printExpr(), and llvm::Register::virtReg2Index().
Referenced by printInst(), printOpDecorate(), and printRemainingVariableOps().
void SPIRVInstPrinter::printOpExtInst | ( | const MCInst * | MI, |
raw_ostream & | O | ||
) |
Definition at line 253 of file SPIRVInstPrinter.cpp.
References llvm::MCInstrInfo::get(), llvm::MCInstrDesc::getNumOperands(), MI, llvm::MCInstPrinter::MII, and printRemainingVariableOps().
Referenced by printInst().
void SPIRVInstPrinter::printRemainingVariableOps | ( | const MCInst * | MI, |
unsigned | StartIndex, | ||
raw_ostream & | O, | ||
bool | SkipFirstSpace = false , |
||
bool | SkipImmediates = false |
||
) |
Definition at line 36 of file SPIRVInstPrinter.cpp.
References MI, and printOperand().
Referenced by printInst(), printOpDecorate(), and printOpExtInst().
void SPIRVInstPrinter::printStringImm | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O | ||
) |
Definition at line 351 of file SPIRVInstPrinter.cpp.
References llvm::getSPIRVStringOperand(), and MI.
Referenced by printOpDecorate().
void SPIRVInstPrinter::printSymbolicOperand | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O | ||
) |
Definition at line 399 of file SPIRVInstPrinter.cpp.
References llvm::getSymbolicOperandMnemonic(), and MI.
Referenced by printInst().