42 #ifndef __ARCH_ARM_MEM_HH__
43 #define __ARCH_ARM_MEM_HH__
59 :
PredOp(mnem, _machInst, __opClass),
70 :
PredOp(mnem, _machInst, __opClass)
76 if (
flags[IsLastMicroop]) {
78 }
else if (
flags[IsMicroop]) {
124 return uops[microPC];
149 uint32_t _regMode,
AddrMode _mode,
bool _wb)
164 return uops[microPC];
204 return uops[microPC];
228 :
Memory(mnem, _machInst, __opClass, _dest, _base, _add),
imm(_imm)
248 bool _add, int32_t _imm)
249 :
MemoryImm(mnem, _machInst, __opClass, _dest, _base, _add, _imm),
271 :
MemoryImm(mnem, _machInst, __opClass, _dest, _base, _add, _imm),
292 :
MemoryDImm(mnem, _machInst, __opClass, _dest, _dest2,
293 _base, _add, _imm),
result(_result)
317 :
Memory(mnem, _machInst, __opClass, _dest, _base, _add),
334 :
MemoryReg(mnem, _machInst, __opClass, _dest, _base, _add,
335 _shiftAmt, _shiftType, _index),
354 bool _add, int32_t _imm)
355 : Base(mnem, _machInst, __opClass, _dest, _base, _add, _imm)
362 : Base(mnem, _machInst, __opClass, _dest, _base, _add,
363 _shiftAmt, _shiftType, _index)
369 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add, _imm)
376 : Base(mnem, _machInst, __opClass, _result,
377 _dest, _dest2, _base, _add, _imm)
385 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add,
386 _shiftAmt, _shiftType, _index)
392 std::stringstream
ss;
404 bool _add, int32_t _imm)
405 : Base(mnem, _machInst, __opClass, _dest, _base, _add, _imm)
412 : Base(mnem, _machInst, __opClass, _dest, _base, _add,
413 _shiftAmt, _shiftType, _index)
419 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add, _imm)
426 : Base(mnem, _machInst, __opClass, _result,
427 _dest, _dest2, _base, _add, _imm)
435 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add,
436 _shiftAmt, _shiftType, _index)
442 std::stringstream
ss;
454 bool _add, int32_t _imm)
455 : Base(mnem, _machInst, __opClass, _dest, _base, _add, _imm)
462 : Base(mnem, _machInst, __opClass, _dest, _base, _add,
463 _shiftAmt, _shiftType, _index)
469 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add, _imm)
476 : Base(mnem, _machInst, __opClass, _result,
477 _dest, _dest2, _base, _add, _imm)
485 : Base(mnem, _machInst, __opClass, _dest, _dest2, _base, _add,
486 _shiftAmt, _shiftType, _index)
492 std::stringstream
ss;
499 #endif //__ARCH_ARM_INSTS_MEM_HH__
void ccprintf(cp::Print &print)
virtual void printOffset(std::ostream &os) const
StaticInstPtr fetchMicroop(MicroPC microPC) const
Return the microop that goes with a particular micropc.
static const unsigned numMicroops
void printDest(std::ostream &os) const
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const
MemoryOffset(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
MemoryPostIndex(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)
MemoryOffset(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _result, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
void printReg(std::ostream &os, int reg) const
Print a register name for disassembly given the unique dependence tag number (FP or int)...
Base class for predicated integer operations.
void printDest(std::ostream &os) const
MemoryPreIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
Swap(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _op1, IntRegIndex _base)
SrsOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, uint32_t _regMode, AddrMode _mode, bool _wb)
Memory(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add)
MemoryOffset(const char *mnem, ExtMachInst _machInst, OpClass __opClass, 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)
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const
MemoryPostIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
std::bitset< Num_Flags > flags
Flag values for this instruction.
static const unsigned numMicroops
MemoryPostIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _imm)
StaticInstPtr fetchMicroop(MicroPC microPC) const
Return the microop that goes with a particular micropc.
MightBeMicro(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
MemoryOffset(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _imm)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
MemoryPostIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
MemoryPreIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
MemoryPreIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _result, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
void printDest(std::ostream &os) const
MemoryPreIndex(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _imm)
void printOffset(std::ostream &os) const
static const unsigned numMicroops
MemoryDReg(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _shiftAmt, ArmShiftType _shiftType, IntRegIndex _index)
MemoryDImm(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
MemoryImm(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _dest, IntRegIndex _base, bool _add, int32_t _imm)
GenericISA::SimplePCState< MachInst > PCState
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const
MemoryExDImm(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _result, IntRegIndex _dest, IntRegIndex _dest2, IntRegIndex _base, bool _add, int32_t _imm)
void advancePC(PCState &pcState) const
MemoryPreIndex(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)
void printInst(std::ostream &os, AddrMode addrMode) const
TheISA::ExtMachInst ExtMachInst
Binary extended machine instruction type.
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
void printOffset(std::ostream &os) const
RfeOp(const char *mnem, ExtMachInst _machInst, OpClass __opClass, IntRegIndex _base, AddrMode _mode, bool _wb)
virtual void printDest(std::ostream &os) const
StaticInstPtr fetchMicroop(MicroPC microPC) const
Return the microop that goes with a particular micropc.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const
Internal function to generate disassembly string.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const
Internal function to generate disassembly string.