summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2015-03-02 03:33:11 +0000
committerCraig Topper <craig.topper@gmail.com>2015-03-02 03:33:11 +0000
commit9c26bcca5a09c226ec0d702e8e644ad71188d298 (patch)
tree77f37ddd8bcfa2205cdab9e5b02f2efd759f5526 /llvm/lib
parente2c9e645324d7df88b096121d94efdfbf72de035 (diff)
downloadbcm5719-llvm-9c26bcca5a09c226ec0d702e8e644ad71188d298.tar.gz
bcm5719-llvm-9c26bcca5a09c226ec0d702e8e644ad71188d298.zip
[X86] There are only 8 mask registers. Fail disassembly if instruction tries to reference more.
llvm-svn: 230931
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
index 619a0d4dd65..49e64032ad7 100644
--- a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
+++ b/llvm/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); \
OpenPOWER on IntegriCloud