xref: /freebsd/contrib/llvm-project/llvm/lib/Target/X86/X86InstrSGX.td (revision e25152834cdf3b353892835a4f3b157e066a8ed4)
1//===-- X86InstrSGX.td - SGX Instruction Set Extension -----*- tablegen -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file describes the instructions that make up the Intel SGX instruction
10// set.
11//
12//===----------------------------------------------------------------------===//
13
14//===----------------------------------------------------------------------===//
15// SGX instructions
16
17let SchedRW = [WriteSystem], Predicates = [HasSGX] in {
18// ENCLS - Execute an Enclave System Function of Specified Leaf Number
19def ENCLS : I<0x01, MRM_CF, (outs), (ins),
20             "encls", []>, PS;
21
22// ENCLU - Execute an Enclave User Function of Specified Leaf Number
23def ENCLU : I<0x01, MRM_D7, (outs), (ins),
24             "enclu", []>, PS;
25
26// ENCLV - Execute an Enclave VMM Function of Specified Leaf Number
27def ENCLV : I<0x01, MRM_C0, (outs), (ins),
28             "enclv", []>, PS;
29} // SchedRW
30