xref: /freebsd-src/contrib/llvm-project/llvm/lib/Target/X86/X86InstrSGX.td (revision cb14a3fe5122c879eae1fb480ed7ce82a699ddb6)
10b57cec5SDimitry Andric//===-- X86InstrSGX.td - SGX Instruction Set Extension -----*- tablegen -*-===//
20b57cec5SDimitry Andric//
30b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric//
70b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric//
90b57cec5SDimitry Andric// This file describes the instructions that make up the Intel SGX instruction
100b57cec5SDimitry Andric// set.
110b57cec5SDimitry Andric//
120b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
130b57cec5SDimitry Andric
140b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
150b57cec5SDimitry Andric// SGX instructions
160b57cec5SDimitry Andric
170b57cec5SDimitry Andriclet SchedRW = [WriteSystem], Predicates = [HasSGX] in {
180b57cec5SDimitry Andric// ENCLS - Execute an Enclave System Function of Specified Leaf Number
190b57cec5SDimitry Andricdef ENCLS : I<0x01, MRM_CF, (outs), (ins),
20*cb14a3feSDimitry Andric             "encls", []>, TB;
210b57cec5SDimitry Andric
220b57cec5SDimitry Andric// ENCLU - Execute an Enclave User Function of Specified Leaf Number
230b57cec5SDimitry Andricdef ENCLU : I<0x01, MRM_D7, (outs), (ins),
24*cb14a3feSDimitry Andric             "enclu", []>, TB;
250b57cec5SDimitry Andric
260b57cec5SDimitry Andric// ENCLV - Execute an Enclave VMM Function of Specified Leaf Number
270b57cec5SDimitry Andricdef ENCLV : I<0x01, MRM_C0, (outs), (ins),
28*cb14a3feSDimitry Andric             "enclv", []>, TB;
290b57cec5SDimitry Andric} // SchedRW
30