Commit 04742f20 by Michael Meissner

Add -m{,no-}strict-align support.

From-SVN: r8958
parent 8ccc31eb
...@@ -23,13 +23,17 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -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 /* Set PCC_BITFIELD_TYPE_MATTERS to 0 to ignore the type of bitfields
when calculating alignment. */ when calculating alignment. */
#define MASK_NO_BITFIELD_TYPE 0x40000000 #define MASK_NO_BITFIELD_TYPE 0x40000000
#define MASK_STRICT_ALIGN 0x20000000
#define TARGET_NO_BITFIELD_TYPE (target_flags & MASK_NO_BITFIELD_TYPE) #define TARGET_NO_BITFIELD_TYPE (target_flags & MASK_NO_BITFIELD_TYPE)
#define TARGET_BITFIELD_TYPE (! TARGET_NO_BITFIELD_TYPE) #define TARGET_BITFIELD_TYPE (! TARGET_NO_BITFIELD_TYPE)
#define TARGET_STRICT_ALIGN (target_flags & MASK_STRICT_ALIGN)
#define SUBTARGET_SWITCHES \ #define SUBTARGET_SWITCHES \
{ "bit-align", -MASK_NO_BITFIELD_TYPE }, \ { "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" #include "rs6000/sysv4.h"
...@@ -42,6 +46,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -42,6 +46,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef PCC_BITFIELD_TYPE_MATTERS #undef PCC_BITFIELD_TYPE_MATTERS
#define PCC_BITFIELD_TYPE_MATTERS (TARGET_BITFIELD_TYPE) #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 */ /* Align stack to 8 byte boundaries, rather than 16 bytes Sys V.4 uses */
#undef STACK_BOUNDARY #undef STACK_BOUNDARY
#define STACK_BOUNDARY 64 #define STACK_BOUNDARY 64
......
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