|
enum | { MaxInstSrcRegs = TheISA::MaxInstSrcRegs,
MaxInstDestRegs = TheISA::MaxInstDestRegs
} |
|
typedef TheISA::ExtMachInst | ExtMachInst |
| Binary extended machine instruction type. More...
|
|
typedef TheISA::RegIndex | RegIndex |
| Logical register index type. More...
|
|
const ExtMachInst | machInst |
| The binary machine instruction. More...
|
|
static StaticInstPtr | nullStaticInstPtr |
| Pointer to a statically allocated "null" instruction object. More...
|
|
| PredOp (const char *mnem, ExtMachInst _machInst, OpClass __opClass) |
| Constructor. More...
|
|
int32_t | shift_rm_imm (uint32_t base, uint32_t shamt, uint32_t type, uint32_t cfval) const |
|
int32_t | shift_rm_rs (uint32_t base, uint32_t shamt, uint32_t type, uint32_t cfval) const |
|
bool | shift_carry_imm (uint32_t base, uint32_t shamt, uint32_t type, uint32_t cfval) const |
|
bool | shift_carry_rs (uint32_t base, uint32_t shamt, uint32_t type, uint32_t cfval) const |
|
int64_t | shiftReg64 (uint64_t base, uint64_t shiftAmt, ArmShiftType type, uint8_t width) const |
|
int64_t | extendReg64 (uint64_t base, ArmExtendType type, uint64_t shiftAmt, uint8_t width) const |
|
| ArmStaticInst (const char *mnem, ExtMachInst _machInst, OpClass __opClass) |
|
void | printReg (std::ostream &os, int reg) const |
| Print a register name for disassembly given the unique dependence tag number (FP or int). More...
|
|
void | printMnemonic (std::ostream &os, const std::string &suffix="", bool withPred=true, bool withCond64=false, ConditionCode cond64=COND_UC) const |
|
void | printTarget (std::ostream &os, Addr target, const SymbolTable *symtab) const |
|
void | printCondition (std::ostream &os, unsigned code, bool noImplicit=false) const |
|
void | printMemSymbol (std::ostream &os, const SymbolTable *symtab, const std::string &prefix, const Addr addr, const std::string &suffix) const |
|
void | printShiftOperand (std::ostream &os, IntRegIndex rm, bool immShift, uint32_t shiftAmt, IntRegIndex rs, ArmShiftType type) const |
|
void | printExtendOperand (bool firstOperand, std::ostream &os, IntRegIndex rm, ArmExtendType type, int64_t shiftAmt) const |
|
void | printDataInst (std::ostream &os, bool withImm) const |
|
void | printDataInst (std::ostream &os, bool withImm, bool immShift, bool s, IntRegIndex rd, IntRegIndex rn, IntRegIndex rm, IntRegIndex rs, uint32_t shiftAmt, ArmShiftType type, uint64_t imm) const |
|
void | advancePC (PCState &pcState) const |
|
std::string | generateDisassembly (Addr pc, const SymbolTable *symtab) const |
| Internal function to generate disassembly string. More...
|
|
Fault | disabledFault () const |
|
Fault | advSIMDFPAccessTrap64 (ExceptionLevel el) const |
| Trap an access to Advanced SIMD or FP registers due to access control bits. More...
|
|
Fault | checkFPAdvSIMDTrap64 (ThreadContext *tc, CPSR cpsr) const |
| Check an Advaned SIMD access against CPTR_EL2 and CPTR_EL3. More...
|
|
Fault | checkFPAdvSIMDEnabled64 (ThreadContext *tc, CPSR cpsr, CPACR cpacr) const |
| Check an Advaned SIMD access against CPACR_EL1, CPTR_EL2, and CPTR_EL3. More...
|
|
Fault | checkAdvSIMDOrFPEnabled32 (ThreadContext *tc, CPSR cpsr, CPACR cpacr, NSACR nsacr, FPEXC fpexc, bool fpexc_check, bool advsimd) const |
| Check if a VFP/SIMD access from aarch32 should be allowed. More...
|
|
CPSR | getPSTATEFromPSR (ThreadContext *tc, CPSR cpsr, CPSR spsr) const |
| Get the new PSTATE from a SPSR register in preparation for an exception return. More...
|
|
| StaticInst (const char *_mnemonic, ExtMachInst _machInst, OpClass __opClass) |
| Constructor. More...
|
|
template<int width> |
static bool | saturateOp (int32_t &res, int64_t op1, int64_t op2, bool sub=false) |
|
static bool | satInt (int32_t &res, int64_t op, int width) |
|
template<int width> |
static bool | uSaturateOp (uint32_t &res, int64_t op1, int64_t op2, bool sub=false) |
|
static bool | uSatInt (int32_t &res, int64_t op, int width) |
|
static uint32_t | cpsrWriteByInstr (CPSR cpsr, uint32_t val, SCR scr, NSACR nsacr, uint8_t byteMask, bool affectState, bool nmfi, ThreadContext *tc) |
|
static uint32_t | spsrWriteByInstr (uint32_t spsr, uint32_t val, uint8_t byteMask, bool affectState) |
|
template<class XC > |
static Addr | readPC (XC *xc) |
|
template<class XC > |
static void | setNextPC (XC *xc, Addr val) |
|
template<class T > |
static T | cSwap (T val, bool big) |
|
template<class T , class E > |
static T | cSwap (T val, bool big) |
|
template<class XC > |
static void | setIWNextPC (XC *xc, Addr val) |
|
template<class XC > |
static void | setAIWNextPC (XC *xc, Addr val) |
|
int32_t | imm |
|
ConditionCode | condCode |
|
bool | aarch64 |
|
uint8_t | intWidth |
|
std::bitset< Num_Flags > | flags |
| Flag values for this instruction. More...
|
|
OpClass | _opClass |
| See opClass(). More...
|
|
int8_t | _numSrcRegs |
| See numSrcRegs(). More...
|
|
int8_t | _numDestRegs |
| See numDestRegs(). More...
|
|
RegIndex | _destRegIdx [MaxInstDestRegs] |
| See destRegIdx(). More...
|
|
RegIndex | _srcRegIdx [MaxInstSrcRegs] |
| See srcRegIdx(). More...
|
|
const char * | mnemonic |
| Base mnemonic (e.g., "add"). More...
|
|
std::string * | cachedDisassembly |
| String representation of disassembly (lazily evaluated via disassemble()). More...
|
|
int8_t | _numFPDestRegs |
| The following are used to track physical register usage for machines with separate int & FP reg files. More...
|
|
int8_t | _numIntDestRegs |
|
int8_t | _numCCDestRegs |
|