LLVM
12.0.0git
|
#include "MCTargetDesc/VEMCTargetDesc.h"
#include "TargetInfo/VETargetInfo.h"
#include "VE.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDisassembler/MCDisassembler.h"
#include "llvm/MC/MCFixedLenDisassembler.h"
#include "llvm/MC/MCInst.h"
#include "llvm/Support/TargetRegistry.h"
#include "VEGenDisassemblerTables.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "ve-disassembler" |
#define | BCm_kind(NAME) |
#define | BCRm_kind(NAME) |
Typedefs | |
typedef MCDisassembler::DecodeStatus | DecodeStatus |
typedef DecodeStatus(* | DecodeFunc) (MCInst &MI, unsigned RegNo, uint64_t Address, const void *Decoder) |
Functions | |
static MCDisassembler * | createVEDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx) |
LLVM_EXTERNAL_VISIBILITY void | LLVMInitializeVEDisassembler () |
static DecodeStatus | DecodeI32RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeI64RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeF32RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeF128RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeV64RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeVMRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeVM512RegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeMISCRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeASX (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeLoadI32 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeStoreI32 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeLoadI64 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeStoreI64 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeLoadF32 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeStoreF32 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeLoadASI64 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeStoreASI64 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeTS1AMI64 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeTS1AMI32 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeCASI64 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeCASI32 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeCall (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeSIMM7 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeSIMM32 (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeCCOperand (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeRDOperand (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeBranchCondition (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeBranchConditionAlways (MCInst &Inst, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | readInstruction64 (ArrayRef< uint8_t > Bytes, uint64_t Address, uint64_t &Size, uint64_t &Insn, bool IsLittleEndian) |
Read four bytes from the ArrayRef and return 32 bit word. More... | |
static DecodeStatus | DecodeAS (MCInst &MI, uint64_t insn, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeMem (MCInst &MI, uint64_t insn, uint64_t Address, const void *Decoder, bool isLoad, DecodeFunc DecodeSX) |
static DecodeStatus | DecodeMemAS (MCInst &MI, uint64_t insn, uint64_t Address, const void *Decoder, bool isLoad, DecodeFunc DecodeSX) |
static DecodeStatus | DecodeCAS (MCInst &MI, uint64_t insn, uint64_t Address, const void *Decoder, bool isImmOnly, bool isUImm, DecodeFunc DecodeSX) |
static bool | isIntegerBCKind (MCInst &MI) |
Variables | |
static const unsigned | I32RegDecoderTable [] |
static const unsigned | I64RegDecoderTable [] |
static const unsigned | F32RegDecoderTable [] |
static const unsigned | F128RegDecoderTable [] |
static const unsigned | V64RegDecoderTable [] |
static const unsigned | VMRegDecoderTable [] |
static const unsigned | VM512RegDecoderTable [] |
static const unsigned | MiscRegDecoderTable [] |
#define BCm_kind | ( | NAME | ) |
#define BCRm_kind | ( | NAME | ) |
#define DEBUG_TYPE "ve-disassembler" |
Definition at line 25 of file VEDisassembler.cpp.
typedef DecodeStatus(* DecodeFunc) (MCInst &MI, unsigned RegNo, uint64_t Address, const void *Decoder) |
Definition at line 304 of file VEDisassembler.cpp.
Definition at line 27 of file VEDisassembler.cpp.
|
static |
Definition at line 44 of file VEDisassembler.cpp.
Referenced by LLVMInitializeVEDisassembler().
|
static |
Definition at line 340 of file VEDisassembler.cpp.
References llvm::Address, llvm::MCOperand::createImm(), DecodeI64RegisterClass(), MI, llvm::sys::fs::status(), and llvm::MCDisassembler::Success.
Referenced by DecodeBranchCondition(), DecodeBranchConditionAlways(), DecodeCAS(), and DecodeMemAS().
|
static |
Definition at line 307 of file VEDisassembler.cpp.
References llvm::Address, llvm::MCOperand::createImm(), DecodeI64RegisterClass(), MI, llvm::sys::fs::status(), and llvm::MCDisassembler::Success.
Referenced by DecodeMem().
|
static |
Definition at line 584 of file VEDisassembler.cpp.
References llvm::Address, llvm::MCOperand::createImm(), DecodeAS(), DecodeI64RegisterClass(), isIntegerBCKind(), MI, llvm::sys::fs::status(), llvm::MCDisassembler::Success, and llvm::VEValToCondCode().
|
static |
Definition at line 608 of file VEDisassembler.cpp.
References llvm::Address, DecodeAS(), and MI.
|
static |
Definition at line 514 of file VEDisassembler.cpp.
References llvm::Address, DecodeI64RegisterClass(), and DecodeMem().
|
static |
Definition at line 452 of file VEDisassembler.cpp.
References llvm::Address, llvm::MCOperand::createImm(), DecodeAS(), MI, llvm::sys::fs::status(), and llvm::MCDisassembler::Success.
Referenced by DecodeCASI32(), DecodeCASI64(), DecodeTS1AMI32(), and DecodeTS1AMI64().
|
static |
Definition at line 508 of file VEDisassembler.cpp.
References llvm::Address, DecodeCAS(), DecodeI32RegisterClass(), and MI.
|
static |
Definition at line 502 of file VEDisassembler.cpp.
References llvm::Address, DecodeCAS(), DecodeI64RegisterClass(), and MI.
|
static |
Definition at line 570 of file VEDisassembler.cpp.
References llvm::MCOperand::createImm(), isIntegerBCKind(), MI, llvm::MCDisassembler::Success, and llvm::VEValToCondCode().
|
static |
Definition at line 157 of file VEDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), F128RegDecoderTable, llvm::MCDisassembler::Fail, Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 147 of file VEDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), F32RegDecoderTable, llvm::MCDisassembler::Fail, Reg, and llvm::MCDisassembler::Success.
Referenced by DecodeLoadF32(), and DecodeStoreF32().
|
static |
Definition at line 127 of file VEDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, I32RegDecoderTable, Reg, and llvm::MCDisassembler::Success.
Referenced by DecodeCASI32(), DecodeLoadI32(), DecodeStoreI32(), and DecodeTS1AMI32().
|
static |
Definition at line 137 of file VEDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, I64RegDecoderTable, Reg, and llvm::MCDisassembler::Success.
Referenced by DecodeAS(), DecodeASX(), DecodeBranchCondition(), DecodeCall(), DecodeCASI64(), DecodeLoadASI64(), DecodeLoadI64(), DecodeStoreASI64(), DecodeStoreI64(), and DecodeTS1AMI64().
|
static |
Definition at line 440 of file VEDisassembler.cpp.
References llvm::Address, DecodeI64RegisterClass(), and DecodeMemAS().
|
static |
Definition at line 430 of file VEDisassembler.cpp.
References llvm::Address, DecodeF32RegisterClass(), and DecodeMem().
|
static |
Definition at line 410 of file VEDisassembler.cpp.
References llvm::Address, DecodeI32RegisterClass(), and DecodeMem().
|
static |
Definition at line 420 of file VEDisassembler.cpp.
References llvm::Address, DecodeI64RegisterClass(), and DecodeMem().
|
static |
Definition at line 362 of file VEDisassembler.cpp.
References llvm::Address, DecodeASX(), isLoad(), MI, llvm::sys::fs::status(), and llvm::MCDisassembler::Success.
Referenced by DecodeCall(), DecodeLoadF32(), DecodeLoadI32(), DecodeLoadI64(), DecodeStoreF32(), DecodeStoreI32(), and DecodeStoreI64().
|
static |
Definition at line 386 of file VEDisassembler.cpp.
References llvm::Address, DecodeAS(), isLoad(), MI, llvm::sys::fs::status(), and llvm::MCDisassembler::Success.
Referenced by DecodeLoadASI64(), and DecodeStoreASI64().
|
static |
Definition at line 201 of file VEDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, MiscRegDecoderTable, Reg, and llvm::MCDisassembler::Success.
|
static |
Definition at line 577 of file VEDisassembler.cpp.
References llvm::MCOperand::createImm(), MI, llvm::MCDisassembler::Success, and llvm::VEValToRD().
|
static |
Definition at line 526 of file VEDisassembler.cpp.
References llvm::MCOperand::createImm(), MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 519 of file VEDisassembler.cpp.
References llvm::MCOperand::createImm(), MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 446 of file VEDisassembler.cpp.
References llvm::Address, DecodeI64RegisterClass(), and DecodeMemAS().
|
static |
Definition at line 435 of file VEDisassembler.cpp.
References llvm::Address, DecodeF32RegisterClass(), and DecodeMem().
|
static |
Definition at line 415 of file VEDisassembler.cpp.
References llvm::Address, DecodeI32RegisterClass(), and DecodeMem().
|
static |
Definition at line 425 of file VEDisassembler.cpp.
References llvm::Address, DecodeI64RegisterClass(), and DecodeMem().
|
static |
Definition at line 496 of file VEDisassembler.cpp.
References llvm::Address, DecodeCAS(), DecodeI32RegisterClass(), and MI.
|
static |
Definition at line 490 of file VEDisassembler.cpp.
References llvm::Address, DecodeCAS(), DecodeI64RegisterClass(), and MI.
|
static |
Definition at line 167 of file VEDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, llvm::MCDisassembler::Success, and V64RegDecoderTable.
|
static |
Definition at line 191 of file VEDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, llvm::MCDisassembler::Success, and VM512RegDecoderTable.
|
static |
Definition at line 181 of file VEDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Reg, llvm::MCDisassembler::Success, and VMRegDecoderTable.
Definition at line 533 of file VEDisassembler.cpp.
References BCm_kind, BCRm_kind, and MI.
Referenced by DecodeBranchCondition(), and DecodeCCOperand().
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeVEDisassembler | ( | ) |
Definition at line 50 of file VEDisassembler.cpp.
References createVEDisassembler(), llvm::getTheVETarget(), and llvm::TargetRegistry::RegisterMCDisassembler().
|
static |
Read four bytes from the ArrayRef and return 32 bit word.
Definition at line 259 of file VEDisassembler.cpp.
References llvm::MCDisassembler::Fail, llvm::Check::Size, llvm::ArrayRef< T >::size(), and llvm::MCDisassembler::Success.
Definition at line 92 of file VEDisassembler.cpp.
Referenced by DecodeF128RegisterClass().
Definition at line 80 of file VEDisassembler.cpp.
Referenced by DecodeF32RegisterClass().
Definition at line 56 of file VEDisassembler.cpp.
Referenced by DecodeI32RegisterClass().
Definition at line 68 of file VEDisassembler.cpp.
Referenced by DecodeI64RegisterClass().
Definition at line 117 of file VEDisassembler.cpp.
Referenced by DecodeMISCRegisterClass().
Definition at line 98 of file VEDisassembler.cpp.
Referenced by DecodeV64RegisterClass().
Definition at line 113 of file VEDisassembler.cpp.
Referenced by DecodeVM512RegisterClass().
Definition at line 108 of file VEDisassembler.cpp.
Referenced by DecodeVMRegisterClass().