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"
101 void printMem(std::ostream &
os, uint8_t segment,
103 uint64_t disp, uint8_t addressSize,
bool rip)
const;
105 inline uint64_t
merge(uint64_t into, uint64_t
val,
int size)
const
107 X86IntReg
reg = into;
130 panic(
"Tried to merge with unrecognized size %d.\n", size);
135 inline uint64_t
pick(uint64_t from,
int idx,
int size)
const
137 X86IntReg
reg = from;
138 DPRINTF(X86,
"Picking with size %d\n", size);
152 panic(
"Tried to pick with unrecognized size %d.\n", size);
156 inline int64_t
signedPick(uint64_t from,
int idx,
int size)
const
158 X86IntReg
reg = from;
159 DPRINTF(X86,
"Picking with size %d\n", size);
173 panic(
"Tried to pick with unrecognized size %d.\n", size);
185 #endif //__ARCH_X86_INSTS_STATICINST_HH__
static const IntRegIndex IntFoldBit
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)
RegId _srcRegIdx[MaxInstSrcRegs]
See srcRegIdx().
RegId _destRegIdx[MaxInstDestRegs]
See destRegIdx().
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").
TheISA::ExtMachInst ExtMachInst
Binary extended machine instruction type.
InstRegIndex(RegIndex _idx)
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 Wed Sep 30 2020 14:02:00 for gem5 by doxygen 1.8.17