xref: /llvm-project/llvm/lib/Target/X86/X86InstrTDX.td (revision ff32ab3ae7f4ae32907bb802b67a962743db7ba0)
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