Go to the documentation of this file.
29 #ifndef __ARCH_POWER_INSTS_BRANCH_HH__
30 #define __ARCH_POWER_INSTS_BRANCH_HH__
82 if (
disp & 0x2000000) {
154 ctr_ok = ((
bo & 2) == 0);
156 ctr_ok = ((
bo & 2) != 0);
169 cond_ok = (((cr >> (31 -
bi)) & 1) == ((
bo >> 3) & 1));
259 #endif //__ARCH_POWER_INSTS_BRANCH_HH__
BranchCond(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
BranchNonPCRel(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
PowerISA::PCState branchTarget(ThreadContext *tc) const override
Return the target address for an indirect branch (jump).
bool ctrOk(uint32_t &ctr) const
PowerISA::PCState branchTarget(const PowerISA::PCState &pc) const override
const Loader::SymbolTable * cachedSymtab
Cached symbol table pointer from last disassembly.
uint32_t disp
Displacement.
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
BranchPCRel(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
Base class for conditional, non PC-relative branches.
BranchRegCond(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
uint32_t disp
Displacement.
PowerISA::PCState branchTarget(const PowerISA::PCState &pc) const override
BranchPCRelCond(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
Base class for unconditional, non PC-relative branches.
BranchNonPCRelCond(const char *mnem, MachInst _machInst, OpClass __opClass)
Constructor.
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual TheISA::PCState branchTarget(const TheISA::PCState &pc) const
Return the target address for a PC-relative branch.
PowerISA::PCState branchTarget(const PowerISA::PCState &pc) const override
uint32_t bo
Fields needed for conditions.
TheISA::ExtMachInst ExtMachInst
Binary extended machine instruction type.
PCDependentDisassembly(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
Constructor.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Base class for unconditional, PC-relative branches.
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.
Addr cachedPC
Cached program counter from last disassembly.
const ExtMachInst machInst
The binary machine instruction.
GenericISA::DelaySlotPCState< MachInst > PCState
bool condOk(uint32_t cr) const
Base class for conditional, PC-relative branches.
uint32_t targetAddr
Target address.
const std::string & disassemble(Addr pc, const Loader::SymbolTable *symtab) const
Return string representation of disassembled instruction.
Base class for conditional branches.
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
PowerISA::PCState branchTarget(const PowerISA::PCState &pc) const override
uint32_t targetAddr
Target address.
Base class for conditional, register-based branches.
Base class for instructions whose disassembly is not purely a function of the machine instruction (i....
Generated on Wed Sep 30 2020 14:02:00 for gem5 by doxygen 1.8.17