LLVM
8.0.1
|
#include "MCTargetDesc/HexagonBaseInfo.h"
#include "MCTargetDesc/HexagonMCChecker.h"
#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "MCTargetDesc/HexagonMCTargetDesc.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDisassembler/MCDisassembler.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/Endian.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <memory>
#include "HexagonDepDecoders.h"
#include "HexagonGenDisassemblerTables.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "hexagon-disassembler" |
Typedefs | |
using | DecodeStatus = MCDisassembler::DecodeStatus |
#define DEBUG_TYPE "hexagon-disassembler" |
Definition at line 10 of file HexagonDisassembler.cpp.
Definition at line 38 of file HexagonDisassembler.cpp.
Definition at line 278 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::Address, assert(), llvm::MCInst::begin(), llvm::HexagonMCInstrInfo::bundleInstructions(), llvm::HexagonMCInstrInfo::bundleSize(), llvm::MCConstantExpr::create(), llvm::MCOperand::createExpr(), llvm::MCOperand::createInst(), llvm::ArrayRef< T >::data(), llvm::X86Disassembler::decodeInstruction(), llvm::HexagonMCInstrInfo::extenderForIndex(), llvm::MCDisassembler::Fail, Fail, llvm::MCOperand::getInst(), llvm::HexagonMCInstrInfo::getNewValueOp(), llvm::HexagonMCInstrInfo::getNewValueOperand(), llvm::HexagonMCInstrInfo::getNewValueOperand2(), llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::HexagonMCInstrInfo::hasNewValue(), llvm::HexagonMCInstrInfo::hasNewValue2(), HEXAGON_INSTR_SIZE, llvm::MCInst::insert(), llvm::HexagonII::INST_PARSE_DUPLEX, llvm::HexagonII::INST_PARSE_LOOP_END, llvm::HexagonII::INST_PARSE_MASK, llvm::HexagonII::INST_PARSE_PACKET_END, llvm::HexagonMCInstrInfo::isDuplex(), llvm::HexagonMCInstrInfo::isExtendable(), llvm::HexagonMCInstrInfo::isExtended(), llvm::HexagonMCInstrInfo::isImmext(), llvm::HexagonMCInstrInfo::isNewValue(), llvm::MCOperand::isReg(), llvm::HexagonMCInstrInfo::isVector(), MI, llvm::support::endian::read32le(), Register, llvm::HexagonMCInstrInfo::setInnerLoop(), llvm::MCInst::setOpcode(), llvm::HexagonMCInstrInfo::setOuterLoop(), llvm::MCOperand::setReg(), llvm::ArrayRef< T >::size(), llvm::MCDisassembler::Success, and Success.
|
static |
Definition at line 739 of file HexagonDisassembler.cpp.
References llvm::HexagonMCInstrInfo::addConstant(), llvm::tgtok::Bits, llvm::HexagonMCInstrInfo::getExtentBits(), llvm::SignExtend64(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 155 of file HexagonDisassembler.cpp.
References llvm::Target::createMCInstrInfo().
Referenced by LLVMInitializeHexagonDisassembler().
|
static |
Definition at line 673 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::array_lengthof(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 645 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::array_lengthof(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 582 of file HexagonDisassembler.cpp.
References DecodeRegisterClass().
|
static |
Definition at line 594 of file HexagonDisassembler.cpp.
References DecodeRegisterClass().
|
static |
Definition at line 553 of file HexagonDisassembler.cpp.
References DecodeRegisterClass(), R2, R4, and R6.
|
static |
Definition at line 779 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::array_lengthof(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 753 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::array_lengthof(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 636 of file HexagonDisassembler.cpp.
References DecodeRegisterClass().
|
static |
Definition at line 616 of file HexagonDisassembler.cpp.
References DecodeRegisterClass().
|
static |
Definition at line 567 of file HexagonDisassembler.cpp.
References DecodeRegisterClass(), llvm::NVPTX::PTXLdStInstCode::V2, llvm::NVPTX::PTXLdStInstCode::V4, and llvm::Hexagon::V5.
|
static |
Definition at line 603 of file HexagonDisassembler.cpp.
References DecodeRegisterClass(), and LLVM_ATTRIBUTE_UNUSED.
|
static |
Definition at line 532 of file HexagonDisassembler.cpp.
References DecodeIntRegsRegisterClass().
|
static |
Definition at line 538 of file HexagonDisassembler.cpp.
References DecodeRegisterClass(), IntRegDecoderTable, R2, R4, and R6.
Referenced by DecodeIntRegsLow8RegisterClass().
|
static |
Definition at line 701 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, Register, and llvm::MCDisassembler::Success.
|
static |
Definition at line 627 of file HexagonDisassembler.cpp.
References DecodeRegisterClass().
|
static |
Definition at line 522 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(), DecodeGeneralDoubleLow8RegsRegisterClass(), DecodeGeneralSubRegsRegisterClass(), DecodeHvxQRRegisterClass(), DecodeHvxVQRRegisterClass(), DecodeHvxVRRegisterClass(), DecodeHvxWRRegisterClass(), DecodeIntRegsRegisterClass(), and DecodePredRegsRegisterClass().
void LLVMInitializeHexagonDisassembler | ( | ) |
Definition at line 161 of file HexagonDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::Address, llvm::MCInst::begin(), llvm::HexagonMCInstrInfo::bundleInstructions(), llvm::HexagonMCChecker::check(), createHexagonDisassembler(), llvm::MCOperand::createImm(), llvm::MCOperand::createInst(), llvm::MCInst::erase(), llvm::MCDisassembler::Fail, llvm::MCInst::getOpcode(), llvm::MCInst::getOperand(), llvm::MCOperand::getReg(), llvm::getTheHexagonTarget(), HEXAGON_INSTR_SIZE, HEXAGON_MAX_PACKET_SIZE, I, MI, llvm::TargetRegistry::RegisterMCDisassembler(), llvm::remapInstruction(), llvm::MCInst::setOpcode(), Size, llvm::ArrayRef< T >::size(), llvm::ArrayRef< T >::slice(), llvm::MCDisassembler::Success, and Success.
|
static |
Definition at line 729 of file HexagonDisassembler.cpp.
References llvm::tgtok::Bits, llvm::HexagonMCInstrInfo::getExtentBits(), MI, llvm::SignExtend64(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 719 of file HexagonDisassembler.cpp.
References llvm::HexagonMCInstrInfo::addConstant(), assert(), and llvm::MCDisassembler::Success.