From 7774be4a74be15305a4852efb9981847a7f1dad7 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Thu, 5 Jul 2007 07:19:45 +0000 Subject: [PATCH] Teach DAGISelEmitter about zero_reg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37900 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/DAGISelEmitter.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp index 17114b0ebae..ca3d37a85a1 100644 --- a/utils/TableGen/DAGISelEmitter.cpp +++ b/utils/TableGen/DAGISelEmitter.cpp @@ -622,7 +622,8 @@ static std::vector getImplicitType(Record *R, bool NotRegisters, } else if (R->getName() == "ptr_rc") { Other[0] = MVT::iPTR; return Other; - } else if (R->getName() == "node" || R->getName() == "srcvalue") { + } else if (R->getName() == "node" || R->getName() == "srcvalue" || + R->getName() == "zero_reg") { // Placeholder. return Unknown; } @@ -2711,6 +2712,12 @@ public: getEnumName(N->getTypeNum(0)) + ");"); NodeOps.push_back("Tmp" + utostr(ResNo)); return NodeOps; + } else if (DI->getDef()->getName() == "zero_reg") { + emitCode("SDOperand Tmp" + utostr(ResNo) + + " = CurDAG->getRegister(0, " + + getEnumName(N->getTypeNum(0)) + ");"); + NodeOps.push_back("Tmp" + utostr(ResNo)); + return NodeOps; } } else if (IntInit *II = dynamic_cast(N->getLeafValue())) { unsigned ResNo = TmpNo++;