LLVM 22.0.0git
llvm::CSKYInstPrinter Class Reference

#include "Target/CSKY/MCTargetDesc/CSKYInstPrinter.h"

Inheritance diagram for llvm::CSKYInstPrinter:
[legend]

Public Member Functions

 CSKYInstPrinter (const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI)
bool applyTargetSpecificCLOption (StringRef Opt) override
 Customize the printer according to a command line option.
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.
void printRegName (raw_ostream &O, MCRegister Reg) override
 Print the assembler register name.
void printOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printFPRRegName (raw_ostream &O, unsigned RegNo) const
std::pair< const char *, uint64_tgetMnemonic (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, const MCSubtargetInfo &STI, raw_ostream &O)
bool printAliasInstr (const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O)
void printCustomAliasOperand (const MCInst *MI, uint64_t Address, unsigned OpIdx, unsigned PrintMethodIdx, const MCSubtargetInfo &STI, raw_ostream &O)
void printDataSymbol (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printConstpool (const MCInst *MI, uint64_t Address, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printPSRFlag (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printRegisterSeq (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printRegisterList (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printCSKYSymbolOperand (const MCInst *MI, uint64_t Address, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printSPAddr (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
void printFPR (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
Public Member Functions inherited from llvm::MCInstPrinter
 MCInstPrinter (const MCAsmInfo &mai, const MCInstrInfo &mii, const MCRegisterInfo &mri)
virtual ~MCInstPrinter ()
void setCommentStream (raw_ostream &OS)
 Specify a stream to emit comments to.
StringRef getOpcodeName (unsigned Opcode) const
 Return the name of the specified opcode enum (e.g.
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_tformatHex (uint64_t Value) const

Static Public Member Functions

static const chargetRegisterName (MCRegister Reg)
static const chargetRegisterName (MCRegister Reg, unsigned AltIdx)

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 charmatchAliasPatterns (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_ostreamCommentStream = nullptr
 A stream that comments can be emitted to if desired.
const MCAsmInfoMAI
const MCInstrInfoMII
const MCRegisterInfoMRI
const MCInstrAnalysisMIA = 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}

Detailed Description

Definition at line 21 of file CSKYInstPrinter.h.

Constructor & Destructor Documentation

◆ CSKYInstPrinter()

llvm::CSKYInstPrinter::CSKYInstPrinter ( const MCAsmInfo & MAI,
const MCInstrInfo & MII,
const MCRegisterInfo & MRI )
inline

Member Function Documentation

◆ applyTargetSpecificCLOption()

bool CSKYInstPrinter::applyTargetSpecificCLOption ( StringRef Opt)
overridevirtual

Customize the printer according to a command line option.

Returns
true if the option is recognized and applied.

Reimplemented from llvm::MCInstPrinter.

Definition at line 54 of file CSKYInstPrinter.cpp.

References ArchRegNames, llvm::DebugFlag, and NoAliases.

◆ getMnemonic()

std::pair< const char *, uint64_t > llvm::CSKYInstPrinter::getMnemonic ( const MCInst & MI) const
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.

References MI.

◆ getRegisterName() [1/2]

◆ getRegisterName() [2/2]

const char * llvm::CSKYInstPrinter::getRegisterName ( MCRegister Reg,
unsigned AltIdx )
static

References Reg.

◆ printAliasInstr()

bool llvm::CSKYInstPrinter::printAliasInstr ( const MCInst * MI,
uint64_t Address,
const MCSubtargetInfo & STI,
raw_ostream & O )

References llvm::Address, and MI.

Referenced by printInst().

◆ printConstpool()

◆ printCSKYSymbolOperand()

◆ printCustomAliasOperand()

void llvm::CSKYInstPrinter::printCustomAliasOperand ( const MCInst * MI,
uint64_t Address,
unsigned OpIdx,
unsigned PrintMethodIdx,
const MCSubtargetInfo & STI,
raw_ostream & O )

References llvm::Address, MI, and OpIdx.

◆ printDataSymbol()

void CSKYInstPrinter::printDataSymbol ( const MCInst * MI,
unsigned OpNo,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printFPR()

void CSKYInstPrinter::printFPR ( const MCInst * MI,
unsigned OpNo,
const MCSubtargetInfo & STI,
raw_ostream & O )

◆ printFPRRegName()

void CSKYInstPrinter::printFPRRegName ( raw_ostream & O,
unsigned RegNo ) const

Definition at line 93 of file CSKYInstPrinter.cpp.

References getRegisterName(), and llvm::MCInstPrinter::PrintBranchImmAsAddress.

Referenced by printFPR().

◆ printInst()

void CSKYInstPrinter::printInst ( const MCInst * MI,
uint64_t Address,
StringRef Annot,
const MCSubtargetInfo & STI,
raw_ostream & OS )
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 75 of file CSKYInstPrinter.cpp.

References llvm::Address, MI, NoAliases, printAliasInstr(), llvm::MCInstPrinter::printAnnotation(), and printInstruction().

◆ printInstruction()

void llvm::CSKYInstPrinter::printInstruction ( const MCInst * MI,
uint64_t Address,
const MCSubtargetInfo & STI,
raw_ostream & O )

References llvm::Address, and MI.

Referenced by printInst().

◆ printOperand()

◆ printPSRFlag()

void CSKYInstPrinter::printPSRFlag ( const MCInst * MI,
unsigned OpNo,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 198 of file CSKYInstPrinter.cpp.

References MI.

◆ printRegisterList()

void CSKYInstPrinter::printRegisterList ( const MCInst * MI,
unsigned OpNo,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 222 of file CSKYInstPrinter.cpp.

References MI, llvm::Offset, and printRegName().

◆ printRegisterSeq()

void CSKYInstPrinter::printRegisterSeq ( const MCInst * MI,
unsigned OpNo,
const MCSubtargetInfo & STI,
raw_ostream & O )

Definition at line 214 of file CSKYInstPrinter.cpp.

References MI, and printRegName().

◆ printRegName()

void CSKYInstPrinter::printRegName ( raw_ostream & OS,
MCRegister Reg )
overridevirtual

Print the assembler register name.

Reimplemented from llvm::MCInstPrinter.

Definition at line 85 of file CSKYInstPrinter.cpp.

References getRegisterName(), and llvm::MCInstPrinter::PrintBranchImmAsAddress.

Referenced by printOperand(), printRegisterList(), and printRegisterSeq().

◆ printSPAddr()

void llvm::CSKYInstPrinter::printSPAddr ( const MCInst * MI,
unsigned OpNo,
const MCSubtargetInfo & STI,
raw_ostream & O )

References MI, and Reg.


The documentation for this class was generated from the following files: