46 {
__write_msr(gsl::narrow_cast<field_type>(addr), val); }
50 constexpr
const auto addr = 0x00000277U;
51 constexpr
const auto name =
"ia32_pat";
56 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
61 constexpr
const auto mask = 0x0000000000000007UL;
62 constexpr
const auto from = 0;
63 constexpr
const auto name =
"pa0";
68 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
72 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
78 constexpr
const auto mask = 0x0000000000000700UL;
79 constexpr
const auto from = 8;
80 constexpr
const auto name =
"pa1";
85 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
89 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
95 constexpr
const auto mask = 0x0000000000070000UL;
96 constexpr
const auto from = 16;
97 constexpr
const auto name =
"pa2";
102 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
106 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
112 constexpr
const auto mask = 0x0000000007000000UL;
113 constexpr
const auto from = 24;
114 constexpr
const auto name =
"pa3";
119 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
123 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
129 constexpr
const auto mask = 0x0000000700000000UL;
130 constexpr
const auto from = 32;
131 constexpr
const auto name =
"pa4";
136 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
140 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
146 constexpr
const auto mask = 0x0000070000000000UL;
147 constexpr
const auto from = 40;
148 constexpr
const auto name =
"pa5";
153 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
157 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
163 constexpr
const auto mask = 0x0007000000000000UL;
164 constexpr
const auto from = 48;
165 constexpr
const auto name =
"pa6";
170 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
174 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
180 constexpr
const auto mask = 0x0700000000000000UL;
181 constexpr
const auto from = 56;
182 constexpr
const auto name =
"pa7";
187 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
191 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
197 bfdebug <<
"msrs::ia32_pat fields:" << bfendl;
217 template<class T, class = typename std::enable_if<std::is_integral<T>::value>
::type>
231 throw std::runtime_error(
"unknown pat index");
235 template<
class V,
class I,
236 class =
typename std::enable_if<std::is_integral<V>::value>
::type,
237 class = typename
std::enable_if<std::is_integral<I>::value>::type>
238 auto
pa(V value, I index)
251 throw std::runtime_error(
"unknown pat index");
constexpr const auto from
constexpr const auto name
constexpr const auto mask
constexpr const auto mask
constexpr const auto mask
constexpr const auto name
constexpr const auto from
constexpr const auto name
constexpr const auto mask
void uint64_t uint64_t uint64_t *rdx noexcept
constexpr const auto name
auto index(const T virt, const F from)
constexpr const auto from
constexpr const auto mask
constexpr const auto mask
constexpr const auto from
constexpr const auto name
constexpr const auto name
const void * view_as_pointer(const T val)
constexpr const auto addr
auto get_bits(T t, M m) noexcept
constexpr const auto from
constexpr const auto name
uint64_t __read_msr(uint32_t addr) noexcept
constexpr const auto from
constexpr const auto from
constexpr const auto mask
constexpr const auto name
void __write_msr(uint32_t addr, uint64_t val) noexcept
auto set_bits(T t, M m, V v) noexcept
constexpr const auto mask
constexpr const auto from
constexpr const auto name