Lines Matching refs:arch

35 #include <arch/x86/apic.h>
98 // from arch.S
353 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_FPU)
355 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_VME)
357 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_DE)
359 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_PSE)
361 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_TSC)
363 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_MSR)
365 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_PAE)
367 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_MCE)
369 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_CX8)
371 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_APIC)
373 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_SEP)
375 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_MTRR)
377 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_PGE)
379 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_MCA)
381 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_CMOV)
383 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_PAT)
385 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_PSE36)
387 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_PSN)
389 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_CLFSH)
391 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_DS)
393 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_ACPI)
395 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_MMX)
397 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_FXSR)
399 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_SSE)
401 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_SSE2)
403 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_SS)
405 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_HTT)
407 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_TM)
409 if (cpu->arch.feature[FEATURE_COMMON] & IA32_FEATURE_PBE)
411 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_SSE3)
413 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_PCLMULQDQ)
415 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_DTES64)
417 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_MONITOR)
419 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_DSCPL)
421 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_VMX)
423 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_SMX)
425 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_EST)
427 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_TM2)
429 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_SSSE3)
431 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_CNXTID)
433 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_FMA)
435 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_CX16)
437 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_XTPR)
439 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_PDCM)
441 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_PCID)
443 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_DCA)
445 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_SSE4_1)
447 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_SSE4_2)
449 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_X2APIC)
451 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_MOVBE)
453 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_POPCNT)
455 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_TSCDEADLINE)
457 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_AES)
459 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_XSAVE)
461 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_OSXSAVE)
463 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_AVX)
465 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_F16C)
467 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_RDRND)
469 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_HYPERVISOR)
471 if (cpu->arch.feature[FEATURE_EXT_AMD] & IA32_FEATURE_AMD_EXT_SYSCALL)
473 if (cpu->arch.feature[FEATURE_EXT_AMD] & IA32_FEATURE_AMD_EXT_NX)
475 if (cpu->arch.feature[FEATURE_EXT_AMD] & IA32_FEATURE_AMD_EXT_MMXEXT)
477 if (cpu->arch.feature[FEATURE_EXT_AMD] & IA32_FEATURE_AMD_EXT_FFXSR)
479 if (cpu->arch.feature[FEATURE_EXT_AMD] & IA32_FEATURE_AMD_EXT_PDPE1GB)
481 if (cpu->arch.feature[FEATURE_EXT_AMD] & IA32_FEATURE_AMD_EXT_LONG)
483 if (cpu->arch.feature[FEATURE_EXT_AMD] & IA32_FEATURE_AMD_EXT_3DNOWEXT)
485 if (cpu->arch.feature[FEATURE_EXT_AMD] & IA32_FEATURE_AMD_EXT_3DNOW)
487 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_DTS)
489 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_ITB)
491 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_ARAT)
493 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_PLN)
495 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_ECMD)
497 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_PTM)
499 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HWP)
501 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HWP_NOTIFY)
503 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HWP_ACTWIN)
505 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HWP_EPP)
507 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HWP_PLR)
509 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HDC)
511 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_TBMT3)
513 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HWP_CAP)
515 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HWP_PECI)
517 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HWP_FLEX)
519 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HWP_FAST)
521 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HW_FEEDBACK)
523 if (cpu->arch.feature[FEATURE_6_EAX] & IA32_FEATURE_HWP_IGNIDL)
525 if (cpu->arch.feature[FEATURE_6_ECX] & IA32_FEATURE_APERFMPERF)
527 if (cpu->arch.feature[FEATURE_6_ECX] & IA32_FEATURE_EPB)
529 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_TSC_ADJUST)
531 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_SGX)
533 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_BMI1)
535 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_HLE)
537 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_AVX2)
539 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_SMEP)
541 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_BMI2)
543 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_ERMS)
545 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_INVPCID)
547 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_RTM)
549 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_CQM)
551 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_MPX)
553 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_RDT_A)
555 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_AVX512F)
557 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_AVX512DQ)
559 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_RDSEED)
561 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_ADX)
563 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_SMAP)
565 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_AVX512IFMA)
567 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_PCOMMIT)
569 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_CLFLUSHOPT)
571 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_CLWB)
573 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_INTEL_PT)
575 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_AVX512PF)
577 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_AVX512ER)
579 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_AVX512CD)
581 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_SHA_NI)
583 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_AVX512BW)
585 if (cpu->arch.feature[FEATURE_7_EBX] & IA32_FEATURE_AVX512VI)
587 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_AVX512VMBI)
589 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_UMIP)
591 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_PKU)
593 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_OSPKE)
595 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_AVX512VMBI2)
597 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_GFNI)
599 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_VAES)
601 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_VPCLMULQDQ)
603 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_AVX512_VNNI)
605 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_AVX512_BITALG)
607 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_AVX512_VPOPCNTDQ)
609 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_LA57)
611 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_RDPID)
613 if (cpu->arch.feature[FEATURE_7_ECX] & IA32_FEATURE_SGX_LC)
615 if (cpu->arch.feature[FEATURE_7_EDX] & IA32_FEATURE_HYBRID_CPU)
617 if (cpu->arch.feature[FEATURE_7_EDX] & IA32_FEATURE_IBRS)
619 if (cpu->arch.feature[FEATURE_7_EDX] & IA32_FEATURE_STIBP)
621 if (cpu->arch.feature[FEATURE_7_EDX] & IA32_FEATURE_L1D_FLUSH)
623 if (cpu->arch.feature[FEATURE_7_EDX] & IA32_FEATURE_ARCH_CAPABILITIES)
625 if (cpu->arch.feature[FEATURE_7_EDX] & IA32_FEATURE_SSBD)
627 if (cpu->arch.feature[FEATURE_D_1_EAX] & IA32_FEATURE_XSAVEOPT)
629 if (cpu->arch.feature[FEATURE_D_1_EAX] & IA32_FEATURE_XSAVEC)
631 if (cpu->arch.feature[FEATURE_D_1_EAX] & IA32_FEATURE_XGETBV1)
633 if (cpu->arch.feature[FEATURE_D_1_EAX] & IA32_FEATURE_XSAVES)
635 if (cpu->arch.feature[FEATURE_EXT_8_EBX] & IA32_FEATURE_CLZERO)
637 if (cpu->arch.feature[FEATURE_EXT_8_EBX] & IA32_FEATURE_IBPB)
639 if (cpu->arch.feature[FEATURE_EXT_8_EBX] & IA32_FEATURE_AMD_SSBD)
641 if (cpu->arch.feature[FEATURE_EXT_8_EBX] & IA32_FEATURE_VIRT_SSBD)
643 if (cpu->arch.feature[FEATURE_EXT_8_EBX] & IA32_FEATURE_AMD_SSB_NO)
645 if (cpu->arch.feature[FEATURE_EXT_8_EBX] & IA32_FEATURE_CPPC)
906 if (cpu->arch.vendor == VENDOR_AMD
907 || cpu->arch.vendor == VENDOR_HYGON) {
914 if (cpu->arch.vendor == VENDOR_INTEL) {
976 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_HYPERVISOR) {
977 cpu->arch.patch_level = 0;
986 cpu->arch.patch_level = value >> 32;
993 if (cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_HYPERVISOR) {
994 cpu->arch.patch_level = 0;
999 cpu->arch.patch_level = (uint32)value;
1092 uint32 revision = cpu->arch.patch_level;
1105 if (revision == cpu->arch.patch_level) {
1111 "\n", currentCPU, revision, cpu->arch.patch_level);
1212 uint32 revision = cpu->arch.patch_level;
1225 if (revision == cpu->arch.patch_level) {
1231 "\n", currentCPU, revision, cpu->arch.patch_level);
1249 if ((cpu->arch.feature[FEATURE_EXT] & IA32_FEATURE_EXT_HYPERVISOR) != 0)
1251 if (cpu->arch.vendor == VENDOR_INTEL)
1253 else if (cpu->arch.vendor == VENDOR_AMD)
1262 if ((cpu->arch.feature[FEATURE_7_EDX] & IA32_FEATURE_HYBRID_CPU) == 0)
1294 cpu->arch.vendor = VENDOR_UNKNOWN;
1295 cpu->arch.vendor_name = "UNKNOWN VENDOR";
1296 cpu->arch.feature[FEATURE_COMMON] = 0;
1297 cpu->arch.feature[FEATURE_EXT] = 0;
1298 cpu->arch.feature[FEATURE_EXT_AMD] = 0;
1299 cpu->arch.feature[FEATURE_7_EBX] = 0;
1300 cpu->arch.feature[FEATURE_7_ECX] = 0;
1301 cpu->arch.feature[FEATURE_7_EDX] = 0;
1302 cpu->arch.feature[FEATURE_D_1_EAX] = 0;
1303 cpu->arch.model_name[0] = 0;
1315 cpu->arch.type = cpuid.eax_1.type;
1316 cpu->arch.family = cpuid.eax_1.family;
1317 cpu->arch.extended_family = cpuid.eax_1.extended_family;
1318 cpu->arch.model = cpuid.eax_1.model;
1319 cpu->arch.extended_model = cpuid.eax_1.extended_model;
1320 cpu->arch.stepping = cpuid.eax_1.stepping;
1324 currentCPU, cpu->arch.type, cpu->arch.family,
1325 cpu->arch.extended_family, cpu->arch.model,
1326 cpu->arch.extended_model, cpu->arch.stepping, vendorString);
1334 cpu->arch.vendor = (x86_vendors)i;
1335 cpu->arch.vendor_name = vendor_info[i].vendor;
1340 cpu->arch.vendor = (x86_vendors)i;
1341 cpu->arch.vendor_name = vendor_info[i].vendor;
1352 memset(cpu->arch.model_name, 0, sizeof(cpu->arch.model_name));
1358 memcpy(cpu->arch.model_name, cpuid.as_chars, sizeof(cpuid.as_chars));
1364 memcpy(cpu->arch.model_name + 16, cpuid.as_chars,
1371 memcpy(cpu->arch.model_name + 32, cpuid.as_chars,
1376 while (cpu->arch.model_name[i] == ' ')
1379 memmove(cpu->arch.model_name, &cpu->arch.model_name[i],
1380 strlen(&cpu->arch.model_name[i]) + 1);
1385 currentCPU, cpu->arch.vendor_name, cpu->arch.model_name);
1388 strlcpy(cpu->arch.model_name, "unknown", sizeof(cpu->arch.model_name));
1393 cpu->arch.feature[FEATURE_COMMON] = cpuid.eax_1.features; // edx
1394 cpu->arch.feature[FEATURE_EXT] = cpuid.eax_1.extended_features; // ecx
1401 if (cpu->arch.vendor == VENDOR_AMD)
1402 cpu->arch.feature[FEATURE_EXT_AMD_ECX] = cpuid.regs.ecx; // ecx
1403 cpu->arch.feature[FEATURE_EXT_AMD] = cpuid.regs.edx; // edx
1404 if (cpu->arch.vendor != VENDOR_AMD)
1405 cpu->arch.feature[FEATURE_EXT_AMD] &= IA32_FEATURES_INTEL_EXT;
1410 cpu->arch.feature[FEATURE_5_ECX] = cpuid.regs.ecx;
1415 cpu->arch.feature[FEATURE_6_EAX] = cpuid.regs.eax;
1416 cpu->arch.feature[FEATURE_6_ECX] = cpuid.regs.ecx;
1421 cpu->arch.feature[FEATURE_7_EBX] = cpuid.regs.ebx;
1422 cpu->arch.feature[FEATURE_7_ECX] = cpuid.regs.ecx;
1423 cpu->arch.feature[FEATURE_7_EDX] = cpuid.regs.edx;
1428 cpu->arch.feature[FEATURE_D_1_EAX] = cpuid.regs.eax;
1433 cpu->arch.feature[FEATURE_EXT_7_EDX] = cpuid.regs.edx;
1438 cpu->arch.feature[FEATURE_EXT_8_EBX] = cpuid.regs.ebx;
1443 if (cpu->arch.vendor == VENDOR_INTEL)
1445 else if (cpu->arch.vendor == VENDOR_AMD)
1448 cpu->arch.hybrid_type = get_hybrid_cpu_type();
1455 cpu->arch.patch_level,
1456 cpu->arch.hybrid_type != 0 ? ", hybrid type ": "",
1457 get_hybrid_cpu_type_string(cpu->arch.hybrid_type));
1471 dprintf("features %d: 0x%x\n", i, cpu->arch.feature[i]);
1475 return (cpu->arch.feature[type] & feature) != 0;
1560 if (cpu->arch.vendor != VENDOR_AMD)
1566 uint32 family = cpu->arch.family + cpu->arch.extended_family;
1567 uint32 model = (cpu->arch.extended_model << 4) | cpu->arch.model;
1576 if (cpu->arch.vendor != VENDOR_INTEL)
1578 uint32 model = (cpu->arch.extended_model << 4) | cpu->arch.model;
1616 if (cpuEnt->arch.vendor != VENDOR_AMD)
1618 uint32 family = cpuEnt->arch.family + cpuEnt->arch.extended_family;
1712 if (cpuEnt->arch.vendor == VENDOR_AMD) {
1713 uint32 family = cpuEnt->arch.family + cpuEnt->arch.extended_family;
1723 gCPU[cpu].arch.mperf_prev = x86_read_msr(IA32_MSR_MPERF);
1724 gCPU[cpu].arch.aperf_prev = x86_read_msr(IA32_MSR_APERF);
1725 gCPU[cpu].arch.frequency = 0;
1726 gCPU[cpu].arch.perf_timestamp = 0;
1797 gCPU[i].arch.active_paging_structures = kernelPagingStructures;