LLVM API Documentation
#include "SystemZ.h"
#include "llvm/MC/MCDisassembler.h"
#include "llvm/MC/MCFixedLenDisassembler.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCSubtargetInfo.h"
#include "llvm/Support/MemoryObject.h"
#include "llvm/Support/TargetRegistry.h"
#include "SystemZGenDisassemblerTables.inc"
Go to the source code of this file.
Defines | |
#define | DEBUG_TYPE "systemz-disassembler" |
Typedefs | |
typedef MCDisassembler::DecodeStatus | DecodeStatus |
Functions | |
static MCDisassembler * | createSystemZDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx) |
void | LLVMInitializeSystemZDisassembler () |
static DecodeStatus | decodeRegisterClass (MCInst &Inst, uint64_t RegNo, const unsigned *Regs) |
static DecodeStatus | DecodeGR32BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeGRH32BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeGR64BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeGR128BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeADDR64BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeFP32BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeFP64BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *Decoder) |
static DecodeStatus | DecodeFP128BitRegisterClass (MCInst &Inst, uint64_t RegNo, uint64_t Address, const void *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 | decodeAccessRegOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeU4ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeU6ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeU8ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeU16ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeU32ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeS8ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeS16ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeS32ImmOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
template<unsigned N> | |
static DecodeStatus | decodePCDBLOperand (MCInst &Inst, uint64_t Imm, uint64_t Address) |
static DecodeStatus | decodePC16DBLOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodePC32DBLOperand (MCInst &Inst, uint64_t Imm, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeBDAddr12Operand (MCInst &Inst, uint64_t Field, const unsigned *Regs) |
static DecodeStatus | decodeBDAddr20Operand (MCInst &Inst, uint64_t Field, const unsigned *Regs) |
static DecodeStatus | decodeBDXAddr12Operand (MCInst &Inst, uint64_t Field, const unsigned *Regs) |
static DecodeStatus | decodeBDXAddr20Operand (MCInst &Inst, uint64_t Field, const unsigned *Regs) |
static DecodeStatus | decodeBDLAddr12Len8Operand (MCInst &Inst, uint64_t Field, const unsigned *Regs) |
static DecodeStatus | decodeBDAddr32Disp12Operand (MCInst &Inst, uint64_t Field, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeBDAddr32Disp20Operand (MCInst &Inst, uint64_t Field, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeBDAddr64Disp12Operand (MCInst &Inst, uint64_t Field, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeBDAddr64Disp20Operand (MCInst &Inst, uint64_t Field, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeBDXAddr64Disp12Operand (MCInst &Inst, uint64_t Field, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeBDXAddr64Disp20Operand (MCInst &Inst, uint64_t Field, uint64_t Address, const void *Decoder) |
static DecodeStatus | decodeBDLAddr64Disp12Len8Operand (MCInst &Inst, uint64_t Field, uint64_t Address, const void *Decoder) |
#define DEBUG_TYPE "systemz-disassembler" |
Definition at line 20 of file SystemZDisassembler.cpp.
Definition at line 22 of file SystemZDisassembler.cpp.
static MCDisassembler* createSystemZDisassembler | ( | const Target & | T, |
const MCSubtargetInfo & | STI, | ||
MCContext & | Ctx | ||
) | [static] |
Definition at line 39 of file SystemZDisassembler.cpp.
Referenced by LLVMInitializeSystemZDisassembler().
static DecodeStatus decodeAccessRegOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 123 of file SystemZDisassembler.cpp.
static DecodeStatus DecodeADDR64BitRegisterClass | ( | MCInst & | Inst, |
uint64_t | RegNo, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 85 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GR64Regs.
static DecodeStatus decodeBDAddr12Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
const unsigned * | Regs | ||
) | [static] |
Definition at line 189 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateImm(), llvm::MCOperand::CreateReg(), and llvm::MCDisassembler::Success.
Referenced by decodeBDAddr32Disp12Operand(), and decodeBDAddr64Disp12Operand().
static DecodeStatus decodeBDAddr20Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
const unsigned * | Regs | ||
) | [static] |
Definition at line 199 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateImm(), llvm::MCOperand::CreateReg(), and llvm::MCDisassembler::Success.
Referenced by decodeBDAddr32Disp20Operand(), and decodeBDAddr64Disp20Operand().
static DecodeStatus decodeBDAddr32Disp12Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 245 of file SystemZDisassembler.cpp.
References decodeBDAddr12Operand(), and llvm::SystemZMC::GR32Regs.
static DecodeStatus decodeBDAddr32Disp20Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 251 of file SystemZDisassembler.cpp.
References decodeBDAddr20Operand(), and llvm::SystemZMC::GR32Regs.
static DecodeStatus decodeBDAddr64Disp12Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 257 of file SystemZDisassembler.cpp.
References decodeBDAddr12Operand(), and llvm::SystemZMC::GR64Regs.
static DecodeStatus decodeBDAddr64Disp20Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 263 of file SystemZDisassembler.cpp.
References decodeBDAddr20Operand(), and llvm::SystemZMC::GR64Regs.
static DecodeStatus decodeBDLAddr12Len8Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
const unsigned * | Regs | ||
) | [static] |
Definition at line 233 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateImm(), llvm::MCOperand::CreateReg(), and llvm::MCDisassembler::Success.
Referenced by decodeBDLAddr64Disp12Len8Operand().
static DecodeStatus decodeBDLAddr64Disp12Len8Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 281 of file SystemZDisassembler.cpp.
References decodeBDLAddr12Len8Operand(), and llvm::SystemZMC::GR64Regs.
static DecodeStatus decodeBDXAddr12Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
const unsigned * | Regs | ||
) | [static] |
Definition at line 209 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateImm(), llvm::MCOperand::CreateReg(), and llvm::MCDisassembler::Success.
Referenced by decodeBDXAddr64Disp12Operand().
static DecodeStatus decodeBDXAddr20Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
const unsigned * | Regs | ||
) | [static] |
Definition at line 221 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateImm(), llvm::MCOperand::CreateReg(), and llvm::MCDisassembler::Success.
Referenced by decodeBDXAddr64Disp20Operand().
static DecodeStatus decodeBDXAddr64Disp12Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 269 of file SystemZDisassembler.cpp.
References decodeBDXAddr12Operand(), and llvm::SystemZMC::GR64Regs.
static DecodeStatus decodeBDXAddr64Disp20Operand | ( | MCInst & | Inst, |
uint64_t | Field, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 275 of file SystemZDisassembler.cpp.
References decodeBDXAddr20Operand(), and llvm::SystemZMC::GR64Regs.
static DecodeStatus DecodeFP128BitRegisterClass | ( | MCInst & | Inst, |
uint64_t | RegNo, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 103 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::FP128Regs.
static DecodeStatus DecodeFP32BitRegisterClass | ( | MCInst & | Inst, |
uint64_t | RegNo, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 91 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::FP32Regs.
static DecodeStatus DecodeFP64BitRegisterClass | ( | MCInst & | Inst, |
uint64_t | RegNo, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 97 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::FP64Regs.
static DecodeStatus DecodeGR128BitRegisterClass | ( | MCInst & | Inst, |
uint64_t | RegNo, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 79 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GR128Regs.
static DecodeStatus DecodeGR32BitRegisterClass | ( | MCInst & | Inst, |
uint64_t | RegNo, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 61 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GR32Regs.
static DecodeStatus DecodeGR64BitRegisterClass | ( | MCInst & | Inst, |
uint64_t | RegNo, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 73 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GR64Regs.
static DecodeStatus DecodeGRH32BitRegisterClass | ( | MCInst & | Inst, |
uint64_t | RegNo, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 67 of file SystemZDisassembler.cpp.
References decodeRegisterClass(), and llvm::SystemZMC::GRH32Regs.
static DecodeStatus decodePC16DBLOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 177 of file SystemZDisassembler.cpp.
static DecodeStatus decodePC32DBLOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 183 of file SystemZDisassembler.cpp.
static DecodeStatus decodePCDBLOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address | ||
) | [static] |
Definition at line 170 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateImm(), and llvm::MCDisassembler::Success.
static DecodeStatus decodeRegisterClass | ( | MCInst & | Inst, |
uint64_t | RegNo, | ||
const unsigned * | Regs | ||
) | [static] |
Definition at line 51 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
Referenced by DecodeADDR64BitRegisterClass(), DecodeFP128BitRegisterClass(), DecodeFP32BitRegisterClass(), DecodeFP64BitRegisterClass(), DecodeGR128BitRegisterClass(), DecodeGR32BitRegisterClass(), DecodeGR64BitRegisterClass(), and DecodeGRH32BitRegisterClass().
static DecodeStatus decodeS16ImmOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 159 of file SystemZDisassembler.cpp.
static DecodeStatus decodeS32ImmOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 164 of file SystemZDisassembler.cpp.
static DecodeStatus decodeS8ImmOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 154 of file SystemZDisassembler.cpp.
static DecodeStatus decodeSImmOperand | ( | MCInst & | Inst, |
uint64_t | Imm | ||
) | [static] |
Definition at line 117 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateImm(), and llvm::MCDisassembler::Success.
static DecodeStatus decodeU16ImmOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 144 of file SystemZDisassembler.cpp.
static DecodeStatus decodeU32ImmOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 149 of file SystemZDisassembler.cpp.
static DecodeStatus decodeU4ImmOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 129 of file SystemZDisassembler.cpp.
static DecodeStatus decodeU6ImmOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 134 of file SystemZDisassembler.cpp.
static DecodeStatus decodeU8ImmOperand | ( | MCInst & | Inst, |
uint64_t | Imm, | ||
uint64_t | Address, | ||
const void * | Decoder | ||
) | [static] |
Definition at line 139 of file SystemZDisassembler.cpp.
static DecodeStatus decodeUImmOperand | ( | MCInst & | Inst, |
uint64_t | Imm | ||
) | [static] |
Definition at line 110 of file SystemZDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::CreateImm(), and llvm::MCDisassembler::Success.
void LLVMInitializeSystemZDisassembler | ( | ) |
Definition at line 45 of file SystemZDisassembler.cpp.
References createSystemZDisassembler(), llvm::TargetRegistry::RegisterMCDisassembler(), and llvm::TheSystemZTarget.