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 | 03d00fe39a5ce3ebeda3319f4f4df95d179d93cb (patch) | |
| tree | 3fd1c203a6ba749f5efa8106c845bf7959c146d1 /llvm/support/tools/TableGen/InstrSelectorEmitter.cpp | |
| parent | bb9dfb078247beb379dbe754b28f242dd18048a1 (diff) | |
| download | bcm5719-llvm-03d00fe39a5ce3ebeda3319f4f4df95d179d93cb.tar.gz bcm5719-llvm-03d00fe39a5ce3ebeda3319f4f4df95d179d93cb.zip | |
Add support for naming the destination of a "set" in a pattern
llvm-svn: 7748
Diffstat (limited to 'llvm/support/tools/TableGen/InstrSelectorEmitter.cpp')
| -rw-r--r-- | llvm/support/tools/TableGen/InstrSelectorEmitter.cpp | 4 | 
1 files changed, 4 insertions, 0 deletions
| diff --git a/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp b/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp index 153f27e512f..d9f333be6e8 100644 --- a/llvm/support/tools/TableGen/InstrSelectorEmitter.cpp +++ b/llvm/support/tools/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 "";  } | 

