summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86InstrShiftRotate.td
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2011-10-23 07:34:00 +0000
committerCraig Topper <craig.topper@gmail.com>2011-10-23 07:34:00 +0000
commit75485d6746f8b5b23c17cf6d2364e7e1e0705992 (patch)
treeba768e50e36bc64df8943978485bfda422749295 /lib/Target/X86/X86InstrShiftRotate.td
parent90747e34e6ca7162eaf8dde032649071045f161d (diff)
downloadllvm-75485d6746f8b5b23c17cf6d2364e7e1e0705992.tar.gz
llvm-75485d6746f8b5b23c17cf6d2364e7e1e0705992.tar.bz2
llvm-75485d6746f8b5b23c17cf6d2364e7e1e0705992.tar.xz
Add X86 RORX instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142741 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrShiftRotate.td')
-rw-r--r--lib/Target/X86/X86InstrShiftRotate.td21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrShiftRotate.td b/lib/Target/X86/X86InstrShiftRotate.td
index 8278568184..a32f0665d3 100644
--- a/lib/Target/X86/X86InstrShiftRotate.td
+++ b/lib/Target/X86/X86InstrShiftRotate.td
@@ -744,3 +744,24 @@ def SHRD64mri8 : RIi8<0xAC, MRMDestMem,
} // Defs = [EFLAGS]
+let Predicates = [HasBMI2], neverHasSideEffects = 1 in {
+ def RORX32ri : Ii8<0xF0, MRMSrcReg, (outs GR32:$dst),
+ (ins GR32:$src1, i8imm:$src2),
+ "rorx{l}\t{$src2, $src1, $dst|$dst, $src1, $src2}", []>,
+ TAXD, VEX;
+ let mayLoad = 1 in
+ def RORX32mi : Ii8<0xF0, MRMSrcMem, (outs GR32:$dst),
+ (ins i32mem:$src1, i8imm:$src2),
+ "rorx{l}\t{$src2, $src1, $dst|$dst, $src1, $src2}", []>,
+ TAXD, VEX;
+
+ def RORX64ri : Ii8<0xF0, MRMSrcReg, (outs GR64:$dst),
+ (ins GR64:$src1, i8imm:$src2),
+ "rorx{q}\t{$src2, $src1, $dst|$dst, $src1, $src2}", []>,
+ TAXD, VEX, VEX_W;
+ let mayLoad = 1 in
+ def RORX64mi : Ii8<0xF0, MRMSrcMem, (outs GR64:$dst),
+ (ins i64mem:$src1, i8imm:$src2),
+ "rorx{q}\t{$src2, $src1, $dst|$dst, $src1, $src2}", []>,
+ TAXD, VEX, VEX_W;
+}