- Timestamp:
- Aug 24, 2018 9:39:44 AM (6 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/cpum.h
r73795 r73870 1207 1207 /** VMX: Supports Pause-loop exiting. */ 1208 1208 uint32_t fVmxPauseLoopExit : 1; 1209 /** VMX: Supports RDRAND exiting. */ 1210 uint32_t fVmxRdrandExit : 1; 1209 1211 /** VMX: Supports INVPCID. */ 1210 1212 uint32_t fVmxInvpcid : 1; … … 1213 1215 /** VMX: Supports VMCS shadowing. */ 1214 1216 uint32_t fVmxVmcsShadowing : 1; 1217 /** VMX: Supports RDSEED exiting. */ 1218 uint32_t fVmxRdseedExit : 1; 1219 /** VMX: Supports PML. */ 1220 uint32_t fVmxPml : 1; 1215 1221 /** VMX: Supports EPT-violations \#VE. */ 1216 1222 uint32_t fVmxEptXcptVe : 1; … … 1266 1272 1267 1273 /** VMX: Padding / reserved for future features. */ 1268 uint32_t fVmxPadding0 : 5;1274 uint32_t fVmxPadding0 : 2; 1269 1275 uint32_t fVmxPadding1; 1270 1276 } CPUMFEATURES; -
trunk/src/VBox/VMM/VMMAll/CPUMAllMsrs.cpp
r73795 r73870 1572 1572 | (pGuestFeatures->fVmxVirtIntDelivery << VMX_BF_PROC_CTLS2_VIRT_INT_DELIVERY_SHIFT ) 1573 1573 | (pGuestFeatures->fVmxPauseLoopExit << VMX_BF_PROC_CTLS2_PAUSE_LOOP_EXIT_SHIFT ) 1574 | (pGuestFeatures->fVmxRdrandExit << VMX_BF_PROC_CTLS2_RDRAND_EXIT_SHIFT ) 1574 1575 | (pGuestFeatures->fVmxInvpcid << VMX_BF_PROC_CTLS2_INVPCID_SHIFT ) 1575 1576 | (pGuestFeatures->fVmxVmFunc << VMX_BF_PROC_CTLS2_VMFUNC_SHIFT ) 1576 1577 | (pGuestFeatures->fVmxVmcsShadowing << VMX_BF_PROC_CTLS2_VMCS_SHADOWING_SHIFT ) 1578 | (pGuestFeatures->fVmxRdseedExit << VMX_BF_PROC_CTLS2_RDSEED_EXIT_SHIFT ) 1579 | (pGuestFeatures->fVmxPml << VMX_BF_PROC_CTLS2_PML_SHIFT ) 1577 1580 | (pGuestFeatures->fVmxEptXcptVe << VMX_BF_PROC_CTLS2_EPT_VE_SHIFT ) 1578 1581 | (pGuestFeatures->fVmxXsavesXrstors << VMX_BF_PROC_CTLS2_XSAVES_XRSTORS_SHIFT ) -
trunk/src/VBox/VMM/VMMAll/IEMAllCImplVmxInstr.cpp.h
r73869 r73870 393 393 case VMX_VMCS16_GUEST_LDTR_SEL: 394 394 case VMX_VMCS16_GUEST_TR_SEL: 395 case VMX_VMCS16_GUEST_INTR_STATUS: return true;396 case VMX_VMCS16_GUEST_PML_INDEX: return false;395 case VMX_VMCS16_GUEST_INTR_STATUS: return pFeat->fVmxVirtIntDelivery; 396 case VMX_VMCS16_GUEST_PML_INDEX: return pFeat->fVmxPml; 397 397 398 398 /* Host-state fields. */ … … 424 424 case VMX_VMCS64_CTRL_EXEC_VMCS_PTR_HIGH: return true; 425 425 case VMX_VMCS64_CTRL_EXEC_PML_ADDR_FULL: 426 case VMX_VMCS64_CTRL_EXEC_PML_ADDR_HIGH: return false;426 case VMX_VMCS64_CTRL_EXEC_PML_ADDR_HIGH: return pFeat->fVmxPml; 427 427 case VMX_VMCS64_CTRL_TSC_OFFSET_FULL: 428 428 case VMX_VMCS64_CTRL_TSC_OFFSET_HIGH: return true; -
trunk/src/VBox/VMM/VMMR3/CPUM.cpp
r73795 r73870 1023 1023 VMXFEATDUMP("VirtIntDelivery - Virtual-interrupt delivery ", fVmxVirtIntDelivery); 1024 1024 VMXFEATDUMP("PauseLoopExit - PAUSE-loop exiting ", fVmxPauseLoopExit); 1025 VMXFEATDUMP("RdrandExit - RDRAND exiting ", fVmxRdrandExit); 1025 1026 VMXFEATDUMP("Invpcid - Enable INVPCID ", fVmxInvpcid); 1026 1027 VMXFEATDUMP("VmFuncs - Enable VM Functions ", fVmxVmFunc); 1027 1028 VMXFEATDUMP("VmcsShadowing - VMCS shadowing ", fVmxVmcsShadowing); 1029 VMXFEATDUMP("RdseedExiting - RDSEED exiting ", fVmxRdseedExit); 1030 VMXFEATDUMP("PML - Supports Page-Modification Log (PML) ", fVmxPml); 1028 1031 VMXFEATDUMP("EptVe - EPT violations can cause #VE ", fVmxEptXcptVe); 1029 1032 VMXFEATDUMP("XsavesXRstors - Enable XSAVES/XRSTORS ", fVmxXsavesXrstors); … … 1124 1127 pHostFeat->fVmxVirtIntDelivery = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_VIRT_INT_DELIVERY); 1125 1128 pHostFeat->fVmxPauseLoopExit = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_PAUSE_LOOP_EXIT); 1129 pHostFeat->fVmxRdrandExit = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_RDRAND_EXIT); 1126 1130 pHostFeat->fVmxInvpcid = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_INVPCID); 1127 1131 pHostFeat->fVmxVmFunc = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_VMFUNC); 1128 1132 pHostFeat->fVmxVmcsShadowing = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_VMCS_SHADOWING); 1133 pHostFeat->fVmxRdseedExit = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_RDSEED_EXIT); 1134 pHostFeat->fVmxPml = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_PML); 1129 1135 pHostFeat->fVmxEptXcptVe = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_EPT_VE); 1130 1136 pHostFeat->fVmxXsavesXrstors = RT_BOOL(fProcCtls2 & VMX_PROC_CTLS2_XSAVES_XRSTORS); … … 1203 1209 EmuFeat.fVmxVirtIntDelivery = 0; 1204 1210 EmuFeat.fVmxPauseLoopExit = 0; 1211 EmuFeat.fVmxRdrandExit = 0; 1205 1212 EmuFeat.fVmxInvpcid = 1; 1206 1213 EmuFeat.fVmxVmFunc = 0; 1207 1214 EmuFeat.fVmxVmcsShadowing = 0; 1215 EmuFeat.fVmxRdseedExit = 0; 1216 EmuFeat.fVmxPml = 0; 1208 1217 EmuFeat.fVmxEptXcptVe = 0; 1209 1218 EmuFeat.fVmxXsavesXrstors = 0; … … 1274 1283 pGuestFeat->fVmxVirtIntDelivery = (pBaseFeat->fVmxVirtIntDelivery & EmuFeat.fVmxVirtIntDelivery ); 1275 1284 pGuestFeat->fVmxPauseLoopExit = (pBaseFeat->fVmxPauseLoopExit & EmuFeat.fVmxPauseLoopExit ); 1285 pGuestFeat->fVmxRdrandExit = (pBaseFeat->fVmxRdrandExit & EmuFeat.fVmxRdrandExit ); 1276 1286 pGuestFeat->fVmxInvpcid = (pBaseFeat->fVmxInvpcid & EmuFeat.fVmxInvpcid ); 1277 1287 pGuestFeat->fVmxVmFunc = (pBaseFeat->fVmxVmFunc & EmuFeat.fVmxVmFunc ); 1278 1288 pGuestFeat->fVmxVmcsShadowing = (pBaseFeat->fVmxVmcsShadowing & EmuFeat.fVmxVmcsShadowing ); 1289 pGuestFeat->fVmxRdseedExit = (pBaseFeat->fVmxRdseedExit & EmuFeat.fVmxRdseedExit ); 1290 pGuestFeat->fVmxPml = (pBaseFeat->fVmxPml & EmuFeat.fVmxPml ); 1279 1291 pGuestFeat->fVmxEptXcptVe = (pBaseFeat->fVmxEptXcptVe & EmuFeat.fVmxEptXcptVe ); 1280 1292 pGuestFeat->fVmxXsavesXrstors = (pBaseFeat->fVmxXsavesXrstors & EmuFeat.fVmxXsavesXrstors );
Note:
See TracChangeset
for help on using the changeset viewer.