|
LLVM 23.0.0git
|
#include "MCTargetDesc/RISCVBaseInfo.h"#include "MCTargetDesc/RISCVMCTargetDesc.h"#include "TargetInfo/RISCVTargetInfo.h"#include "llvm/MC/MCContext.h"#include "llvm/MC/MCDecoder.h"#include "llvm/MC/MCDecoderOps.h"#include "llvm/MC/MCDisassembler/MCDisassembler.h"#include "llvm/MC/MCInst.h"#include "llvm/MC/MCInstrInfo.h"#include "llvm/MC/MCRegisterInfo.h"#include "llvm/MC/MCSubtargetInfo.h"#include "llvm/MC/TargetRegistry.h"#include "llvm/Support/Compiler.h"#include "llvm/Support/Endian.h"#include "RISCVGenDisassemblerTables.inc"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "riscv-disassembler" |
Variables | |
| constexpr auto | DecodeGPRRegisterClass |
| static constexpr FeatureBitset | XCVFeatureGroup |
| static constexpr FeatureBitset | XRivosFeatureGroup |
| static constexpr FeatureBitset | XqciFeatureGroup |
| static constexpr FeatureBitset | XSfVectorGroup |
| static constexpr FeatureBitset | XSfSystemGroup |
| static constexpr FeatureBitset | XMIPSGroup |
| static constexpr FeatureBitset | XTHeadGroup |
| static constexpr FeatureBitset | XAndesGroup |
| static constexpr FeatureBitset | XSMTGroup = {RISCV::FeatureVendorXSMTVDot} |
| static constexpr FeatureBitset | XAIFGroup = {RISCV::FeatureVendorXAIFET} |
| static constexpr DecoderListEntry | DecoderList32 [] |
| static constexpr DecoderListEntry | DecoderList16 [] |
| static constexpr DecoderListEntry | DecoderList48 [] |
| #define DEBUG_TYPE "riscv-disassembler" |
Definition at line 31 of file RISCVDisassembler.cpp.
|
static |
Definition at line 62 of file RISCVDisassembler.cpp.
References T.
Referenced by LLVMInitializeRISCVDisassembler().
|
static |
Definition at line 467 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::isUInt(), llvm::SignExtend64(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 478 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::isUInt(), llvm::RISCVFPRndMode::isValidRoundingMode(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 136 of file RISCVDisassembler.cpp.
References DecodeGPRRegisterClass, and llvm::MCDisassembler::Fail.
|
static |
Definition at line 145 of file RISCVDisassembler.cpp.
References DecodeGPRRegisterClass, and llvm::MCDisassembler::Fail.
|
static |
Definition at line 154 of file RISCVDisassembler.cpp.
References DecodeGPRRegisterClass, and llvm::MCDisassembler::Fail.
|
static |
Definition at line 189 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCRegisterInfo::getMatchingSuperReg(), Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 181 of file RISCVDisassembler.cpp.
References DecodeGPRPairRegisterClass(), and llvm::MCDisassembler::Fail.
|
static |
Definition at line 164 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCRegisterInfo::getMatchingSuperReg(), Reg, and llvm::MCDisassembler::Success.
Referenced by DecodeGPRPairNoX0RegisterClass().
|
static |
Definition at line 110 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 99 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 130 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 339 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 333 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 428 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::isUInt(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 488 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::isUInt(), llvm::RISCVFPRndMode::RTZ, and llvm::MCDisassembler::Success.
|
static |
Definition at line 447 of file RISCVDisassembler.cpp.
References decodeSImmOperand(), and llvm::MCDisassembler::Fail.
|
static |
Definition at line 437 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::isUInt(), llvm::SignExtend64(), and llvm::MCDisassembler::Success.
Referenced by decodeSImmNonZeroOperand().
|
static |
Definition at line 456 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::isUInt(), N, llvm::SignExtend64(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 82 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCDisassembler::getSubtargetInfo(), llvm::MCSubtargetInfo::hasFeature(), Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 116 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 122 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createReg(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 205 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 299 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 310 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 288 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 412 of file RISCVDisassembler.cpp.
References decodeUImmLog2XLenOperand(), and llvm::MCDisassembler::Fail.
|
static |
Definition at line 389 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::MCDisassembler::getSubtargetInfo(), llvm::MCSubtargetInfo::hasFeature(), llvm::isUInt(), and llvm::MCDisassembler::Success.
Referenced by decodeUImmLog2XLenNonZeroOperand().
|
static |
Definition at line 403 of file RISCVDisassembler.cpp.
References decodeUImmOperand(), and llvm::MCDisassembler::Fail.
|
static |
Definition at line 346 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::isUInt(), and llvm::MCDisassembler::Success.
Referenced by decodeUImmNonZeroOperand().
|
static |
Definition at line 355 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::isUInt(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 420 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::isUInt(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 368 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::isUInt(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 380 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::isUInt(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 321 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 278 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 227 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCRegisterInfo::getMatchingSuperReg(), Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 244 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCRegisterInfo::getMatchingSuperReg(), Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 261 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCRegisterInfo::getMatchingSuperReg(), Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 216 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 508 of file RISCVDisassembler.cpp.
References decodeZcmpRlist(), llvm::MCDisassembler::Fail, and llvm::RISCVZC::RA_S0.
|
static |
Definition at line 498 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::MCDisassembler::getSubtargetInfo(), llvm::MCSubtargetInfo::hasFeature(), llvm::RISCVZC::RA, llvm::RISCVZC::RA_S0_S2, and llvm::MCDisassembler::Success.
Referenced by decodeXqccmpRlistS0().
| LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializeRISCVDisassembler | ( | ) |
Definition at line 69 of file RISCVDisassembler.cpp.
References createRISCVDisassembler(), llvm::getTheRISCV32beTarget(), llvm::getTheRISCV32Target(), llvm::getTheRISCV64beTarget(), llvm::getTheRISCV64Target(), and llvm::TargetRegistry::RegisterMCDisassembler().
|
constexpr |
Definition at line 96 of file RISCVDisassembler.cpp.
Referenced by DecodeAddrMode2IdxInstruction(), DecodeAddrMode3Instruction(), DecodeAddrMode5FP16Operand(), DecodeAddrMode5Operand(), DecodeAddrMode6Operand(), DecodeAddrMode7Operand(), DecodeAddrModeImm12Operand(), DecodeCopMemInstruction(), DecodeDoubleRegLoad(), DecodeDoubleRegStore(), DecodeForVMRSandVMSR(), DecodeGPRnopcRegisterClass(), DecodeGPRNoR0R1RegisterClass(), DecodeGPRnospRegisterClass(), DecodeGPRNoX0RegisterClass(), DecodeGPRNoX2RegisterClass(), DecodeGPRNoX31RegisterClass(), DecodeGPRwithAPSRRegisterClass(), DecodeGPRwithZRRegisterClass(), DecodeLazyLoadStoreMul(), DecodeLDRPreImm(), DecodeLDRPreReg(), DecodeMemMultipleWritebackInstruction(), DecodeMVEVMOVDRegtoQ(), DecodeMVEVMOVQtoDReg(), DecodeRegListOperand(), DecodeRegSeqOperand(), DecodeRFEInstruction(), DecoderGPRRegisterClass(), DecodeSORegMemOperand(), DecodeSTRPreImm(), DecodeSTRPreReg(), DecodeT2AddrModeImm12(), DecodeT2AddrModeImm8(), DecodeT2AddrModeImm8s4(), DecodeT2AddrModeSOReg(), DecodeT2LdStPre(), DecodeT2LoadImm12(), DecodeT2LoadImm8(), DecodeT2LoadLabel(), DecodeT2LoadShift(), DecodetGPRRegisterClass(), DecodeThumbAddSPReg(), DecodeThumbTableBranch(), DecodeTSTInstruction(), DecodeVLD1DupInstruction(), DecodeVLD1LN(), DecodeVLD2DupInstruction(), DecodeVLD2LN(), DecodeVLD3DupInstruction(), DecodeVLD3LN(), DecodeVLD4DupInstruction(), DecodeVLD4LN(), DecodeVLDInstruction(), DecodeVMOVRRS(), DecodeVMOVSRR(), DecodeVST1LN(), DecodeVST2LN(), DecodeVST3LN(), DecodeVST4LN(), and DecodeVSTInstruction().
|
staticconstexpr |
Definition at line 652 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 593 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 696 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 591 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 583 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 533 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 568 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 544 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 539 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 563 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 556 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 589 of file RISCVDisassembler.cpp.
|
staticconstexpr |
Definition at line 575 of file RISCVDisassembler.cpp.