LLVM 20.0.0git
Macros | Typedefs | Functions
XCoreDisassembler.cpp File Reference

This file is part of the XCore Disassembler. More...

#include "TargetInfo/XCoreTargetInfo.h"
#include "XCore.h"
#include "XCoreRegisterInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCDecoderOps.h"
#include "llvm/MC/MCDisassembler/MCDisassembler.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/MC/TargetRegistry.h"
#include "XCoreGenDisassemblerTables.inc"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "xcore-disassembler"
 

Typedefs

typedef MCDisassembler::DecodeStatus DecodeStatus
 

Functions

static bool readInstruction16 (ArrayRef< uint8_t > Bytes, uint64_t Address, uint64_t &Size, uint16_t &Insn)
 
static bool readInstruction32 (ArrayRef< uint8_t > Bytes, uint64_t Address, uint64_t &Size, uint32_t &Insn)
 
static unsigned getReg (const MCDisassembler *D, unsigned RC, unsigned RegNo)
 
static DecodeStatus DecodeGRRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeRRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeBitpOperand (MCInst &Inst, unsigned Val, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeNegImmOperand (MCInst &Inst, unsigned Val, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus Decode2RInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus Decode2RImmInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeR2RInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus Decode2RSrcDstInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeRUSInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeRUSBitpInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeRUSSrcDstBitpInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL2RInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeLR2RInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus Decode3RInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus Decode3RImmInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus Decode2RUSInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus Decode2RUSBitpInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL3RInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL3RSrcDstInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL2RUSInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL2RUSBitpInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL6RInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL5RInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL4RSrcDstInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL4RSrcDstSrcDstInstruction (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus Decode2OpInstruction (unsigned Insn, unsigned &Op1, unsigned &Op2)
 
static DecodeStatus Decode3OpInstruction (unsigned Insn, unsigned &Op1, unsigned &Op2, unsigned &Op3)
 
static DecodeStatus Decode2OpInstructionFail (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL2OpInstructionFail (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static DecodeStatus DecodeL5RInstructionFail (MCInst &Inst, unsigned Insn, uint64_t Address, const MCDisassembler *Decoder)
 
static MCDisassemblercreateXCoreDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx)
 
LLVM_EXTERNAL_VISIBILITY void LLVMInitializeXCoreDisassembler ()
 

Detailed Description

This file is part of the XCore Disassembler.

Definition in file XCoreDisassembler.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "xcore-disassembler"

Definition at line 26 of file XCoreDisassembler.cpp.

Typedef Documentation

◆ DecodeStatus

Definition at line 28 of file XCoreDisassembler.cpp.

Function Documentation

◆ createXCoreDisassembler()

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

Definition at line 747 of file XCoreDisassembler.cpp.

Referenced by LLVMInitializeXCoreDisassembler().

◆ Decode2OpInstruction()

static DecodeStatus Decode2OpInstruction ( unsigned  Insn,
unsigned Op1,
unsigned Op2 
)
static

◆ Decode2OpInstructionFail()

static DecodeStatus Decode2OpInstructionFail ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ Decode2RImmInstruction()

static DecodeStatus Decode2RImmInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ Decode2RInstruction()

static DecodeStatus Decode2RInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ Decode2RSrcDstInstruction()

static DecodeStatus Decode2RSrcDstInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ Decode2RUSBitpInstruction()

static DecodeStatus Decode2RUSBitpInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ Decode2RUSInstruction()

static DecodeStatus Decode2RUSInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ Decode3OpInstruction()

static DecodeStatus Decode3OpInstruction ( unsigned  Insn,
unsigned Op1,
unsigned Op2,
unsigned Op3 
)
static

◆ Decode3RImmInstruction()

static DecodeStatus Decode3RImmInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ Decode3RInstruction()

static DecodeStatus Decode3RInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeBitpOperand()

static DecodeStatus DecodeBitpOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeGRRegsRegisterClass()

static DecodeStatus DecodeGRRegsRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL2OpInstructionFail()

static DecodeStatus DecodeL2OpInstructionFail ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL2RInstruction()

static DecodeStatus DecodeL2RInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL2RUSBitpInstruction()

static DecodeStatus DecodeL2RUSBitpInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL2RUSInstruction()

static DecodeStatus DecodeL2RUSInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL3RInstruction()

static DecodeStatus DecodeL3RInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL3RSrcDstInstruction()

static DecodeStatus DecodeL3RSrcDstInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL4RSrcDstInstruction()

static DecodeStatus DecodeL4RSrcDstInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL4RSrcDstSrcDstInstruction()

static DecodeStatus DecodeL4RSrcDstSrcDstInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL5RInstruction()

static DecodeStatus DecodeL5RInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL5RInstructionFail()

static DecodeStatus DecodeL5RInstructionFail ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeL6RInstruction()

static DecodeStatus DecodeL6RInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeLR2RInstruction()

static DecodeStatus DecodeLR2RInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeNegImmOperand()

static DecodeStatus DecodeNegImmOperand ( MCInst Inst,
unsigned  Val,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeR2RInstruction()

static DecodeStatus DecodeR2RInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeRRegsRegisterClass()

static DecodeStatus DecodeRRegsRegisterClass ( MCInst Inst,
unsigned  RegNo,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeRUSBitpInstruction()

static DecodeStatus DecodeRUSBitpInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeRUSInstruction()

static DecodeStatus DecodeRUSInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ DecodeRUSSrcDstBitpInstruction()

static DecodeStatus DecodeRUSSrcDstBitpInstruction ( MCInst Inst,
unsigned  Insn,
uint64_t  Address,
const MCDisassembler Decoder 
)
static

◆ getReg()

static unsigned getReg ( const MCDisassembler D,
unsigned  RC,
unsigned  RegNo 
)
static

Definition at line 69 of file XCoreDisassembler.cpp.

References D.

Referenced by DecodeGRRegsRegisterClass(), and DecodeRRegsRegisterClass().

◆ LLVMInitializeXCoreDisassembler()

LLVM_EXTERNAL_VISIBILITY void LLVMInitializeXCoreDisassembler ( )

◆ readInstruction16()

static bool readInstruction16 ( ArrayRef< uint8_t Bytes,
uint64_t  Address,
uint64_t Size,
uint16_t Insn 
)
static

Definition at line 44 of file XCoreDisassembler.cpp.

References Insn, llvm::ArrayRef< T >::size(), and Size.

◆ readInstruction32()

static bool readInstruction32 ( ArrayRef< uint8_t Bytes,
uint64_t  Address,
uint64_t Size,
uint32_t Insn 
)
static

Definition at line 56 of file XCoreDisassembler.cpp.

References Insn, llvm::ArrayRef< T >::size(), and Size.