diff options
author | Chris Lattner <sabre@nondot.org> | 2003-08-11 20:32:02 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-08-11 20:32:02 +0000 |
commit | 57fb6ab871ffd829983b1d76fd00065cf4aec67d (patch) | |
tree | 7762a3ad54031fc4088d338e5b2d654660d3c8fe /utils/TableGen/InstrSelectorEmitter.cpp | |
parent | 88118bf7874753627388efbebcfd363675ff3612 (diff) | |
download | llvm-57fb6ab871ffd829983b1d76fd00065cf4aec67d.tar.gz llvm-57fb6ab871ffd829983b1d76fd00065cf4aec67d.tar.bz2 llvm-57fb6ab871ffd829983b1d76fd00065cf4aec67d.tar.xz |
Add support for naming the destination of a "set" in a pattern
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7748 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/InstrSelectorEmitter.cpp')
-rw-r--r-- | utils/TableGen/InstrSelectorEmitter.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/utils/TableGen/InstrSelectorEmitter.cpp b/utils/TableGen/InstrSelectorEmitter.cpp index 153f27e512..d9f333be6e 100644 --- a/utils/TableGen/InstrSelectorEmitter.cpp +++ b/utils/TableGen/InstrSelectorEmitter.cpp @@ -138,6 +138,7 @@ Pattern::Pattern(PatternType pty, DagInit *RawPat, Record *TheRec, if (!Tree->getChild(0)->isLeaf()) error("Arg #0 of set should be a register or register class!"); Result = Tree->getChild(0)->getValueRecord(); + ResultName = Tree->getChildName(0); Tree = Tree->getChild(1); } } @@ -895,6 +896,9 @@ static std::string getArgName(Pattern *P, const std::string &ArgName, for (unsigned i = 0, e = P->getNumArgs(); i != e; ++i) if (P->getArgName(i) == ArgName) return Operands[i].second + "->Val"; + + if (ArgName == P->getResultName()) + return "NewReg"; P->error("Pattern does not define a value named $" + ArgName + "!"); return ""; } |