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