mesa: Ensure stack is realigned on x86.
authorJosé Fonseca <jfonseca@vmware.com>
Tue, 2 Dec 2014 20:20:43 +0000 (20:20 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Fri, 5 Dec 2014 15:17:37 +0000 (15:17 +0000)
commita1fc6a91e5c6ab098fa8576e63b3a070852aa2a7
tree5811917989af69511591d995515145317135356b
parentf9098f09720d9b751e8529b2648971ee7d576b37
mesa: Ensure stack is realigned on x86.

Nowadays GCC assumes stack pointer is 16-byte aligned even on 32-bits,
but that is an assumption OpenGL drivers (or any dynamic library for
that matter) can't afford to make as there are many closed- and open-
source application binaries out there that only assume 4-byte stack
alignment.

This fix uses force_align_arg_pointer GCC attribute, and is only a
stop-gap measure.

The right fix would be to pass -mstackrealign or
-mincoming-stack-boundary=2 to all source fails that use any -msse*
option, as there is no way to guarantee if/when GCC will decide to spill
SSE registers to the stack.

https://bugs.freedesktop.org/show_bug.cgi?id=86788

Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/main/sse_minmax.c