Changeset 70846 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Feb 1, 2018 7:22:08 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId.cpp
r70845 r70846 6135 6135 DBGFREGSUBFIELD_RO("TBM\0" "Trailing Bit Manipulation instructions", 21, 1, 0), 6136 6136 DBGFREGSUBFIELD_RO("TOPOEXT\0" "Topology Extensions", 22, 1, 0), 6137 DBGFREGSUBFIELD_RO("PRFEXTCORE\0" "Performance Counter Extensions support", 23, 1, 0), 6138 DBGFREGSUBFIELD_RO("PRFEXTNB\0" "NB Performance Counter Extensions support", 24, 1, 0), 6139 DBGFREGSUBFIELD_RO("DATABPEXT\0" "Data-access Breakpoint Extension", 26, 1, 0), 6140 DBGFREGSUBFIELD_RO("PERFTSC\0" "Performance Time Stamp Counter", 27, 1, 0), 6141 DBGFREGSUBFIELD_TERMINATOR() 6142 }; 6143 6144 /** CPUID(0x80000007,0).EDX field descriptions. */ 6145 static DBGFREGSUBFIELD const g_aExtLeaf7EdxSubFields[] = 6146 { 6147 DBGFREGSUBFIELD_RO("TS\0" "Temperature Sensor", 0, 1, 0), 6148 DBGFREGSUBFIELD_RO("FID\0" "Frequency ID control", 1, 1, 0), 6149 DBGFREGSUBFIELD_RO("VID\0" "Voltage ID control", 2, 1, 0), 6150 DBGFREGSUBFIELD_RO("VID\0" "Voltage ID control", 2, 1, 0), 6151 DBGFREGSUBFIELD_RO("TTP\0" "Thermal Trip", 3, 1, 0), 6152 DBGFREGSUBFIELD_RO("TM\0" "Hardware Thermal Control (HTC)", 4, 1, 0), 6153 DBGFREGSUBFIELD_RO("100MHzSteps\0" "100 MHz Multiplier control", 6, 1, 0), 6154 DBGFREGSUBFIELD_RO("HwPstate\0" "Hardware P-state control", 7, 1, 0), 6155 DBGFREGSUBFIELD_RO("TscInvariant\0" "Invariant Time Stamp Counter", 8, 1, 0), 6156 DBGFREGSUBFIELD_RO("CBP\0" "Core Performance Boost", 9, 1, 0), 6157 DBGFREGSUBFIELD_RO("EffFreqRO\0" "Read-only Effective Frequency Interface", 10, 1, 0), 6158 DBGFREGSUBFIELD_RO("ProcFdbkIf\0" "Processor Feedback Interface", 11, 1, 0), 6159 DBGFREGSUBFIELD_RO("ProcPwrRep\0" "Core power reporting interface support", 12, 1, 0), 6137 6160 DBGFREGSUBFIELD_TERMINATOR() 6138 6161 }; … … 6818 6841 if (iVerbosity && (pCurLeaf = cpumR3CpuIdGetLeaf(paLeaves, cLeaves, UINT32_C(0x80000007), 0)) != NULL) 6819 6842 { 6820 uint32_t uEDX = pCurLeaf->uEdx;6821 6822 pHlp->pfnPrintf(pHlp, "APM Features: ");6823 if (uEDX & RT_BIT(0)) pHlp->pfnPrintf(pHlp, " TS");6824 if (uEDX & RT_BIT(1)) pHlp->pfnPrintf(pHlp, " FID");6825 if (uEDX & RT_BIT(2)) pHlp->pfnPrintf(pHlp, " VID");6826 if (uEDX & RT_BIT(3)) pHlp->pfnPrintf(pHlp, " TTP");6827 if (uEDX & RT_BIT(4)) pHlp->pfnPrintf(pHlp, " TM");6828 if (uEDX & RT_BIT(5)) pHlp->pfnPrintf(pHlp, " STC");6829 if (uEDX & RT_BIT(6)) pHlp->pfnPrintf(pHlp, " MC");6830 if (uEDX & RT_BIT(7)) pHlp->pfnPrintf(pHlp, " HWPSTATE");6831 if (uEDX & RT_BIT(8)) pHlp->pfnPrintf(pHlp, " TscInvariant");6832 if (uEDX & RT_BIT(9)) pHlp->pfnPrintf(pHlp, " CPB");6833 if (uEDX & RT_BIT(10)) pHlp->pfnPrintf(pHlp, " EffFreqRO");6834 if (uEDX & RT_BIT(11)) pHlp->pfnPrintf(pHlp, " PFI");6835 if (uEDX & RT_BIT(12)) pHlp->pfnPrintf(pHlp, " PA");6836 for (unsigned iBit = 13; iBit < 32; iBit++)6837 if (uEDX & RT_BIT(iBit))6838 pHlp->pfnPrintf(pHlp, " %d", iBit);6839 pHlp->pfnPrintf(pHlp, "\n");6840 6841 6843 ASMCpuIdExSlow(UINT32_C(0x80000007), 0, 0, 0, &Host.uEax, &Host.uEbx, &Host.uEcx, &Host.uEdx); 6842 pHlp->pfnPrintf(pHlp, "Host Invariant-TSC support: %RTbool\n", 6843 cHstMax >= UINT32_C(0x80000007) && (Host.uEdx & RT_BIT(8))); 6844 6844 if (pCurLeaf->uEdx || (Host.uEdx && iVerbosity)) 6845 { 6846 if (iVerbosity < 1) 6847 cpumR3CpuIdInfoMnemonicListU32(pHlp, pCurLeaf->uEdx, g_aExtLeaf7EdxSubFields, "APM Features EDX:", 34); 6848 else 6849 cpumR3CpuIdInfoVerboseCompareListU32(pHlp, pCurLeaf->uEdx, Host.uEdx, g_aExtLeaf7EdxSubFields, 56); 6850 } 6845 6851 } 6846 6852
Note:
See TracChangeset
for help on using the changeset viewer.