LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::PPCInstPrinter Class Reference

#include "Target/PowerPC/MCTargetDesc/PPCInstPrinter.h"

Inheritance diagram for llvm::PPCInstPrinter:
Inheritance graph
[legend]

Public Member Functions

 PPCInstPrinter (const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI, Triple T)
 
void printRegName (raw_ostream &OS, MCRegister Reg) override
 Print the assembler register name.
 
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.
 
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 &OS)
 
void printCustomAliasOperand (const MCInst *MI, uint64_t Address, unsigned OpIdx, unsigned PrintMethodIdx, const MCSubtargetInfo &STI, raw_ostream &OS)
 
void printOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printPredicateOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O, const char *Modifier=nullptr)
 
void printATBitsAsHint (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU1ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU2ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU3ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU4ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printS5ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU5ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU6ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU7ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU8ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU10ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU12ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printS16ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printS34ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printU16ImmOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printImmZeroOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printBranchOperand (const MCInst *MI, uint64_t Address, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printAbsBranchOperand (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printTLSCall (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printcrbitm (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printMemRegImm (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printMemRegImmHash (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printMemRegImm34PCRel (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printMemRegImm34 (const MCInst *MI, unsigned OpNo, const MCSubtargetInfo &STI, raw_ostream &O)
 
void printMemRegReg (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 ()
 
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_tgetMnemonic (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_tformatHex (uint64_t Value) const
 

Static Public Member Functions

static const chargetRegisterName (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 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 PPCInstPrinter.h.

Constructor & Destructor Documentation

◆ PPCInstPrinter()

llvm::PPCInstPrinter::PPCInstPrinter ( const MCAsmInfo MAI,
const MCInstrInfo MII,
const MCRegisterInfo MRI,
Triple  T 
)
inline

Definition at line 30 of file PPCInstPrinter.h.

Member Function Documentation

◆ getMnemonic()

std::pair< const char *, uint64_t > llvm::PPCInstPrinter::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.

◆ getRegisterName()

static const char * llvm::PPCInstPrinter::getRegisterName ( MCRegister  Reg)
static

Referenced by printOperand(), and printRegName().

◆ printAbsBranchOperand()

void PPCInstPrinter::printAbsBranchOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

◆ printAliasInstr()

bool llvm::PPCInstPrinter::printAliasInstr ( const MCInst MI,
uint64_t  Address,
const MCSubtargetInfo STI,
raw_ostream OS 
)

Referenced by printInst().

◆ printATBitsAsHint()

void PPCInstPrinter::printATBitsAsHint ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 316 of file PPCInstPrinter.cpp.

References MI.

◆ printBranchOperand()

void PPCInstPrinter::printBranchOperand ( const MCInst MI,
uint64_t  Address,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

◆ printcrbitm()

void PPCInstPrinter::printcrbitm ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 493 of file PPCInstPrinter.cpp.

References llvm_unreachable, and MI.

◆ printCustomAliasOperand()

void llvm::PPCInstPrinter::printCustomAliasOperand ( const MCInst MI,
uint64_t  Address,
unsigned  OpIdx,
unsigned  PrintMethodIdx,
const MCSubtargetInfo STI,
raw_ostream OS 
)

◆ printImmZeroOperand()

void PPCInstPrinter::printImmZeroOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 366 of file PPCInstPrinter.cpp.

References assert(), and MI.

Referenced by printMemRegImm34PCRel().

◆ printInst()

void PPCInstPrinter::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 55 of file PPCInstPrinter.cpp.

References llvm::Address, assert(), llvm::MCOperand::getExpr(), llvm::MCSymbolRefExpr::getKind(), llvm::MCSymbolRefExpr::getSymbol(), llvm::MCSubtargetInfo::hasFeature(), llvm::MCOperand::isExpr(), llvm::Triple::isOSAIX(), llvm::MCInstPrinter::MAI, MI, printAliasInstr(), llvm::MCInstPrinter::printAnnotation(), printInstruction(), printOperand(), and llvm::MCSymbolRefExpr::VK_PPC_PCREL_OPT.

◆ printInstruction()

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

Referenced by printInst().

◆ printMemRegImm()

void PPCInstPrinter::printMemRegImm ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 511 of file PPCInstPrinter.cpp.

References MI, printOperand(), and printS16ImmOperand().

◆ printMemRegImm34()

void PPCInstPrinter::printMemRegImm34 ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 541 of file PPCInstPrinter.cpp.

References MI, printOperand(), and printS34ImmOperand().

◆ printMemRegImm34PCRel()

void PPCInstPrinter::printMemRegImm34PCRel ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 532 of file PPCInstPrinter.cpp.

References MI, printImmZeroOperand(), and printS34ImmOperand().

◆ printMemRegImmHash()

void PPCInstPrinter::printMemRegImmHash ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 523 of file PPCInstPrinter.cpp.

References MI, and printOperand().

◆ printMemRegReg()

void PPCInstPrinter::printMemRegReg ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 550 of file PPCInstPrinter.cpp.

References MI, and printOperand().

◆ printOperand()

void PPCInstPrinter::printOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

◆ printPredicateOperand()

void PPCInstPrinter::printPredicateOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O,
const char Modifier = nullptr 
)

◆ printRegName()

void PPCInstPrinter::printRegName ( raw_ostream OS,
MCRegister  Reg 
)
overridevirtual

Print the assembler register name.

Reimplemented from llvm::MCInstPrinter.

Definition at line 50 of file PPCInstPrinter.cpp.

References getRegisterName(), OS, and RegName.

◆ printS16ImmOperand()

void PPCInstPrinter::printS16ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 424 of file PPCInstPrinter.cpp.

References MI, and printOperand().

Referenced by printMemRegImm().

◆ printS34ImmOperand()

void PPCInstPrinter::printS34ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 433 of file PPCInstPrinter.cpp.

References assert(), MI, and printOperand().

Referenced by printMemRegImm34(), and printMemRegImm34PCRel().

◆ printS5ImmOperand()

void PPCInstPrinter::printS5ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 358 of file PPCInstPrinter.cpp.

References MI.

◆ printTLSCall()

void PPCInstPrinter::printTLSCall ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

◆ printU10ImmOperand()

void PPCInstPrinter::printU10ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 408 of file PPCInstPrinter.cpp.

References assert(), and MI.

◆ printU12ImmOperand()

void PPCInstPrinter::printU12ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 416 of file PPCInstPrinter.cpp.

References assert(), and MI.

◆ printU16ImmOperand()

void PPCInstPrinter::printU16ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 445 of file PPCInstPrinter.cpp.

References MI, and printOperand().

◆ printU1ImmOperand()

void PPCInstPrinter::printU1ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 326 of file PPCInstPrinter.cpp.

References assert(), and MI.

◆ printU2ImmOperand()

void PPCInstPrinter::printU2ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 334 of file PPCInstPrinter.cpp.

References assert(), and MI.

◆ printU3ImmOperand()

void PPCInstPrinter::printU3ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 342 of file PPCInstPrinter.cpp.

References assert(), and MI.

◆ printU4ImmOperand()

void PPCInstPrinter::printU4ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 350 of file PPCInstPrinter.cpp.

References assert(), and MI.

◆ printU5ImmOperand()

void PPCInstPrinter::printU5ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 374 of file PPCInstPrinter.cpp.

References assert(), and MI.

◆ printU6ImmOperand()

void PPCInstPrinter::printU6ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 382 of file PPCInstPrinter.cpp.

References assert(), and MI.

◆ printU7ImmOperand()

void PPCInstPrinter::printU7ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 390 of file PPCInstPrinter.cpp.

References assert(), and MI.

◆ printU8ImmOperand()

void PPCInstPrinter::printU8ImmOperand ( const MCInst MI,
unsigned  OpNo,
const MCSubtargetInfo STI,
raw_ostream O 
)

Definition at line 401 of file PPCInstPrinter.cpp.

References MI.


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