aboutsummaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-07-05 07:19:45 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-07-05 07:19:45 +0000
commit7774be4a74be15305a4852efb9981847a7f1dad7 (patch)
treed400c6099ef52a3c67a3fbf455b2913530c6858b /utils
parent8012b077dd4d1c88e0221448c67147324c4e00cf (diff)
downloadexternal_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.cpp9
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++;