diff options
Diffstat (limited to 'src/VBox/VMM/include/CPUMInternal.mac')
| -rw-r--r-- | src/VBox/VMM/include/CPUMInternal.mac | 63 |
1 files changed, 42 insertions, 21 deletions
diff --git a/src/VBox/VMM/include/CPUMInternal.mac b/src/VBox/VMM/include/CPUMInternal.mac index 6206a3ae..5e1f66b2 100644 --- a/src/VBox/VMM/include/CPUMInternal.mac +++ b/src/VBox/VMM/include/CPUMInternal.mac @@ -4,7 +4,7 @@ ; ; -; Copyright (C) 2006-2010 Oracle Corporation +; Copyright (C) 2006-2012 Oracle Corporation ; ; This file is part of VirtualBox Open Source Edition (OSE), as ; available from http://www.virtualbox.org. This file is free software; @@ -17,14 +17,21 @@ %include "VBox/asmdefs.mac" + %define CPUM_USED_FPU RT_BIT(0) %define CPUM_USED_FPU_SINCE_REM RT_BIT(1) -%define CPUM_USE_SYSENTER RT_BIT(2) -%define CPUM_USE_SYSCALL RT_BIT(3) -%define CPUM_USE_DEBUG_REGS_HOST RT_BIT(4) -%define CPUM_USE_DEBUG_REGS RT_BIT(5) -%define CPUM_SYNC_FPU_STATE RT_BIT(7) -%define CPUM_SYNC_DEBUG_STATE RT_BIT(8) +%define CPUM_USED_MANUAL_XMM_RESTORE RT_BIT(2) +%define CPUM_USE_SYSENTER RT_BIT(3) +%define CPUM_USE_SYSCALL RT_BIT(4) +%define CPUM_USE_DEBUG_REGS_HOST RT_BIT(5) +%define CPUM_USED_DEBUG_REGS_HOST RT_BIT(6) +%define CPUM_USE_DEBUG_REGS_HYPER RT_BIT(7) +%define CPUM_USED_DEBUG_REGS_HYPER RT_BIT(8) +%define CPUM_USED_DEBUG_REGS_GUEST RT_BIT(9) +%define CPUM_SYNC_FPU_STATE RT_BIT(16) +%define CPUM_SYNC_DEBUG_REGS_GUEST RT_BIT(17) +%define CPUM_SYNC_DEBUG_REGS_HYPER RT_BIT(18) +%define CPUM_USE_FFXSR_LEAKY RT_BIT(19) %define CPUM_HANDLER_DS 1 %define CPUM_HANDLER_ES 2 @@ -59,20 +66,16 @@ struc CPUM .CPUFeaturesExt.edx resd 1 .CPUFeaturesExt.ecx resd 1 - .enmHostCpuVendor resd 1 - .enmGuestCpuVendor resd 1 - ; CR4 masks .CR4.AndMask resd 1 .CR4.OrMask resd 1 ; entered rawmode? - .fSyntheticCpu resb 1 .u8PortableCpuIdLevel resb 1 .fPendingRestore resb 1 %if RTHCPTR_CB == 8 - .abPadding resb 5 + .abPadding resb 6 %else - .abPadding resb 1 + .abPadding resb 2 %endif ; CPUID leafs @@ -86,11 +89,17 @@ struc CPUM .abPadding2 resb 4 %endif -%ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI - .pvApicBase RTR0PTR_RES 1 - .fApicDisVectors resd 1 - .abPadding3 resb 4 -%endif + .GuestInfo resb RTHCPTR_CB*4 + RTRCPTR_CB*2 + 4*12 + .GuestFeatures resb 32 + .HostFeatures resb 32 + + .cMsrWrites resq 1 + .cMsrWritesToIgnoredBits resq 1 + .cMsrWritesRaiseGp resq 1 + .cMsrWritesUnknown resq 1 + .cMsrReads resq 1 + .cMsrReadsRaiseGp resq 1 + .cMsrReadsUnknown resq 1 endstruc struc CPUMCPU @@ -195,6 +204,7 @@ struc CPUMCPU .Hyper.msrCSTAR resb 8 .Hyper.msrSFMASK resb 8 .Hyper.msrKERNELGSBASE resb 8 + .Hyper.msrApicBase resb 8 ; ; Host context state @@ -415,6 +425,7 @@ struc CPUMCPU .Guest.msrCSTAR resb 8 .Guest.msrSFMASK resb 8 .Guest.msrKERNELGSBASE resb 8 + .Guest.msrApicBase resb 8 alignb 64 @@ -427,9 +438,19 @@ struc CPUMCPU .fChanged resd 1 .offCPUM resd 1 .u32RetCode resd 1 + +%ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI + .pvApicBase RTR0PTR_RES 1 + .fApicDisVectors resd 1 + .fX2Apic resb 1 +%else + .abPadding3 resb (RTR0PTR_CB + 4 + 1) +%endif + .fRawEntered resb 1 .fRemEntered resb 1 - .abPadding2 resb (64 - 16 - 2) + + .abPadding2 resb (64 - 16 - RTR0PTR_CB - 4 - 1 - 2) endstruc @@ -442,7 +463,7 @@ endstruc ;; ; Converts the CPUM pointer to CPUMCPU -; @param %1 register name (PVM) +; @param %1 register name (CPUM) ; @param %2 register name (CPUMCPU offset) %macro CPUMCPU_FROM_CPUM_WITH_OFFSET 2 add %1, %2 @@ -457,7 +478,7 @@ endstruc ;; ; Converts the CPUMCPU pointer to CPUM -; @param %1 register name (PVM) +; @param %1 register name (CPUM) ; @param %2 register name (CPUMCPU offset) %macro CPUM_FROM_CPUMCPU_WITH_OFFSET 2 sub %1, %2 |
