LLVM  8.0.1
Macros | Typedefs | Functions | Variables
PPCDisassembler.cpp File Reference
#include "MCTargetDesc/PPCMCTargetDesc.h"
#include "llvm/MC/MCDisassembler/MCDisassembler.h"
#include "llvm/MC/MCFixedLenDisassembler.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/TargetRegistry.h"
#include "PPCGenDisassemblerTables.inc"
Include dependency graph for PPCDisassembler.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "ppc-disassembler"
 
#define DecodePointerLikeRegClass0   DecodeGPRCRegisterClass
 
#define DecodePointerLikeRegClass1   DecodeGPRC_NOR0RegisterClass
 
#define DecodeQSRCRegisterClass   DecodeQFRCRegisterClass
 
#define DecodeQBRCRegisterClass   DecodeQFRCRegisterClass
 

Typedefs

typedef MCDisassembler::DecodeStatus DecodeStatus
 

Functions

static MCDisassemblercreatePPCDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
 
static MCDisassemblercreatePPCLEDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
 
void LLVMInitializePowerPCDisassembler ()
 
static DecodeStatus DecodePCRel24BranchTarget (MCInst &Inst, unsigned Imm, uint64_t Addr, const void *Decoder)
 
template<std::size_t N>
static DecodeStatus decodeRegisterClass (MCInst &Inst, uint64_t RegNo, const MCPhysReg(&Regs)[N])
 
static DecodeStatus DecodeCRRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeCRRC0RegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeCRBITRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeF4RCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeF8RCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVFRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVRRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVSRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVSFRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeVSSRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeGPRC_NOR0RegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeG8RCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeG8RC_NOX0RegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeQFRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSPE4RCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
static DecodeStatus DecodeSPERCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
 
template<unsigned N>
static DecodeStatus decodeUImmOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder)
 
template<unsigned N>
static DecodeStatus decodeSImmOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder)
 
static DecodeStatus decodeMemRIOperands (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder)
 
static DecodeStatus decodeMemRIXOperands (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder)
 
static DecodeStatus decodeMemRIX16Operands (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder)
 
static DecodeStatus decodeSPE8Operands (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder)
 
static DecodeStatus decodeSPE4Operands (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder)
 
static DecodeStatus decodeSPE2Operands (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder)
 
static DecodeStatus decodeCRBitMOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder)
 

Variables

 DEFINE_PPC_REGCLASSES
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "ppc-disassembler"

Definition at line 22 of file PPCDisassembler.cpp.

◆ DecodePointerLikeRegClass0

#define DecodePointerLikeRegClass0   DecodeGPRCRegisterClass

Definition at line 167 of file PPCDisassembler.cpp.

◆ DecodePointerLikeRegClass1

#define DecodePointerLikeRegClass1   DecodeGPRC_NOR0RegisterClass

Definition at line 168 of file PPCDisassembler.cpp.

◆ DecodeQBRCRegisterClass

#define DecodeQBRCRegisterClass   DecodeQFRCRegisterClass

Definition at line 189 of file PPCDisassembler.cpp.

◆ DecodeQSRCRegisterClass

#define DecodeQSRCRegisterClass   DecodeQFRCRegisterClass

Definition at line 188 of file PPCDisassembler.cpp.

Typedef Documentation

◆ DecodeStatus

Definition at line 24 of file PPCDisassembler.cpp.

Function Documentation

◆ createPPCDisassembler()

static MCDisassembler* createPPCDisassembler ( const Target T,
const MCSubtargetInfo STI,
MCContext Ctx 
)
static

Definition at line 42 of file PPCDisassembler.cpp.

Referenced by LLVMInitializePowerPCDisassembler().

◆ createPPCLEDisassembler()

static MCDisassembler* createPPCLEDisassembler ( const Target T,
const MCSubtargetInfo STI,
MCContext Ctx 
)
static

Definition at line 48 of file PPCDisassembler.cpp.

Referenced by LLVMInitializePowerPCDisassembler().

◆ decodeCRBitMOperand()

