Go to the documentation of this file.
38 #ifndef __ARCH_X86_INSTS_STATICINST_HH__
39 #define __ARCH_X86_INSTS_STATICINST_HH__
43 #include "debug/X86.hh"
106 void printMem(std::ostream &
os, uint8_t segment,
108 uint64_t disp, uint8_t addressSize,
bool rip)
const;
113 X86IntReg
reg = into;
134 panic(
"Tried to merge with unrecognized size %d.\n", size);
140 pick(uint64_t from,
int idx,
int size)
const
142 X86IntReg
reg = from;
143 DPRINTF(X86,
"Picking with size %d\n", size);
156 panic(
"Tried to pick with unrecognized size %d.\n", size);
163 X86IntReg
reg = from;
164 DPRINTF(X86,
"Picking with size %d\n", size);
177 panic(
"Tried to pick with unrecognized size %d.\n", size);
189 #endif //__ARCH_X86_INSTS_STATICINST_HH__
static const IntRegIndex IntFoldBit
const RegId & destRegIdx(int i) const
Return logical index (architectural reg num) of i'th destination reg.
Base, ISA-independent static instruction class.
uint64_t merge(uint64_t into, uint64_t val, int size) const
void printDestReg(std::ostream &os, int reg, int size) const
void advancePC(PCState &pcState) const override
void printReg(std::ostream &os, RegId reg, int size) const
Register ID: describe an architectural register with its class and index.
Class for register indices passed to instruction constructors.
@ FloatRegClass
Floating-point register.
RegClass computeRegClass(RegIndex _idx)
X86StaticInst(const char *mnem, ExtMachInst _machInst, OpClass __opClass)
RegClass
Enumerate the classes of registers.
void printSegment(std::ostream &os, int segment) const
void printMnemonic(std::ostream &os, const char *mnemonic) const
void printMem(std::ostream &os, uint8_t segment, uint8_t scale, RegIndex index, RegIndex base, uint64_t disp, uint8_t addressSize, bool rip) const
const char * mnemonic
Base mnemonic (e.g., "add").
InstRegIndex(RegIndex _idx)
const RegId & srcRegIdx(int i) const
Return logical index (architectural reg num) of i'th source reg.
std::string generateDisassembly(Addr pc, const Loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
This is exposed globally, independent of the ISA.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
@ IntRegClass
Integer register.
Base class for all X86 static instructions.
@ CCRegClass
Condition-code register.
@ MiscRegClass
Control (misc) register.
uint64_t pick(uint64_t from, int idx, int size) const
void printSrcReg(std::ostream &os, int reg, int size) const
int64_t signedPick(uint64_t from, int idx, int size) const
#define panic(...)
This implements a cprintf based panic() function.
Generated on Tue Jun 22 2021 15:28:20 for gem5 by doxygen 1.8.17