summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2014-12-26 06:36:28 +0000
committerCraig Topper <craig.topper@gmail.com>2014-12-26 06:36:28 +0000
commitee9eef2fd865632d7ae8f8f8f05b37b2cc518afe (patch)
tree6a3e810c9e96f26730112d5e31bbf6095172c59b /llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
parent2e44492b1d16801ec8a7e8ddc25d12a973ea7ec6 (diff)
downloadbcm5719-llvm-ee9eef2fd865632d7ae8f8f8f05b37b2cc518afe.tar.gz
bcm5719-llvm-ee9eef2fd865632d7ae8f8f8f05b37b2cc518afe.zip
Teach disassembler to handle illegal immediates on (v)cmpps/pd/ss/sd instructions. Instead of rejecting we'll just generate the _alt forms that don't try to alter the mnemonic. While I'm here, merge some common code in the Instruction printers for the condition code replacement and fix the mask on SSE to be 3-bits instead of 4.
llvm-svn: 224846
Diffstat (limited to 'llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp')
-rw-r--r--llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp6
1 files changed, 0 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
index 98b344096aa..770d406a180 100644
--- a/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
+++ b/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
@@ -1737,12 +1737,6 @@ static int readOperands(struct InternalInstruction* insn) {
}
if (readImmediate(insn, 1))
return -1;
- if (Op.type == TYPE_IMM3 &&
- insn->immediates[insn->numImmediatesConsumed - 1] > 7)
- return -1;
- if (Op.type == TYPE_IMM5 &&
- insn->immediates[insn->numImmediatesConsumed - 1] > 31)
- return -1;
if (Op.type == TYPE_XMM128 ||
Op.type == TYPE_XMM256)
sawRegImm = 1;
OpenPOWER on IntegriCloud