38#ifndef __ARCH_X86_MISCREGS_HH__
39#define __ARCH_X86_MISCREGS_HH__
46#include "debug/MiscRegs.hh"
640 Bitfield<18> osxsave;
904class SegDescriptorBase
908 getter(
const uint64_t &storage)
const
910 return (
bits(storage, 63, 56) << 24) |
bits(storage, 39, 16);
914 setter(uint64_t &storage, uint32_t
base)
927 uint32_t
limit = (
bits(storage, 51, 48) << 16) |
928 bits(storage, 15, 0);
929 if (
bits(storage, 55))
939 "Inlimitid segment limit %#x",
limit);
965 Bitfield<43> codeOrData;
994 Bitfield<46, 45>
dpl;
997 Bitfield<43> codeOrData;
1017 Bitfield<31, 0>
base;
1028 Bitfield<11, 8>
type;
1040 Bitfield<46, 45>
dpl;
1041 Bitfield<43, 40>
type;
1042 Bitfield<36, 32>
count;
1051 Bitfield<46, 45>
dpl;
1052 Bitfield<43, 40>
type;
1085 Bitfield<51, 12>
base;
void setter(uint64_t &storage, uint32_t limit)
uint32_t getter(const uint64_t &storage) const
constexpr T bits(T val, unsigned first, unsigned last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
constexpr void replaceBits(T &val, unsigned first, unsigned last, B bit_val)
A convenience function to replace bits first to last of val with bit_val in place.
#define BitUnion64(name)
Use this to define conveniently sized values overlayed with bitfields.
#define EndBitUnion(name)
This closes off the class and union started by the above macro.
#define SubBitUnion(name, first, last)
Regular bitfields These define macros for read/write regular bitfield based subbitfields.
#define EndSubBitUnion(name)
This closes off the union created above and gives it a name.
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
constexpr RegClass miscRegClass
static bool isValid(int index)
static RegIndex mcStatus(int index)
static RegIndex cr(int index)
static RegIndex mtrrPhysBase(int index)
static RegIndex iorrMask(int index)
static RegIndex mcMisc(int index)
static RegIndex perfEvtCtr(int index)
static RegIndex segSel(int index)
static RegIndex segAttr(int index)
static RegIndex perfEvtSel(int index)
static RegIndex xcr(int index)
static RegIndex segBase(int index)
static RegIndex segLimit(int index)
static RegIndex mcCtl(int index)
static RegIndex iorrBase(int index)
static RegIndex mtrrPhysMask(int index)
static RegIndex segEffBase(int index)
static RegIndex mcAddr(int index)
Bitfield< 10 > osxmmexcpt
Bitfield< 15, 14 > altAddr
Bitfield< 31, 16 > modelSpecificCode
Bitfield< 51, 48 > limitHigh
Bitfield< 31, 24 > counterMask
Bitfield< 14 > expandDown
Bitfield< 63, 48 > sysretCsAndSs
Bitfield< 39, 16 > baseLow
Bitfield< 56, 32 > otherInfo
BitfieldType< SegDescriptorLimit > limit
Bitfield< 31, 16 > selector
constexpr uint32_t CcFlagMask
Bitfield< 3 > defaultSize
Bitfield< 15, 0 > limitLow
Bitfield< 31, 5 > paePdtb
Bitfield< 13, 12 > defAddr
Bitfield< 51, 12 > physmask
constexpr uint32_t CfofMask
Bitfield< 51, 12 > physbase
Bitfield< 6 > granularity
Bitfield< 15, 0 > offsetLow
Bitfield< 15, 8 > unitMask
Bitfield< 47, 32 > syscallCsAndSs
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
constexpr char MiscRegClassName[]
@ MiscRegClass
Control (misc) register.