[llvm-commits] [llvm] r54711 - /llvm/tags/Apple/llvmCore-2064/lib/Target/X86/X86CodeEmitter.cpp

Bill Wendling isanbard at gmail.com
Tue Aug 12 19:49:36 PDT 2008


Author: void
Date: Tue Aug 12 21:49:35 2008
New Revision: 54711

URL: http://llvm.org/viewvc/llvm-project?rev=54711&view=rev
Log:
Pull r54692 into llvmCore-2064:

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/tags/Apple/llvmCore-2064/lib/Target/X86/X86CodeEmitter.cpp

Modified: llvm/tags/Apple/llvmCore-2064/lib/Target/X86/X86CodeEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/tags/Apple/llvmCore-2064/lib/Target/X86/X86CodeEmitter.cpp?rev=54711&r1=54710&r2=54711&view=diff

==============================================================================
--- llvm/tags/Apple/llvmCore-2064/lib/Target/X86/X86CodeEmitter.cpp (original)
+++ llvm/tags/Apple/llvmCore-2064/lib/Target/X86/X86CodeEmitter.cpp Tue Aug 12 21:49:35 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