LLVM 17.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) const 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) 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)=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) const
 Print the assembler register name.
 
bool getUseMarkup () const
 
void setUseMarkup (bool Value)
 
StringRef markup (StringRef s) const
 Utility functions to make adding mark ups simpler.
 
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

- 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 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.
 

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)
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 
)

Definition at line 481 of file PPCInstPrinter.cpp.

References MI, and printOperand().

◆ 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 490 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 508 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 538 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 529 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 520 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 547 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 
) const
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: