aboutsummaryrefslogtreecommitdiffstats
path: root/utils/TableGen/CodeGenTarget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utils/TableGen/CodeGenTarget.cpp')
-rw-r--r--utils/TableGen/CodeGenTarget.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp
index c54ecd0..e4d80ee 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;