reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/X86/X86ISelLowering.cpp
18086   if (DAG.getTarget().useEmulatedTLS())
18087     return LowerToTLSEmulatedModel(GA, DAG);
18090   auto PtrVT = getPointerTy(DAG.getDataLayout());
18094     TLSModel::Model model = DAG.getTarget().getTLSModel(GV);
18098           return LowerToTLSGeneralDynamicModel64(GA, DAG, PtrVT);
18099         return LowerToTLSGeneralDynamicModel32(GA, DAG, PtrVT);
18101         return LowerToTLSLocalDynamicModel(GA, DAG, PtrVT,
18105         return LowerToTLSExecModel(GA, DAG, PtrVT, model, Subtarget.is64Bit(),
18125     SDValue Result = DAG.getTargetGlobalAddress(GA->getGlobal(), DL,
18128     SDValue Offset = DAG.getNode(WrapperKind, DL, PtrVT, Result);
18132       Offset = DAG.getNode(ISD::ADD, DL, PtrVT,
18133                            DAG.getNode(X86ISD::GlobalBaseReg, SDLoc(), PtrVT),
18138     SDValue Chain = DAG.getEntryNode();
18139     SDVTList NodeTys = DAG.getVTList(MVT::Other, MVT::Glue);
18140     Chain = DAG.getCALLSEQ_START(Chain, 0, 0, DL);
18142     Chain = DAG.getNode(X86ISD::TLSCALL, DL, NodeTys, Args);
18143     Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(0, DL, true),
18143     Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(0, DL, true),
18144                                DAG.getIntPtrConstant(0, DL, true),
18148     MachineFrameInfo &MFI = DAG.getMachineFunction().getFrameInfo();
18154     return DAG.getCopyFromReg(Chain, DL, Reg, PtrVT, Chain.getValue(1));
18170     SDValue Chain = DAG.getEntryNode();
18176                                         ? Type::getInt8PtrTy(*DAG.getContext(),
18178                                         : Type::getInt32PtrTy(*DAG.getContext(),
18182                            ? DAG.getIntPtrConstant(0x58, dl)
18184                                   ? DAG.getIntPtrConstant(0x2C, dl)
18185                                   : DAG.getExternalSymbol("_tls_array", PtrVT));
18188         DAG.getLoad(PtrVT, dl, Chain, TlsArray, MachinePointerInfo(Ptr));
18195       SDValue IDX = DAG.getExternalSymbol("_tls_index", PtrVT);
18197         IDX = DAG.getExtLoad(ISD::ZEXTLOAD, dl, PtrVT, Chain, IDX,
18200         IDX = DAG.getLoad(PtrVT, dl, Chain, IDX, MachinePointerInfo());
18202       auto &DL = DAG.getDataLayout();
18204           DAG.getConstant(Log2_64_Ceil(DL.getPointerSize()), dl, MVT::i8);
18205       IDX = DAG.getNode(ISD::SHL, dl, PtrVT, IDX, Scale);
18207       res = DAG.getNode(ISD::ADD, dl, PtrVT, ThreadPointer, IDX);
18210     res = DAG.getLoad(PtrVT, dl, Chain, res, MachinePointerInfo());
18213     SDValue TGA = DAG.getTargetGlobalAddress(GA->getGlobal(), dl,
18216     SDValue Offset = DAG.getNode(X86ISD::Wrapper, dl, PtrVT, TGA);
18220     return DAG.getNode(ISD::ADD, dl, PtrVT, res, Offset);