Implement target independent TLS compatible with glibc's emutls.c.
[oota-llvm.git] / lib / Target / X86 / X86ISelLowering.cpp
index b3672c3216dc43b4362bc8c1482a35d2f54197d0..a99cc2064514f7ccfbc86a8368b3b3c843c4b650 100644 (file)
@@ -11645,6 +11645,8 @@ X86TargetLowering::LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const {
   auto PtrVT = getPointerTy(DAG.getDataLayout());
 
   if (Subtarget->isTargetELF()) {
+    if (DAG.getTarget().Options.EmulatedTLS)
+      return LowerToTLSEmulatedModel(GA, DAG);
     TLSModel::Model model = DAG.getTarget().getTLSModel(GV);
     switch (model) {
       case TLSModel::GeneralDynamic: