https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66697
--- Comment #28 from uros at gcc dot gnu.org --- Author: uros Date: Mon Oct 12 16:29:37 2015 New Revision: 228728 URL: https://gcc.gnu.org/viewcvs?rev=228728&root=gcc&view=rev Log: Backport from mainline 2015-10-08 H.J. Lu <hongjiu...@intel.com> * config/i386/i386.c (ix86_compute_frame_layout): Round up the SSE register save area to 16 bytes only if the incoming stack boundary is no less than 16 bytes. Backport from mainline 2015-10-07 Uros Bizjak <ubiz...@gmail.com> PR target/66697 * config/i386/i386.c (ix86_option_override_internal): Always use 8-byte minimum stack boundary in 64-bit mode. (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY. (ix86_emit_save_reg_using_mov): Support unaligned SSE store. Add a REG_CFA_EXPRESSION note if needed. (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load. (ix86_handle_force_align_arg_pointer_attribute): New. (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check. (ix86_attribute_table): Set ix86_force_align_arg_pointer_string with ix86_handle_force_align_arg_pointer_attribute. * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD. testsuite/ChangeLog: Backport from mainline 2015-10-07 Uros Bizjak <ubiz...@gmail.com> PR target/66697 * gcc.target/i386/20060512-1.c: Remove ia32 requirement. (PUSH, POP): New defines. (sse2_test): Use PUSH and POP to misalign runtime stack. * gcc.target/i386/20060512-2.c: Remove ia32 requirement. Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/config/i386/i386.c branches/gcc-5-branch/gcc/config/i386/i386.h branches/gcc-5-branch/gcc/testsuite/ChangeLog branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/20060512-1.c branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/20060512-2.c