diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-12-22 09:40:20 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-12-22 09:40:20 +0000 |
commit | 345a00ba05edf0a62bef9d3a1d85b68fd1767b4d (patch) | |
tree | 576f5ed2db868205ae5b65ab055c64648520271d /llvm/lib/Target/X86/X86TargetMachine.cpp | |
parent | db33a0211b0d47c4e023966764eecc19622a5580 (diff) | |
download | bcm5719-llvm-345a00ba05edf0a62bef9d3a1d85b68fd1767b4d.tar.gz bcm5719-llvm-345a00ba05edf0a62bef9d3a1d85b68fd1767b4d.zip |
Preliminary PIC JIT support for X86 (32-bit) / Darwin.
llvm-svn: 45313
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86TargetMachine.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86TargetMachine.cpp b/llvm/lib/Target/X86/X86TargetMachine.cpp index f87640f224b..87f865c9e62 100644 --- a/llvm/lib/Target/X86/X86TargetMachine.cpp +++ b/llvm/lib/Target/X86/X86TargetMachine.cpp @@ -118,6 +118,7 @@ X86TargetMachine::X86TargetMachine(const Module &M, const std::string &FS, FrameInfo(TargetFrameInfo::StackGrowsDown, Subtarget.getStackAlignment(), Subtarget.is64Bit() ? -8 : -4), InstrInfo(*this), JITInfo(*this), TLInfo(*this) { + DefRelocModel = getRelocationModel(); if (getRelocationModel() == Reloc::Default) if (Subtarget.isTargetDarwin() || Subtarget.isTargetCygMing()) setRelocationModel(Reloc::DynamicNoPIC); @@ -170,7 +171,8 @@ bool X86TargetMachine::addAssemblyEmitter(FunctionPassManager &PM, bool Fast, bool X86TargetMachine::addCodeEmitter(FunctionPassManager &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE) { // FIXME: Move this to TargetJITInfo! - setRelocationModel(Reloc::Static); + if (DefRelocModel == Reloc::Default) + setRelocationModel(Reloc::Static); Subtarget.setPICStyle(PICStyle::None); // JIT cannot ensure globals are placed in the lower 4G of address. |