LLVM 22.0.0git
PPCDisassembler.cpp File Reference

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

Functions

static MCDisassemblercreatePPCDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
static MCDisassemblercreatePPCLEDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
LLVM_ABI LLVM_EXTERNAL_VISIBILITY void LLVMInitializePowerPCDisassembler ()
static DecodeStatus decodeCondBrTarget (MCInst &Inst, unsigned Imm, uint64_t, const MCDisassembler *)
static DecodeStatus decodeDirectBrTarget (MCInst &Inst, unsigned Imm, uint64_t, const MCDisassembler *)
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 MCDisassembler *Decoder)
static DecodeStatus DecodeCRBITRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeF4RCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeF8RCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeFpRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeVFRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeVRRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeVSRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeVSFRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeVSSRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeGPRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeGPRC_NOR0RegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeG8RCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeG8pRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeG8RC_NOX0RegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeSPERCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeACCRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus DecodeWACCRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
static DecodeStatus DecodeWACC_HIRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
DecodeStatus DecodeDMRROWRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
static DecodeStatus DecodeDMRROWpRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
static DecodeStatus DecodeDMRRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
DecodeStatus DecodeDMRpRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder)
static DecodeStatus DecodeVSRpRCRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
template<unsigned N>
static DecodeStatus decodeUImmOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const MCDisassembler *Decoder)
template<unsigned N>
static DecodeStatus decodeSImmOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const MCDisassembler *Decoder)
static DecodeStatus decodeImmZeroOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const MCDisassembler *Decoder)
static DecodeStatus decodeVSRpEvenOperands (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus decodeDispRIXOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const MCDisassembler *Decoder)
static DecodeStatus decodeDispRIHashOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const MCDisassembler *Decoder)
static DecodeStatus decodeDispRIX16Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const MCDisassembler *Decoder)
static DecodeStatus decodeDispSPE8Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const MCDisassembler *Decoder)
static DecodeStatus decodeDispSPE4Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const MCDisassembler *Decoder)
static DecodeStatus decodeDispSPE2Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const MCDisassembler *Decoder)
static DecodeStatus decodeCRBitMOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const MCDisassembler *Decoder)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "ppc-disassembler"

Definition at line 24 of file PPCDisassembler.cpp.

◆ DecodePointerLikeRegClass0

#define DecodePointerLikeRegClass0   DecodeGPRCRegisterClass

Definition at line 187 of file PPCDisassembler.cpp.

◆ DecodePointerLikeRegClass1

#define DecodePointerLikeRegClass1   DecodeGPRC_NOR0RegisterClass

Definition at line 188 of file PPCDisassembler.cpp.

◆ DecodeQBRCRegisterClass

#define DecodeQBRCRegisterClass   DecodeQFRCRegisterClass

Definition at line 248 of file PPCDisassembler.cpp.

◆ DecodeQSRCRegisterClass

#define DecodeQSRCRegisterClass   DecodeQFRCRegisterClass

Definition at line 247 of file PPCDisassembler.cpp.

Function Documentation

◆ createPPCDisassembler()

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

Definition at line 43 of file PPCDisassembler.cpp.

References T.

Referenced by LLVMInitializePowerPCDisassembler().

◆ createPPCLEDisassembler()

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

Definition at line 49 of file PPCDisassembler.cpp.

References T.

Referenced by LLVMInitializePowerPCDisassembler().

◆ DecodeACCRCRegisterClass()

