From: Evan Cheng Date: Fri, 15 Dec 2006 06:37:08 +0000 (+0000) Subject: Silly assertion. Forgot variable_ops instructions can have arbitrary number of X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f2f6a1baf78f3bdf375b258996abd567c20496bc;p=oota-llvm.git Silly assertion. Forgot variable_ops instructions can have arbitrary number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32592 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/TargetInstrInfo.h b/include/llvm/Target/TargetInstrInfo.h index 7fb594d1c9a..eb1dbce352a 100644 --- a/include/llvm/Target/TargetInstrInfo.h +++ b/include/llvm/Target/TargetInstrInfo.h @@ -132,8 +132,10 @@ public: /// it is set. Returns -1 if it is not set. int getOperandConstraint(unsigned OpNum, TOI::OperandConstraint Constraint) const { - assert(OpNum < numOperands && "Invalid operand # of TargetInstrInfo"); - if (OpInfo[OpNum].Constraints & (1 << Constraint)) { + assert((OpNum < numOperands || (Flags & M_VARIABLE_OPS)) && + "Invalid operand # of TargetInstrInfo"); + if (OpNum < numOperands && + (OpInfo[OpNum].Constraints & (1 << Constraint))) { unsigned Pos = 16 + Constraint * 4; return (int)(OpInfo[OpNum].Constraints >> Pos) & 0xf; }