Go to the documentation of this file.
38 #ifndef __ARCH_ARM_MEM64_HH__
39 #define __ARCH_ARM_MEM64_HH__
83 if (
flags[IsLastMicroop]) {
85 }
else if (
flags[IsMicroop]) {
96 if (
flags[IsLastMicroop]) {
98 }
else if (
flags[IsMicroop]) {
145 return uops[microPC];
162 :
Memory64(mnem, _machInst, __opClass, _dest, _base),
imm(_imm)
177 :
MemoryImm64(mnem, _machInst, __opClass, _dest, _base, _imm),
193 :
MemoryDImm64(mnem, _machInst, __opClass, _dest, _dest2,
194 _base, _imm),
result(_result)
207 :
MemoryImm64(mnem, _machInst, __opClass, _dest, _base, _imm)
220 :
MemoryImm64(mnem, _machInst, __opClass, _dest, _base, _imm)
238 :
Memory64(mnem, _machInst, __opClass, _dest, _base),
251 :
Memory64(mnem, _machInst, __opClass, _dest, _base)
266 :
Memory64(mnem, _machInst, __opClass, _dest, _base),
result(_result)
279 OpClass __opClass,
RegIndex _dest, int64_t _imm)
280 :
Memory64(mnem, _machInst, __opClass, _dest, int_reg::
Zero),
imm(_imm)
297 :
Memory64(mnem, _machInst, __opClass, _dest, _base),
310 #endif //__ARCH_ARM_INSTS_MEM_HH__
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.
void setExcAcRel(bool exclusive, bool acrel)
MemoryPreIndex64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _base, int64_t _imm)
MightBeMicro64(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
virtual const PCStateBase & pcState() const =0
SysDC64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _base, MiscRegIndex _dest, uint64_t _imm)
StaticInstPtr fetchMicroop(MicroPC microPC) const override
Return the microop that goes with a particular micropc.
MemoryRaw64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _base)
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
MemoryPostIndex64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _base, int64_t _imm)
static bool isSP(RegIndex reg)
void advancePC(PCStateBase &pcState) const override
void advancePC(ThreadContext *tc) const override
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.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
MemoryLiteral64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, int64_t _imm)
MemoryReg64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _base, RegIndex _offset, ArmExtendType _type, uint64_t _shiftAmt)
std::bitset< Num_Flags > flags
Flag values for this instruction.
MemoryDImm64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _dest2, RegIndex _base, int64_t _imm)
MemoryEx64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _base, RegIndex _result)
void startDisassembly(std::ostream &os) const
MemoryDImmEx64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _result, RegIndex _dest, RegIndex _dest2, RegIndex _base, int32_t _imm)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
This class is implementing the Base class for a generic AArch64 instruction which is making use of sy...
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.
static const unsigned numMicroops
MemoryAtomicPair64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _base, RegIndex _result)
MemoryImm64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _base, int64_t _imm)
bool baseIsSP
True if the base register is SP (used for SP alignment checking).
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
constexpr RegId Zero(CCRegClass, _ZeroIdx)
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
Memory64(const char *mnem, ExtMachInst _machInst, OpClass __opClass, RegIndex _dest, RegIndex _base)
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
Generated on Thu Jun 16 2022 10:41:38 for gem5 by doxygen 1.8.17