static_cpu_has(uint16_t f)
{
switch (f) {
- case X86_FEATURE_CLFLUSH:
- return curcpu()->ci_cflushsz != 0;
case X86_FEATURE_XMM4_1:
return (cpu_ecxfeature & CPUIDECX_SSE41) != 0;
+#ifdef __amd64__
+ case X86_FEATURE_CLFLUSH:
+ case X86_FEATURE_PAT:
+ return true;
+#else
+ case X86_FEATURE_CLFLUSH:
+ return curcpu()->ci_cflushsz != 0;
case X86_FEATURE_PAT:
return (curcpu()->ci_feature_flags & CPUID_PAT) != 0;
+#endif
case X86_FEATURE_HYPERVISOR:
return (cpu_ecxfeature & CPUIDECX_HV) != 0;
default:
static inline bool
pat_enabled(void)
{
- return ((curcpu()->ci_feature_flags & CPUID_PAT) != 0);
+ return static_cpu_has(X86_FEATURE_PAT);
}
#define boot_cpu_has(x) static_cpu_has(x)