static DecodeStatus decodeCRBitMOperand ( MCInst Inst,
uint64_t  Imm,
int64_t  Address,
const void *  Decoder 
)
static

◆ DecodeCRBITRCRegisterClass()

static DecodeStatus DecodeCRBITRCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 95 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeCRRC0RegisterClass()

static DecodeStatus DecodeCRRC0RegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 89 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeCRRCRegisterClass()

static DecodeStatus DecodeCRRCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 83 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeF4RCRegisterClass()

static DecodeStatus DecodeF4RCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 101 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeF8RCRegisterClass()

static DecodeStatus DecodeF8RCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 107 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeG8RC_NOX0RegisterClass()

static DecodeStatus DecodeG8RC_NOX0RegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 161 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeG8RCRegisterClass()

static DecodeStatus DecodeG8RCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 155 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeGPRC_NOR0RegisterClass()

static DecodeStatus DecodeGPRC_NOR0RegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 149 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeGPRCRegisterClass()

static DecodeStatus DecodeGPRCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 143 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ decodeMemRIOperands()

static DecodeStatus decodeMemRIOperands ( MCInst Inst,
uint64_t  Imm,
int64_t  Address,
const void *  Decoder 
)
static

◆ decodeMemRIX16Operands()

static DecodeStatus decodeMemRIX16Operands ( MCInst Inst,
uint64_t  Imm,
int64_t  Address,
const void *  Decoder 
)
static

◆ decodeMemRIXOperands()

static DecodeStatus decodeMemRIXOperands ( MCInst Inst,
uint64_t  Imm,
int64_t  Address,
const void *  Decoder 
)
static

◆ DecodePCRel24BranchTarget()

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

◆ DecodeQFRCRegisterClass()

static DecodeStatus DecodeQFRCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 170 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ decodeRegisterClass()

template<std::size_t N>
static DecodeStatus decodeRegisterClass ( MCInst Inst,
uint64_t  RegNo,
const MCPhysReg(&)  Regs[N] 
)
static

◆ decodeSImmOperand()

template<unsigned N>
static DecodeStatus decodeSImmOperand ( MCInst Inst,
uint64_t  Imm,
int64_t  Address,
const void *  Decoder 
)
static

◆ decodeSPE2Operands()

static DecodeStatus decodeSPE2Operands ( MCInst Inst,
uint64_t  Imm,
int64_t  Address,
const void *  Decoder 
)
static

◆ decodeSPE4Operands()

static DecodeStatus decodeSPE4Operands ( MCInst Inst,
uint64_t  Imm,
int64_t  Address,
const void *  Decoder 
)
static

◆ DecodeSPE4RCRegisterClass()

static DecodeStatus DecodeSPE4RCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 176 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ decodeSPE8Operands()

static DecodeStatus decodeSPE8Operands ( MCInst Inst,
uint64_t  Imm,
int64_t  Address,
const void *  Decoder 
)
static

◆ DecodeSPERCRegisterClass()

static DecodeStatus DecodeSPERCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 182 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ decodeUImmOperand()

template<unsigned N>
static DecodeStatus decodeUImmOperand ( MCInst Inst,
uint64_t  Imm,
int64_t  Address,
const void *  Decoder 
)
static

◆ DecodeVFRCRegisterClass()

static DecodeStatus DecodeVFRCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 113 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeVRRCRegisterClass()

static DecodeStatus DecodeVRRCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 119 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeVSFRCRegisterClass()

static DecodeStatus DecodeVSFRCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 131 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeVSRCRegisterClass()

static DecodeStatus DecodeVSRCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 125 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeVSSRCRegisterClass()

static DecodeStatus DecodeVSSRCRegisterClass ( MCInst Inst,
uint64_t  RegNo,
uint64_t  Address,
const void *  Decoder 
)
static

Definition at line 137 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ LLVMInitializePowerPCDisassembler()

void LLVMInitializePowerPCDisassembler ( )

Variable Documentation

◆ DEFINE_PPC_REGCLASSES

DEFINE_PPC_REGCLASSES

Definition at line 20 of file PPCDisassembler.cpp.