Go to the documentation of this file.
29 #ifndef __ARCH_SPARC_INSTS_BRANCH_HH__
30 #define __ARCH_SPARC_INSTS_BRANCH_HH__
48 using SparcStaticInst::SparcStaticInst;
62 Branch(mnem, _machInst, __opClass),
disp(_disp)
94 sext<18>((
bits(_machInst, 21, 20) << 16) |
95 (
bits(_machInst, 13, 0) << 2)))
108 Branch(mnem, _machInst, __opClass),
120 #endif // __ARCH_SPARC_INSTS_BRANCH_HH__
Base class for 16bit split displacements.
Base class for branches that use an immediate and a register to compute their displacements.
Base class for branch operations with an immediate displacement.
BranchNBits(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
uint64_t sext(uint64_t val)
Sign-extend an N-bit value to 64 bits.
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
Base class for branches with n bit displacements.
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
Base class for branch operations.
TheISA::ExtMachInst ExtMachInst
Binary extended machine instruction type.
BranchSplit(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Base class for all SPARC static instructions.
BranchImm13(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
BranchDisp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, int32_t _disp)
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
Generated on Wed Sep 30 2020 14:02:00 for gem5 by doxygen 1.8.17