summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-02-19 07:49:56 +0000
committerChris Lattner <sabre@nondot.org>2010-02-19 07:49:56 +0000
commitb4905cbd12160ddefed24b09891025b0443ded58 (patch)
tree815744e21d864018f139be05d0e6d873b24ad3fd /llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
parent1d6827adef414914761bfea4e4876f4565e2477e (diff)
downloadbcm5719-llvm-b4905cbd12160ddefed24b09891025b0443ded58.tar.gz
bcm5719-llvm-b4905cbd12160ddefed24b09891025b0443ded58.zip
add emitter support for integer constants and simple physreg references.
llvm-svn: 96663
Diffstat (limited to 'llvm/utils/TableGen/DAGISelMatcherEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/DAGISelMatcherEmitter.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
index 92b2a55e9b7..4b16db309b2 100644
--- a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
+++ b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
@@ -213,10 +213,21 @@ EmitMatcher(const MatcherNode *N, unsigned Indent) {
<< cast<CheckChainCompatibleMatcherNode>(N)->getPreviousOp() << ",\n";
return 2;
- case MatcherNode::EmitInteger:
+ case MatcherNode::EmitInteger: {
+ int64_t Val = cast<EmitIntegerMatcherNode>(N)->getValue();
+ OS << "OPC_EmitInteger" << ClassifyInt(Val) << ", "
+ << getEnumName(cast<EmitIntegerMatcherNode>(N)->getVT()) << ", ";
+ return EmitInt(Val, OS)+2;
+ }
+
case MatcherNode::EmitRegister:
- // FIXME: Implement.
- return 0;
+ OS << "OPC_EmitRegister, "
+ << getEnumName(cast<EmitRegisterMatcherNode>(N)->getVT()) << ", ";
+ if (Record *R = cast<EmitRegisterMatcherNode>(N)->getReg())
+ OS << getQualifiedName(R) << ",\n";
+ else
+ OS << "0 /*zero_reg*/,\n";
+ return 3;
}
assert(0 && "Unreachable");
return 0;
OpenPOWER on IntegriCloud