|
LLVM
4.0.0
|
#include "Hexagon.h"#include "MCTargetDesc/HexagonBaseInfo.h"#include "MCTargetDesc/HexagonMCChecker.h"#include "MCTargetDesc/HexagonMCTargetDesc.h"#include "MCTargetDesc/HexagonMCInstrInfo.h"#include "llvm/ADT/ArrayRef.h"#include "llvm/ADT/STLExtras.h"#include "llvm/MC/MCDisassembler/MCDisassembler.h"#include "llvm/MC/MCContext.h"#include "llvm/MC/MCExpr.h"#include "llvm/MC/MCFixedLenDisassembler.h"#include "llvm/MC/MCInst.h"#include "llvm/MC/MCInstrInfo.h"#include "llvm/MC/MCRegisterInfo.h"#include "llvm/MC/MCSubtargetInfo.h"#include "llvm/Support/MathExtras.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Support/TargetRegistry.h"#include <cassert>#include <cstddef>#include <cstdint>#include <memory>#include "HexagonGenDisassemblerTables.inc"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "hexagon-disassembler" |
Typedefs | |
| typedef MCDisassembler::DecodeStatus | DecodeStatus |
Variables | |
| static const unsigned int | StoreConditionalOpcodeData [][2] |
| static unsigned int | LoadStoreOpcodeData [][2] |
| static const size_t | NumCondS = array_lengthof(StoreConditionalOpcodeData) |
| static const size_t | NumLS = array_lengthof(LoadStoreOpcodeData) |
| #define DEBUG_TYPE "hexagon-disassembler" |
Definition at line 10 of file HexagonDisassembler.cpp.
Definition at line 38 of file HexagonDisassembler.cpp.
| enum subInstBinaryValues |
Definition at line 1104 of file HexagonDisassembler.cpp.
|
static |
Definition at line 783 of file HexagonDisassembler.cpp.
References llvm::HexagonMCInstrInfo::addConstant(), llvm::tgtok::Bits, disassembler(), fullValue(), llvm::HexagonMCInstrInfo::getExtentBits(), llvm::SignExtend64(), and llvm::MCDisassembler::Success.
Definition at line 190 of file HexagonDisassembler.cpp.
References disassembler().
Referenced by decodeImmext(), and s11_1ImmDecoder().
|
static |
Definition at line 147 of file HexagonDisassembler.cpp.
References llvm::Target::createMCInstrInfo().
Referenced by LLVMInitializeHexagonDisassembler().
|
static |
Definition at line 611 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::array_lengthof(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 590 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::array_lengthof(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, PC, and llvm::MCDisassembler::Success.
|
static |
Definition at line 548 of file HexagonDisassembler.cpp.
References DecodeRegisterClass().
Referenced by decodeSpecial().
|
static |
Definition at line 1087 of file HexagonDisassembler.cpp.
References llvm::HexagonMCInstrInfo::addConstant(), contextFromDecoder(), llvm::MCDisassembler::Fail, llvm::MCInst::setOpcode(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 512 of file HexagonDisassembler.cpp.
References DecodeIntRegsRegisterClass().
|
static |
Definition at line 518 of file HexagonDisassembler.cpp.
References DecodeRegisterClass(), IntRegDecoderTable, R2, R4, and R6.
Referenced by DecodeIntRegsLow8RegisterClass(), and decodeSpecial().
|
static |
Definition at line 635 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 572 of file HexagonDisassembler.cpp.
References DecodeRegisterClass().
Referenced by decodeSpecial().
|
static |
Definition at line 502 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::ArrayRef< T >::size(), and llvm::MCDisassembler::Success.
Referenced by DecodeDoubleRegsRegisterClass(), DecodeIntRegsRegisterClass(), DecodePredRegsRegisterClass(), DecodeVecDblRegsRegisterClass(), DecodeVecPredRegsRegisterClass(), and DecodeVectorRegsRegisterClass().
|
static |
Definition at line 857 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeDoubleRegsRegisterClass(), DecodeIntRegsRegisterClass(), DecodePredRegsRegisterClass(), llvm::MCDisassembler::Fail, i, llvm::HexagonII::INST_ICLASS_LD_ST_2, llvm::HexagonII::INST_ICLASS_MASK, llvm::HexagonII::INST_ICLASS_ST, llvm::HexagonII::INST_PARSE_MASK, LoadStoreOpcodeData, NumCondS, NumLS, llvm::MCInst::setOpcode(), StoreConditionalOpcodeData, and llvm::MCDisassembler::Success.
|
static |
Definition at line 560 of file HexagonDisassembler.cpp.
References DecodeRegisterClass().
|
static |
Definition at line 581 of file HexagonDisassembler.cpp.
References DecodeRegisterClass().
|
static |
Definition at line 533 of file HexagonDisassembler.cpp.
References DecodeRegisterClass(), llvm::NVPTX::PTXLdStInstCode::V2, and llvm::NVPTX::PTXLdStInstCode::V4.
Definition at line 186 of file HexagonDisassembler.cpp.
Referenced by brtargetDecoder(), contextFromDecoder(), signedDecoder(), and unsignedImmDecoder().
|
static |
Definition at line 653 of file HexagonDisassembler.cpp.
References assert(), llvm::tgtok::Bits, llvm::HexagonMCInstrInfo::bundleSize(), llvm::HexagonMCInstrInfo::extenderForIndex(), llvm::MCOperand::getExpr(), llvm::HexagonMCInstrInfo::getExtendableOp(), llvm::HexagonMCInstrInfo::getExtentAlignment(), llvm::MCInst::getOperand(), llvm::MCInst::size(), and Success.
Referenced by brtargetDecoder(), signedDecoder(), and unsignedImmDecoder().
Definition at line 1365 of file HexagonDisassembler.cpp.
Definition at line 1355 of file HexagonDisassembler.cpp.
|
static |
Definition at line 1211 of file HexagonDisassembler.cpp.
References llvm::MCDisassembler::Fail, llvm::HexagonII::HSIG_A, llvm::HexagonII::HSIG_L1, llvm::HexagonII::HSIG_L2, llvm::HexagonII::HSIG_S1, llvm::HexagonII::HSIG_S2, SA1_addi_BITS, SA1_addi_MASK, SA1_addrx_BITS, SA1_addrx_MASK, SA1_addsp_BITS, SA1_addsp_MASK, SA1_and1_BITS, SA1_and1_MASK, SA1_clrf_BITS, SA1_clrf_MASK, SA1_clrfnew_BITS, SA1_clrfnew_MASK, SA1_clrt_BITS, SA1_clrt_MASK, SA1_clrtnew_BITS, SA1_clrtnew_MASK, SA1_cmpeqi_BITS, SA1_cmpeqi_MASK, SA1_combine0i_BITS, SA1_combine0i_MASK, SA1_combine1i_BITS, SA1_combine1i_MASK, SA1_combine2i_BITS, SA1_combine2i_MASK, SA1_combine3i_BITS, SA1_combine3i_MASK, SA1_combinerz_BITS, SA1_combinerz_MASK, SA1_combinezr_BITS, SA1_combinezr_MASK, SA1_dec_BITS, SA1_dec_MASK, SA1_inc_BITS, SA1_inc_MASK, SA1_seti_BITS, SA1_seti_MASK, SA1_setin1_BITS, SA1_setin1_MASK, SA1_sxtb_BITS, SA1_sxtb_MASK, SA1_sxth_BITS, SA1_sxth_MASK, SA1_tfr_BITS, SA1_tfr_MASK, SA1_zxtb_BITS, SA1_zxtb_MASK, SA1_zxth_BITS, SA1_zxth_MASK, SL1_loadri_io_BITS, SL1_loadri_io_MASK, SL1_loadrub_io_BITS, SL1_loadrub_io_MASK, SL2_deallocframe_BITS, SL2_deallocframe_MASK, SL2_jumpr31_BITS, SL2_jumpr31_f_BITS, SL2_jumpr31_f_MASK, SL2_jumpr31_fnew_BITS, SL2_jumpr31_fnew_MASK, SL2_jumpr31_MASK, SL2_jumpr31_t_BITS, SL2_jumpr31_t_MASK, SL2_jumpr31_tnew_BITS, SL2_jumpr31_tnew_MASK, SL2_loadrb_io_BITS, SL2_loadrb_io_MASK, SL2_loadrd_sp_BITS, SL2_loadrd_sp_MASK, SL2_loadrh_io_BITS, SL2_loadrh_io_MASK, SL2_loadri_sp_BITS, SL2_loadri_sp_MASK, SL2_loadruh_io_BITS, SL2_loadruh_io_MASK, SL2_return_BITS, SL2_return_f_BITS, SL2_return_f_MASK, SL2_return_fnew_BITS, SL2_return_fnew_MASK, SL2_return_MASK, SL2_return_t_BITS, SL2_return_t_MASK, SL2_return_tnew_BITS, SL2_return_tnew_MASK, SS1_storeb_io_BITS, SS1_storeb_io_MASK, SS1_storew_io_BITS, SS1_storew_io_MASK, SS2_allocframe_BITS, SS2_allocframe_MASK, SS2_storebi0_BITS, SS2_storebi0_MASK, SS2_storebi1_BITS, SS2_storebi1_MASK, SS2_stored_sp_BITS, SS2_stored_sp_MASK, SS2_storeh_io_BITS, SS2_storeh_io_MASK, SS2_storew_sp_BITS, SS2_storew_sp_MASK, SS2_storewi0_BITS, SS2_storewi0_MASK, SS2_storewi1_BITS, SS2_storewi1_MASK, and llvm::MCDisassembler::Success.
| void LLVMInitializeHexagonDisassembler | ( | ) |
Definition at line 153 of file HexagonDisassembler.cpp.
References createHexagonDisassembler(), llvm::getTheHexagonTarget(), and llvm::TargetRegistry::RegisterMCDisassembler().
|
static |
Definition at line 728 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 704 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 710 of file HexagonDisassembler.cpp.
References llvm::HexagonMCInstrInfo::addConstant(), contextFromDecoder(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 716 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 722 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 698 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 692 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 776 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 746 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 752 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 758 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 764 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 770 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 740 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 734 of file HexagonDisassembler.cpp.
References MI, and llvm::MCDisassembler::Success.
|
static |
Definition at line 670 of file HexagonDisassembler.cpp.
References llvm::HexagonMCInstrInfo::addConstant(), disassembler(), and fullValue().
|
static |
Definition at line 680 of file HexagonDisassembler.cpp.
References llvm::HexagonMCInstrInfo::addConstant(), assert(), disassembler(), fullValue(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 840 of file HexagonDisassembler.cpp.
Referenced by decodeSpecial().
|
static |
Definition at line 854 of file HexagonDisassembler.cpp.
Referenced by decodeSpecial().
|
static |
Definition at line 855 of file HexagonDisassembler.cpp.
Referenced by decodeSpecial().
Definition at line 808 of file HexagonDisassembler.cpp.
Referenced by decodeSpecial().
1.8.6