Go to the documentation of this file.
38 #ifndef __ARCH_ARM_INSTS_MISC_HH__
39 #define __ARCH_ARM_INSTS_MISC_HH__
53 ArmISA::
PredOp(mnem, _machInst, __opClass),
dest(_dest)
79 OpClass __opClass, uint32_t _imm, uint8_t _byteMask) :
80 MsrBase(mnem, _machInst, __opClass, _byteMask),
imm(_imm)
93 OpClass __opClass,
RegIndex _op1, uint8_t _byteMask) :
94 MsrBase(mnem, _machInst, __opClass, _byteMask),
op1(_op1)
112 ArmISA::
PredOp(mnem, _machInst, __opClass),
op1(_op1),
dest(_dest),
131 ArmISA::
PredOp(mnem, _machInst, __opClass),
op1(_op1),
op2(_op2),
146 ArmISA::
PredOp(mnem, _machInst, __opClass),
imm(_imm)
160 OpClass __opClass,
RegIndex _dest, uint64_t _imm) :
161 ArmISA::
PredOp(mnem, _machInst, __opClass),
dest(_dest),
imm(_imm)
177 ArmISA::
PredOp(mnem, _machInst, __opClass),
dest(_dest),
op1(_op1)
191 ArmISA::
PredOp(mnem, _machInst, __opClass),
dest(_dest)
206 OpClass __opClass,
RegIndex _dest, uint64_t _imm,
208 ArmISA::
PredOp(mnem, _machInst, __opClass),
228 ArmISA::
PredOp(mnem, _machInst, __opClass),
248 ArmISA::
PredOp(mnem, _machInst, __opClass),
266 ArmISA::
PredOp(mnem, _machInst, __opClass),
284 ArmISA::
PredOp(mnem, _machInst, __opClass),
302 ArmISA::
PredOp(mnem, _machInst, __opClass),
320 ArmISA::
PredOp(mnem, _machInst, __opClass),
337 uint64_t _imm1, uint64_t _imm2) :
338 ArmISA::
PredOp(mnem, _machInst, __opClass),
356 RegIndex _op1, uint64_t _imm1, uint64_t _imm2) :
357 ArmISA::
PredOp(mnem, _machInst, __opClass),
377 int32_t _shiftAmt, ArmISA::ArmShiftType _shiftType) :
378 ArmISA::
PredOp(mnem, _machInst, __opClass),
393 ArmISA::
PredOp(mnem, _machInst, __opClass)
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.
RegImmRegShiftOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, uint64_t _imm, RegIndex _op1, int32_t _shiftAmt, ArmISA::ArmShiftType _shiftType)
RegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest)
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
void performTlbi(ExecContext *xc, ArmISA::MiscRegIndex dest_idx, RegVal value) const
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
void printMsrBase(std::ostream &os) const
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
RegImmImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, uint64_t _imm1, uint64_t _imm2)
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
MrrcOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::MiscRegIndex _op1, RegIndex _dest, RegIndex _dest2, uint32_t _imm)
RegRegRegImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _op1, RegIndex _op2, uint64_t _imm)
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.
RegMiscRegImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, ArmISA::MiscRegIndex _op1, uint64_t _imm)
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.
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
UnknownOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass)
MsrRegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _op1, uint8_t _byteMask)
std::shared_ptr< FaultBase > Fault
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.
McrMrcMiscInst(const char *_mnemonic, ArmISA::ExtMachInst _machInst, uint64_t _iss, ArmISA::MiscRegIndex _miscReg)
ImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, uint64_t _imm)
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.
RegRegRegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _op1, RegIndex _op2)
ArmISA::ArmShiftType shiftType
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
MsrImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, uint32_t _imm, uint8_t _byteMask)
RegImmRegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, uint64_t _imm, RegIndex _op1)
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
RegRegRegRegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _op1, RegIndex _op2, RegIndex _op3)
RegRegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _op1)
This class is also used for IMPLEMENTATION DEFINED registers, whose mcr/mrc behaviour is trappable ev...
ArmISA::MiscRegIndex dest
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
RegRegImmImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _op1, uint64_t _imm1, uint64_t _imm2)
ArmISA::MiscRegIndex dest
MrsOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest)
Fault execute(ExecContext *xc, trace::InstRecord *traceData) const override
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
TlbiOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::MiscRegIndex _dest, RegIndex _op1, uint64_t _imm)
Fault execute(ExecContext *xc, trace::InstRecord *traceData) const override
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
McrrOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _op1, RegIndex _op2, ArmISA::MiscRegIndex _dest, uint32_t _imm)
McrMrcImplDefined(const char *_mnemonic, ArmISA::ExtMachInst _machInst, uint64_t _iss, ArmISA::MiscRegIndex _miscReg)
The ExecContext is an abstract base class the provides the interface used by the ISA to manipulate th...
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
RegImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, uint64_t _imm)
Base class for predicated integer operations.
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
MiscRegRegImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::MiscRegIndex _dest, RegIndex _op1, uint64_t _imm)
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
ArmISA::MiscRegIndex miscReg
MsrBase(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, uint8_t _byteMask)
RegRegImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _op1, uint64_t _imm)
Certain mrc/mcr instructions act as nops or flush the pipe based on what register the instruction is ...
Generated on Sun Jul 30 2023 01:56:48 for gem5 by doxygen 1.8.17