diff options
Diffstat (limited to 'contrib/llvm-project/llvm/utils/TableGen/PredicateExpander.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/utils/TableGen/PredicateExpander.cpp | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/utils/TableGen/PredicateExpander.cpp b/contrib/llvm-project/llvm/utils/TableGen/PredicateExpander.cpp index 8f96d3307ded..d3a73e02cd91 100644 --- a/contrib/llvm-project/llvm/utils/TableGen/PredicateExpander.cpp +++ b/contrib/llvm-project/llvm/utils/TableGen/PredicateExpander.cpp @@ -194,6 +194,11 @@ void PredicateExpander::expandCheckIsRegOperand(raw_ostream &OS, int OpIndex) {       << "getOperand(" << OpIndex << ").isReg() ";  } +void PredicateExpander::expandCheckIsVRegOperand(raw_ostream &OS, int OpIndex) { +  OS << (shouldNegate() ? "!" : "") << "MI" << (isByRef() ? "." : "->") +     << "getOperand(" << OpIndex << ").getReg().isVirtual()"; +} +  void PredicateExpander::expandCheckIsImmOperand(raw_ostream &OS, int OpIndex) {    OS << (shouldNegate() ? "!" : "") << "MI" << (isByRef() ? "." : "->")       << "getOperand(" << OpIndex << ").isImm() "; @@ -319,6 +324,9 @@ void PredicateExpander::expandPredicate(raw_ostream &OS, const Record *Rec) {    if (Rec->isSubClassOf("CheckIsRegOperand"))      return expandCheckIsRegOperand(OS, Rec->getValueAsInt("OpIndex")); +  if (Rec->isSubClassOf("CheckIsVRegOperand")) +    return expandCheckIsVRegOperand(OS, Rec->getValueAsInt("OpIndex")); +    if (Rec->isSubClassOf("CheckIsImmOperand"))      return expandCheckIsImmOperand(OS, Rec->getValueAsInt("OpIndex"));  | 
