From 30c5d5d9d866749f55730117011f18f3f217b6d5 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Thu, 2 Sep 2010 13:44:29 +0100 Subject: 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 file changed, 11 insertions(+), 11 deletions(-) (limited to 'scons') diff --git a/scons/gallium.py b/scons/gallium.py index d9a5fe0eea..f5de4718ee 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': -- cgit v1.2.3