52 bool foundPsr =
false;
80 bool foundPsr =
false;
92 if (
bits(byteMask, 1, 0)) {
106 if (
bits(byteMask, 3)) {
113 if (
bits(byteMask, 2)) {
120 if (
bits(byteMask, 1)) {
123 if (
bits(byteMask, 0)) {
131 std::stringstream
ss;
140 std::stringstream
ss;
150 std::stringstream
ss;
163 std::stringstream
ss;
176 std::stringstream
ss;
185 std::stringstream
ss;
195 std::stringstream
ss;
206 std::stringstream
ss;
214 std::stringstream
ss;
228 std::stringstream
ss;
243 std::stringstream
ss;
256 std::stringstream
ss;
268 std::stringstream
ss;
279 std::stringstream
ss;
290 std::stringstream
ss;
293 ccprintf(ss,
", #%d, #%d", imm1, imm2);
300 std::stringstream
ss;
305 ccprintf(ss,
", #%d, #%d", imm1, imm2);
312 std::stringstream
ss;
323 std::stringstream
ss;
342 flags[IsNonSpeculative] =
true;
353 return std::make_shared<HypervisorTrap>(
machInst,
iss,
378 return std::make_shared<HypervisorTrap>(
machInst,
iss,
381 return std::make_shared<UndefinedInstruction>(
machInst,
false,
void ccprintf(cp::Print &print)
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
void printMnemonic(std::ostream &os, const std::string &suffix="", bool withPred=true, bool withCond64=false, ConditionCode cond64=COND_UC) const
int8_t numSrcRegs() const
Number of source registers.
decltype(nullptr) constexpr NoFault
bool isMiscReg() const
true if it is a condition-code physical register.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
int8_t numDestRegs() const
Number of destination registers.
void printMsrBase(std::ostream &os) const
const char * mnemonic
Base mnemonic (e.g., "add").
const RegId & srcRegIdx(int i) const
Return logical index (architectural reg num) of i'th source reg.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
const ExtMachInst machInst
The binary machine instruction.
std::bitset< Num_Flags > flags
Flag values for this instruction.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
The ExecContext is an abstract base class the provides the interface used by the ISA to manipulate th...
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::string csprintf(const char *format, const Args &...args)
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
McrMrcImplDefined(const char *_mnemonic, ExtMachInst _machInst, uint64_t _iss, MiscRegIndex _miscReg)
bool mcrMrc15TrapToHyp(const MiscRegIndex miscReg, ThreadContext *tc, uint32_t iss)
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
void printIntReg(std::ostream &os, RegIndex reg_idx, uint8_t opWidth=0) const
Print a register name for disassembly given the unique dependence tag number (FP or int)...
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
void printShiftOperand(std::ostream &os, IntRegIndex rm, bool immShift, uint32_t shiftAmt, IntRegIndex rs, ArmShiftType type) const
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
void printMiscReg(std::ostream &os, RegIndex reg_idx) const
McrMrcMiscInst(const char *_mnemonic, ExtMachInst _machInst, uint64_t _iss, MiscRegIndex _miscReg)
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
Fault execute(ExecContext *xc, Trace::InstRecord *traceData) const override
Certain mrc/mcr instructions act as nops or flush the pipe based on what register the instruction is ...
const RegIndex & index() const
Index accessors.
virtual ThreadContext * tcBase()=0
Returns a pointer to the ThreadContext.
Fault execute(ExecContext *xc, Trace::InstRecord *traceData) const override
const RegId & destRegIdx(int i) const
Return logical index (architectural reg num) of i'th destination reg.
TheISA::ExtMachInst ExtMachInst
Binary extended machine instruction type.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
Register ID: describe an architectural register with its class and index.
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it...
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::shared_ptr< FaultBase > Fault
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const override
Internal function to generate disassembly string.
MachInst encoding() const
Returns the real encoding of the instruction: the machInst field is in fact always 64 bit wide and co...