LLVM: lib/Target/SystemZ/Disassembler/SystemZDisassembler.cpp File Reference (original ) (raw )Go to the source code of this file.
Functions
static MCDisassembler *
createSystemZDisassembler (const Target &T , const MCSubtargetInfo &STI, MCContext &Ctx)
LLVM_ABI LLVM_EXTERNAL_VISIBILITY void
LLVMInitializeSystemZDisassembler ()
static bool
tryAddingSymbolicOperand (int64_t Value , bool IsBranch, uint64_t Address, uint64_t Offset, uint64_t Width, MCInst &MI , const MCDisassembler *Decoder)
tryAddingSymbolicOperand - trys to add a symbolic operand in place of the immediate Value in the MCInst .
static DecodeStatus
decodeRegisterClass (MCInst &Inst, uint64_t RegNo, const unsigned *Regs, unsigned Size , bool IsAddr=false)
static DecodeStatus
DecodeGR32BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeGRH32BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeGR64BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeGR128BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeADDR32BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeADDR64BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeFP32BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeFP64BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeFP128BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeVR32BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeVR64BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeVR128BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeAR32BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
DecodeCR64BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const MCDisassembler *Decoder)
template<unsigned N>
static DecodeStatus
decodeUImmOperand (MCInst &Inst, uint64_t Imm)
template<unsigned N>
static DecodeStatus
decodeSImmOperand (MCInst &Inst, uint64_t Imm)
static DecodeStatus
decodeU1ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeU2ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeU3ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeU4ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeU8ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeU12ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeU16ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeU32ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeS8ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeS16ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeS20ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodeS32ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
template<unsigned N>
static DecodeStatus
decodeLenOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
template<unsigned N>
static DecodeStatus
decodePCDBLOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, bool isBranch , const MCDisassembler *Decoder)
static DecodeStatus
decodePC12DBLBranchOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodePC16DBLBranchOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodePC24DBLBranchOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodePC32DBLBranchOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
static DecodeStatus
decodePC32DBLOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const MCDisassembler *Decoder)
◆ DEBUG_TYPE#define DEBUG_TYPE "systemz-disassembler"
◆ createSystemZDisassembler()◆ DecodeADDR32BitRegisterClass()◆ DecodeADDR64BitRegisterClass()◆ DecodeAR32BitRegisterClass()◆ DecodeCR64BitRegisterClass()◆ DecodeFP128BitRegisterClass()◆ DecodeFP32BitRegisterClass()◆ DecodeFP64BitRegisterClass()◆ DecodeGR128BitRegisterClass()◆ DecodeGR32BitRegisterClass()◆ DecodeGR64BitRegisterClass()◆ DecodeGRH32BitRegisterClass()◆ decodeLenOperand()◆ decodePC12DBLBranchOperand()◆ decodePC16DBLBranchOperand()◆ decodePC24DBLBranchOperand()◆ decodePC32DBLBranchOperand()◆ decodePC32DBLOperand()◆ decodePCDBLOperand()Definition at line 283 of file SystemZDisassembler.cpp .
References llvm::MCInst::addOperand() , assert() , llvm::MCOperand::createImm() , isBranch() , llvm::isUInt() , N , llvm::SignExtend64() , llvm::MCDisassembler::Success , and tryAddingSymbolicOperand() .
Referenced by decodePC12DBLBranchOperand() , decodePC16DBLBranchOperand() , decodePC24DBLBranchOperand() , decodePC32DBLBranchOperand() , and decodePC32DBLOperand() .
◆ decodeRegisterClass()Definition at line 85 of file SystemZDisassembler.cpp .
References llvm::MCInst::addOperand() , assert() , llvm::MCOperand::createReg() , llvm::MCDisassembler::Fail , Size , and llvm::MCDisassembler::Success .
Referenced by DecodeADDR32BitRegisterClass() , DecodeADDR64BitRegisterClass() , DecodeAR32BitRegisterClass() , DecodeCR64BitRegisterClass() , DecodeFP128BitRegisterClass() , DecodeFP32BitRegisterClass() , DecodeFP64BitRegisterClass() , DecodeGR128BitRegisterClass() , DecodeGR32BitRegisterClass() , DecodeGR64BitRegisterClass() , DecodeGRH32BitRegisterClass() , DecodeVR128BitRegisterClass() , DecodeVR32BitRegisterClass() , and DecodeVR64BitRegisterClass() .
◆ decodeS16ImmOperand()◆ decodeS20ImmOperand()◆ decodeS32ImmOperand()◆ decodeS8ImmOperand()◆ decodeSImmOperand()◆ decodeU12ImmOperand()◆ decodeU16ImmOperand()◆ decodeU1ImmOperand()◆ decodeU2ImmOperand()◆ decodeU32ImmOperand()◆ decodeU3ImmOperand()◆ decodeU4ImmOperand()◆ decodeU8ImmOperand()◆ decodeUImmOperand()Definition at line 185 of file SystemZDisassembler.cpp .
References llvm::MCInst::addOperand() , llvm::MCOperand::createImm() , llvm::MCDisassembler::Fail , llvm::isUInt() , and llvm::MCDisassembler::Success .
Referenced by decodeU12ImmOperand() , decodeU16ImmOperand() , decodeU1ImmOperand() , decodeU2ImmOperand() , decodeU32ImmOperand() , decodeU3ImmOperand() , decodeU4ImmOperand() , and decodeU8ImmOperand() .
◆ DecodeVR128BitRegisterClass()◆ DecodeVR32BitRegisterClass()◆ DecodeVR64BitRegisterClass()◆ LLVMInitializeSystemZDisassembler()◆ tryAddingSymbolicOperand()tryAddingSymbolicOperand - trys to add a symbolic operand in place of the immediate Value in the MCInst .
Parameters
Value
- The immediate Value , has had any PC adjustment made by the caller.
isBranch
- If the instruction is a branch instruction
Address
- The starting address of the instruction
Offset
- The byte offset to this immediate in the instruction
Width
- The byte width of this immediate in the instruction
If the getOpInfo() function was set when setupForSymbolicDisassembly() was called then that function is called to get any symbolic information for the immediate in the instruction using the Address, Offset and Width. If that returns non-zero then the symbolic information it returns is used to create an MCExpr and that is added as an operand to the MCInst . If getOpInfo() returns zero and isBranch is true then a symbol look up for immediate Value is done and if a symbol is found an MCExpr is created with that, else an MCExpr with the immediate Value is created. This function returns true if it adds an operand to the MCInst and false otherwise.
Definition at line 77 of file SystemZDisassembler.cpp .
References MI , llvm::Offset , and llvm::MCDisassembler::tryAddingSymbolicOperand() .
Referenced by decodePCDBLOperand() .