diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-07-05 07:19:45 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-07-05 07:19:45 +0000 |
commit | 7774be4a74be15305a4852efb9981847a7f1dad7 (patch) | |
tree | d400c6099ef52a3c67a3fbf455b2913530c6858b /utils | |
parent | 8012b077dd4d1c88e0221448c67147324c4e00cf (diff) | |
download | external_llvm-7774be4a74be15305a4852efb9981847a7f1dad7.zip external_llvm-7774be4a74be15305a4852efb9981847a7f1dad7.tar.gz external_llvm-7774be4a74be15305a4852efb9981847a7f1dad7.tar.bz2 |
Teach DAGISelEmitter about zero_reg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37900 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/DAGISelEmitter.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp index 17114b0..ca3d37a 100644 --- a/utils/TableGen/DAGISelEmitter.cpp +++ b/utils/TableGen/DAGISelEmitter.cpp @@ -622,7 +622,8 @@ static std::vector<unsigned char> 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<IntInit*>(N->getLeafValue())) { unsigned ResNo = TmpNo++; |