40 #ifndef __ARCH_X86_INSTS_MICROREGOP_HH__ 41 #define __ARCH_X86_INSTS_MICROREGOP_HH__ 61 const char *mnem,
const char *_instMnem, uint64_t setFlags,
63 uint8_t _dataSize, uint16_t _ext,
68 dataSize(_dataSize), ext(_ext)
70 foldOBit = (dataSize == 1 && !_machInst.rex.present) ? 1 << 6 : 0;
74 uint64_t
genFlags(uint64_t oldFlags, uint64_t flagMask,
75 uint64_t _dest, uint64_t _src1, uint64_t _src2,
76 bool subtract =
false)
const;
86 const char *mnem,
const char *_instMnem, uint64_t setFlags,
88 uint8_t _dataSize, uint16_t _ext,
90 RegOpBase(_machInst, mnem, _instMnem, setFlags,
91 _src1, _dest, _dataSize, _ext,
108 const char * mnem,
const char *_instMnem, uint64_t setFlags,
110 uint8_t _dataSize, uint16_t _ext,
112 RegOpBase(_machInst, mnem, _instMnem, setFlags,
113 _src1, _dest, _dataSize, _ext,
124 #endif //__ARCH_X86_INSTS_MICROREGOP_HH__
Class for register indices passed to instruction constructors.
Base classes for RegOps which provides a generateDisassembly method.
uint64_t genFlags(uint64_t oldFlags, uint64_t flagMask, uint64_t _dest, uint64_t _src1, uint64_t _src2, bool subtract=false) const
RegOp(ExtMachInst _machInst, const char *mnem, const char *_instMnem, uint64_t setFlags, InstRegIndex _src1, InstRegIndex _src2, InstRegIndex _dest, uint8_t _dataSize, uint16_t _ext, OpClass __opClass)
RegOpImm(ExtMachInst _machInst, const char *mnem, const char *_instMnem, uint64_t setFlags, InstRegIndex _src1, uint8_t _imm8, InstRegIndex _dest, uint8_t _dataSize, uint16_t _ext, OpClass __opClass)
RegOpBase(ExtMachInst _machInst, const char *mnem, const char *_instMnem, uint64_t setFlags, InstRegIndex _src1, InstRegIndex _dest, uint8_t _dataSize, uint16_t _ext, OpClass __opClass)
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
This is exposed globally, independent of the ISA.
TheISA::ExtMachInst ExtMachInst
Binary extended machine instruction type.
std::string generateDisassembly(Addr pc, const SymbolTable *symtab) const
Internal function to generate disassembly string.