Revert "Move dllimport name mangling to IR mangler."
[oota-llvm.git] / lib / Target / ARM / ARMISelLowering.cpp
index 28069cea5c080cb2cba44893a943bddb1bd7435c..2cfbc39a05bf857e480338cd6d2d0de81ee73cbf 100644 (file)
@@ -1751,8 +1751,11 @@ ARMTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
     } else if (Subtarget->isTargetCOFF()) {
       assert(Subtarget->isTargetWindows() &&
              "Windows is the only supported COFF target");
+      unsigned TargetFlags = GV->hasDLLImportStorageClass()
+                                 ? ARMII::MO_DLLIMPORT
+                                 : ARMII::MO_NO_FLAG;
       Callee = DAG.getTargetGlobalAddress(GV, dl, getPointerTy(), /*Offset=*/0,
-                                          ARMII::MO_NO_FLAG);
+                                          TargetFlags);
       if (GV->hasDLLImportStorageClass())
         Callee = DAG.getLoad(getPointerTy(), dl, DAG.getEntryNode(),
                              DAG.getNode(ARMISD::Wrapper, dl, getPointerTy(),
@@ -2643,6 +2646,8 @@ SDValue ARMTargetLowering::LowerGlobalAddressWindows(SDValue Op,
          "Windows on ARM expects to use movw/movt");
 
   const GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
+  const ARMII::TOF TargetFlags =
+    (GV->hasDLLImportStorageClass() ? ARMII::MO_DLLIMPORT : ARMII::MO_NO_FLAG);
   EVT PtrVT = getPointerTy();
   SDValue Result;
   SDLoc DL(Op);
@@ -2653,7 +2658,7 @@ SDValue ARMTargetLowering::LowerGlobalAddressWindows(SDValue Op,
   // operands, expand this into two nodes.
   Result = DAG.getNode(ARMISD::Wrapper, DL, PtrVT,
                        DAG.getTargetGlobalAddress(GV, DL, PtrVT, /*Offset=*/0,
-                                                  ARMII::MO_NO_FLAG));
+                                                  TargetFlags));
   if (GV->hasDLLImportStorageClass())
     Result = DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), Result,
                          MachinePointerInfo::getGOT(), false, false, false, 0);