Go to the documentation of this file.
35 #include "params/X86ISA.hh"
43 SegAttr csAttr, SegAttr ssAttr, RFLAGS rflags)
47 m5reg.mode = LongMode;
53 m5reg.mode = LegacyMode;
63 m5reg.cpl = csAttr.dpl;
64 m5reg.paging = cr0.pg;
80 }
else if (csAttr.defaultSize) {
91 }
else if (ssAttr.defaultSize) {
125 LocalApicBase lApicBase = 0;
126 lApicBase.base = 0xFEE00000 >> 12;
127 lApicBase.enable = 1;
136 "CPUID vendor string must be 12 characters\n");
226 if (toggled.pg && efer.lme) {
258 if (toggled.pae || toggled.pse || toggled.pge) {
268 SegAttr newCSAttr =
val;
269 if (toggled.longMode) {
270 if (newCSAttr.longMode) {
316 if (!efer.lma || !csAttr.longMode)
356 if (dr7.l0 || dr7.g0) {
357 panic(
"Debug register breakpoints not implemented.\n");
363 if (dr7.l1 || dr7.g1) {
364 panic(
"Debug register breakpoints not implemented.\n");
370 if (dr7.l2 || dr7.g2) {
371 panic(
"Debug register breakpoints not implemented.\n");
377 if (dr7.l3 || dr7.g3) {
378 panic(
"Debug register breakpoints not implemented.\n");
383 dr7.rw0 = newDR7.rw0;
384 dr7.len0 = newDR7.len0;
385 dr7.rw1 = newDR7.rw1;
386 dr7.len1 = newDR7.len1;
387 dr7.rw2 = newDR7.rw2;
388 dr7.len2 = newDR7.len2;
389 dr7.rw3 = newDR7.rw3;
390 dr7.len3 = newDR7.len3;
void setMiscRegNoEffect(int miscReg, RegVal val)
constexpr T insertBits(T val, unsigned first, unsigned last, B bit_val)
Returns val with bits first to last set to the LSBs of bit_val.
virtual void setThreadContext(ThreadContext *_tc)
RegVal readMiscReg(int miscReg)
virtual BaseMMU * getMMUPtr()=0
void updateHandyM5Reg(Efer efer, CR0 cr0, SegAttr csAttr, SegAttr ssAttr, RFLAGS rflags)
void setMiscReg(int miscReg, RegVal val)
void setThreadContext(ThreadContext *_tc) override
void serialize(CheckpointOut &cp) const override
Serialize an object.
std::string getVendorString() const
ThreadContext is the external interface to all thread state for anything outside of the CPU.
Cycles curCycle() const
Determine the current cycle, corresponding to a tick aligned to a clock edge.
static bool isValidMiscReg(int index)
virtual ContextID contextId() const =0
RegVal regVal[NUM_MISCREGS]
#define SERIALIZE_ARRAY(member, size)
This is exposed globally, independent of the ISA.
RegVal readMiscRegNoEffect(int miscReg) const
static MiscRegIndex MISCREG_SEG_EFF_BASE(int index)
#define UNSERIALIZE_ARRAY(member, size)
std::ostream CheckpointOut
virtual TheISA::Decoder * getDecoderPtr()=0
void unserialize(CheckpointIn &cp) override
Unserialize an object.
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
virtual BaseCPU * getCpuPtr()=0
#define ULL(N)
uint64_t constant
#define panic(...)
This implements a cprintf based panic() function.
Generated on Tue Jun 22 2021 15:28:19 for gem5 by doxygen 1.8.17