VirtualBox

Changeset 54546 in vbox


Ignore:
Timestamp:
Feb 27, 2015 11:21:41 AM (10 years ago)
Author:
vboxsync
Message:

VMMSwitcher: no write completion required

Location:
trunk/src/VBox/VMM/VMMSwitcher
Files:
3 edited

Legend:

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

    r54537 r54546  
    356356    je      htg_x2apic
    357357
    358     ; Legacy xAPIC mode:
     358    ; Legacy xAPIC mode. No write completion required when writing to the
     359    ; LVT registers as we have mapped the APIC page non-cacheable and the
     360    ; MMIO is CPU-local.
    359361    mov     rbx, [rdx + r8 + CPUMCPU.pvApicBase]
    360362    or      rbx, rbx
     
    369371    or      eax, APIC_REG_LVT_MASKED
    370372    mov     [rbx + APIC_REG_LVT_LINT0], eax
    371     mov     eax, [rbx + APIC_REG_LVT_LINT0] ; write completion
    372373htg_nolint0:
    373374    mov     eax, [rbx + APIC_REG_LVT_LINT1]
     
    379380    or      eax, APIC_REG_LVT_MASKED
    380381    mov     [rbx + APIC_REG_LVT_LINT1], eax
    381     mov     eax, [rbx + APIC_REG_LVT_LINT1] ; write completion
    382382htg_nolint1:
    383383    mov     eax, [rbx + APIC_REG_LVT_PC]
     
    389389    or      eax, APIC_REG_LVT_MASKED
    390390    mov     [rbx + APIC_REG_LVT_PC], eax
    391     mov     eax, [rbx + APIC_REG_LVT_PC] ; write completion
    392391htg_nopc:
    393392    mov     eax, [rbx + APIC_REG_VERSION]
     
    405404    or      eax, APIC_REG_LVT_MASKED
    406405    mov     [rbx + APIC_REG_LVT_CMCI], eax
    407     mov     eax, [rbx + APIC_REG_LVT_CMCI] ; write completion
    408406htg_nocmci:
    409407    mov     eax, [rbx + APIC_REG_LVT_THMR]
     
    415413    or      eax, APIC_REG_LVT_MASKED
    416414    mov     [rbx + APIC_REG_LVT_THMR], eax
    417     mov     eax, [rbx + APIC_REG_LVT_THMR] ; write completion
    418415htg_notherm:
    419416    pop     rax
     
    436433    or      eax, APIC_REG_LVT_MASKED
    437434    mov     [rbx + APIC_REG_EILVT0], eax
    438     mov     eax, [rbx + APIC_REG_EILVT0] ; write completion
    439435htg_noeilvtx:
    440436    add     rbx, 0x10                    ; clobbers rbx!
  • trunk/src/VBox/VMM/VMMSwitcher/LegacyandAMD64.mac

    r54474 r54546  
    332332    je      htg_x2apic
    333333
    334     ; Legacy xAPIC mode:
     334    ; Legacy xAPIC mode. No write completion required when writing to the
     335    ; LVT registers as we have mapped the APIC pages as non-cacheable and
     336    ; the MMIO is CPU-local.
    335337    mov     ebx, [edx + CPUMCPU.pvApicBase]
    336338    or      ebx, ebx
     
    344346    or      eax, APIC_REG_LVT_MASKED
    345347    mov     [ebx + APIC_REG_LVT_LINT0], eax
    346     mov     eax, [ebx + APIC_REG_LVT_LINT0] ; write completion
    347348htg_nolint0:
    348349    mov     eax, [ebx + APIC_REG_LVT_LINT1]
     
    354355    or      eax, APIC_REG_LVT_MASKED
    355356    mov     [ebx + APIC_REG_LVT_LINT1], eax
    356     mov     eax, [ebx + APIC_REG_LVT_LINT1] ; write completion
    357357htg_nolint1:
    358358    mov     eax, [ebx + APIC_REG_LVT_PC]
     
    364364    or      eax, APIC_REG_LVT_MASKED
    365365    mov     [ebx + APIC_REG_LVT_PC], eax
    366     mov     eax, [ebx + APIC_REG_LVT_PC] ; write completion
    367366htg_nopc:
    368367    mov     eax, [ebx + APIC_REG_VERSION]
     
    379378    or      eax, APIC_REG_LVT_MASKED
    380379    mov     [ebx + APIC_REG_LVT_CMCI], eax
    381     mov     eax, [ebx + APIC_REG_LVT_CMCI] ; write completion
    382380htg_nocmci:
    383381    mov     eax, [ebx + APIC_REG_LVT_THMR]
     
    389387    or      eax, APIC_REG_LVT_MASKED
    390388    mov     [ebx + APIC_REG_LVT_THMR], eax
    391     mov     eax, [ebx + APIC_REG_LVT_THMR] ; write completion
    392389htg_notherm:
    393390    mov     [edx + CPUMCPU.fApicDisVectors], edi
  • trunk/src/VBox/VMM/VMMSwitcher/PAEand32Bit.mac

    r54474 r54546  
    225225    je      htg_x2apic
    226226
    227     ; Legacy xAPIC mode:
     227    ; Legacy xAPIC mode. No write completion required when writing to the
     228    ; LVT registers as we have mapped the APIC page non-cacheable and the
     229    ; MMIO is CPU-local.
    228230    mov     ebx, [edx + CPUMCPU.pvApicBase]
    229231    or      ebx, ebx
     
    239241    or      eax, APIC_REG_LVT_MASKED
    240242    mov     [ebx + APIC_REG_LVT_LINT0], eax
    241     mov     eax, [ebx + APIC_REG_LVT_LINT0] ; write completion
    242243htg_nolint0:
    243244    mov     eax, [ebx + APIC_REG_LVT_LINT1]
     
    249250    or      eax, APIC_REG_LVT_MASKED
    250251    mov     [ebx + APIC_REG_LVT_LINT1], eax
    251     mov     eax, [ebx + APIC_REG_LVT_LINT1] ; write completion
    252252htg_nolint1:
    253253    mov     eax, [ebx + APIC_REG_LVT_PC]
     
    259259    or      eax, APIC_REG_LVT_MASKED
    260260    mov     [ebx + APIC_REG_LVT_PC], eax
    261     mov     eax, [ebx + APIC_REG_LVT_PC] ; write completion
    262261htg_nopc:
    263262    mov     eax, [ebx + APIC_REG_VERSION]
     
    274273    or      eax, APIC_REG_LVT_MASKED
    275274    mov     [ebx + APIC_REG_LVT_CMCI], eax
    276     mov     eax, [ebx + APIC_REG_LVT_CMCI] ; write completion
    277275htg_nocmci:
    278276    mov     eax, [ebx + APIC_REG_LVT_THMR]
     
    284282    or      eax, APIC_REG_LVT_MASKED
    285283    mov     [ebx + APIC_REG_LVT_THMR], eax
    286     mov     eax, [ebx + APIC_REG_LVT_THMR] ; write completion
    287284htg_notherm:
    288285    mov     [edx + CPUMCPU.fApicDisVectors], edi
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