Module: Mesa
Branch: staging/18.1
Commit: b5e03decbb82381393cb28bc32113cd863df4070
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5e03decbb82381393cb28bc32113cd863df4070

Author: Sergii Romantsov <[email protected]>
Date:   Thu Sep  6 11:07:45 2018 +0300

intel: compiler option msse2 and mstackrealign

Seems in case of 32-bit library, usage of msse2 makes
some stack corruption or incorrect instructions.
Usage with mstackrealign fixes that case.

v2: Fixed meson.

v3: Definition of c_sse2_args moved on the top (L.Landwerlin).
    Added mstackrealign for Android's mks where msee4.1 is used.

v4: Added for Vulkan also.

v5: Commit message correction.

CC: <[email protected]>
Fixes: 6b05c080f202 (i965: Compile with -msse3)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107779
Signed-off-by: Sergii Romantsov <[email protected]>
Reviewed-by: Dylan Baker <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
(cherry picked from commit d709f127927cb0ad40d5bf4eaec33c3c27f7738a)

---

 src/intel/Makefile.vulkan.am          | 2 +-
 src/intel/meson.build                 | 1 +
 src/intel/vulkan/meson.build          | 4 ++--
 src/mesa/Android.libmesa_dricore.mk   | 2 +-
 src/mesa/Android.libmesa_sse41.mk     | 2 +-
 src/mesa/drivers/dri/i965/Makefile.am | 2 +-
 src/mesa/drivers/dri/i965/meson.build | 6 +++---
 7 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/intel/Makefile.vulkan.am b/src/intel/Makefile.vulkan.am
index 9ff1aa5842..0a840748fd 100644
--- a/src/intel/Makefile.vulkan.am
+++ b/src/intel/Makefile.vulkan.am
@@ -104,7 +104,7 @@ noinst_LTLIBRARIES += $(VULKAN_PER_GEN_LIBS)
 
 VULKAN_CFLAGS = \
        $(AM_CFLAGS) \
-       -msse2
+       -msse2 -mstackrealign
 
 VULKAN_CPPFLAGS = \
        -I$(top_srcdir)/src/compiler \
diff --git a/src/intel/meson.build b/src/intel/meson.build
index ccaf16a76f..b53728c026 100644
--- a/src/intel/meson.build
+++ b/src/intel/meson.build
@@ -18,6 +18,7 @@
 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 # SOFTWARE.
 
+c_sse2_args = ['-msse2', '-mstackrealign']
 inc_intel = include_directories('.')
 
 subdir('blorp')
diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build
index 0e9efe1dd9..218c27f887 100644
--- a/src/intel/vulkan/meson.build
+++ b/src/intel/vulkan/meson.build
@@ -111,7 +111,7 @@ foreach g : [['70', ['gen7_cmd_buffer.c']], ['75', 
['gen7_cmd_buffer.c']],
       inc_vulkan_wsi,
     ],
     c_args : [
-      c_vis_args, no_override_init_args, '-msse2',
+      c_vis_args, no_override_init_args, c_sse2_args,
       '-DGEN_VERSIONx10=@0@'.format(_gen),
     ],
     dependencies : [dep_libdrm, dep_valgrind, idep_nir_headers],
@@ -155,7 +155,7 @@ anv_deps = [
 anv_flags = [
   c_vis_args,
   no_override_init_args,
-  '-msse2',
+  c_sse2_args,
 ]
 
 if with_platform_x11
diff --git a/src/mesa/Android.libmesa_dricore.mk 
b/src/mesa/Android.libmesa_dricore.mk
index 34fd8581c2..792117767b 100644
--- a/src/mesa/Android.libmesa_dricore.mk
+++ b/src/mesa/Android.libmesa_dricore.mk
@@ -49,7 +49,7 @@ ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
 LOCAL_WHOLE_STATIC_LIBRARIES := \
        libmesa_sse41
 LOCAL_CFLAGS := \
-       -msse4.1 \
+       -msse4.1 -mstackrealign \
        -DUSE_SSE41
 endif
 
diff --git a/src/mesa/Android.libmesa_sse41.mk 
b/src/mesa/Android.libmesa_sse41.mk
index da40f43df6..de19a1fb48 100644
--- a/src/mesa/Android.libmesa_sse41.mk
+++ b/src/mesa/Android.libmesa_sse41.mk
@@ -34,7 +34,7 @@ LOCAL_SRC_FILES += \
        $(X86_SSE41_FILES)
 
 LOCAL_CFLAGS := \
-       -msse4.1
+       -msse4.1 -mstackrealign
 
 LOCAL_C_INCLUDES := \
        $(MESA_TOP)/src/mapi \
diff --git a/src/mesa/drivers/dri/i965/Makefile.am 
b/src/mesa/drivers/dri/i965/Makefile.am
index 889d4c68a2..0afa7a2f21 100644
--- a/src/mesa/drivers/dri/i965/Makefile.am
+++ b/src/mesa/drivers/dri/i965/Makefile.am
@@ -44,7 +44,7 @@ AM_CFLAGS = \
        $(WNO_OVERRIDE_INIT) \
        $(LIBDRM_CFLAGS) \
        $(VALGRIND_CFLAGS) \
-       -msse2
+       -msse2 -mstackrealign
 
 AM_CXXFLAGS = $(AM_CFLAGS)
 
diff --git a/src/mesa/drivers/dri/i965/meson.build 
b/src/mesa/drivers/dri/i965/meson.build
index 747fd32b66..90ea150088 100644
--- a/src/mesa/drivers/dri/i965/meson.build
+++ b/src/mesa/drivers/dri/i965/meson.build
@@ -142,7 +142,7 @@ foreach v : ['40', '45', '50', '60', '70', '75', '80', 
'90', '100', '110']
     ['genX_blorp_exec.c', 'genX_state_upload.c', gen_xml_pack],
     include_directories : [inc_common, inc_intel, inc_dri_common],
     c_args : [
-      c_vis_args, no_override_init_args, '-msse2',
+      c_vis_args, no_override_init_args, c_sse2_args,
       '-DGEN_VERSIONx10=@0@'.format(v),
     ],
     dependencies : [dep_libdrm, idep_nir_headers],
@@ -183,8 +183,8 @@ libi965 = static_library(
   include_directories : [
     inc_common, inc_intel, inc_dri_common, inc_util, inc_drm_uapi,
   ],
-  c_args : [c_vis_args, no_override_init_args, '-msse2'],
-  cpp_args : [cpp_vis_args, '-msse2'],
+  c_args : [c_vis_args, no_override_init_args, c_sse2_args],
+  cpp_args : [cpp_vis_args, c_sse2_args],
   link_with : [
     i965_gen_libs, libintel_common, libintel_dev, libisl, libintel_compiler,
     libblorp,

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

Reply via email to