summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86TargetMachine.cpp
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2008-03-23 13:41:18 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2008-03-23 13:41:18 +0000
commitc15b81ba17151e0e0d85724c9c70ecfe83e69df5 (patch)
tree61aeeab0ac657908c1e67eef1190148ea61ad4c6 /lib/Target/X86/X86TargetMachine.cpp
parentfd9d976d74ef0c0276c97e303066afc935e9b908 (diff)
downloadllvm-c15b81ba17151e0e0d85724c9c70ecfe83e69df5.tar.gz
llvm-c15b81ba17151e0e0d85724c9c70ecfe83e69df5.tar.bz2
llvm-c15b81ba17151e0e0d85724c9c70ecfe83e69df5.tar.xz
Hack out the PIC mode on Win64 targets. This needs to be investigated later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48703 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86TargetMachine.cpp')
-rw-r--r--lib/Target/X86/X86TargetMachine.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Target/X86/X86TargetMachine.cpp b/lib/Target/X86/X86TargetMachine.cpp
index 2d0424bf44..98d1fb46f9 100644
--- a/lib/Target/X86/X86TargetMachine.cpp
+++ b/lib/Target/X86/X86TargetMachine.cpp
@@ -119,8 +119,10 @@ X86TargetMachine::X86TargetMachine(const Module &M, const std::string &FS,
Subtarget.getStackAlignment(), Subtarget.is64Bit() ? -8 : -4),
InstrInfo(*this), JITInfo(*this), TLInfo(*this) {
DefRelocModel = getRelocationModel();
+ // FIXME: Correctly select PIC model for Win64 stuff
if (getRelocationModel() == Reloc::Default) {
- if (Subtarget.isTargetDarwin() || Subtarget.isTargetCygMing())
+ if (Subtarget.isTargetDarwin() ||
+ (Subtarget.isTargetCygMing() && !Subtarget.isTargetWin64()))
setRelocationModel(Reloc::DynamicNoPIC);
else
setRelocationModel(Reloc::Static);