38 #ifndef __ARCH_X86_INSTS_MICROOP_HH__
39 #define __ARCH_X86_INSTS_MICROOP_HH__
52 namespace condition_tests
106 const char *mnem,
const char *_instMnem,
107 uint64_t setFlags, OpClass __opClass) :
111 const int ChunkSize =
sizeof(
unsigned long);
112 const int Chunks =
sizeof(setFlags) / ChunkSize;
116 for (
int i = 0;
i < Chunks;
i++) {
117 unsigned shift =
i * ChunkSize * 8;
126 std::stringstream
ss;
139 if (
flags[IsLastMicroop])
149 if (
flags[IsLastMicroop])
170 const char *inst_mnem, uint64_t set_flags, OpClass op_class,
virtual std::unique_ptr< PCStateBase > branchTarget(const PCStateBase &pc) const
Return the target address for a PC-relative branch.
const char * mnemonic
Base mnemonic (e.g., "add").
std::bitset< Num_Flags > flags
Flag values for this instruction.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual const PCStateBase & pcState() const =0
MicroCondBase(ExtMachInst mach_inst, const char *mnem, const char *inst_mnem, uint64_t set_flags, OpClass op_class, uint8_t _cc)
bool checkCondition(uint64_t flags, int condition) const
void advancePC(PCStateBase &pcState) const override
virtual std::unique_ptr< PCStateBase > branchTarget(const PCStateBase &pc) const
Return the target address for a PC-relative branch.
X86MicroopBase(ExtMachInst _machInst, const char *mnem, const char *_instMnem, uint64_t setFlags, OpClass __opClass)
void advancePC(ThreadContext *tc) const override
std::string generateDisassembly(Addr pc, const loader::SymbolTable *symtab) const override
Internal function to generate disassembly string.
Base class for all X86 static instructions.
GEM5_DEPRECATED_NAMESPACE(IntelMP, intelmp)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
void ccprintf(cp::Print &print)