LLVM
10.0.0svn
|
This file contains definition for AMDGPU ISA disassembler. More...
#include "Disassembler/AMDGPUDisassembler.h"
#include "AMDGPU.h"
#include "AMDGPURegisterInfo.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "SIDefines.h"
#include "TargetInfo/AMDGPUTargetInfo.h"
#include "Utils/AMDGPUBaseInfo.h"
#include "llvm-c/Disassembler.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/MC/MCAsmInfo.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/MCSubtargetInfo.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <tuple>
#include <vector>
#include "AMDGPUGenDisassemblerTables.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "amdgpu-disassembler" |
#define | SGPR_MAX |
#define | DECODE_OPERAND(StaticDecoderName, DecoderName) |
#define | DECODE_OPERAND_REG(RegClass) DECODE_OPERAND(Decode##RegClass##RegisterClass, decodeOperand_##RegClass) |
#define | DECODE_SDWA(DecName) DECODE_OPERAND(decodeSDWA##DecName, decodeSDWA##DecName) |
Typedefs | |
using | DecodeStatus = llvm::MCDisassembler::DecodeStatus |
This file contains definition for AMDGPU ISA disassembler.
Definition in file AMDGPUDisassembler.cpp.
#define DEBUG_TYPE "amdgpu-disassembler" |
Definition at line 53 of file AMDGPUDisassembler.cpp.
#define DECODE_OPERAND | ( | StaticDecoderName, | |
DecoderName | |||
) |
Definition at line 110 of file AMDGPUDisassembler.cpp.
#define DECODE_OPERAND_REG | ( | RegClass | ) | DECODE_OPERAND(Decode##RegClass##RegisterClass, decodeOperand_##RegClass) |
Definition at line 119 of file AMDGPUDisassembler.cpp.
#define DECODE_SDWA | ( | DecName | ) | DECODE_OPERAND(decodeSDWA##DecName, decodeSDWA##DecName) |
Definition at line 221 of file AMDGPUDisassembler.cpp.
#define SGPR_MAX |
Definition at line 55 of file AMDGPUDisassembler.cpp.
Referenced by llvm::AMDGPUDisassembler::decodeDstOp(), llvm::AMDGPUDisassembler::decodeSDWAVopcDst(), and llvm::AMDGPUDisassembler::decodeSrcOp().
Definition at line 58 of file AMDGPUDisassembler.cpp.
|
inlinestatic |
Definition at line 72 of file AMDGPUDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::isValid(), llvm::MCDisassembler::SoftFail, and llvm::MCDisassembler::Success.
Referenced by decodeBoolReg(), decodeOperand_AReg_1024(), decodeOperand_AReg_128(), decodeOperand_AReg_512(), decodeOperand_SReg_32(), decodeOperand_VGPR_32(), decodeOperand_VS_16(), decodeOperand_VS_32(), decodeOperand_VSrc16(), decodeOperand_VSrcV216(), decodeSoppBrTarget(), EmitNops(), llvm::NamedMDNode::getParent(), matchRegisterNameHelper(), and llvm::VPUser::VPUser().
|
static |
Definition at line 1259 of file AMDGPUDisassembler.cpp.
References llvm::AMDGPUDisassembler::AMDGPUDisassembler(), and llvm::Target::createMCInstrInfo().
Referenced by LLVMInitializeAMDGPUDisassembler().
|
static |
Definition at line 1250 of file AMDGPUDisassembler.cpp.
Referenced by LLVMInitializeAMDGPUDisassembler().
|
static |
Definition at line 104 of file AMDGPUDisassembler.cpp.
References addOperand().
|
static |
Definition at line 197 of file AMDGPUDisassembler.cpp.
References addOperand(), and llvm::AMDGPUDisassembler::OPW1024.
|
static |
Definition at line 181 of file AMDGPUDisassembler.cpp.
References addOperand(), and llvm::AMDGPUDisassembler::OPW128.
|
static |
Definition at line 189 of file AMDGPUDisassembler.cpp.
References addOperand(), and llvm::AMDGPUDisassembler::OPW512.
|
static |
Definition at line 205 of file AMDGPUDisassembler.cpp.
References addOperand().
|
static |
Definition at line 213 of file AMDGPUDisassembler.cpp.
References addOperand(), and llvm::AMDGPUDisassembler::OPW32.
|
static |
Definition at line 165 of file AMDGPUDisassembler.cpp.
References addOperand().
|
static |
Definition at line 173 of file AMDGPUDisassembler.cpp.
References addOperand().
|
static |
Definition at line 149 of file AMDGPUDisassembler.cpp.
References addOperand().
|
static |
Definition at line 157 of file AMDGPUDisassembler.cpp.
References addOperand().
|
static |
Definition at line 90 of file AMDGPUDisassembler.cpp.
References addOperand(), llvm::MCOperand::createImm(), llvm::APInt::sext(), and llvm::MCDisassembler::Success.
Definition at line 234 of file AMDGPUDisassembler.cpp.
References assert(), llvm::ArrayRef< T >::data(), llvm::ArrayRef< T >::size(), llvm::ArrayRef< T >::slice(), and T.
|
static |
Definition at line 871 of file AMDGPUDisassembler.cpp.
References llvm_unreachable.
Referenced by llvm::AMDGPUDisassembler::decodeFPImmed().
|
static |
Definition at line 821 of file AMDGPUDisassembler.cpp.
References llvm::FloatToBits(), and llvm_unreachable.
Referenced by llvm::AMDGPUDisassembler::decodeFPImmed().
|
static |
Definition at line 846 of file AMDGPUDisassembler.cpp.
References llvm::DoubleToBits(), and llvm_unreachable.
Referenced by llvm::AMDGPUDisassembler::decodeFPImmed().
Definition at line 79 of file AMDGPUDisassembler.cpp.
References llvm::MCInst::begin(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MCInst::getOpcode(), I, and llvm::MCInst::insert().
Referenced by llvm::AMDGPUDisassembler::convertDPP8Inst(), llvm::AMDGPUDisassembler::convertSDWAInst(), and llvm::AMDGPUDisassembler::getInstruction().
Definition at line 258 of file AMDGPUDisassembler.cpp.
References assert(), llvm::AMDGPU::DPP::DPP8_FI_0, llvm::AMDGPU::DPP::DPP8_FI_1, llvm::MCOperand::getImm(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MCInst::getNumOperands(), llvm::MCInst::getOpcode(), and llvm::MCInst::getOperand().
Referenced by llvm::AMDGPUDisassembler::convertDPP8Inst().
void LLVMInitializeAMDGPUDisassembler | ( | ) |
Definition at line 1265 of file AMDGPUDisassembler.cpp.
References createAMDGPUDisassembler(), createAMDGPUSymbolizer(), llvm::getTheGCNTarget(), llvm::TargetRegistry::RegisterMCDisassembler(), and llvm::TargetRegistry::RegisterMCSymbolizer().