Added support for ComplexPattern. These are patterns that require C++ pattern

matching code that is not currently auto-generated by tblgen, e.g. X86
addressing mode. Selection routines for complex patterns can return multiple operands, e.g. X86 addressing mode returns 4.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24634 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2005-12-08 02:00:36 +00:00
parent cc827e60b6
commit 0fc7198890
5 changed files with 220 additions and 57 deletions
+9
View File
@@ -330,3 +330,12 @@ unsigned CodeGenInstruction::getOperandNamed(const std::string &Name) const {
throw "Instruction '" + TheDef->getName() +
"' does not have an operand named '$" + Name + "'!";
}
//===----------------------------------------------------------------------===//
// ComplexPattern implementation
//
ComplexPattern::ComplexPattern(Record *R) {
NumOperands = R->getValueAsInt("NumOperands");
SelectFunc = R->getValueAsString("SelectFunc");
MatchingNodes = R->getValueAsListOfDefs("MatchingNodes");
}