summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-13 02:44:54 +0000
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2001-02-13 02:44:54 +0000
commit91ba22569d5e907af1e90c35f703ea8c9d94420d (patch)
treebbc1debd81e88103da7935b300ec252b81bbdd91
parent9bfefeba0cde80fd9fe8955b7b9b01b4bb306931 (diff)
downloadgcc-91ba22569d5e907af1e90c35f703ea8c9d94420d.tar.gz
* config/rs6000/sysv4.h (MASK_NO_BITFIELD_WORD): New macro.
(TARGET_NO_BITFIELD_WORD): New macro. (SUBTARGET_SWITCHES): Add -mbit-word, -mno-bit-word options. (BITFIELD_NBYTES_LIMITED): Define based on TARGET_NO_BITFIELD_WORD. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39613 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/sysv4.h8
2 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 026d93e8908..a45377684e7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2001-02-12 Geoffrey Keating <geoffk@redhat.com>
+
+ * config/rs6000/sysv4.h (MASK_NO_BITFIELD_WORD): New macro.
+ (TARGET_NO_BITFIELD_WORD): New macro.
+ (SUBTARGET_SWITCHES): Add -mbit-word, -mno-bit-word options.
+ (BITFIELD_NBYTES_LIMITED): Define based on TARGET_NO_BITFIELD_WORD.
+
Mon Feb 12 18:13:26 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* cselib.c: New file, from simplify-rtx.c.
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index db775304209..5f1f950f8fd 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -57,6 +57,7 @@ extern enum rs6000_sdata_type rs6000_sdata;
#define MASK_REGNAMES 0x02000000 /* Use alternate register names. */
#define MASK_PROTOTYPE 0x01000000 /* Only prototyped fcns pass variable args. */
#define MASK_LONG_DOUBLE_128 0x00800000 /* Use IEEE quad long double. */
+#define MASK_NO_BITFIELD_WORD 0x00400000 /* Bitfields cannot cross word boundaries */
#define TARGET_NO_BITFIELD_TYPE (target_flags & MASK_NO_BITFIELD_TYPE)
#define TARGET_STRICT_ALIGN (target_flags & MASK_STRICT_ALIGN)
@@ -66,6 +67,7 @@ extern enum rs6000_sdata_type rs6000_sdata;
#define TARGET_REGNAMES (target_flags & MASK_REGNAMES)
#define TARGET_PROTOTYPE (target_flags & MASK_PROTOTYPE)
#define TARGET_LONG_DOUBLE_128 (target_flags & MASK_LONG_DOUBLE_128)
+#define TARGET_NO_BITFIELD_WORD (target_flags & MASK_NO_BITFIELD_WORD)
#define TARGET_TOC ((target_flags & MASK_64BIT) \
|| ((target_flags & (MASK_RELOCATABLE \
| MASK_MINIMAL_TOC)) \
@@ -136,6 +138,9 @@ extern int g_switch_set; /* Whether -G xx was passed. */
{ "no-traceback", 0, N_("no description yet") }, \
{ "eabi", MASK_EABI, N_("Use EABI.") }, \
{ "no-eabi", -MASK_EABI, N_("Don't use EABI.") }, \
+ { "bit-word", -MASK_NO_BITFIELD_WORD, "" }, \
+ { "no-bit-word", MASK_NO_BITFIELD_WORD, \
+ N_("Do not allow bitfields to cross word boundaries") }, \
{ "regnames", MASK_REGNAMES, \
N_("Use alternate register names.") }, \
{ "no-regnames", -MASK_REGNAMES, \
@@ -380,6 +385,9 @@ do { \
#undef PCC_BITFIELD_TYPE_MATTERS
#define PCC_BITFIELD_TYPE_MATTERS (TARGET_BITFIELD_TYPE)
+#undef BITFIELD_NBYTES_LIMITED
+#define BITFIELD_NBYTES_LIMITED (TARGET_NO_BITFIELD_WORD)
+
/* 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. */