Mesa (master): scons: Re-enable SSE on MinGW.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Sun Sep 5 09:18:03 UTC 2010


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

Author: José Fonseca <jfonseca at vmware.com>
Date:   Thu Sep  2 13:44:29 2010 +0100

scons: Re-enable SSE on MinGW.

It seems to be working correctly with gcc 4.4, and enabling it allows to
test some of the llvmpipe instrinsics on Windows.

---

 scons/gallium.py |   22 +++++++++++-----------
 1 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/scons/gallium.py b/scons/gallium.py
index d9a5fe0..f5de471 100644
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -271,24 +271,24 @@ def generate(env):
             ccflags += [
                 '-m32',
                 #'-march=pentium4',
-                #'-mfpmath=sse',
             ]
-            if platform != 'windows':
-                # XXX: -mstackrealign causes stack corruption on MinGW. Ditto
-                # for -mincoming-stack-boundary=2.  Still enable it on other
-                # platforms for now, but we can't rely on it for cross platform
-                # code. We have to use __attribute__((force_align_arg_pointer))
-                # instead.
+            if distutils.version.LooseVersion(ccversion) >= distutils.version.LooseVersion('4.2'):
+                # NOTE: We need to ensure stack is realigned given that we
+                # produce shared objects, and have no control over the stack
+                # alignment policy of the application. Therefore we need
+                # -mstackrealign ore -mincoming-stack-boundary=2.
+                #
+                # XXX: We could have SSE without -mstackrealign if we always used
+                # __attribute__((force_align_arg_pointer)), but that's not
+                # always the case.
                 ccflags += [
+                    '-mstackrealign', # ensure stack is aligned
                     '-mmmx', '-msse', '-msse2', # enable SIMD intrinsics
+                    #'-mfpmath=sse',
                 ]
             if platform in ['windows', 'darwin']:
                 # Workaround http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216
                 ccflags += ['-fno-common']
-            if distutils.version.LooseVersion(ccversion) >= distutils.version.LooseVersion('4.2'):
-                ccflags += [
-                    '-mstackrealign', # ensure stack is aligned
-                ]
         if env['machine'] == 'x86_64':
             ccflags += ['-m64']
             if platform == 'darwin':




More information about the mesa-commit mailing list