LLVM  4.0.0
Macros | Typedefs | Functions
AMDGPUDisassembler.cpp File Reference

This file contains definition for AMDGPU ISA disassembler. More...

#include "AMDGPUDisassembler.h"
#include "AMDGPU.h"
#include "AMDGPURegisterInfo.h"
#include "SIDefines.h"
#include "Utils/AMDGPUBaseInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCFixedLenDisassembler.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCInstrDesc.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/ELF.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/TargetRegistry.h"
#include "AMDGPUGenSubtargetInfo.inc"
#include "AMDGPUGenDisassemblerTables.inc"
Include dependency graph for AMDGPUDisassembler.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "amdgpu-disassembler"
 
#define DECODE_OPERAND2(RegClass, DecName)
 
#define DECODE_OPERAND(RegClass)   DECODE_OPERAND2(RegClass, RegClass)
 
#define GET_SUBTARGETINFO_ENUM
 

Typedefs

typedef
llvm::MCDisassembler::DecodeStatus 
DecodeStatus
 

Functions

static MCDisassembler::DecodeStatus addOperand (MCInst &Inst, const MCOperand &Opnd)
 
static DecodeStatus decodeSoppBrTarget (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
static DecodeStatus decodeOperand_VSrc16 (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
template<typename T >
static T eatBytes (ArrayRef< uint8_t > &Bytes)
 
static int64_t getInlineImmVal32 (unsigned Imm)
 
static int64_t getInlineImmVal64 (unsigned Imm)
 
static int64_t getInlineImmVal16 (unsigned Imm)
 
static MCSymbolizercreateAMDGPUSymbolizer (const Triple &, LLVMOpInfoCallback, LLVMSymbolLookupCallback, void *DisInfo, MCContext *Ctx, std::unique_ptr< MCRelocationInfo > &&RelInfo)
 
static MCDisassemblercreateAMDGPUDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
 
void LLVMInitializeAMDGPUDisassembler ()
 

Detailed Description

This file contains definition for AMDGPU ISA disassembler.

Definition in file AMDGPUDisassembler.cpp.

Macro Definition Documentation

#define DEBUG_TYPE   "amdgpu-disassembler"

Definition at line 39 of file AMDGPUDisassembler.cpp.

#define DECODE_OPERAND (   RegClass)    DECODE_OPERAND2(RegClass, RegClass)

Definition at line 73 of file AMDGPUDisassembler.cpp.

#define DECODE_OPERAND2 (   RegClass,
  DecName 
)
Value:
static DecodeStatus Decode##RegClass##RegisterClass(MCInst &Inst, \
unsigned Imm, \
uint64_t /*Addr*/, \
const void *Decoder) { \
auto DAsm = static_cast<const AMDGPUDisassembler*>(Decoder); \
return addOperand(Inst, DAsm->decodeOperand_##DecName(Imm)); \
}
DecodeStatus
Ternary decode status.
static MCDisassembler::DecodeStatus addOperand(MCInst &Inst, const MCOperand &Opnd)
Instances of this class represent a single low-level machine instruction.
Definition: MCInst.h:150

Definition at line 64 of file AMDGPUDisassembler.cpp.

#define GET_SUBTARGETINFO_ENUM

Definition at line 100 of file AMDGPUDisassembler.cpp.

Typedef Documentation

Definition at line 41 of file AMDGPUDisassembler.cpp.

Function Documentation

static MCDisassembler::DecodeStatus addOperand ( MCInst Inst,
const MCOperand Opnd 
)
inlinestatic
static MCDisassembler* createAMDGPUDisassembler ( const Target T,
const MCSubtargetInfo STI,
MCContext Ctx 
)
static
static MCSymbolizer* createAMDGPUSymbolizer ( const Triple ,
LLVMOpInfoCallback  ,
LLVMSymbolLookupCallback  ,
void *  DisInfo,
MCContext Ctx,
std::unique_ptr< MCRelocationInfo > &&  RelInfo 
)
static

Definition at line 589 of file AMDGPUDisassembler.cpp.

Referenced by LLVMInitializeAMDGPUDisassembler().

static DecodeStatus decodeOperand_VSrc16 ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static

Definition at line 92 of file AMDGPUDisassembler.cpp.

References addOperand().

static DecodeStatus decodeSoppBrTarget ( MCInst Inst,
unsigned  Imm,
uint64_t  Addr,
const void *  Decoder 
)
static
template<typename T >
static T eatBytes ( ArrayRef< uint8_t > &  Bytes)
inlinestatic
static int64_t getInlineImmVal16 ( unsigned  Imm)
static

Definition at line 390 of file AMDGPUDisassembler.cpp.

References llvm_unreachable.

Referenced by llvm::AMDGPUDisassembler::decodeFPImmed().

static int64_t getInlineImmVal32 ( unsigned  Imm)
static
static int64_t getInlineImmVal64 ( unsigned  Imm)
static
void LLVMInitializeAMDGPUDisassembler ( )