diff options
author | Craig Topper <craig.topper@intel.com> | 2017-10-23 02:26:24 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2017-10-23 02:26:24 +0000 |
commit | 326008c61599163b8a847b17bb677d1625a62e84 (patch) | |
tree | 08363df34b851e726dae4c9ab497d8776fd6219a /llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp | |
parent | 2fd533db9f7b121d19b5f9b9d5a7692e7b2b0fee (diff) | |
download | llvm-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.cpp | 4 |
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; |