- Target PIC style is no longer affected by relocation model.
- In x86-64 mode, symbols with external linkage (not just symbols which are
defined externally) requires GOT indirect reference.
- Stylistic code clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33345 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/X86TargetMachine.cpp b/lib/Target/X86/X86TargetMachine.cpp
index 8bcda9a..d8283a5 100644
--- a/lib/Target/X86/X86TargetMachine.cpp
+++ b/lib/Target/X86/X86TargetMachine.cpp
@@ -128,24 +128,18 @@
setCodeModel(CodeModel::Small);
}
- if (getRelocationModel() == Reloc::PIC_) {
- if (Subtarget.isTargetDarwin()) {
- if (Subtarget.is64Bit())
- Subtarget.setPICStyle(PICStyle::RIPRel);
- else
- Subtarget.setPICStyle(PICStyle::Stub);
- } else if (Subtarget.isTargetELF())
- Subtarget.setPICStyle(PICStyle::GOT);
+ if (Subtarget.isTargetCygMing())
+ Subtarget.setPICStyle(PICStyle::WinPIC);
+ else if (Subtarget.isTargetDarwin())
+ if (Subtarget.is64Bit())
+ Subtarget.setPICStyle(PICStyle::RIPRel);
else
- assert(0 && "Don't know how to generate PIC code for this target!");
- } else if (getRelocationModel() == Reloc::DynamicNoPIC) {
- if (Subtarget.isTargetDarwin())
Subtarget.setPICStyle(PICStyle::Stub);
- else if (Subtarget.isTargetCygMing())
- Subtarget.setPICStyle(PICStyle::WinPIC);
+ else if (Subtarget.isTargetELF())
+ if (Subtarget.is64Bit())
+ Subtarget.setPICStyle(PICStyle::RIPRel);
else
- assert(0 && "Don't know how to generate PIC code for this target!");
- }
+ Subtarget.setPICStyle(PICStyle::GOT);
}
//===----------------------------------------------------------------------===//