diff options
author | Craig Topper <craig.topper@gmail.com> | 2014-12-27 18:11:00 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2014-12-27 18:11:00 +0000 |
commit | 53f75b9dc0129b1bc37c1b13bd9b4752c25ba7cf (patch) | |
tree | cd0da3472d1d8746fe2eed2fe6ea754591bcbc65 /llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp | |
parent | acc73445b7feb1a1ed59dd10a2e0d83e1a893722 (diff) | |
download | bcm5719-llvm-53f75b9dc0129b1bc37c1b13bd9b4752c25ba7cf.tar.gz bcm5719-llvm-53f75b9dc0129b1bc37c1b13bd9b4752c25ba7cf.zip |
[x86] Assert on invalid immediates in the instruction printer for cmp.ps/pd/ss/sd instead of truncating the immediate. The assembly parser and instruction selection shouldn't generate invalid immediates.
llvm-svn: 224886
Diffstat (limited to 'llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp')
-rw-r--r-- | llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp index f5fd9845d90..449445df7d2 100644 --- a/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp +++ b/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp @@ -90,13 +90,15 @@ static void printSSEAVXCC(int64_t Imm, raw_ostream &O) { void X86IntelInstPrinter::printSSECC(const MCInst *MI, unsigned Op, raw_ostream &O) { - int64_t Imm = MI->getOperand(Op).getImm() & 0x7; + int64_t Imm = MI->getOperand(Op).getImm(); + assert((Imm & 0x7) == Imm); // Ensure valid immediate. printSSEAVXCC(Imm, O); } void X86IntelInstPrinter::printAVXCC(const MCInst *MI, unsigned Op, raw_ostream &O) { - int64_t Imm = MI->getOperand(Op).getImm() & 0x1f; + int64_t Imm = MI->getOperand(Op).getImm(); + assert((Imm & 0x1f) == Imm); // Ensure valid immediate. printSSEAVXCC(Imm, O); } |