Changeset 87429 in vbox
- Timestamp:
- Jan 26, 2021 11:37:29 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 142435
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR0/HMR0A.asm
r87428 r87429 833 833 .skip_cr2_write: 834 834 ; Set the vmlaunch/vmresume "return" host RIP and RSP values. 835 lea rcx, [ hmR0VMXStartVMHostRIPwrt rip] ;; @todo It is only strictly necessary to write VMX_VMCS_HOST_RIP when836 mov eax, VMX_VMCS_HOST_RIP ;; the VMXVMCSINFO::pfnStartVM function changes (eventually837 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)... 838 838 %ifdef VBOX_STRICT 839 jna hmR0VMXStartVMHostRIP.vmwrite_failed840 %endif 841 mov edx, VMX_VMCS_HOST_RSP ;; @todo The HOST_RSP value is unlikely to change much, so if vmwrite842 vmwrite rdx, rsp ;; can be noticably more expensive than a memory read, we could843 %ifdef VBOX_STRICT ;; easily optimize this one away almost completely by comparing844 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. 845 845 %endif 846 846 … … 871 871 872 872 vmresume 873 jc hmR0VMXStartVMHostRIP.vmxstart64_invalid_vmcs_ptr874 jz hmR0VMXStartVMHostRIP.vmxstart64_start_failed875 jmp hmR0VMXStartVMHostRIP; here if vmresume detected a failure873 jc NAME(hmR0VMXStartVMHostRIP.vmxstart64_invalid_vmcs_ptr) 874 jz NAME(hmR0VMXStartVMHostRIP.vmxstart64_start_failed) 875 jmp NAME(hmR0VMXStartVMHostRIP) ; here if vmresume detected a failure 876 876 877 877 .vmlaunch64_launch: 878 878 vmlaunch 879 jc hmR0VMXStartVMHostRIP.vmxstart64_invalid_vmcs_ptr880 jz hmR0VMXStartVMHostRIP.vmxstart64_start_failed881 jmp hmR0VMXStartVMHostRIP; here if vmlaunch detected a failure879 jc NAME(hmR0VMXStartVMHostRIP.vmxstart64_invalid_vmcs_ptr) 880 jz NAME(hmR0VMXStartVMHostRIP.vmxstart64_start_failed) 881 jmp NAME(hmR0VMXStartVMHostRIP) ; here if vmlaunch detected a failure 882 882 883 883 ALIGNCODE(64)
Note:
See TracChangeset
for help on using the changeset viewer.