[llvm-commits] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp
Chris Lattner
lattner at cs.uiuc.edu
Tue Oct 18 19:07:37 PDT 2005
Changes in directory llvm/utils/TableGen:
DAGISelEmitter.cpp updated: 1.61 -> 1.62
---
Log message:
Add support for patterns that have physical registers in them. Testcase:
def : Pat<(trunc G8RC:$in),
(OR8To4 G8RC:$in, X0)>;
Even though this doesn't make any sense on PPC :)
---
Diffs of the changes: (+12 -0)
DAGISelEmitter.cpp | 12 ++++++++++++
1 files changed, 12 insertions(+)
Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.61 llvm/utils/TableGen/DAGISelEmitter.cpp:1.62
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.61 Tue Oct 18 20:55:23 2005
+++ llvm/utils/TableGen/DAGISelEmitter.cpp Tue Oct 18 21:07:26 2005
@@ -1617,6 +1617,18 @@
}
if (N->isLeaf()) {
+ // If this is an explicit register reference, handle it.
+ if (DefInit *DI = dynamic_cast<DefInit*>(N->getLeafValue())) {
+ unsigned ResNo = Ctr++;
+ if (DI->getDef()->isSubClassOf("Register")) {
+ OS << " SDOperand Tmp" << ResNo << " = CurDAG->getRegister("
+ << getQualifiedName(DI->getDef()) << ", MVT::"
+ << getEnumName(N->getType())
+ << ");\n";
+ return ResNo;
+ }
+ }
+
N->dump();
assert(0 && "Unknown leaf type!");
return ~0U;
More information about the llvm-commits
mailing list