xref: /illumos-gate/usr/src/uts/i86pc/ml/hma_asm.S (revision 5d9d9091f564c198a760790b0bfa72c44e17912b)
1*5d9d9091SRichard Lowe/*
2*5d9d9091SRichard Lowe * This file and its contents are supplied under the terms of the
3*5d9d9091SRichard Lowe * Common Development and Distribution License ("CDDL"), version 1.0.
4*5d9d9091SRichard Lowe * You may only use this file in accordance with the terms of version
5*5d9d9091SRichard Lowe * 1.0 of the CDDL.
6*5d9d9091SRichard Lowe *
7*5d9d9091SRichard Lowe * A full copy of the text of the CDDL should have accompanied this
8*5d9d9091SRichard Lowe * source.  A copy of the CDDL is also available via the Internet at
9*5d9d9091SRichard Lowe * http://www.illumos.org/license/CDDL.
10*5d9d9091SRichard Lowe */
11*5d9d9091SRichard Lowe
12*5d9d9091SRichard Lowe/*
13*5d9d9091SRichard Lowe * Copyright 2019 Joyent, Inc.
14*5d9d9091SRichard Lowe */
15*5d9d9091SRichard Lowe
16*5d9d9091SRichard Lowe
17*5d9d9091SRichard Lowe#include <sys/asm_linkage.h>
18*5d9d9091SRichard Lowe
19*5d9d9091SRichard Lowe	ENTRY_NP(hma_vmx_vmxon)
20*5d9d9091SRichard Lowe	push	%rbp
21*5d9d9091SRichard Lowe	movq	%rsp, %rbp
22*5d9d9091SRichard Lowe	pushq	%rdi
23*5d9d9091SRichard Lowe
24*5d9d9091SRichard Lowe	xorl	%eax, %eax
25*5d9d9091SRichard Lowe	vmxon	-0x8(%rbp)
26*5d9d9091SRichard Lowe	ja	1f	/* CF=0, ZF=0 (success) */
27*5d9d9091SRichard Lowe	incl	%eax
28*5d9d9091SRichard Lowe1:
29*5d9d9091SRichard Lowe
30*5d9d9091SRichard Lowe	leave
31*5d9d9091SRichard Lowe	ret
32*5d9d9091SRichard Lowe	SET_SIZE(hma_vmx_vmxon)
33*5d9d9091SRichard Lowe
34*5d9d9091SRichard Lowe	ENTRY_NP(hma_vmx_do_invept)
35*5d9d9091SRichard Lowe	push	%rbp
36*5d9d9091SRichard Lowe	movq	%rsp, %rbp
37*5d9d9091SRichard Lowe	pushq	%rdi
38*5d9d9091SRichard Lowe	pushq	%rsi
39*5d9d9091SRichard Lowe
40*5d9d9091SRichard Lowe	/* build INVEPT descriptor on stack */
41*5d9d9091SRichard Lowe	xorl	%eax, %eax
42*5d9d9091SRichard Lowe	pushq	%rax;
43*5d9d9091SRichard Lowe	pushq	%rsi
44*5d9d9091SRichard Lowe
45*5d9d9091SRichard Lowe	invept	(%rsp), %rdi
46*5d9d9091SRichard Lowe	ja	1f	/* CF=0, ZF=0 (success) */
47*5d9d9091SRichard Lowe	incl	%eax
48*5d9d9091SRichard Lowe1:
49*5d9d9091SRichard Lowe
50*5d9d9091SRichard Lowe	leave
51*5d9d9091SRichard Lowe	ret
52*5d9d9091SRichard Lowe	SET_SIZE(hma_vmx_do_invept)
53