The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=2b35b717188adb843de100c4221ec1ded13024f0

commit 2b35b717188adb843de100c4221ec1ded13024f0
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2025-08-23 12:52:08 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2025-08-24 16:28:47 +0000

    amd64 vmx: micro-optimize vmlaunch failure path
    
    Eliminate two unneeded jumps.  One is the jmp to the next instruction,
    where there is no requrement that vmlaunch is followed by jmp.  Another
    one conditionally sets %r11d value, and can be replaced by cmovcc.
    
    Reviewed by:    markj
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D52136
---
 sys/amd64/vmm/intel/vmx_support.S | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/sys/amd64/vmm/intel/vmx_support.S 
b/sys/amd64/vmm/intel/vmx_support.S
index 130130b64541..877e377f892d 100644
--- a/sys/amd64/vmm/intel/vmx_support.S
+++ b/sys/amd64/vmm/intel/vmx_support.S
@@ -171,13 +171,11 @@ do_launch:
         */
        movq    %rsp, %rdi              /* point %rdi back to 'vmxctx' */
        movl    $VMX_VMLAUNCH_ERROR, %eax
-       jmp     decode_inst_error
-
+       /* FALLTHROUGH */
 decode_inst_error:
        movl    $VM_FAIL_VALID, %r11d
-       jz      inst_error
-       movl    $VM_FAIL_INVALID, %r11d
-inst_error:
+       movl    $VM_FAIL_INVALID, %esi
+       cmovnzl %esi, %r11d
        movl    %r11d, VMXCTX_INST_FAIL_STATUS(%rdi)
 
        /*

Reply via email to