40 #ifndef __ARCH_X86_UTILITY_HH__
41 #define __ARCH_X86_UTILITY_HH__
68 return m5reg.cpl == 3;
135 return *(uint64_t *)(&val);
182 uint16_t
genX87Tags(uint16_t ftw, uint8_t top, int8_t spm);
201 #endif // __ARCH_X86_UTILITY_HH__
void skipFunction(ThreadContext *tc)
uint64_t getRFlags(ThreadContext *tc)
Reconstruct the rflags register from the internal gem5 register state.
void copyMiscRegs(ThreadContext *src, ThreadContext *dest)
virtual MiscReg readMiscRegNoEffect(int misc_reg) const =0
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
void storeFloat80(void *_mem, double value)
Convert and store a double as an 80-bit float.
PCState buildRetPC(const PCState &curPC, const PCState &callPC)
ThreadContext is the external interface to all thread state for anything outside of the CPU...
uint64_t getExecutingAsid(ThreadContext *tc)
static bool inUserMode(ThreadContext *tc)
void copyRegs(ThreadContext *src, ThreadContext *dest)
uint64_t getArgument(ThreadContext *tc, int &number, uint16_t size, bool fp)
uint16_t convX87XTagsToTags(uint8_t ftwx)
Convert an x87 xtag word to normal tags format.
void setRFlags(ThreadContext *tc, uint64_t val)
Set update the rflags register and internal gem5 state.
void zeroRegisters(TC *tc)
Function to insure ISA semantics about 0 registers.
void initCPU(ThreadContext *tc, int cpuId)
uint16_t genX87Tags(uint16_t ftw, uint8_t top, int8_t spm)
Generate and updated x87 tag register after a push/pop operation.
virtual void advancePC(TheISA::PCState &pcState) const =0
GenericISA::SimplePCState< MachInst > PCState
uint8_t convX87TagsToXTags(uint16_t ftw)
Convert an x87 tag word to abridged tag format.
void advancePC(PCState &pc, const StaticInstPtr &inst)
uint64_t getDoubleBits(double val)
Extract the bit string representing a double value.
double loadFloat80(const void *_mem)
Load an 80-bit float from memory and convert it to double.
void startupCPU(ThreadContext *tc, int cpuId)