VirtualBox

Changeset 34986 in vbox


Ignore:
Timestamp:
Dec 13, 2010 10:38:20 AM (14 years ago)
Author:
vboxsync
Message:

VMMSwitcher/AMD64andLegacy: restore the Local APIC NMI vectors _after_ we restored the host CS

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMSwitcher/AMD64andLegacy.mac

    r33935 r34986  
    9898    call    NAME(vmmR0HostToGuestAsm)
    9999
     100 %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
     101    ; Unblock Local APIC NMI vectors
     102    ; Do this here to ensure the host CS is already restored
     103    mov     ecx, [rdx + CPUM.fApicDisVectors]
     104    mov     r8, [rdx + CPUM.pvApicBase]
     105    shr     ecx, 1
     106    jnc     gth64_nolint0
     107    and     dword [r8 + APIC_REG_LVT_LINT0], ~APIC_REG_LVT_MASKED
     108gth64_nolint0:
     109    shr     ecx, 1
     110    jnc     gth64_nolint1
     111    and     dword [r8 + APIC_REG_LVT_LINT1], ~APIC_REG_LVT_MASKED
     112gth64_nolint1:
     113    shr     ecx, 1
     114    jnc     gth64_nopc
     115    and     dword [r8 + APIC_REG_LVT_PC], ~APIC_REG_LVT_MASKED
     116gth64_nopc:
     117    shr     ecx, 1
     118    jnc     gth64_notherm
     119    and     dword [r8 + APIC_REG_LVT_THMR], ~APIC_REG_LVT_MASKED
     120gth64_notherm:
     121 %endif
     122
    100123 %ifdef VBOX_WITH_STATISTICS
    101124    ;
     
    119142;
    120143BEGINPROC vmmR0HostToGuest
    121 %ifdef DEBUG_STUFF
     144 %ifdef DEBUG_STUFF
    122145    COM32_S_NEWLINE
    123146    COM32_S_CHAR '^'
    124 %endif
     147 %endif
    125148
    126149 %ifdef VBOX_WITH_STATISTICS
     
    161184    mov     edx, ss
    162185    mov     ss, edx
     186
     187 %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
     188 Missing implementation!
     189 %endif
     190
    163191
    164192 %ifdef VBOX_WITH_STATISTICS
     
    11041132    mov     rdx, rbx
    11051133
    1106 %ifdef VBOX_WITH_VMMR0_DISABLE_LAPIC_NMI
    1107     ;Unblock Local APIC NMI vectors
    1108     mov     ecx, [rdx + CPUM.fApicDisVectors]
    1109     mov     rbx, [rdx + CPUM.pvApicBase]
    1110     shr     ecx, 1
    1111     jnc     gth_nolint0
    1112     and     dword [rbx + APIC_REG_LVT_LINT0], ~APIC_REG_LVT_MASKED
    1113 gth_nolint0:
    1114     shr     ecx, 1
    1115     jnc     gth_nolint1
    1116     and     dword [rbx + APIC_REG_LVT_LINT1], ~APIC_REG_LVT_MASKED
    1117 gth_nolint1:
    1118     shr     ecx, 1
    1119     jnc     gth_nopc
    1120     and     dword [rbx + APIC_REG_LVT_PC], ~APIC_REG_LVT_MASKED
    1121 gth_nopc:
    1122     shr     ecx, 1
    1123     jnc     gth_notherm
    1124     and     dword [rbx + APIC_REG_LVT_THMR], ~APIC_REG_LVT_MASKED
    1125 gth_notherm:
    1126 %endif
    1127 
    11281134    ; restore general registers.
    11291135    mov     eax, edi                    ; restore return code. eax = return code !!
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette