Go to the documentation of this file.
41 #ifndef __ARCH_ARM_MEM_HH__
42 #define __ARCH_ARM_MEM_HH__
53 :
PredOp(mnem, _machInst, __opClass)
59 if (
flags[IsLastMicroop]) {
61 }
else if (
flags[IsMicroop]) {
107 return uops[microPC];
133 uint32_t _regMode,
AddrMode _mode,
bool _wb)
148 return uops[microPC];
189 return uops[microPC];
213 :
Memory(mnem, _machInst, __opClass, _dest, _base, _add),
imm(_imm)
233 bool _add, int32_t _imm)
234 :
MemoryImm(mnem, _machInst, __opClass, _dest, _base, _add, _imm),
256 :
MemoryImm(mnem, _machInst, __opClass, _dest, _base, _add, _imm),
277 :
MemoryDImm(mnem, _machInst, __opClass, _dest, _dest2,
278 _base, _add, _imm),
result(_result)
302 :
Memory(mnem, _machInst, __opClass, _dest, _base, _add),
319 :
MemoryReg(mnem, _machInst, __opClass, _dest, _base, _add,
320 _shiftAmt, _shiftType, _index),
339 bool _add, int32_t _imm)
340 : Base(mnem, _machInst, __opClass, _dest, _base, _add, _imm)
347 : Base(mnem, _machInst, __opClass, _dest, _base, _add,
348 _shiftAmt, _shiftType, _index)
354 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add, _imm)
361 : Base(mnem, _machInst, __opClass, _result,
362 _dest, _dest2, _base, _add, _imm)
370 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add,
371 _shiftAmt, _shiftType, _index)
378 std::stringstream
ss;
390 bool _add, int32_t _imm)
391 : Base(mnem, _machInst, __opClass, _dest, _base, _add, _imm)
398 : Base(mnem, _machInst, __opClass, _dest, _base, _add,
399 _shiftAmt, _shiftType, _index)
405 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add, _imm)
412 : Base(mnem, _machInst, __opClass, _result,
413 _dest, _dest2, _base, _add, _imm)
421 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add,
422 _shiftAmt, _shiftType, _index)
429 std::stringstream
ss;
441 bool _add, int32_t _imm)
442 : Base(mnem, _machInst, __opClass, _dest, _base, _add, _imm)
449 : Base(mnem, _machInst, __opClass, _dest, _base, _add,
450 _shiftAmt, _shiftType, _index)
456 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add, _imm)
463 : Base(mnem, _machInst, __opClass, _result,
464 _dest, _dest2, _base, _add, _imm)
472 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add,
473 _shiftAmt, _shiftType, _index)
480 std::stringstream
ss;
487 #endif //__ARCH_ARM_INSTS_MEM_HH__
MemoryOffset(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _imm)
MemoryPreIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
std::bitset< Num_Flags > flags
Flag values for this instruction.
MemoryPreIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _result, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
SrsOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, uint32_t _regMode, AddrMode _mode, bool _wb)
void printDest(std::ostream &os) const
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
StaticInstPtr fetchMicroop(MicroPC microPC) const override
Return the microop that goes with a particular micropc.
void printOffset(std::ostream &os) const
static const unsigned numMicroops
MemoryPostIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
void advancePC(PCState &pcState) const override
MemoryPostIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _result, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
StaticInstPtr fetchMicroop(MicroPC microPC) const override
Return the microop that goes with a particular micropc.
MemoryPreIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
MightBeMicro(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
void printOffset(std::ostream &os) const
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).
Base class for predicated integer operations.
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
MemoryPostIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _imm)
MemoryImm(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _imm)
static const unsigned numMicroops
void printDest(std::ostream &os) const
MemoryExDImm(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _result, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
MemoryPostIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
MemoryOffset(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
TheISA::ExtMachInst ExtMachInst
Binary extended machine instruction type.
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
MemoryDReg(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
MemoryExImm(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _result, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _imm)
void printDest(std::ostream &os) const
static const unsigned numMicroops
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
MemoryPreIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
MemoryOffset(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _result, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
MemoryOffset(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
void printDest(std::ostream &os) const
GenericISA::DelaySlotPCState< MachInst > PCState
virtual void printDest(std::ostream &os) const
void ccprintf(cp::Print &print)
MemoryPreIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _imm)
MemoryOffset(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
MemoryReg(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
StaticInstPtr fetchMicroop(MicroPC microPC) const override
Return the microop that goes with a particular micropc.
void printInst(std::ostream &os, AddrMode addrMode) const
MemoryDImm(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
Memory(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add)
virtual void printOffset(std::ostream &os) const
RfeOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _base, AddrMode _mode, bool _wb)
MemoryPostIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
Generated on Wed Sep 30 2020 14:02:00 for gem5 by doxygen 1.8.17