aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Meissner <meissner@gcc.gnu.org>1995-02-16 16:49:44 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1995-02-16 16:49:44 +0000
commit04742f20273efee1098bd3fc73e4f1e7abc6dd07 (patch)
tree1f49ba5903083bd096ae91976636cb4fbed9d428 /gcc
parent8ccc31eb61a00fdbfd838ba3c197a2b9932240bb (diff)
downloadgcc-04742f20273efee1098bd3fc73e4f1e7abc6dd07.zip
gcc-04742f20273efee1098bd3fc73e4f1e7abc6dd07.tar.gz
gcc-04742f20273efee1098bd3fc73e4f1e7abc6dd07.tar.bz2
Add -m{,no-}strict-align support.
From-SVN: r8958
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/rs6000/eabi.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/config/rs6000/eabi.h b/gcc/config/rs6000/eabi.h
index f7375bc..0d04790 100644
--- a/gcc/config/rs6000/eabi.h
+++ b/gcc/config/rs6000/eabi.h
@@ -23,13 +23,17 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Set PCC_BITFIELD_TYPE_MATTERS to 0 to ignore the type of bitfields
when calculating alignment. */
#define MASK_NO_BITFIELD_TYPE 0x40000000
+#define MASK_STRICT_ALIGN 0x20000000
#define TARGET_NO_BITFIELD_TYPE (target_flags & MASK_NO_BITFIELD_TYPE)
#define TARGET_BITFIELD_TYPE (! TARGET_NO_BITFIELD_TYPE)
+#define TARGET_STRICT_ALIGN (target_flags & MASK_STRICT_ALIGN)
#define SUBTARGET_SWITCHES \
{ "bit-align", -MASK_NO_BITFIELD_TYPE }, \
- { "no-bit-align", MASK_NO_BITFIELD_TYPE },
+ { "no-bit-align", MASK_NO_BITFIELD_TYPE }, \
+ { "strict-align", MASK_STRICT_ALIGN }, \
+ { "no-strict-align", -MASK_STRICT_ALIGN },
#include "rs6000/sysv4.h"
@@ -42,6 +46,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef PCC_BITFIELD_TYPE_MATTERS
#define PCC_BITFIELD_TYPE_MATTERS (TARGET_BITFIELD_TYPE)
+/* Define this macro to be the value 1 if instructions will fail to
+ work if given data not on the nominal alignment. If instructions
+ will merely go slower in that case, define this macro as 0. */
+#undef STRICT_ALIGNMENT
+#define STRICT_ALIGNMENT (TARGET_STRICT_ALIGN)
+
/* Align stack to 8 byte boundaries, rather than 16 bytes Sys V.4 uses */
#undef STACK_BOUNDARY
#define STACK_BOUNDARY 64