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 | ffabff11c04838966afe7650418aabbd66a67ef1 (patch) | |
| tree | 51f5fb0922a149742d449a2669f3d69a4ff0bb7a | |
| parent | e32e7fb40d1145406e58d75e9143fa434d0c1377 (diff) | |
| download | bcm5719-llvm-ffabff11c04838966afe7650418aabbd66a67ef1.tar.gz bcm5719-llvm-ffabff11c04838966afe7650418aabbd66a67ef1.zip | |
Teach DAGISelEmitter about zero_reg.
llvm-svn: 37900
| -rw-r--r-- | llvm/utils/TableGen/DAGISelEmitter.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/DAGISelEmitter.cpp b/llvm/utils/TableGen/DAGISelEmitter.cpp index 17114b0ebae..ca3d37a85a1 100644 --- a/llvm/utils/TableGen/DAGISelEmitter.cpp +++ b/llvm/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++; |

