aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2017-10-23 02:26:24 +0000
committerCraig Topper <craig.topper@intel.com>2017-10-23 02:26:24 +0000
commit326008c61599163b8a847b17bb677d1625a62e84 (patch)
tree08363df34b851e726dae4c9ab497d8776fd6219a /llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
parent2fd533db9f7b121d19b5f9b9d5a7692e7b2b0fee (diff)
downloadllvm-326008c61599163b8a847b17bb677d1625a62e84.zip
llvm-326008c61599163b8a847b17bb677d1625a62e84.tar.gz
llvm-326008c61599163b8a847b17bb677d1625a62e84.tar.bz2
[X86] Fix disassembly of EVEX rounding control and SAE instructions.
Fixes PR31955. llvm-svn: 316308
Diffstat (limited to 'llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp')
-rw-r--r--llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
index e781c98..80acff2 100644
--- a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
+++ b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
@@ -1803,6 +1803,10 @@ static int readOperands(struct InternalInstruction* insn) {
if (readImmediate(insn, insn->addressSize))
return -1;
break;
+ case ENCODING_IRC:
+ insn->RC = (l2FromEVEX4of4(insn->vectorExtensionPrefix[3]) << 1) |
+ lFromEVEX4of4(insn->vectorExtensionPrefix[3]);
+ break;
case ENCODING_RB:
if (readOpcodeRegister(insn, 1))
return -1;