]> granicus.if.org Git - llvm/commitdiff
[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)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230931 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp

index 619a0d4dd65e4805d1f6957cb62cdd72dbc2cc8a..49e64032ad76aefa581274c85b369f3d54c1652b 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);                \