]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/llvm/lib/Target/X86/X86InstrTDX.td
Merge llvm-project main llvmorg-13-init-16847-g88e66fa60ae5
[FreeBSD/FreeBSD.git] / contrib / llvm-project / llvm / lib / Target / X86 / X86InstrTDX.td
1 //===- X86InstrTDX.td - TDX 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 TDX instruction
10 // set.
11 //
12 //===----------------------------------------------------------------------===//
13
14 //===----------------------------------------------------------------------===//
15 // TDX instructions
16
17 // 64-bit only instructions
18 let SchedRW = [WriteSystem], Predicates = [In64BitMode] in {
19 // SEAMCALL - Call to SEAM VMX-root Operation Module
20 def SEAMCALL : I<0x01, MRM_CF, (outs), (ins),
21              "seamcall", []>, PD;
22
23 // SEAMRET - Return to Legacy VMX-root Operation
24 def SEAMRET : I<0x01, MRM_CD, (outs), (ins),
25              "seamret", []>, PD;
26
27 // SEAMOPS - SEAM Operations
28 def SEAMOPS : I<0x01, MRM_CE, (outs), (ins),
29              "seamops", []>, PD;
30
31 } // SchedRW
32
33 // common instructions
34 let SchedRW = [WriteSystem] in {
35 // TDCALL - Call SEAM Module Functions
36 def TDCALL : I<0x01, MRM_CC, (outs), (ins),
37              "tdcall", []>, PD;
38
39 } // SchedRW