DecodeStatus DecodeACCRCRegisterClass ( MCInst & Inst,
uint64_t RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

Definition at line 196 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ decodeCondBrTarget()

◆ decodeCRBitMOperand()

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

◆ DecodeCRBITRCRegisterClass()

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

Definition at line 101 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeCRRCRegisterClass()

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

Definition at line 95 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ decodeDirectBrTarget()

◆ decodeDispRIHashOperand()

DecodeStatus decodeDispRIHashOperand ( MCInst & Inst,
uint64_t Imm,
int64_t Address,
const MCDisassembler * Decoder )
static

◆ decodeDispRIX16Operand()

DecodeStatus decodeDispRIX16Operand ( MCInst & Inst,
uint64_t Imm,
int64_t Address,
const MCDisassembler * Decoder )
static

◆ decodeDispRIXOperand()

DecodeStatus decodeDispRIXOperand ( MCInst & Inst,
uint64_t Imm,
int64_t Address,
const MCDisassembler * Decoder )
static

◆ decodeDispSPE2Operand()

DecodeStatus decodeDispSPE2Operand ( MCInst & Inst,
uint64_t Imm,
int64_t Address,
const MCDisassembler * Decoder )
static

◆ decodeDispSPE4Operand()

DecodeStatus decodeDispSPE4Operand ( MCInst & Inst,
uint64_t Imm,
int64_t Address,
const MCDisassembler * Decoder )
static

◆ decodeDispSPE8Operand()

DecodeStatus decodeDispSPE8Operand ( MCInst & Inst,
uint64_t Imm,
int64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeDMRpRCRegisterClass()

DecodeStatus DecodeDMRpRCRegisterClass ( MCInst & Inst,
uint64_t RegNo,
uint64_t Address,
const void * Decoder )

Definition at line 236 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeDMRRCRegisterClass()

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

Definition at line 228 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeDMRROWpRCRegisterClass()

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

Definition at line 222 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeDMRROWRCRegisterClass()

DecodeStatus DecodeDMRROWRCRegisterClass ( MCInst & Inst,
uint64_t RegNo,
uint64_t Address,
const void * Decoder )

Definition at line 216 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeF4RCRegisterClass()

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

Definition at line 107 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeF8RCRegisterClass()

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

Definition at line 113 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeFpRCRegisterClass()

DecodeStatus DecodeFpRCRegisterClass ( MCInst & Inst,
uint64_t RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

Definition at line 119 of file PPCDisassembler.cpp.

References decodeRegisterClass(), and llvm::MCDisassembler::Fail.

◆ DecodeG8pRCRegisterClass()

DecodeStatus DecodeG8pRCRegisterClass ( MCInst & Inst,
uint64_t RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

Definition at line 175 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeG8RC_NOX0RegisterClass()

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

Definition at line 182 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeG8RCRegisterClass()

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

Definition at line 169 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeGPRC_NOR0RegisterClass()

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

Definition at line 164 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeGPRCRegisterClass()

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

Definition at line 157 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ decodeImmZeroOperand()

DecodeStatus decodeImmZeroOperand ( MCInst & Inst,
uint64_t Imm,
int64_t Address,
const MCDisassembler * Decoder )
static

◆ decodeRegisterClass()

◆ decodeSImmOperand()

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

◆ DecodeSPERCRegisterClass()

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

Definition at line 190 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ decodeUImmOperand()

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

◆ DecodeVFRCRegisterClass()

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

Definition at line 127 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeVRRCRegisterClass()

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

Definition at line 133 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeVSFRCRegisterClass()

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

Definition at line 145 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeVSRCRegisterClass()

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

Definition at line 139 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ decodeVSRpEvenOperands()

DecodeStatus decodeVSRpEvenOperands ( MCInst & Inst,
uint64_t RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

◆ DecodeVSRpRCRegisterClass()

DecodeStatus DecodeVSRpRCRegisterClass ( MCInst & Inst,
uint64_t RegNo,
uint64_t Address,
const MCDisassembler * Decoder )
static

Definition at line 241 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeVSSRCRegisterClass()

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

Definition at line 151 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeWACC_HIRCRegisterClass()

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

Definition at line 208 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ DecodeWACCRCRegisterClass()

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

Definition at line 202 of file PPCDisassembler.cpp.

References decodeRegisterClass().

◆ LLVMInitializePowerPCDisassembler()