git: f086954950c6 - stable/14 - amd64 vmx: micro-optimize vmlaunch failure path

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Sun, 31 Aug 2025 00:39:54 UTC
The branch stable/14 has been updated by kib:

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

commit f086954950c6ee18a72dc28de31ad348150e418f
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-08-23 12:52:08 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-08-31 00:38:23 +0000

    amd64 vmx: micro-optimize vmlaunch failure path
    
    (cherry picked from commit 2b35b717188adb843de100c4221ec1ded13024f0)
---
 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 f393f160b101..2f3871ac7d89 100644
--- a/sys/amd64/vmm/intel/vmx_support.S
+++ b/sys/amd64/vmm/intel/vmx_support.S
@@ -177,13 +177,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)
 
 	/*