aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>2016-03-07 09:51:31 +0000
committerRainer Orth <ro@gcc.gnu.org>2016-03-07 09:51:31 +0000
commit41604008c050f35dbc4d9280814843d46feb447e (patch)
treee9a99a94c5a3c78d083b55ac8ad1ab47fc77303f /gcc
parent4145a9b715cbb4db1dd2555cc8e20bae247a6b72 (diff)
downloadgcc-41604008c050f35dbc4d9280814843d46feb447e.zip
gcc-41604008c050f35dbc4d9280814843d46feb447e.tar.gz
gcc-41604008c050f35dbc4d9280814843d46feb447e.tar.bz2
Only assume 4-byte stack alignment on 32-bit Solaris/x86 (PR target/62281)
PR target/62281 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define. From-SVN: r234022
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/sol2.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2b55498..a797dfa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ PR target/62281
+ * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
+
2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
* config/i386/i386.c (znver1_cost): Fix Multiply cost.
diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h
index 51d1c55..e56e554 100644
--- a/gcc/config/i386/sol2.h
+++ b/gcc/config/i386/sol2.h
@@ -21,6 +21,11 @@ along with GCC; see the file COPYING3. If not see
#define SUBTARGET_OPTIMIZATION_OPTIONS \
{ OPT_LEVELS_1_PLUS, OPT_momit_leaf_frame_pointer, NULL, 1 }
+/* 32-bit Solaris/x86 only guarantees 4-byte stack alignment as required by
+ the i386 psABI, so realign it as necessary for SSE instructions. */
+#undef STACK_REALIGN_DEFAULT
+#define STACK_REALIGN_DEFAULT (TARGET_64BIT ? 0 : 1)
+
/* Old versions of the Solaris assembler can not handle the difference of
labels in different sections, so force DW_EH_PE_datarel if so. */
#ifndef HAVE_AS_IX86_DIFF_SECT_DELTA