From ec867a22b3b3e131187e105b3639bcf5eb101590 Mon Sep 17 00:00:00 2001 From: Dale Johannesen Date: Tue, 12 Aug 2008 18:23:48 +0000 Subject: 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54692 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86CodeEmitter.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/Target/X86/X86CodeEmitter.cpp') diff --git a/lib/Target/X86/X86CodeEmitter.cpp b/lib/Target/X86/X86CodeEmitter.cpp index c0d051fcef..8a02ca4b75 100644 --- a/lib/Target/X86/X86CodeEmitter.cpp +++ b/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().isTargetDarwin()) && TM.getSubtarget().GVRequiresExtraLoad(GV, TM, false); } -- cgit v1.2.3