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

References

lib/Target/Sparc/SparcISelLowering.cpp
 2019   if (DAG.getTarget().useEmulatedTLS())
 2020     return LowerToTLSEmulatedModel(GA, DAG);
 2024   EVT PtrVT = getPointerTy(DAG.getDataLayout());
 2042     SDValue HiLo = makeHiLoPair(Op, HiTF, LoTF, DAG);
 2043     SDValue Base = DAG.getNode(SPISD::GLOBAL_BASE_REG, DL, PtrVT);
 2044     SDValue Argument = DAG.getNode(SPISD::TLS_ADD, DL, PtrVT, Base, HiLo,
 2045                                withTargetFlags(Op, addTF, DAG));
 2047     SDValue Chain = DAG.getEntryNode();
 2050     Chain = DAG.getCALLSEQ_START(Chain, 1, 0, DL);
 2051     Chain = DAG.getCopyToReg(Chain, DL, SP::O0, Argument, InFlag);
 2053     SDValue Callee = DAG.getTargetExternalSymbol("__tls_get_addr", PtrVT);
 2054     SDValue Symbol = withTargetFlags(Op, callTF, DAG);
 2056     SDVTList NodeTys = DAG.getVTList(MVT::Other, MVT::Glue);
 2058         DAG.getMachineFunction(), CallingConv::C);
 2063                      DAG.getRegister(SP::O0, PtrVT),
 2064                      DAG.getRegisterMask(Mask),
 2066     Chain = DAG.getNode(SPISD::TLS_CALL, DL, NodeTys, Ops);
 2068     Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(1, DL, true),
 2068     Chain = DAG.getCALLSEQ_END(Chain, DAG.getIntPtrConstant(1, DL, true),
 2069                                DAG.getIntPtrConstant(0, DL, true), InFlag, DL);
 2071     SDValue Ret = DAG.getCopyFromReg(Chain, DL, SP::O0, PtrVT, InFlag);
 2076     SDValue Hi = DAG.getNode(SPISD::Hi, DL, PtrVT,
 2077                  withTargetFlags(Op, SparcMCExpr::VK_Sparc_TLS_LDO_HIX22, DAG));
 2078     SDValue Lo = DAG.getNode(SPISD::Lo, DL, PtrVT,
 2079                  withTargetFlags(Op, SparcMCExpr::VK_Sparc_TLS_LDO_LOX10, DAG));
 2080     HiLo =  DAG.getNode(ISD::XOR, DL, PtrVT, Hi, Lo);
 2081     return DAG.getNode(SPISD::TLS_ADD, DL, PtrVT, Ret, HiLo,
 2082                    withTargetFlags(Op, SparcMCExpr::VK_Sparc_TLS_LDO_ADD, DAG));
 2089     SDValue Base = DAG.getNode(SPISD::GLOBAL_BASE_REG, DL, PtrVT);
 2093     MachineFrameInfo &MFI = DAG.getMachineFunction().getFrameInfo();
 2098                                SparcMCExpr::VK_Sparc_TLS_IE_LO10, DAG);
 2099     SDValue Ptr = DAG.getNode(ISD::ADD, DL, PtrVT, Base, TGA);
 2100     SDValue Offset = DAG.getNode(SPISD::TLS_LD,
 2102                                  withTargetFlags(Op, ldTF, DAG));
 2103     return DAG.getNode(SPISD::TLS_ADD, DL, PtrVT,
 2104                        DAG.getRegister(SP::G7, PtrVT), Offset,
 2106                                        SparcMCExpr::VK_Sparc_TLS_IE_ADD, DAG));
 2110   SDValue Hi = DAG.getNode(SPISD::Hi, DL, PtrVT,
 2111                   withTargetFlags(Op, SparcMCExpr::VK_Sparc_TLS_LE_HIX22, DAG));
 2112   SDValue Lo = DAG.getNode(SPISD::Lo, DL, PtrVT,
 2113                   withTargetFlags(Op, SparcMCExpr::VK_Sparc_TLS_LE_LOX10, DAG));
 2114   SDValue Offset =  DAG.getNode(ISD::XOR, DL, PtrVT, Hi, Lo);
 2116   return DAG.getNode(ISD::ADD, DL, PtrVT,
 2117                      DAG.getRegister(SP::G7, PtrVT), Offset);