LLVM: lib/Target/Xtensa/Disassembler/XtensaDisassembler.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "Xtensa-disassembler" |
| Functions | |
|---|---|
| static MCDisassembler * | createXtensaDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx) |
| LLVM_EXTERNAL_VISIBILITY void | LLVMInitializeXtensaDisassembler () |
| static DecodeStatus | DecodeARRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeMRRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeMR01RegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeMR23RegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeFPRRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeURRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder) |
| static DecodeStatus | DecodeSRRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder) |
| static DecodeStatus | DecodeBRRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
| static bool | tryAddingSymbolicOperand (int64_t Value, bool isBranch, uint64_t Address, uint64_t Offset, uint64_t InstSize, MCInst &MI, const void *Decoder) |
| static DecodeStatus | decodeCallOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeJumpOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeBranchOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeLoopOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeL32ROperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeImm8Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeImm8_sh8Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeImm12Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeUimm4Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeUimm5Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeImm1_16Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeImm1n_15Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeImm32n_95Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeImm8n_7Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeImm64n_4nOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeEntry_Imm12OpValue (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeShimm1_31Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeB4constOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeB4constuOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeImm7_22Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeMem8Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeMem16Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeMem32Operand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | decodeMem32nOperand (MCInst &Inst, uint64_t Imm, int64_t Address, const void *Decoder) |
| static DecodeStatus | readInstruction16 (ArrayRef< uint8_t > Bytes, uint64_t Address, uint64_t &Size, uint64_t &Insn, bool IsLittleEndian) |
| Read two bytes from the ArrayRef and return 16 bit data sorted according to the given endianness. | |
| static DecodeStatus | readInstruction24 (ArrayRef< uint8_t > Bytes, uint64_t Address, uint64_t &Size, uint64_t &Insn, bool IsLittleEndian) |
| Read three bytes from the ArrayRef and return 24 bit data. |
◆ DEBUG_TYPE
#define DEBUG_TYPE "Xtensa-disassembler"
◆ createXtensaDisassembler()
◆ DecodeARRegisterClass()
◆ decodeB4constOperand()
◆ decodeB4constuOperand()
◆ decodeBranchOperand()
◆ DecodeBRRegisterClass()
◆ decodeCallOperand()
◆ decodeEntry_Imm12OpValue()
◆ DecodeFPRRegisterClass()
◆ decodeImm12Operand()
◆ decodeImm1_16Operand()
◆ decodeImm1n_15Operand()
◆ decodeImm32n_95Operand()
◆ decodeImm64n_4nOperand()
◆ decodeImm7_22Operand()
◆ decodeImm8_sh8Operand()
◆ decodeImm8n_7Operand()
◆ decodeImm8Operand()
◆ decodeJumpOperand()
◆ decodeL32ROperand()
◆ decodeLoopOperand()
◆ decodeMem16Operand()
◆ decodeMem32nOperand()
◆ decodeMem32Operand()
◆ decodeMem8Operand()
◆ DecodeMR01RegisterClass()
◆ DecodeMR23RegisterClass()
◆ DecodeMRRegisterClass()
◆ decodeShimm1_31Operand()
◆ DecodeSRRegisterClass()
Definition at line 185 of file XtensaDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::Xtensa::checkRegister(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCSubtargetInfo::getFeatureBits(), llvm::MCInst::getOpcode(), llvm::MCDisassembler::getSubtargetInfo(), Reg, llvm::Xtensa::REGISTER_EXCHANGE, llvm::Xtensa::REGISTER_READ, llvm::Xtensa::REGISTER_WRITE, SRDecoderTable, and llvm::MCDisassembler::Success.
◆ decodeUimm4Operand()
◆ decodeUimm5Operand()
◆ DecodeURRegisterClass()
Definition at line 122 of file XtensaDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::Xtensa::checkRegister(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, llvm::MCSubtargetInfo::getFeatureBits(), llvm::MCInst::getOpcode(), llvm::MCDisassembler::getSubtargetInfo(), llvm::Xtensa::getUserRegister(), MRI, Reg, llvm::Xtensa::REGISTER_READ, llvm::Xtensa::REGISTER_WRITE, and llvm::MCDisassembler::Success.
◆ LLVMInitializeXtensaDisassembler()
◆ readInstruction16()
◆ readInstruction24()
◆ tryAddingSymbolicOperand()
◆ ARDecoderTable
Initial value:
= {
Xtensa::A0, Xtensa::SP, Xtensa::A2, Xtensa::A3, Xtensa::A4, Xtensa::A5,
Xtensa::A6, Xtensa::A7, Xtensa::A8, Xtensa::A9, Xtensa::A10, Xtensa::A11,
Xtensa::A12, Xtensa::A13, Xtensa::A14, Xtensa::A15}
Definition at line 62 of file XtensaDisassembler.cpp.
Referenced by DecodeARRegisterClass().
◆ SRDecoderTable
◆ TableB4const
Initial value:
= {-1, 1, 2, 3, 4, 5, 6, 7,
8, 10, 12, 16, 32, 64, 128, 256}
Definition at line 390 of file XtensaDisassembler.cpp.
Referenced by decodeB4constOperand().
◆ TableB4constu
| int64_t TableB4constu[16] | static |
|---|
Initial value:
= {32768, 65536, 2, 3, 4, 5, 6, 7,
8, 10, 12, 16, 32, 64, 128, 256}
Definition at line 400 of file XtensaDisassembler.cpp.
Referenced by decodeB4constuOperand().