[X86] There are only 8 mask registers. Fail disassembly if instruction tries to refer...
authorCraig Topper <craig.topper@gmail.com>
Mon, 2 Mar 2015 03:33:11 +0000 (03:33 +0000)
committerCraig Topper <craig.topper@gmail.com>
Mon, 2 Mar 2015 03:33:11 +0000 (03:33 +0000)
llvm-svn: 230931

llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp

index 619a0d4..49e6403 100644 (file)
@@ -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);                \