|
LLVM
4.0.0
|
#include "Sparc.h"#include "SparcRegisterInfo.h"#include "SparcSubtarget.h"#include "llvm/MC/MCDisassembler/MCDisassembler.h"#include "llvm/MC/MCFixedLenDisassembler.h"#include "llvm/MC/MCInst.h"#include "llvm/MC/MCContext.h"#include "llvm/MC/MCAsmInfo.h"#include "llvm/Support/TargetRegistry.h"#include "SparcGenDisassemblerTables.inc"Go to the source code of this file.
Namespaces | |
| llvm | |
| Compute iterated dominance frontiers using a linear time algorithm. | |
Macros | |
| #define | DEBUG_TYPE "sparc-disassembler" |
Typedefs | |
| typedef MCDisassembler::DecodeStatus | DecodeStatus |
| typedef DecodeStatus(* | DecodeFunc )(MCInst &MI, unsigned insn, uint64_t Address, const void *Decoder) |
Functions | |
| Target & | llvm::getTheSparcTarget () |
| Target & | llvm::getTheSparcV9Target () |
| Target & | llvm::getTheSparcelTarget () |
| static MCDisassembler * | createSparcDisassembler (const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx) |
| void | LLVMInitializeSparcDisassembler () |
| static DecodeStatus | DecodeIntRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeI64RegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeFPRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeDFPRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeQFPRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeCPRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeFCCRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeASRRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodePRRegsRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeIntPairRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeCPPairRegisterClass (MCInst &Inst, unsigned RegNo, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeLoadInt (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeLoadIntPair (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeLoadFP (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeLoadDFP (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeLoadQFP (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeLoadCP (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeLoadCPPair (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeStoreInt (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeStoreIntPair (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeStoreFP (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeStoreDFP (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeStoreQFP (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeStoreCP (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeStoreCPPair (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeCall (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeSIMM13 (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeJMPL (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeReturn (MCInst &MI, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeSWAP (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | DecodeTRAP (MCInst &Inst, unsigned insn, uint64_t Address, const void *Decoder) |
| static DecodeStatus | readInstruction32 (ArrayRef< uint8_t > Bytes, uint64_t Address, uint64_t &Size, uint32_t &Insn, bool IsLittleEndian) |
| Read four bytes from the ArrayRef and return 32 bit word. More... | |
| static DecodeStatus | DecodeMem (MCInst &MI, unsigned insn, uint64_t Address, const void *Decoder, bool isLoad, DecodeFunc DecodeRD) |
| static bool | tryAddingSymbolicOperand (int64_t Value, bool isBranch, uint64_t Address, uint64_t Offset, uint64_t Width, MCInst &MI, const void *Decoder) |
Variables | |
| static const unsigned | IntRegDecoderTable [] |
| static const unsigned | FPRegDecoderTable [] |
| static const unsigned | DFPRegDecoderTable [] |
| static const unsigned | QFPRegDecoderTable [] |
| static const unsigned | FCCRegDecoderTable [] |
| static const unsigned | ASRRegDecoderTable [] |
| static const unsigned | PRRegDecoderTable [] |
| static const uint16_t | IntPairDecoderTable [] |
| static const unsigned | CPRegDecoderTable [] |
| static const uint16_t | CPPairDecoderTable [] |
| #define DEBUG_TYPE "sparc-disassembler" |
Definition at line 26 of file SparcDisassembler.cpp.
| typedef DecodeStatus(* DecodeFunc)(MCInst &MI, unsigned insn, uint64_t Address, const void *Decoder) |
Definition at line 377 of file SparcDisassembler.cpp.
Definition at line 28 of file SparcDisassembler.cpp.
|
static |
Definition at line 52 of file SparcDisassembler.cpp.
Referenced by LLVMInitializeSparcDisassembler().
|
static |
Definition at line 235 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), ASRRegDecoderTable, llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
|
static |
Definition at line 520 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), llvm::MCDisassembler::Success, and tryAddingSymbolicOperand().
|
static |
Definition at line 268 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), CPPairDecoderTable, llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
Referenced by DecodeLoadCPPair(), and DecodeStoreCPPair().
|
static |
Definition at line 215 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), CPRegDecoderTable, llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
Referenced by DecodeLoadCP(), and DecodeStoreCP().
|
static |
Definition at line 189 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), DFPRegDecoderTable, llvm::MCDisassembler::Fail, and llvm::MCDisassembler::Success.
Referenced by DecodeLoadDFP(), and DecodeStoreDFP().
|
static |
Definition at line 226 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, FCCRegDecoderTable, and llvm::MCDisassembler::Success.
|
static |
Definition at line 177 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, FPRegDecoderTable, and llvm::MCDisassembler::Success.
Referenced by DecodeLoadFP(), and DecodeStoreFP().
|
static |
Definition at line 165 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, IntRegDecoderTable, and llvm::MCDisassembler::Success.
|
static |
Definition at line 253 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, IntPairDecoderTable, llvm::MCDisassembler::SoftFail, and llvm::MCDisassembler::Success.
Referenced by DecodeLoadIntPair(), and DecodeStoreIntPair().
|
static |
Definition at line 154 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, IntRegDecoderTable, and llvm::MCDisassembler::Success.
Referenced by DecodeJMPL(), DecodeLoadInt(), DecodeMem(), DecodeReturn(), DecodeStoreInt(), DecodeSWAP(), and DecodeTRAP().
|
static |
Definition at line 537 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeIntRegsRegisterClass(), llvm::sys::fs::status(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 457 of file SparcDisassembler.cpp.
References DecodeCPRegsRegisterClass(), and DecodeMem().
|
static |
Definition at line 463 of file SparcDisassembler.cpp.
References DecodeCPPairRegisterClass(), and DecodeMem().
|
static |
Definition at line 445 of file SparcDisassembler.cpp.
References DecodeDFPRegsRegisterClass(), and DecodeMem().
|
static |
Definition at line 439 of file SparcDisassembler.cpp.
References DecodeFPRegsRegisterClass(), and DecodeMem().
|
static |
Definition at line 427 of file SparcDisassembler.cpp.
References DecodeIntRegsRegisterClass(), and DecodeMem().
|
static |
Definition at line 433 of file SparcDisassembler.cpp.
References DecodeIntPairRegisterClass(), and DecodeMem().
|
static |
Definition at line 451 of file SparcDisassembler.cpp.
References DecodeMem(), and DecodeQFPRegsRegisterClass().
|
static |
Definition at line 380 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeIntRegsRegisterClass(), llvm::sys::fs::status(), and llvm::MCDisassembler::Success.
Referenced by DecodeLoadCP(), DecodeLoadCPPair(), DecodeLoadDFP(), DecodeLoadFP(), DecodeLoadInt(), DecodeLoadIntPair(), DecodeLoadQFP(), DecodeStoreCP(), DecodeStoreCPPair(), DecodeStoreDFP(), DecodeStoreFP(), DecodeStoreInt(), DecodeStoreIntPair(), and DecodeStoreQFP().
|
static |
Definition at line 244 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::array_lengthof(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, PRRegDecoderTable, and llvm::MCDisassembler::Success.
|
static |
Definition at line 201 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createReg(), llvm::MCDisassembler::Fail, QFPRegDecoderTable, and llvm::MCDisassembler::Success.
Referenced by DecodeLoadQFP(), and DecodeStoreQFP().
|
static |
Definition at line 571 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeIntRegsRegisterClass(), llvm::sys::fs::status(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 530 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 499 of file SparcDisassembler.cpp.
References DecodeCPRegsRegisterClass(), and DecodeMem().
|
static |
Definition at line 505 of file SparcDisassembler.cpp.
References DecodeCPPairRegisterClass(), and DecodeMem().
|
static |
Definition at line 487 of file SparcDisassembler.cpp.
References DecodeDFPRegsRegisterClass(), and DecodeMem().
|
static |
Definition at line 481 of file SparcDisassembler.cpp.
References DecodeFPRegsRegisterClass(), and DecodeMem().
|
static |
Definition at line 469 of file SparcDisassembler.cpp.
References DecodeIntRegsRegisterClass(), and DecodeMem().
|
static |
Definition at line 475 of file SparcDisassembler.cpp.
References DecodeIntPairRegisterClass(), and DecodeMem().
|
static |
Definition at line 493 of file SparcDisassembler.cpp.
References DecodeMem(), and DecodeQFPRegsRegisterClass().
|
static |
Definition at line 599 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeIntRegsRegisterClass(), llvm::sys::fs::status(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 639 of file SparcDisassembler.cpp.
References llvm::MCInst::addOperand(), llvm::MCOperand::createImm(), DecodeIntRegsRegisterClass(), llvm::sys::fs::status(), and llvm::MCDisassembler::Success.
| void LLVMInitializeSparcDisassembler | ( | ) |
Definition at line 59 of file SparcDisassembler.cpp.
References createSparcDisassembler(), llvm::getTheSparcelTarget(), llvm::getTheSparcTarget(), llvm::getTheSparcV9Target(), and llvm::TargetRegistry::RegisterMCDisassembler().
|
static |
Read four bytes from the ArrayRef and return 32 bit word.
Definition at line 322 of file SparcDisassembler.cpp.
References llvm::MCDisassembler::Fail, llvm::ArrayRef< T >::size(), and llvm::MCDisassembler::Success.
|
static |
Definition at line 511 of file SparcDisassembler.cpp.
References llvm::MCDisassembler::tryAddingSymbolicOperand().
Referenced by DecodeCall().
Definition at line 112 of file SparcDisassembler.cpp.
Referenced by DecodeASRRegsRegisterClass().
|
static |
Definition at line 147 of file SparcDisassembler.cpp.
Referenced by DecodeCPPairRegisterClass().
Definition at line 135 of file SparcDisassembler.cpp.
Referenced by DecodeCPRegsRegisterClass().
Definition at line 89 of file SparcDisassembler.cpp.
Referenced by DecodeDFPRegsRegisterClass().
Definition at line 109 of file SparcDisassembler.cpp.
Referenced by DecodeFCCRegsRegisterClass().
Definition at line 79 of file SparcDisassembler.cpp.
Referenced by DecodeFPRegsRegisterClass().
|
static |
Definition at line 128 of file SparcDisassembler.cpp.
Referenced by DecodeIntPairRegisterClass().
Definition at line 69 of file SparcDisassembler.cpp.
Referenced by DecodeI64RegsRegisterClass(), and DecodeIntRegsRegisterClass().
Definition at line 122 of file SparcDisassembler.cpp.
Referenced by DecodePRRegsRegisterClass().
Definition at line 99 of file SparcDisassembler.cpp.
Referenced by DecodeQFPRegsRegisterClass().
1.8.6