Module: Mesa
Branch: master
Commit: a9e6da7b4cd2019e5ac501bfa1d1aeff49e1982c
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a9e6da7b4cd2019e5ac501bfa1d1aeff49e1982c

Author: José Fonseca <[email protected]>
Date:   Wed Mar  3 12:00:08 2010 +0000

gallivm: Centralize initialization. Fix stack alignment issues on Windows.

---

 src/gallium/auxiliary/gallivm/lp_bld_init.cpp |   44 +++++++++++--------------
 src/gallium/auxiliary/gallivm/lp_bld_init.h   |   11 +------
 2 files changed, 20 insertions(+), 35 deletions(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.cpp 
b/src/gallium/auxiliary/gallivm/lp_bld_init.cpp
index 6b559db..067397a 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_init.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.cpp
@@ -26,39 +26,34 @@
  **************************************************************************/
 
 
+#include <llvm/Config/config.h>
+#include <llvm/Target/TargetSelect.h>
+#include <llvm/Target/TargetOptions.h>
+
 #include "pipe/p_config.h"
 
 #include "lp_bld_init.h"
 
 
-#ifndef LLVM_NATIVE_ARCH
-
-namespace llvm {
-   extern void LinkInJIT();
-}
+extern "C" void LLVMLinkInJIT();
 
 
-void
-LLVMLinkInJIT(void)
+extern "C" void
+lp_build_init(void)
 {
-   llvm::LinkInJIT();
-}
-
-
-extern "C" int X86TargetMachineModule;
-
-
-int
-LLVMInitializeNativeTarget(void)
-{
-#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
-   X86TargetMachineModule = 1;
+#if defined(PIPE_OS_WINDOWS) && defined(PIPE_ARCH_X86)
+   /*
+    * This is mis-detected on some hardware / software combinations.
+    */
+   llvm::StackAlignment = 4;
+   llvm::RealignStack = true;
 #endif
-   return 0;
-}
 
+   /* Same as LLVMInitializeNativeTarget(); */
+   llvm::InitializeNativeTarget();
 
-#endif
+   LLVMLinkInJIT();
+}
 
 
 /* 
@@ -69,7 +64,6 @@ LLVMInitializeNativeTarget(void)
  */
 #if defined(_MSC_VER) && defined(_DEBUG)
 #include <crtdefs.h>
-extern "C" {
-   _CRTIMP void __cdecl _invalid_parameter_noinfo(void) {}
-}
+extern "C" _CRTIMP void __cdecl
+_invalid_parameter_noinfo(void) {}
 #endif
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h 
b/src/gallium/auxiliary/gallivm/lp_bld_init.h
index 6a8ab8e..07f50d1 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_init.h
+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h
@@ -30,22 +30,13 @@
 #define LP_BLD_INIT_H
 
 
-#include "llvm/Config/config.h"
-
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 
-#ifndef LLVM_NATIVE_ARCH
-
 void
-LLVMLinkInJIT(void);
-
-int
-LLVMInitializeNativeTarget(void);
-
-#endif /* !LLVM_NATIVE_ARCH */
+lp_build_init(void);
 
 
 #ifdef __cplusplus

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to