From 313b747c5bf293aa86caf0da57b978a9758cd57b Mon Sep 17 00:00:00 2001 From: Ganesh Gopalasubramanian Date: Tue, 10 Jan 2023 19:01:12 +0530 Subject: [PATCH] [X86] Add RMPQUERY to SNP instructions --- llvm/lib/Target/X86/X86InstrSNP.td | 6 ++++++ llvm/test/MC/Disassembler/X86/x86-64.txt | 3 +++ llvm/test/MC/X86/SNP-64.s | 8 ++++++++ 3 files changed, 17 insertions(+) diff --git a/llvm/lib/Target/X86/X86InstrSNP.td b/llvm/lib/Target/X86/X86InstrSNP.td index de59f3f..7fdbe3e 100644 --- a/llvm/lib/Target/X86/X86InstrSNP.td +++ b/llvm/lib/Target/X86/X86InstrSNP.td @@ -38,6 +38,11 @@ def RMPUPDATE: I<0x01, MRM_FE, (outs), (ins), "rmpupdate", []>, XD, let Uses = [RAX] in def RMPADJUST: I<0x01, MRM_FE, (outs), (ins), "rmpadjust", []>, XS, Requires<[In64BitMode]>; + +// F3 0F 01 FD +let Uses = [RAX, RDX], Defs = [RCX, RDX] in +def RMPQUERY: I<0x01, MRM_FD, (outs), (ins), "rmpquery", []>, XS, + Requires<[In64BitMode]>; } // SchedRW def : InstAlias<"psmash\t{%rax|rax}", (PSMASH)>, Requires<[In64BitMode]>; @@ -45,3 +50,4 @@ def : InstAlias<"pvalidate\t{%rax|rax}", (PVALIDATE64)>, Requires<[In64BitMode]> def : InstAlias<"pvalidate\t{%eax|eax}", (PVALIDATE32)>, Requires<[Not64BitMode]>; def : InstAlias<"rmpupdate\t{%rax|rax}", (RMPUPDATE)>, Requires<[In64BitMode]>; def : InstAlias<"rmpadjust\t{%rax|rax}", (RMPADJUST)>, Requires<[In64BitMode]>; +def : InstAlias<"rmpquery\t{%rax, %rcx, %rdx|rdx, rcx, rax}", (RMPQUERY)>, Requires<[In64BitMode]>; diff --git a/llvm/test/MC/Disassembler/X86/x86-64.txt b/llvm/test/MC/Disassembler/X86/x86-64.txt index 9ea0367..159d9ef 100644 --- a/llvm/test/MC/Disassembler/X86/x86-64.txt +++ b/llvm/test/MC/Disassembler/X86/x86-64.txt @@ -744,6 +744,9 @@ # CHECK: rmpadjust 0xf3 0x0f 0x01 0xfe +# CHECK: rmpquery +0xf3 0x0f 0x01 0xfd + # CHECK: testui 0xf3,0x0f,0x01,0xed diff --git a/llvm/test/MC/X86/SNP-64.s b/llvm/test/MC/X86/SNP-64.s index 7a532a1..25f68eb 100644 --- a/llvm/test/MC/X86/SNP-64.s +++ b/llvm/test/MC/X86/SNP-64.s @@ -16,6 +16,10 @@ pvalidate // CHECK: encoding: [0xf3,0x0f,0x01,0xfe] rmpadjust +// CHECK: rmpquery +// CHECK: encoding: [0xf3,0x0f,0x01,0xfd] +rmpquery + // CHECK: rmpupdate // CHECK: encoding: [0xf2,0x0f,0x01,0xfe] rmpupdate %rax @@ -31,3 +35,7 @@ pvalidate %rax // CHECK: rmpadjust // CHECK: encoding: [0xf3,0x0f,0x01,0xfe] rmpadjust %rax + +// CHECK: rmpquery +// CHECK: encoding: [0xf3,0x0f,0x01,0xfd] +rmpquery %rax, %rcx, %rdx -- 2.7.4