ia32-64/x86/vmfunc.html
2025-07-08 02:23:29 -03:00

70 lines
3.5 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" xmlns:x86="http://www.felixcloutier.com/x86"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="style.css"></link><title>VMFUNC
— Invoke VM function</title></head><body><header><nav><ul><li><a href='index.html'>Index</a></li><li>December 2023</li></ul></nav></header><h1>VMFUNC
— Invoke VM function</h1>
<table>
<tr>
<th>Opcode/Instruction</th>
<th>Op/En</th>
<th>Description</th></tr>
<tr>
<td>NP 0F 01 D4 VMFUNC</td>
<td>ZO</td>
<td>Invoke VM function specified in EAX.</td></tr></table>
<h2 id="instruction-operand-encoding">Instruction Operand Encoding<a class="anchor" href="#instruction-operand-encoding">
</a></h2>
<table>
<tr>
<td>Op/En</td>
<td>Operand 1</td>
<td>Operand 2</td>
<td>Operand 3</td>
<td>Operand 4</td></tr>
<tr>
<td>ZO</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td></tr></table>
<h2 id="description">Description<a class="anchor" href="#description">
</a></h2>
<p>This instruction allows software in VMX non-root operation to invoke a VM function, which is processor functionality enabled and configured by software in VMX root operation. The value of EAX selects the specific VM function being invoked.</p>
<p>The behavior of each VM function (including any additional fault checking) is specified in Section 26.5.6, “VM Functions.”</p>
<h2 id="operation">Operation<a class="anchor" href="#operation">
</a></h2>
<pre>Perform functionality of the VM function specified in EAX;
</pre>
<h2 id="flags-affected">Flags Affected<a class="anchor" href="#flags-affected">
</a></h2>
<p>Depends on the VM function specified in EAX. See Section 26.5.6, “VM Functions.”</p>
<h2 id="protected-mode-exceptions--not-including-those-defined-by-specific-vm-functions-">Protected Mode Exceptions (not including those defined by specific VM functions)<a class="anchor" href="#protected-mode-exceptions--not-including-those-defined-by-specific-vm-functions-">
</a></h2>
<p>#UD If executed outside VMX non-root operation.</p>
<p>If “enable VM functions” VM-execution control is 0.</p>
<p>If EAX ≥ 64.</p>
<h2 class="exceptions" id="real-address-mode-exceptions">Real-Address Mode Exceptions<a class="anchor" href="#real-address-mode-exceptions">
</a></h2>
<p>Same exceptions as in protected mode.</p>
<h2 class="exceptions" id="virtual-8086-exceptions">Virtual-8086 Exceptions<a class="anchor" href="#virtual-8086-exceptions">
</a></h2>
<p>Same exceptions as in protected mode.</p>
<h2 class="exceptions" id="compatibility-mode-exceptions">Compatibility Mode Exceptions<a class="anchor" href="#compatibility-mode-exceptions">
</a></h2>
<p>Same exceptions as in protected mode.</p>
<h2 class="exceptions" id="64-bit-mode-exceptions">64-Bit Mode Exceptions<a class="anchor" href="#64-bit-mode-exceptions">
</a></h2>
<p>Same exceptions as in protected mode.</p><footer><p>
This UNOFFICIAL, mechanically-separated, non-verified reference is provided for convenience, but it may be
inc<span style="opacity: 0.2">omp</span>lete or b<sub>r</sub>oke<sub>n</sub> in various obvious or non-obvious
ways. Refer to <a href="https://software.intel.com/en-us/download/intel-64-and-ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4">Intel® 64 and IA-32 Architectures Software Developers Manual</a> for anything serious.
</p></footer></body></html>