summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/AsmMatcherEmitter.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-11-06 06:39:47 +0000
committerChris Lattner <sabre@nondot.org>2010-11-06 06:39:47 +0000
commit8ffd129950ba6ed3fc77db1867c9f58b6dc4f965 (patch)
tree11fb243110bd73cf0f1574ff951a126eedf8d9c4 /llvm/utils/TableGen/AsmMatcherEmitter.cpp
parent7232697fed64cafff3e8b81cd3fe9c5d37851b88 (diff)
downloadbcm5719-llvm-8ffd129950ba6ed3fc77db1867c9f58b6dc4f965.tar.gz
bcm5719-llvm-8ffd129950ba6ed3fc77db1867c9f58b6dc4f965.zip
disolve a hack, having CodeGenInstAlias decode the alias in the .td
file instead of the asmmatcher. llvm-svn: 118324
Diffstat (limited to 'llvm/utils/TableGen/AsmMatcherEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/AsmMatcherEmitter.cpp16
1 files changed, 5 insertions, 11 deletions
diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
index 75bcc046f69..7d5ec6210be 100644
--- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp
+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
@@ -355,12 +355,8 @@ struct MatchableInfo {
MatchableInfo(const CodeGenInstAlias *Alias)
: TheDef(Alias->TheDef), DefRec(Alias), TheOperandList(Alias->Operands),
AsmString(Alias->AsmString) {
-
- // FIXME: Huge hack.
- DefInit *DI = dynamic_cast<DefInit*>(Alias->Result->getOperator());
- assert(DI);
-
- InstrName = DI->getDef()->getName();
+ // FIXME: InstrName should be a CGI.
+ InstrName = Alias->ResultInst->TheDef->getName();
}
void Initialize(const AsmMatcherInfo &Info,
@@ -1066,7 +1062,7 @@ void AsmMatcherInfo::BuildInfo() {
std::vector<Record*> AllInstAliases =
Records.getAllDerivedDefinitions("InstAlias");
for (unsigned i = 0, e = AllInstAliases.size(); i != e; ++i) {
- CodeGenInstAlias *Alias = new CodeGenInstAlias(AllInstAliases[i]);
+ CodeGenInstAlias *Alias = new CodeGenInstAlias(AllInstAliases[i], Target);
OwningPtr<MatchableInfo> II(new MatchableInfo(Alias));
@@ -1117,11 +1113,9 @@ void AsmMatcherInfo::BuildInfo() {
OperandName = Token.substr(1);
if (II->DefRec.is<const CodeGenInstruction*>())
- BuildInstructionOperandReference(II,
- OperandName, Op);
+ BuildInstructionOperandReference(II, OperandName, Op);
else
- BuildAliasOperandReference(II,
- OperandName, Op);
+ BuildAliasOperandReference(II, OperandName, Op);
}
II->BuildResultOperands();
OpenPOWER on IntegriCloud