aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2017-03-07 12:53:32 +0100
committerSegher Boessenkool <segher@gcc.gnu.org>2017-03-07 12:53:32 +0100
commit2413298e2df06c6013fb5533b7e01d6bdb38e4c7 (patch)
treeeef07105615dd38f69e663f083a633dc4165891e /gcc/config/i386
parentc242d6154c5969ee742f03eaf32a12b8362d7f90 (diff)
downloadgcc-2413298e2df06c6013fb5533b7e01d6bdb38e4c7.zip
gcc-2413298e2df06c6013fb5533b7e01d6bdb38e4c7.tar.gz
gcc-2413298e2df06c6013fb5533b7e01d6bdb38e4c7.tar.bz2
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
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/i386.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index e705a3e..5fcd51f 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -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;
}