Lines Matching defs:Subtarget
47 /// Subtarget - Keep a pointer to the X86Subtarget around so that we can
49 const X86Subtarget *Subtarget;
62 Subtarget = &TM.getSubtarget<X86Subtarget>();
63 X86ScalarSSEf64 = Subtarget->hasSSE2();
64 X86ScalarSSEf32 = Subtarget->hasSSE1();
391 Opc = Subtarget->hasAVX() ? X86::VMOVSSrm : X86::MOVSSrm;
400 Opc = Subtarget->hasAVX() ? X86::VMOVSDrm : X86::MOVSDrm;
448 Subtarget->hasAVX() ? X86::VMOVSSmr : X86::MOVSSmr) : X86::ST_Fp32m;
452 (Subtarget->hasAVX() ? X86::VMOVSDmr : X86::MOVSDmr) : X86::ST_Fp64m;
456 Opc = Subtarget->hasAVX() ? X86::VMOVAPSmr : X86::MOVAPSmr;
458 Opc = Subtarget->hasAVX() ? X86::VMOVUPSmr : X86::MOVUPSmr;
462 Opc = Subtarget->hasAVX() ? X86::VMOVAPDmr : X86::MOVAPDmr;
464 Opc = Subtarget->hasAVX() ? X86::VMOVUPDmr : X86::MOVUPDmr;
471 Opc = Subtarget->hasAVX() ? X86::VMOVDQAmr : X86::MOVDQAmr;
473 Opc = Subtarget->hasAVX() ? X86::VMOVDQUmr : X86::MOVDQUmr;
558 if (!Subtarget->isPICStyleRIPRel() ||
563 // Allow the subtarget to classify the global.
564 unsigned char GVFlags = Subtarget->ClassifyGlobalReference(GV, TM);
575 if (Subtarget->isPICStyleRIPRel()) {
607 if (Subtarget->isPICStyleRIPRel())
635 if (!AM.GV || !Subtarget->isPICStyleRIPRel()) {
759 (!AM.GV || !Subtarget->isPICStyleRIPRel()) &&
880 if (Subtarget->isPICStyleRIPRel() &&
898 if (Subtarget->isPICStyleRIPRel()) {
903 } else if (Subtarget->isPICStyleStubPIC()) {
905 } else if (Subtarget->isPICStyleGOT()) {
913 if (!AM.GV || !Subtarget->isPICStyleRIPRel()) {
974 if (Subtarget->isCallingConvWin64(CC))
1069 (Subtarget->is64Bit() || Subtarget->isTargetKnownWindowsMSVC())) {
1073 unsigned RetReg = Subtarget->is64Bit() ? X86::RAX : X86::EAX;
1081 BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, TII.get(Subtarget->is64Bit() ? X86::RETQ : X86::RETL));
1114 static unsigned X86ChooseCmpOpcode(EVT VT, const X86Subtarget *Subtarget) {
1115 bool HasAVX = Subtarget->hasAVX();
1116 bool X86ScalarSSEf32 = Subtarget->hasSSE1();
1117 bool X86ScalarSSEf64 = Subtarget->hasSSE2();
1172 unsigned CompareOpc = X86ChooseCmpOpcode(VT, Subtarget);
1640 if (!Subtarget->is64Bit())
1707 OpEntry.DivRemResultReg == X86::AH && Subtarget->is64Bit()) {
1735 // Check if the subtarget supports these instructions.
1736 if (!Subtarget->hasCMov())
1863 !((Subtarget->hasSSE1() && RetVT == MVT::f32) ||
1864 (Subtarget->hasSSE2() && RetVT == MVT::f64) ))
1896 bool HasAVX = Subtarget->hasAVX();
2106 if (!Subtarget->is64Bit()) {
2130 return Len <= (Subtarget->is64Bit() ? 32 : 16);
2140 bool i64Legal = Subtarget->is64Bit();
2257 unsigned SizeWidth = Subtarget->is64Bit() ? 64 : 32;
2272 unsigned SizeWidth = Subtarget->is64Bit() ? 64 : 32;
2314 if (!Subtarget->hasSSE1())
2330 bool HasAVX = Subtarget->hasAVX();
2483 if (!Subtarget->hasSSE1())
2489 if (!Subtarget->hasSSE2())
2506 bool HasAVX = Subtarget->hasAVX();
2555 if (Subtarget->isCallingConvWin64(CC))
2558 if (!Subtarget->is64Bit())
2588 if (!Subtarget->hasSSE1())
2657 static unsigned computeBytesPoppedByCallee(const X86Subtarget &Subtarget,
2659 if (Subtarget.is64Bit())
2661 if (Subtarget.getTargetTriple().isOSMSVCRT())
2681 bool isWin64 = Subtarget->isCallingConvWin64(CC);
2706 if (X86::isCalleePop(CC, Subtarget->is64Bit(), isVarArg,
2944 if (Subtarget->isPICStyleGOT()) {
2950 if (Subtarget->is64Bit() && isVarArg && !isWin64) {
2966 if (Subtarget->is64Bit())
2977 if (Subtarget->is64Bit())
2989 if (Subtarget->isTargetELF() &&
2993 } else if (Subtarget->isPICStyleStubAny() &&
2995 (!Subtarget->getTargetTriple().isMacOSX() ||
2996 Subtarget->getTargetTriple().isMacOSXVersionLT(10, 5))) {
3016 if (Subtarget->isPICStyleGOT())
3019 if (Subtarget->is64Bit() && isVarArg && !isWin64)
3028 const unsigned NumBytesCallee = computeBytesPoppedByCallee(*Subtarget, CS);
3198 Opc = Subtarget->hasAVX() ? X86::VMOVSSrm : X86::MOVSSrm;
3207 Opc = Subtarget->hasAVX() ? X86::VMOVSDrm : X86::MOVSDrm;
3257 if (Subtarget->isPICStyleStubPIC()) { // Not dynamic-no-pic
3260 } else if (Subtarget->isPICStyleGOT()) {
3263 } else if (Subtarget->isPICStyleRIPRel() &&
3293 unsigned Opc = Subtarget->is64Bit() ? X86::LEA64r : X86::LEA32r;