1bc7f6c6dSFreddy Ye//===- X86InstrTDX.td - TDX Instruction Set Extension -*- tablegen -*===// 2bc7f6c6dSFreddy Ye// 3bc7f6c6dSFreddy Ye// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4bc7f6c6dSFreddy Ye// See https://llvm.org/LICENSE.txt for license information. 5bc7f6c6dSFreddy Ye// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6bc7f6c6dSFreddy Ye// 7bc7f6c6dSFreddy Ye//===----------------------------------------------------------------------===// 8bc7f6c6dSFreddy Ye// 9bc7f6c6dSFreddy Ye// This file describes the instructions that make up the Intel TDX instruction 10bc7f6c6dSFreddy Ye// set. 11bc7f6c6dSFreddy Ye// 12bc7f6c6dSFreddy Ye//===----------------------------------------------------------------------===// 13bc7f6c6dSFreddy Ye 14bc7f6c6dSFreddy Ye//===----------------------------------------------------------------------===// 15bc7f6c6dSFreddy Ye// TDX instructions 16bc7f6c6dSFreddy Ye 17bc7f6c6dSFreddy Ye// 64-bit only instructions 18bc7f6c6dSFreddy Yelet SchedRW = [WriteSystem], Predicates = [In64BitMode] in { 19bc7f6c6dSFreddy Ye// SEAMCALL - Call to SEAM VMX-root Operation Module 20*ff32ab3aSShengchen Kandef SEAMCALL : I<0x01, MRM_CF, (outs), (ins), "seamcall", []>, TB, PD; 21bc7f6c6dSFreddy Ye 22bc7f6c6dSFreddy Ye// SEAMRET - Return to Legacy VMX-root Operation 23*ff32ab3aSShengchen Kandef SEAMRET : I<0x01, MRM_CD, (outs), (ins), "seamret", []>, TB, PD; 24bc7f6c6dSFreddy Ye 25bc7f6c6dSFreddy Ye// SEAMOPS - SEAM Operations 26*ff32ab3aSShengchen Kandef SEAMOPS : I<0x01, MRM_CE, (outs), (ins), "seamops", []>, TB, PD; 27bc7f6c6dSFreddy Ye} // SchedRW 28bc7f6c6dSFreddy Ye 29bc7f6c6dSFreddy Ye// common instructions 30bc7f6c6dSFreddy Yelet SchedRW = [WriteSystem] in { 31bc7f6c6dSFreddy Ye// TDCALL - Call SEAM Module Functions 32*ff32ab3aSShengchen Kandef TDCALL : I<0x01, MRM_CC, (outs), (ins), "tdcall", []>, TB, PD; 33bc7f6c6dSFreddy Ye} // SchedRW 34