Go to the documentation of this file.
38 #ifndef __ARCH_ARM_INSTS_MISC_HH__
39 #define __ARCH_ARM_INSTS_MISC_HH__
52 ArmISA::IntRegIndex _dest) :
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)
90 ArmISA::IntRegIndex
op1;
93 OpClass __opClass, ArmISA::IntRegIndex _op1, uint8_t _byteMask) :
94 MsrBase(mnem, _machInst, __opClass, _byteMask),
op1(_op1)
111 ArmISA::IntRegIndex _dest2, uint32_t _imm) :
112 ArmISA::
PredOp(mnem, _machInst, __opClass),
op1(_op1),
dest(_dest),
129 ArmISA::IntRegIndex _op1, ArmISA::IntRegIndex _op2,
131 ArmISA::
PredOp(mnem, _machInst, __opClass),
op1(_op1),
op2(_op2),
146 ArmISA::
PredOp(mnem, _machInst, __opClass),
imm(_imm)
160 OpClass __opClass, ArmISA::IntRegIndex _dest, uint64_t _imm) :
161 ArmISA::
PredOp(mnem, _machInst, __opClass),
dest(_dest),
imm(_imm)
175 OpClass __opClass, ArmISA::IntRegIndex _dest,
176 ArmISA::IntRegIndex _op1) :
177 ArmISA::
PredOp(mnem, _machInst, __opClass),
dest(_dest),
op1(_op1)
190 ArmISA::IntRegIndex _dest) :
191 ArmISA::
PredOp(mnem, _machInst, __opClass),
dest(_dest)
206 OpClass __opClass, ArmISA::IntRegIndex _dest, uint64_t _imm,
207 ArmISA::IntRegIndex _op1) :
208 ArmISA::
PredOp(mnem, _machInst, __opClass),
225 OpClass __opClass, ArmISA::IntRegIndex _dest,
226 ArmISA::IntRegIndex _op1, ArmISA::IntRegIndex _op2,
228 ArmISA::
PredOp(mnem, _machInst, __opClass),
245 OpClass __opClass, ArmISA::IntRegIndex _dest,
246 ArmISA::IntRegIndex _op1, ArmISA::IntRegIndex _op2,
247 ArmISA::IntRegIndex _op3) :
248 ArmISA::
PredOp(mnem, _machInst, __opClass),
264 OpClass __opClass, ArmISA::IntRegIndex _dest,
265 ArmISA::IntRegIndex _op1, ArmISA::IntRegIndex _op2) :
266 ArmISA::
PredOp(mnem, _machInst, __opClass),
282 OpClass __opClass, ArmISA::IntRegIndex _dest,
283 ArmISA::IntRegIndex _op1, uint64_t _imm) :
284 ArmISA::
PredOp(mnem, _machInst, __opClass),
301 ArmISA::IntRegIndex _op1, uint64_t _imm) :
302 ArmISA::
PredOp(mnem, _machInst, __opClass),
318 OpClass __opClass, ArmISA::IntRegIndex _dest,
320 ArmISA::
PredOp(mnem, _machInst, __opClass),
336 OpClass __opClass, ArmISA::IntRegIndex _dest,
337 uint64_t _imm1, uint64_t _imm2) :
338 ArmISA::
PredOp(mnem, _machInst, __opClass),
355 OpClass __opClass, ArmISA::IntRegIndex _dest,
356 ArmISA::IntRegIndex _op1, uint64_t _imm1, uint64_t _imm2) :
357 ArmISA::
PredOp(mnem, _machInst, __opClass),
375 OpClass __opClass, ArmISA::IntRegIndex _dest,
376 uint64_t _imm, ArmISA::IntRegIndex _op1,
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.
RegImmRegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _dest, uint64_t _imm, ArmISA::IntRegIndex _op1)
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, ArmISA::IntRegIndex _dest, uint64_t _imm, ArmISA::IntRegIndex _op1, int32_t _shiftAmt, ArmISA::ArmShiftType _shiftType)
RegRegImmImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _dest, ArmISA::IntRegIndex _op1, uint64_t _imm1, uint64_t _imm2)
RegRegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _dest, ArmISA::IntRegIndex _op1)
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.
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
ArmISA::IntRegIndex dest2
MsrRegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _op1, uint8_t _byteMask)
RegMiscRegImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _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.
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)
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.
Fault execute(ExecContext *xc, Trace::InstRecord *traceData) const override
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.
MiscRegRegImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::MiscRegIndex _dest, ArmISA::IntRegIndex _op1, uint64_t _imm)
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)
RegImmImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _dest, uint64_t _imm1, uint64_t _imm2)
McrrOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _op1, ArmISA::IntRegIndex _op2, ArmISA::MiscRegIndex _dest, uint32_t _imm)
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, ArmISA::IntRegIndex _dest, ArmISA::IntRegIndex _op1, ArmISA::IntRegIndex _op2)
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.
ArmISA::MiscRegIndex dest
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
RegRegRegImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _dest, ArmISA::IntRegIndex _op1, ArmISA::IntRegIndex _op2, uint64_t _imm)
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
Fault execute(ExecContext *xc, Trace::InstRecord *traceData) const override
RegRegRegRegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _dest, ArmISA::IntRegIndex _op1, ArmISA::IntRegIndex _op2, ArmISA::IntRegIndex _op3)
RegImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _dest, uint64_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.
RegRegImmOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _dest, ArmISA::IntRegIndex _op1, 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.
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)
RegOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _dest)
MrsOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::IntRegIndex _dest)
Certain mrc/mcr instructions act as nops or flush the pipe based on what register the instruction is ...
MrrcOp(const char *mnem, ArmISA::ExtMachInst _machInst, OpClass __opClass, ArmISA::MiscRegIndex _op1, ArmISA::IntRegIndex _dest, ArmISA::IntRegIndex _dest2, uint32_t _imm)
Generated on Tue Feb 8 2022 11:46:57 for gem5 by doxygen 1.8.17