|
LLVM
3.7.0
|
This is an instance of a target assembly language printer that converts an MCInst to valid target assembly syntax. More...
#include <MCInstPrinter.h>
Public Member Functions | |
| MCInstPrinter (const MCAsmInfo &mai, const MCInstrInfo &mii, const MCRegisterInfo &mri) | |
| virtual | ~MCInstPrinter () |
| void | setCommentStream (raw_ostream &OS) |
| Specify a stream to emit comments to. More... | |
| virtual void | printInst (const MCInst *MI, raw_ostream &OS, StringRef Annot, const MCSubtargetInfo &STI)=0 |
| Print the specified MCInst to the specified raw_ostream. More... | |
| StringRef | getOpcodeName (unsigned Opcode) const |
| Return the name of the specified opcode enum (e.g. More... | |
| virtual void | printRegName (raw_ostream &OS, unsigned RegNo) const |
| Print the assembler register name. More... | |
| bool | getUseMarkup () const |
| void | setUseMarkup (bool Value) |
| StringRef | markup (StringRef s) const |
| Utility functions to make adding mark ups simpler. More... | |
| StringRef | markup (StringRef a, StringRef b) const |
| bool | getPrintImmHex () const |
| void | setPrintImmHex (bool Value) |
| HexStyle::Style | getPrintHexStyle () const |
| void | setPrintHexStyle (HexStyle::Style Value) |
| format_object< int64_t > | formatImm (int64_t Value) const |
| Utility function to print immediates in decimal or hex. More... | |
| format_object< int64_t > | formatDec (int64_t Value) const |
| Utility functions to print decimal/hexadecimal values. More... | |
| format_object< int64_t > | formatHex (int64_t Value) const |
| format_object< uint64_t > | formatHex (uint64_t Value) const |
Protected Member Functions | |
| void | printAnnotation (raw_ostream &OS, StringRef Annot) |
| Utility function for printing annotations. More... | |
Protected Attributes | |
| raw_ostream * | CommentStream |
| A stream that comments can be emitted to if desired. More... | |
| const MCAsmInfo & | MAI |
| const MCInstrInfo & | MII |
| const MCRegisterInfo & | MRI |
| bool | UseMarkup |
| True if we are printing marked up assembly. More... | |
| bool | PrintImmHex |
| True if we are printing immediates as hex. More... | |
| HexStyle::Style | PrintHexStyle |
| Which style to use for printing hexadecimal values. More... | |
This is an instance of a target assembly language printer that converts an MCInst to valid target assembly syntax.
Definition at line 38 of file MCInstPrinter.h.
|
inline |
Definition at line 61 of file MCInstPrinter.h.
|
virtual |
Definition at line 28 of file MCInstPrinter.cpp.
| format_object< int64_t > MCInstPrinter::formatDec | ( | int64_t | Value | ) | const |
Utility functions to print decimal/hexadecimal values.
Definition at line 81 of file MCInstPrinter.cpp.
References llvm::format().
Referenced by formatImm(), and llvm::BPFInstPrinter::printMemOperand().
| format_object< int64_t > MCInstPrinter::formatHex | ( | int64_t | Value | ) | const |
Definition at line 85 of file MCInstPrinter.cpp.
References llvm::HexStyle::Asm, llvm::HexStyle::C, llvm::format(), llvm_unreachable, needsLeadingZero(), and PrintHexStyle.
Referenced by formatImm(), llvm::X86IntelInstPrinter::printPCRelImm(), and llvm::X86ATTInstPrinter::printPCRelImm().
| format_object< uint64_t > MCInstPrinter::formatHex | ( | uint64_t | Value | ) | const |
Definition at line 108 of file MCInstPrinter.cpp.
References llvm::HexStyle::Asm, llvm::HexStyle::C, llvm::format(), llvm_unreachable, needsLeadingZero(), and PrintHexStyle.
|
inline |
Utility function to print immediates in decimal or hex.
Definition at line 96 of file MCInstPrinter.h.
References formatDec(), formatHex(), and PrintImmHex.
Referenced by llvm::ARMInstPrinter::printAddrModeImm12Operand(), llvm::ARMInstPrinter::printImmPlusOneOperand(), llvm::X86IntelInstPrinter::printMemOffset(), llvm::X86ATTInstPrinter::printMemOffset(), llvm::X86IntelInstPrinter::printMemReference(), llvm::X86ATTInstPrinter::printMemReference(), llvm::X86IntelInstPrinter::printOperand(), llvm::ARMInstPrinter::printOperand(), llvm::NVPTXInstPrinter::printOperand(), llvm::X86ATTInstPrinter::printOperand(), llvm::X86IntelInstPrinter::printPCRelImm(), llvm::X86ATTInstPrinter::printPCRelImm(), llvm::ARMInstPrinter::printT2AddrModeImm0_1020s4Operand(), llvm::ARMInstPrinter::printThumbAddrModeImm5SOperand(), llvm::ARMInstPrinter::printThumbLdrLabelOperand(), llvm::ARMInstPrinter::printThumbS4ImmOperand(), llvm::ARMInstPrinter::printThumbSRImm(), llvm::X86IntelInstPrinter::printU8Imm(), and llvm::X86ATTInstPrinter::printU8Imm().
Return the name of the specified opcode enum (e.g.
getOpcodeName - Return the name of the specified opcode enum (e.g.
"MOV32ri") or empty if we can't resolve it.
Definition at line 33 of file MCInstPrinter.cpp.
References llvm::MCInstrInfo::getName(), and MII.
Referenced by llvm::MCInst::dump_pretty().
|
inline |
Definition at line 92 of file MCInstPrinter.h.
References PrintHexStyle.
|
inline |
Definition at line 89 of file MCInstPrinter.h.
References PrintImmHex.
|
inline |
Utility functions to make adding mark ups simpler.
Definition at line 55 of file MCInstPrinter.cpp.
References getUseMarkup().
Referenced by llvm::ARMInstPrinter::printAddrMode2OffsetOperand(), llvm::ARMInstPrinter::printAddrMode3OffsetOperand(), llvm::ARMInstPrinter::printAddrMode5Operand(), llvm::ARMInstPrinter::printAddrMode6Operand(), llvm::ARMInstPrinter::printAddrMode7Operand(), llvm::ARMInstPrinter::printAddrModeImm12Operand(), llvm::ARMInstPrinter::printAddrModeTBB(), llvm::ARMInstPrinter::printAddrModeTBH(), llvm::ARMInstPrinter::printAdrLabelOperand(), llvm::ARMInstPrinter::printAM2PreOrOffsetIndexOp(), llvm::ARMInstPrinter::printAM3PreOrOffsetIndexOp(), llvm::ARMInstPrinter::printBitfieldInvMaskImmOperand(), llvm::X86ATTInstPrinter::printDstIdx(), llvm::ARMInstPrinter::printFBits16(), llvm::ARMInstPrinter::printFBits32(), llvm::ARMInstPrinter::printFPImmOperand(), llvm::ARMInstPrinter::printImmPlusOneOperand(), llvm::ARMInstPrinter::printInst(), llvm::X86ATTInstPrinter::printMemOffset(), llvm::X86ATTInstPrinter::printMemReference(), llvm::ARMInstPrinter::printModImmOperand(), llvm::ARMInstPrinter::printNEONModImmOperand(), llvm::ARMInstPrinter::printOperand(), llvm::NVPTXInstPrinter::printOperand(), llvm::X86ATTInstPrinter::printOperand(), llvm::ARMInstPrinter::printPKHASRShiftImm(), llvm::ARMInstPrinter::printPKHLSLShiftImm(), llvm::ARMInstPrinter::printPostIdxImm8Operand(), llvm::ARMInstPrinter::printPostIdxImm8s4Operand(), llvm::X86ATTInstPrinter::printRegName(), llvm::ARMInstPrinter::printRegName(), llvm::ARMInstPrinter::printRotImmOperand(), llvm::ARMInstPrinter::printShiftImmOperand(), llvm::X86ATTInstPrinter::printSrcIdx(), llvm::ARMInstPrinter::printT2AddrModeImm0_1020s4Operand(), llvm::ARMInstPrinter::printT2AddrModeImm8OffsetOperand(), llvm::ARMInstPrinter::printT2AddrModeImm8Operand(), llvm::ARMInstPrinter::printT2AddrModeImm8s4OffsetOperand(), llvm::ARMInstPrinter::printT2AddrModeImm8s4Operand(), llvm::ARMInstPrinter::printT2AddrModeSoRegOperand(), llvm::ARMInstPrinter::printThumbAddrModeImm5SOperand(), llvm::ARMInstPrinter::printThumbAddrModeRROperand(), llvm::ARMInstPrinter::printThumbLdrLabelOperand(), llvm::ARMInstPrinter::printThumbS4ImmOperand(), llvm::ARMInstPrinter::printThumbSRImm(), and llvm::X86ATTInstPrinter::printU8Imm().
Definition at line 61 of file MCInstPrinter.cpp.
References getUseMarkup().
|
protected |
Utility function for printing annotations.
Definition at line 41 of file MCInstPrinter.cpp.
References CommentStream, llvm::StringRef::empty(), llvm::MCAsmInfo::getCommentString(), and MAI.
Referenced by llvm::BPFInstPrinter::printInst(), llvm::MSP430InstPrinter::printInst(), llvm::ARMInstPrinter::printInst(), llvm::NVPTXInstPrinter::printInst(), llvm::AArch64InstPrinter::printInst(), llvm::SparcInstPrinter::printInst(), llvm::X86ATTInstPrinter::printInst(), llvm::X86IntelInstPrinter::printInst(), llvm::AMDGPUInstPrinter::printInst(), llvm::XCoreInstPrinter::printInst(), llvm::PPCInstPrinter::printInst(), llvm::SystemZInstPrinter::printInst(), llvm::MipsInstPrinter::printInst(), and llvm::AArch64AppleInstPrinter::printInst().
|
pure virtual |
Print the specified MCInst to the specified raw_ostream.
Implemented in llvm::AArch64AppleInstPrinter, llvm::MipsInstPrinter, llvm::HexagonInstPrinter, llvm::SystemZInstPrinter, llvm::PPCInstPrinter, llvm::XCoreInstPrinter, llvm::AMDGPUInstPrinter, llvm::WebAssemblyInstPrinter, llvm::AArch64InstPrinter, llvm::NVPTXInstPrinter, llvm::SparcInstPrinter, llvm::X86ATTInstPrinter, llvm::X86IntelInstPrinter, llvm::ARMInstPrinter, llvm::BPFInstPrinter, llvm::MSP430InstPrinter, and llvm::HexagonAsmInstPrinter.
Referenced by LLVMDisasmInstruction(), and llvm::MCTargetStreamer::prettyPrintAsm().
|
virtual |
Print the assembler register name.
Reimplemented in llvm::MipsInstPrinter, llvm::HexagonInstPrinter, llvm::SystemZInstPrinter, llvm::PPCInstPrinter, llvm::XCoreInstPrinter, llvm::AArch64InstPrinter, llvm::ARMInstPrinter, llvm::WebAssemblyInstPrinter, llvm::NVPTXInstPrinter, llvm::SparcInstPrinter, llvm::X86ATTInstPrinter, llvm::X86IntelInstPrinter, and llvm::HexagonAsmInstPrinter.
Definition at line 37 of file MCInstPrinter.cpp.
References llvm_unreachable.
|
inline |
Specify a stream to emit comments to.
Definition at line 69 of file MCInstPrinter.h.
References CommentStream.
Referenced by LLVMSetDisasmOptions().
|
inline |
Definition at line 93 of file MCInstPrinter.h.
References PrintHexStyle.
|
inline |
Definition at line 90 of file MCInstPrinter.h.
References PrintImmHex.
Referenced by LLVMSetDisasmOptions().
|
inline |
Definition at line 83 of file MCInstPrinter.h.
References UseMarkup.
Referenced by LLVMSetDisasmOptions().
|
protected |
A stream that comments can be emitted to if desired.
Each comment must end with a newline. This will be null if verbose assembly emission is disable.
Definition at line 43 of file MCInstPrinter.h.
Referenced by llvm::AArch64InstPrinter::printAddSubImm(), printAnnotation(), llvm::X86ATTInstPrinter::printInst(), llvm::X86IntelInstPrinter::printInst(), llvm::X86ATTInstPrinter::printOperand(), and setCommentStream().
Definition at line 44 of file MCInstPrinter.h.
Referenced by llvm::AArch64InstPrinter::printAddSubImm(), llvm::ARMInstPrinter::printAdrLabelOperand(), llvm::AArch64InstPrinter::printAdrpLabel(), llvm::AArch64InstPrinter::printAlignedLabel(), llvm::AArch64InstPrinter::printAMIndexedWB(), printAnnotation(), llvm::HexagonInstPrinter::printImmOperand(), llvm::AArch64InstPrinter::printInst(), llvm::X86IntelInstPrinter::printMemOffset(), llvm::X86ATTInstPrinter::printMemOffset(), llvm::X86IntelInstPrinter::printMemReference(), llvm::X86ATTInstPrinter::printMemReference(), llvm::MSP430InstPrinter::printOperand(), llvm::ARMInstPrinter::printOperand(), llvm::X86IntelInstPrinter::printOperand(), llvm::NVPTXInstPrinter::printOperand(), llvm::X86ATTInstPrinter::printOperand(), llvm::PPCInstPrinter::printOperand(), llvm::SparcInstPrinter::printOperand(), llvm::HexagonInstPrinter::printOperand(), llvm::AArch64InstPrinter::printOperand(), llvm::X86IntelInstPrinter::printPCRelImm(), llvm::X86ATTInstPrinter::printPCRelImm(), llvm::MSP430InstPrinter::printPCRelImmOperand(), llvm::MSP430InstPrinter::printSrcMemOperand(), llvm::ARMInstPrinter::printThumbLdrLabelOperand(), and llvm::AArch64InstPrinter::printUImm12Offset().
|
protected |
Definition at line 45 of file MCInstPrinter.h.
Referenced by getOpcodeName(), llvm::X86IntelInstPrinter::printInst(), and llvm::X86ATTInstPrinter::printInst().
|
protected |
Definition at line 46 of file MCInstPrinter.h.
Referenced by llvm::ARMInstPrinter::printGPRPairOperand(), llvm::AArch64InstPrinter::printGPRSeqPairsClassOperand(), llvm::ARMInstPrinter::printInst(), llvm::AArch64InstPrinter::printVectorList(), llvm::ARMInstPrinter::printVectorListTwo(), llvm::ARMInstPrinter::printVectorListTwoAllLanes(), llvm::ARMInstPrinter::printVectorListTwoSpaced(), and llvm::ARMInstPrinter::printVectorListTwoSpacedAllLanes().
|
protected |
Which style to use for printing hexadecimal values.
Definition at line 55 of file MCInstPrinter.h.
Referenced by formatHex(), getPrintHexStyle(), and setPrintHexStyle().
|
protected |
True if we are printing immediates as hex.
Definition at line 52 of file MCInstPrinter.h.
Referenced by formatImm(), getPrintImmHex(), and setPrintImmHex().
|
protected |
True if we are printing marked up assembly.
Definition at line 49 of file MCInstPrinter.h.
Referenced by getUseMarkup(), llvm::ARMInstPrinter::printAddrMode2OffsetOperand(), llvm::ARMInstPrinter::printAM2PreOrOffsetIndexOp(), llvm::ARMInstPrinter::printSORegImmOperand(), llvm::ARMInstPrinter::printT2SOOperand(), and setUseMarkup().
1.8.6