LLVM 22.0.0git
|
#include "Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h"
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 26 of file WebAssemblyInstPrinter.h.
WebAssemblyInstPrinter::WebAssemblyInstPrinter | ( | const MCAsmInfo & | MAI, |
const MCInstrInfo & | MII, | ||
const MCRegisterInfo & | MRI ) |
Definition at line 36 of file WebAssemblyInstPrinter.cpp.
References llvm::MCInstPrinter::MAI, llvm::MCInstPrinter::MCInstPrinter(), llvm::MCInstPrinter::MII, and llvm::MCInstPrinter::MRI.
|
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.
Referenced by printInst().
|
static |
References Reg.
void WebAssemblyInstPrinter::printBrList | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O ) |
Definition at line 353 of file WebAssemblyInstPrinter.cpp.
void WebAssemblyInstPrinter::printCatchList | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O ) |
Definition at line 393 of file WebAssemblyInstPrinter.cpp.
References llvm::cast(), llvm::MCSymbol::getName(), llvm::MCSymbolRefExpr::getSymbol(), I, MI, OpIdx, llvm::wasm::WASM_OPCODE_CATCH, llvm::wasm::WASM_OPCODE_CATCH_ALL, llvm::wasm::WASM_OPCODE_CATCH_ALL_REF, and llvm::wasm::WASM_OPCODE_CATCH_REF.
|
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 47 of file WebAssemblyInstPrinter.cpp.
References llvm::Address, assert(), llvm::MCInstPrinter::CommentStream, llvm::Depth, getMnemonic(), I, MI, llvm::MCInstPrinter::MII, Opc, llvm::WebAssembly::OPERAND_BASIC_BLOCK, OpIdx, llvm::MCInstPrinter::printAnnotation(), printInstruction(), printOperand(), llvm::utostr(), llvm::wasm::WASM_OPCODE_CATCH, and llvm::wasm::WASM_OPCODE_CATCH_REF.
void llvm::WebAssemblyInstPrinter::printInstruction | ( | const MCInst * | MI, |
uint64_t | Address, | ||
raw_ostream & | O ) |
References llvm::Address, and MI.
Referenced by printInst().
void WebAssemblyInstPrinter::printOperand | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O, | ||
bool | IsVariadicDef = false ) |
Definition at line 315 of file WebAssemblyInstPrinter.cpp.
References assert(), llvm::WebAssembly::getWARegStackId(), llvm::APFloatBase::IEEEdouble(), llvm::APFloatBase::IEEEsingle(), llvm::MCInstPrinter::MAI, MI, llvm::MCInstPrinter::MII, printRegName(), llvm::WebAssembly::S_TYPEINDEX, llvm::WebAssembly::signatureToString(), llvm::toString(), and llvm::WebAssembly::UnusedReg.
Referenced by printInst().
|
overridevirtual |
Print the assembler register name.
Reimplemented from llvm::MCInstPrinter.
Definition at line 41 of file WebAssemblyInstPrinter.cpp.
References assert(), and llvm::WebAssembly::UnusedReg.
Referenced by printOperand().
void WebAssemblyInstPrinter::printWebAssemblyP2AlignOperand | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O ) |
Definition at line 364 of file WebAssemblyInstPrinter.cpp.
References llvm::WebAssembly::GetDefaultP2Align(), and MI.
void WebAssemblyInstPrinter::printWebAssemblySignatureOperand | ( | const MCInst * | MI, |
unsigned | OpNo, | ||
raw_ostream & | O ) |
Definition at line 373 of file WebAssemblyInstPrinter.cpp.
References llvm::WebAssembly::anyTypeToString(), llvm::cast(), MI, llvm::WebAssembly::signatureToString(), and llvm::wasm::WASM_TYPE_NORESULT.