diff options
author | Dale Johannesen <dalej@apple.com> | 2008-08-12 18:23:48 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2008-08-12 18:23:48 +0000 |
commit | d4a5e8f74afc6e3f8635f183794d41f059a4892d (patch) | |
tree | aafbd5bbaa1e38bcb8baf62dcae3a90a06873845 /llvm/lib/Target/X86/X86CodeEmitter.cpp | |
parent | 23785a1679d08d1684cb5ac03cdb494be2ca953a (diff) | |
download | bcm5719-llvm-d4a5e8f74afc6e3f8635f183794d41f059a4892d.tar.gz bcm5719-llvm-d4a5e8f74afc6e3f8635f183794d41f059a4892d.zip |
In the absence of a linker to build the GOT, use the 32-bit
non_lazy_ptr mechanism on x86-64 Darwin JIT. Fixes a bunch
of last night's failures.
llvm-svn: 54692
Diffstat (limited to 'llvm/lib/Target/X86/X86CodeEmitter.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86CodeEmitter.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86CodeEmitter.cpp b/llvm/lib/Target/X86/X86CodeEmitter.cpp index c0d051fcefe..8a02ca4b75d 100644 --- a/llvm/lib/Target/X86/X86CodeEmitter.cpp +++ b/llvm/lib/Target/X86/X86CodeEmitter.cpp @@ -251,7 +251,9 @@ static bool isDisp8(int Value) { } bool Emitter::gvNeedsLazyPtr(const GlobalValue *GV) { - return !Is64BitMode && + // For Darwin, simulate the linktime GOT by using the same lazy-pointer + // mechanism as 32-bit mode. + return (!Is64BitMode || TM.getSubtarget<X86Subtarget>().isTargetDarwin()) && TM.getSubtarget<X86Subtarget>().GVRequiresExtraLoad(GV, TM, false); } |