38 #ifndef __ARCH_X86_MISCREGS_HH__ 39 #define __ARCH_X86_MISCREGS_HH__ 413 assert(index >= 0 && index <
NumCRegs);
420 assert(index >= 0 && index <
NumDRegs);
624 Bitfield<18> osxsave;
869 class SegDescriptorBase
873 getter(
const uint64_t &storage)
const 875 return (
bits(storage, 63, 56) << 24) |
bits(storage, 39, 16);
879 setter(uint64_t &storage, uint32_t
base)
892 uint32_t
limit = (
bits(storage, 51, 48) << 16) |
893 bits(storage, 15, 0);
894 if (
bits(storage, 55))
895 limit = (limit << 12) |
mask(12);
902 bool g = (
bits(limit, 31, 24) != 0);
904 "Inlimitid segment limit %#x", limit);
930 Bitfield<43> codeOrData;
959 Bitfield<46, 45>
dpl;
962 Bitfield<43> codeOrData;
982 Bitfield<31, 0> base;
993 Bitfield<11, 8> type;
1005 Bitfield<46, 45> dpl;
1006 Bitfield<43, 40> type;
1007 Bitfield<36, 32>
count;
1016 Bitfield<46, 45> dpl;
1017 Bitfield<43, 40> type;
1050 Bitfield<51, 12> base;
1056 #endif // __ARCH_X86_INTREGS_HH__
Bitfield< 51, 48 > limitHigh
Bitfield< 51, 12 > physmask
static MiscRegIndex MISCREG_PERF_EVT_CTR(int index)
Bitfield< 13, 12 > defAddr
Bitfield< 15, 8 > unitMask
Bitfield< 63, 48 > sysretCsAndSs
EndBitUnion(TriggerIntMessage) namespace DeliveryMode
Bitfield< 15, 14 > altAddr
Bitfield< 47, 32 > syscallCsAndSs
Bitfield< 6 > granularity
uint32_t getter(const uint64_t &storage) const
Bitfield< 3 > defaultSize
Bitfield< 14 > expandDown
Bitfield< 39, 16 > baseLow
static bool isValidMiscReg(int index)
Bitfield< 15, 0 > offsetLow
Bitfield< 10 > osxmmexcpt
BitUnion32(TriggerIntMessage) Bitfield< 7
Bitfield< 51, 12 > physbase
static MiscRegIndex MISCREG_SEG_ATTR(int index)
static MiscRegIndex MISCREG_CR(int index)
static MiscRegIndex MISCREG_SEG_LIMIT(int index)
void setter(uint64_t &storage, uint32_t limit)
void replaceBits(T &val, int first, int last, B bit_val)
A convenience function to replace bits first to last of val with bit_val in place.
Bitfield< 31, 5 > paePdtb
BitUnion64(VAddr) Bitfield< 20
Bitfield< 31, 16 > selector
static MiscRegIndex MISCREG_MTRR_PHYS_BASE(int index)
EndSubBitUnion(type) EndBitUnion(SegDescriptor) BitUnion64(TSSlow) Bitfield< 63
TSS Descriptor (long mode - 128 bits) the lower 64 bits.
static MiscRegIndex MISCREG_SEG_SEL(int index)
Bitfield< 31, 24 > counterMask
Bitfield< 15, 0 > limitLow
BitfieldType< SegDescriptorLimit > limit
static MiscRegIndex MISCREG_SEG_BASE(int index)
This is exposed globally, independent of the ISA.
Bitfield< 31, 16 > modelSpecificCode
static MiscRegIndex MISCREG_MTRR_PHYS_MASK(int index)
static MiscRegIndex MISCREG_PERF_EVT_SEL(int index)
SubBitUnion(type, 43, 40) Bitfield< 43 > codeOrData
static MiscRegIndex MISCREG_MC_ADDR(int index)
static MiscRegIndex MISCREG_MC_CTL(int index)
static MiscRegIndex MISCREG_SEG_EFF_BASE(int index)
Bitfield< 56, 32 > otherInfo
static MiscRegIndex MISCREG_IORR_BASE(int index)
static MiscRegIndex MISCREG_IORR_MASK(int index)
const uint32_t ccFlagMask
static MiscRegIndex MISCREG_MC_MISC(int index)
static MiscRegIndex MISCREG_MC_STATUS(int index)
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it...
static MiscRegIndex MISCREG_DR(int index)
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...