aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86InstrSystem.td
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2011-10-07 05:53:50 +0000
committerCraig Topper <craig.topper@gmail.com>2011-10-07 05:53:50 +0000
commit1b526a98e367c9a512a082a0d008123206b2a558 (patch)
tree0f9dcab38ad286c04f19585f032ef0de4f23757e /lib/Target/X86/X86InstrSystem.td
parent25f6dfd108801d1dc5877c420ef0dd47131aeda7 (diff)
downloadexternal_llvm-1b526a98e367c9a512a082a0d008123206b2a558.zip
external_llvm-1b526a98e367c9a512a082a0d008123206b2a558.tar.gz
external_llvm-1b526a98e367c9a512a082a0d008123206b2a558.tar.bz2
Add X86 disassembler support for XSAVE, XRSTOR, and XSAVEOPT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141354 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrSystem.td')
-rw-r--r--lib/Target/X86/X86InstrSystem.td15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrSystem.td b/lib/Target/X86/X86InstrSystem.td
index a22a4c9..6c880ed 100644
--- a/lib/Target/X86/X86InstrSystem.td
+++ b/lib/Target/X86/X86InstrSystem.td
@@ -406,6 +406,21 @@ let Defs = [RDX, RAX], Uses = [RCX] in
let Uses = [RDX, RAX, RCX] in
def XSETBV : I<0x01, MRM_D1, (outs), (ins), "xsetbv", []>, TB;
+let Uses = [RDX, RAX] in {
+ def XSAVE : I<0xAE, MRM4m, (outs opaque512mem:$dst), (ins),
+ "xsave\t$dst", []>, TB;
+ def XSAVE64 : I<0xAE, MRM4m, (outs opaque512mem:$dst), (ins),
+ "xsaveq\t$dst", []>, TB, REX_W, Requires<[In64BitMode]>;
+ def XRSTOR : I<0xAE, MRM5m, (outs), (ins opaque512mem:$dst),
+ "xrstor\t$dst", []>, TB;
+ def XRSTOR64 : I<0xAE, MRM5m, (outs), (ins opaque512mem:$dst),
+ "xrstorq\t$dst", []>, TB, REX_W, Requires<[In64BitMode]>;
+ def XSAVEOPT : I<0xAE, MRM6m, (outs opaque512mem:$dst), (ins),
+ "xsaveopt\t$dst", []>, TB;
+ def XSAVEOPT64 : I<0xAE, MRM6m, (outs opaque512mem:$dst), (ins),
+ "xsaveoptq\t$dst", []>, TB, REX_W, Requires<[In64BitMode]>;
+}
+
//===----------------------------------------------------------------------===//
// VIA PadLock crypto instructions
let Defs = [RAX, RDI], Uses = [RDX, RDI] in