From b35525489b7c3a096f6e644c3cfeb8dedb712996 Mon Sep 17 00:00:00 2001
From: Olivier Hainque <hainque@adacore.com>
Date: Sat, 21 Aug 2010 20:48:34 +0000
Subject: [PATCH] vxworks.h: (PREFERRED_STACK_BOUNDARY...

        * config/rs6000/vxworks.h:  (PREFERRED_STACK_BOUNDARY,
        ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.

From-SVN: r163447
---
 gcc/ChangeLog               | 5 +++++
 gcc/config/rs6000/vxworks.h | 9 ++++++++-
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7b87da391c55..8b44f8f7f2c3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-21  Olivier Hainque  <hainque@adacore.com>
+
+	* config/rs6000/vxworks.h:  (PREFERRED_STACK_BOUNDARY,
+	ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
+
 2010-08-20  Jan Hubicka  <jh@suse.cz>
 
 	* tree-pass.h (pass_ipa_cdtor_merge): New function.
diff --git a/gcc/config/rs6000/vxworks.h b/gcc/config/rs6000/vxworks.h
index c302ad2015d3..d2aecec559f0 100644
--- a/gcc/config/rs6000/vxworks.h
+++ b/gcc/config/rs6000/vxworks.h
@@ -113,10 +113,17 @@ VXWORKS_ADDITIONAL_CPP_SPEC
 #undef SDATA_DEFAULT_SIZE
 #define SDATA_DEFAULT_SIZE (TARGET_VXWORKS_RTP ? 8 : 0)
 
+/* Enforce 16bytes alignment for the stack pointer, to permit general
+   compliance with e.g. Altivec instructions requirements.  Make sure
+   this isn't overruled by the EABI constraints.  */
+
 #undef  STACK_BOUNDARY
 #define STACK_BOUNDARY (16*BITS_PER_UNIT)
-/* Override sysv4.h, reset to the default.  */
+
 #undef  PREFERRED_STACK_BOUNDARY
+#define PREFERRED_STACK_BOUNDARY STACK_BOUNDARY
+
+#undef  ABI_STACK_BOUNDARY
 
 /* Make -mcpu=8540 imply SPE.  ISEL is automatically enabled, the
    others must be done by hand.  Handle -mrtp.  Disable -fPIC
-- 
GitLab