add a couple of predicates to test for "stub style pic in PIC mode" and "stub style pic in dynamic-no-pic" mode.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75273 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86FastISel.cpp b/lib/Target/X86/X86FastISel.cpp
index 4b0ff7b..2864cd0 100644
--- a/lib/Target/X86/X86FastISel.cpp
+++ b/lib/Target/X86/X86FastISel.cpp
@@ -578,8 +578,7 @@
       // base and index registers are unused.
       assert(AM.Base.Reg == 0 && AM.IndexReg == 0);
       AM.Base.Reg = X86::RIP;
-    } else if (Subtarget->isPICStyleStub() &&
-               TM.getRelocationModel() == Reloc::PIC_) {
+    } else if (Subtarget->isPICStyleStubPIC(TM)) {
       AM.GVOpFlags = X86II::MO_PIC_BASE_OFFSET;
     } else if (Subtarget->isPICStyleGOT()) {
       AM.GVOpFlags = X86II::MO_GOTOFF;
@@ -1413,7 +1412,7 @@
         TM.getRelocationModel() == Reloc::PIC_ &&
         GV->hasDefaultVisibility() && !GV->hasLocalLinkage()) {
       OpFlags = X86II::MO_PLT;
-    } else if (Subtarget->isPICStyleStub() &&
+    } else if (Subtarget->isPICStyleStubAny() &&
                (GV->isDeclaration() || GV->isWeakForLinker()) &&
                Subtarget->getDarwinVers() < 9) {
       // PC-relative references to external symbols should go through $stub,
@@ -1621,8 +1620,7 @@
   // x86-32 PIC requires a PIC base register for constant pools.
   unsigned PICBase = 0;
   unsigned char OpFlag = 0;
-  if (Subtarget->isPICStyleStub() &&
-      TM.getRelocationModel() == Reloc::PIC_) { // Not dynamic-no-pic
+  if (Subtarget->isPICStyleStubPIC(TM)) { // Not dynamic-no-pic
     OpFlag = X86II::MO_PIC_BASE_OFFSET;
     PICBase = getInstrInfo()->getGlobalBaseReg(&MF);
   } else if (Subtarget->isPICStyleGOT()) {