diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-10-30 16:10:54 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-10-30 16:10:54 +0000 |
commit | 66cff408ff9b50d53bdcb237e4a4f90aef3ac7a7 (patch) | |
tree | f9bb075b9a67bdaec996f5529e12a769482516d8 /llvm/lib/Target/ARM | |
parent | d26da8cf82d7d4068b72e9c579b22c8956574ed7 (diff) | |
download | bcm5719-llvm-66cff408ff9b50d53bdcb237e4a4f90aef3ac7a7.tar.gz bcm5719-llvm-66cff408ff9b50d53bdcb237e4a4f90aef3ac7a7.zip |
ARM JIT should observe -relocation-model command line option.
llvm-svn: 58433
Diffstat (limited to 'llvm/lib/Target/ARM')
-rw-r--r-- | llvm/lib/Target/ARM/ARMTargetMachine.cpp | 7 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMTargetMachine.h | 1 |
2 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMTargetMachine.cpp b/llvm/lib/Target/ARM/ARMTargetMachine.cpp index a96e25f22e7..4ffd7798112 100644 --- a/llvm/lib/Target/ARM/ARMTargetMachine.cpp +++ b/llvm/lib/Target/ARM/ARMTargetMachine.cpp @@ -85,7 +85,9 @@ ARMTargetMachine::ARMTargetMachine(const Module &M, const std::string &FS, InstrInfo(Subtarget), FrameInfo(Subtarget), JITInfo(*this), - TLInfo(*this) {} + TLInfo(*this) { + DefRelocModel = getRelocationModel(); +} unsigned ARMTargetMachine::getJITMatchQuality() { #if defined(__arm__) @@ -157,7 +159,8 @@ bool ARMTargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast, bool ARMTargetMachine::addCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE) { // FIXME: Move this to TargetJITInfo! - setRelocationModel(Reloc::Static); + if (DefRelocModel == Reloc::Default) + setRelocationModel(Reloc::Static); // Machine code emitter pass for ARM. PM.add(createARMCodeEmitterPass(*this, MCE)); diff --git a/llvm/lib/Target/ARM/ARMTargetMachine.h b/llvm/lib/Target/ARM/ARMTargetMachine.h index 35f97e3bc88..6fe9a222b4d 100644 --- a/llvm/lib/Target/ARM/ARMTargetMachine.h +++ b/llvm/lib/Target/ARM/ARMTargetMachine.h @@ -34,6 +34,7 @@ class ARMTargetMachine : public LLVMTargetMachine { ARMFrameInfo FrameInfo; ARMJITInfo JITInfo; ARMTargetLowering TLInfo; + Reloc::Model DefRelocModel; // Reloc model before it's overridden. protected: // To avoid having target depend on the asmprinter stuff libraries, asmprinter |