diff options
Diffstat (limited to 'utils/TableGen/CodeGenTarget.cpp')
-rw-r--r-- | utils/TableGen/CodeGenTarget.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp index c54ecd02e4..e4d80ee669 100644 --- a/utils/TableGen/CodeGenTarget.cpp +++ b/utils/TableGen/CodeGenTarget.cpp @@ -411,7 +411,10 @@ CodeGenInstruction::CodeGenInstruction(Record *R, const std::string &AsmStr) if (unsigned NumArgs = MIOpInfo->getNumArgs()) NumOps = NumArgs; - isPredicable |= Rec->isSubClassOf("PredicateOperand"); + if (Rec->isSubClassOf("PredicateOperand")) { + if (!Rec->getValueAsBit("isImmutable")) + isPredicable = true; + } } else if (Rec->getName() == "variable_ops") { hasVariableNumberOfOperands = true; continue; |