From 2d9a799b162dd529c35ba2a2ec4900704953ca79 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 2 Mar 2015 03:33:11 +0000 Subject: [PATCH] [X86] There are only 8 mask registers. Fail disassembly if instruction tries to reference more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230931 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp b/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp index 619a0d4dd65..49e64032ad7 100644 --- a/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp +++ b/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp @@ -1458,6 +1458,8 @@ static int readModRM(struct InternalInstruction* insn) { case TYPE_VK1: \ case TYPE_VK8: \ case TYPE_VK16: \ + if (index > 7) \ + *valid = 0; \ return prefix##_K0 + index; \ case TYPE_MM64: \ return prefix##_MM0 + (index & 0x7); \ -- 2.34.1