https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111107
--- Comment #34 from LIU Hao <lh_mouse at 126 dot com> --- (In reply to Gabriel Ivăncescu from comment #33) > Shouldn't using SSE automatically re-align it to 16, seeing as the alignment > requirement is stricter? I don't see how __force_align_arg_pointer__ is > useful at all for Windows i386 target, nor why it should have any effect. That's right in general. > The documented usage of it is "This supports mixing legacy codes that run > with a 4-byte aligned stack with modern codes that keep a 16-byte stack for > SSE compatibility." but there's no such thing as "modern codes that keep a > 16-byte stack" for Windows i386 target. My experience is that _sometimes_ (how often?) GCC assumes the stack is aligned. Yes, in theory it shouldn't, but in practice that's not the case. Maybe we can do that on master, but it will require a lot of testing. See also https://bugs.winehq.org/show_bug.cgi?id=55007