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