VirtualBox

Changeset 87429 in vbox


Ignore:
Timestamp:
Jan 26, 2021 11:37:29 AM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
142435
Message:

VMM/HMR0A.asm: Refactored hmR0VMXStartVM into a more regular frame setup. [macOS build fix]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/HMR0A.asm

    r87428 r87429  
    833833.skip_cr2_write:
    834834        ; Set the vmlaunch/vmresume "return" host RIP and RSP values.
    835         lea     rcx, [hmR0VMXStartVMHostRIP wrt rip] ;; @todo It is only strictly necessary to write VMX_VMCS_HOST_RIP when
    836         mov     eax, VMX_VMCS_HOST_RIP               ;;       the VMXVMCSINFO::pfnStartVM function changes (eventually
    837         vmwrite rax, rcx                             ;;       take the Windows/SSE stuff into account then)...
     835        lea     rcx, [NAME(hmR0VMXStartVMHostRIP) wrt rip] ;; @todo It is only strictly necessary to write VMX_VMCS_HOST_RIP when
     836        mov     eax, VMX_VMCS_HOST_RIP                     ;;       the VMXVMCSINFO::pfnStartVM function changes (eventually
     837        vmwrite rax, rcx                                   ;;       take the Windows/SSE stuff into account then)...
    838838 %ifdef VBOX_STRICT
    839         jna     hmR0VMXStartVMHostRIP.vmwrite_failed
    840  %endif
    841         mov     edx, VMX_VMCS_HOST_RSP               ;; @todo The HOST_RSP value is unlikely to change much, so if vmwrite
    842         vmwrite rdx, rsp                             ;;       can be noticably more expensive than a memory read, we could
    843  %ifdef VBOX_STRICT                                  ;;       easily optimize this one away almost completely by comparing
    844         jna     hmR0VMXStartVMHostRIP.vmwrite_failed ;;       rsp with a shadow copy of VMX_VMCS_HOST_RSP.
     839        jna     NAME(hmR0VMXStartVMHostRIP.vmwrite_failed)
     840 %endif
     841        mov     edx, VMX_VMCS_HOST_RSP                     ;; @todo The HOST_RSP value is unlikely to change much, so if vmwrite
     842        vmwrite rdx, rsp                                   ;;       can be noticably more expensive than a memory read, we could
     843 %ifdef VBOX_STRICT                                        ;;       easily optimize this one away almost completely by comparing
     844        jna     NAME(hmR0VMXStartVMHostRIP.vmwrite_failed) ;;       rsp with a shadow copy of VMX_VMCS_HOST_RSP.
    845845 %endif
    846846
     
    871871
    872872        vmresume
    873         jc      hmR0VMXStartVMHostRIP.vmxstart64_invalid_vmcs_ptr
    874         jz      hmR0VMXStartVMHostRIP.vmxstart64_start_failed
    875         jmp     hmR0VMXStartVMHostRIP  ; here if vmresume detected a failure
     873        jc      NAME(hmR0VMXStartVMHostRIP.vmxstart64_invalid_vmcs_ptr)
     874        jz      NAME(hmR0VMXStartVMHostRIP.vmxstart64_start_failed)
     875        jmp     NAME(hmR0VMXStartVMHostRIP) ; here if vmresume detected a failure
    876876
    877877.vmlaunch64_launch:
    878878        vmlaunch
    879         jc      hmR0VMXStartVMHostRIP.vmxstart64_invalid_vmcs_ptr
    880         jz      hmR0VMXStartVMHostRIP.vmxstart64_start_failed
    881         jmp     hmR0VMXStartVMHostRIP  ; here if vmlaunch detected a failure
     879        jc      NAME(hmR0VMXStartVMHostRIP.vmxstart64_invalid_vmcs_ptr)
     880        jz      NAME(hmR0VMXStartVMHostRIP.vmxstart64_start_failed)
     881        jmp     NAME(hmR0VMXStartVMHostRIP) ; here if vmlaunch detected a failure
    882882
    883883ALIGNCODE(64)
Note: See TracChangeset for help on using the changeset viewer.

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