"fix" support for FP constants (this code asserts in the scheduler,
authorDuraid Madina <duraid@octopus.com.au>
Wed, 2 Nov 2005 07:32:59 +0000 (07:32 +0000)
committerDuraid Madina <duraid@octopus.com.au>
Wed, 2 Nov 2005 07:32:59 +0000 (07:32 +0000)
though)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24152 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/IA64/IA64ISelDAGToDAG.cpp

index d3487f27862b04a30a237b2deab1f74100597295..9b26a25e9a2d34760062139faf52e75a863bc94e 100644 (file)
@@ -322,10 +322,12 @@ SDOperand IA64DAGToDAGISel::Select(SDOperand Op) {
  * case ISD::DYNAMIC_STACKALLOC:
 */
   case ISD::ConstantFP: {
+    SDOperand Chain = CurDAG->getEntryNode(); // this is a constant, so..
+
     if (cast<ConstantFPSDNode>(N)->isExactlyValue(+0.0))
-      return CurDAG->getRegister(IA64::F0, MVT::f64); // load 0.0
+      return CurDAG->getCopyFromReg(Chain, IA64::F0, MVT::f64);
     else if (cast<ConstantFPSDNode>(N)->isExactlyValue(+1.0))
-      return CurDAG->getRegister(IA64::F1, MVT::f64); // load 1.0
+      return CurDAG->getCopyFromReg(Chain, IA64::F1, MVT::f64);
     else
       assert(0 && "Unexpected FP constant!");
   }