Changeset 34991 in vbox for trunk/src/VBox/VMM/VMMSwitcher/PAEand32Bit.mac
- Timestamp:
- Dec 13, 2010 11:20:04 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMSwitcher/PAEand32Bit.mac
r33935 r34991 80 80 push cs ; allow for far return and restore cs correctly. 81 81 call NAME(vmmR0HostToGuestAsm) 82 83 %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI 84 CPUM_FROM_CPUMCPU(edx) 85 ; Restore blocked Local APIC NMI vectors 86 ; Do this here to ensure the host CS is already restored 87 mov ecx, [edx + CPUM.fApicDisVectors] 88 mov edx, [edx + CPUM.pvApicBase] 89 shr ecx, 1 90 jnc gth_nolint0 91 and dword [edx + APIC_REG_LVT_LINT0], ~APIC_REG_LVT_MASKED 92 gth_nolint0: 93 shr ecx, 1 94 jnc gth_nolint1 95 and dword [edx + APIC_REG_LVT_LINT1], ~APIC_REG_LVT_MASKED 96 gth_nolint1: 97 shr ecx, 1 98 jnc gth_nopc 99 and dword [edx + APIC_REG_LVT_PC], ~APIC_REG_LVT_MASKED 100 gth_nopc: 101 shr ecx, 1 102 jnc gth_notherm 103 and dword [edx + APIC_REG_LVT_THMR], ~APIC_REG_LVT_MASKED 104 gth_notherm: 105 %endif 82 106 83 107 %ifdef VBOX_WITH_STATISTICS … … 994 1018 gth_debug_regs_no: 995 1019 996 %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI997 mov esi, edx998 CPUM_FROM_CPUMCPU(edx)999 ; Restore blocked Local APIC NMI vectors1000 mov ebx, [edx + CPUM.pvApicBase]1001 mov ecx, [edx + CPUM.fApicDisVectors]1002 mov edx, esi1003 shr ecx, 11004 jnc gth_nolint01005 and dword [ebx + APIC_REG_LVT_LINT0], ~APIC_REG_LVT_MASKED1006 gth_nolint0:1007 shr ecx, 11008 jnc gth_nolint11009 and dword [ebx + APIC_REG_LVT_LINT1], ~APIC_REG_LVT_MASKED1010 gth_nolint1:1011 shr ecx, 11012 jnc gth_nopc1013 and dword [ebx + APIC_REG_LVT_PC], ~APIC_REG_LVT_MASKED1014 gth_nopc:1015 shr ecx, 11016 jnc gth_notherm1017 and dword [ebx + APIC_REG_LVT_THMR], ~APIC_REG_LVT_MASKED1018 gth_notherm:1019 %endif1020 1021 1020 ; restore general registers. 1022 1021 mov eax, edi ; restore return code. eax = return code !!
Note:
See TracChangeset
for help on using the changeset viewer.