LLVM 20.0.0git
|
#include "MCTargetDesc/RISCVBaseInfo.h"
#include "MCTargetDesc/RISCVMCTargetDesc.h"
#include "TargetInfo/RISCVTargetInfo.h"
#include "llvm/MC/MCContext.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/Endian.h"
#include "RISCVGenDisassemblerTables.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "riscv-disassembler" |
#define | TRY_TO_DECODE_WITH_ADDITIONAL_OPERATION(FEATURE_CHECKS, DECODER_TABLE, DESC, ADDITIONAL_OPERATION) |
#define | TRY_TO_DECODE_AND_ADD_SP(FEATURE_CHECKS, DECODER_TABLE, DESC) |
#define | TRY_TO_DECODE(FEATURE_CHECKS, DECODER_TABLE, DESC) |
#define | TRY_TO_DECODE_FEATURE(FEATURE, DECODER_TABLE, DESC) TRY_TO_DECODE(STI.hasFeature(FEATURE), DECODER_TABLE, DESC) |
Typedefs | |
typedef MCDisassembler::DecodeStatus | DecodeStatus |
#define DEBUG_TYPE "riscv-disassembler" |
Definition at line 28 of file RISCVDisassembler.cpp.
#define TRY_TO_DECODE | ( | FEATURE_CHECKS, | |
DECODER_TABLE, | |||
DESC | |||
) |
Definition at line 590 of file RISCVDisassembler.cpp.
#define TRY_TO_DECODE_AND_ADD_SP | ( | FEATURE_CHECKS, | |
DECODER_TABLE, | |||
DESC | |||
) |
Definition at line 587 of file RISCVDisassembler.cpp.
#define TRY_TO_DECODE_FEATURE | ( | FEATURE, | |
DECODER_TABLE, | |||
DESC | |||
) | TRY_TO_DECODE(STI.hasFeature(FEATURE), DECODER_TABLE, DESC) |
Definition at line 593 of file RISCVDisassembler.cpp.
#define TRY_TO_DECODE_WITH_ADDITIONAL_OPERATION | ( | FEATURE_CHECKS, | |
DECODER_TABLE, | |||
DESC, | |||
ADDITIONAL_OPERATION | |||
) |
Definition at line 574 of file RISCVDisassembler.cpp.
Definition at line 30 of file RISCVDisassembler.cpp.
|
static |
Definition at line 57 of file RISCVDisassembler.cpp.
Referenced by LLVMInitializeRISCVDisassembler().
|
static |
Definition at line 378 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 460 of file RISCVDisassembler.cpp.
References Address, assert(), DecodeGPRX1X5RegisterClass(), Insn, and llvm::MCDisassembler::Success.
|
static |
Definition at line 121 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 143 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 132 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 165 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 154 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 389 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::RISCVFPRndMode::isValidRoundingMode(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 196 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 84 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCDisassembler::getSubtargetInfo(), llvm::MCSubtargetInfo::hasFeature(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 97 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCDisassembler::getSubtargetInfo(), llvm::MCSubtargetInfo::hasFeature(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 176 of file RISCVDisassembler.cpp.
References Address, DecodeGPRRegisterClass(), and llvm::MCDisassembler::Fail.
Referenced by DecodeGPRNoX0X2RegisterClass(), and decodeRVCInstrRdRs1ImmZero().
|
static |
Definition at line 187 of file RISCVDisassembler.cpp.
References Address, DecodeGPRNoX0RegisterClass(), and llvm::MCDisassembler::Fail.
|
static |
Definition at line 207 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCRegisterInfo::getMatchingSuperReg(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 71 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCDisassembler::getSubtargetInfo(), llvm::MCSubtargetInfo::hasFeature(), and llvm::MCDisassembler::Success.
Referenced by DecodeGPRNoX0RegisterClass(), decodeRegReg(), decodeRVCInstrRdRs1Rs2(), decodeRVCInstrRdRs2(), and decodeXTHeadMemPair().
|
static |
Definition at line 110 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
Referenced by decodeCSSPushPopchk().
|
static |
Definition at line 550 of file RISCVDisassembler.cpp.
References Address, DecodeGPRRegisterClass(), Insn, and llvm::MCDisassembler::Success.
|
static |
Definition at line 399 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::RISCVFPRndMode::RTZ, and llvm::MCDisassembler::Success.
|
static |
Definition at line 448 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), Address, assert(), llvm::MCOperand::createImm(), DecodeGPRNoX0RegisterClass(), llvm::MCInst::getOperand(), Insn, and llvm::MCDisassembler::Success.
|
static |
Definition at line 505 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), Address, DecodeGPRRegisterClass(), llvm::MCInst::getOperand(), Insn, and llvm::MCDisassembler::Success.
|
static |
Definition at line 482 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), Address, assert(), llvm::MCOperand::createReg(), llvm::MCInst::getOperand(), Insn, and llvm::MCDisassembler::Success.
|
static |
Definition at line 495 of file RISCVDisassembler.cpp.
References Address, DecodeGPRRegisterClass(), Insn, and llvm::MCDisassembler::Success.
|
static |
Definition at line 470 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), Address, assert(), llvm::MCOperand::createReg(), Insn, and llvm::MCDisassembler::Success.
|
static |
Definition at line 358 of file RISCVDisassembler.cpp.
References Address, and llvm::MCDisassembler::Fail.
|
static |
Definition at line 348 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 367 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 223 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 340 of file RISCVDisassembler.cpp.
References Address, decodeUImmLog2XLenOperand(), and llvm::MCDisassembler::Fail.
|
static |
Definition at line 317 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, llvm::MCDisassembler::getSubtargetInfo(), llvm::MCSubtargetInfo::hasFeature(), and llvm::MCDisassembler::Success.
Referenced by decodeUImmLog2XLenNonZeroOperand().
|
static |
Definition at line 331 of file RISCVDisassembler.cpp.
References Address, and llvm::MCDisassembler::Fail.
|
static |
Definition at line 309 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), assert(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 296 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 245 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCRegisterInfo::getMatchingSuperReg(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 262 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCRegisterInfo::getMatchingSuperReg(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 279 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCRegisterInfo::getMatchingSuperReg(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 234 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 516 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), Address, assert(), llvm::MCOperand::createImm(), DecodeGPRRegisterClass(), llvm::MCInst::getOpcode(), Insn, and llvm::MCDisassembler::Success.
|
static |
Definition at line 542 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 559 of file RISCVDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeRISCVDisassembler | ( | ) |
Definition at line 63 of file RISCVDisassembler.cpp.
References createRISCVDisassembler(), llvm::getTheRISCV32Target(), llvm::getTheRISCV64Target(), and llvm::TargetRegistry::RegisterMCDisassembler().