Make the constant honest.
authorJim Laskey <jlaskey@mac.com>
Fri, 26 Jan 2007 23:00:54 +0000 (23:00 +0000)
committerJim Laskey <jlaskey@mac.com>
Fri, 26 Jan 2007 23:00:54 +0000 (23:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33557 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/DAGISelEmitter.cpp

index 6c9825de0f6e7fdd6645bf4f5ee6cdc204959a4d..6ad7999c3f530d68f368aa32676a547ffa892b95 100644 (file)
@@ -3691,9 +3691,11 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
   OS << "SDNode *Select_LABEL(const SDOperand &N) {\n"
      << "  SDOperand Chain = N.getOperand(0);\n"
      << "  SDOperand N1 = N.getOperand(1);\n"
+     << "  unsigned C = cast<ConstantSDNode>(N1)->getValue();\n"
+     << "  SDOperand Tmp = CurDAG->getTargetConstant(C, MVT::i32);\n"
      << "  AddToISelQueue(Chain);\n"
      << "  return CurDAG->getTargetNode(TargetInstrInfo::LABEL,\n"
-     << "                               MVT::Other, N1, Chain);\n"
+     << "                               MVT::Other, Tmp, Chain);\n"
      << "}\n\n";
 
   OS << "// The main instruction selector code.\n"