[llvm-commits] [llvm] r54692 - /llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp

Dale Johannesen dalej at apple.com
Tue Aug 12 11:23:56 PDT 2008


Author: johannes
Date: Tue Aug 12 13:23:48 2008
New Revision: 54692

URL: http://llvm.org/viewvc/llvm-project?rev=54692&view=rev
Log:
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.


Modified:
    llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp

Modified: llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp?rev=54692&r1=54691&r2=54692&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86CodeEmitter.cpp Tue Aug 12 13:23:48 2008
@@ -251,7 +251,9 @@
 }
 
 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);
 }
 





More information about the llvm-commits mailing list