Commit 2413298e by Segher Boessenkool Committed by Segher Boessenkool

i386: Do not align small stack slots to 16 bytes

As Shmuel reported in <https://gcc.gnu.org/ml/gcc-help/2017-03/msg00009.html>,
on x86-64 small structures in automatic storage are aligned to 16 bytes.
This seems to be because of a mix-up between bits and bytes in the i386
target code.


	* config/i386/i386.c (ix86_local_alignment): Align most aggregates
	of 16 bytes and more to 16 bytes, not those of 16 bits and more.

From-SVN: r245949
parent c242d615
2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
* config/i386/i386.c (ix86_local_alignment): Align most aggregates
of 16 bytes and more to 16 bytes, not those of 16 bits and more.
2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR c/79855
......
......@@ -30467,7 +30467,7 @@ ix86_local_alignment (tree exp, machine_mode mode,
!= TYPE_MAIN_VARIANT (va_list_type_node)))
&& TYPE_SIZE (type)
&& TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
&& wi::geu_p (TYPE_SIZE (type), 16)
&& wi::geu_p (TYPE_SIZE (type), 128)
&& align < 128)
return 128;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment