OSDN Git Service

* config/rs6000/sysv4.h (MASK_NO_BITFIELD_WORD): New macro.
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 13 Feb 2001 02:44:54 +0000 (02:44 +0000)
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 13 Feb 2001 02:44:54 +0000 (02:44 +0000)
(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

gcc/ChangeLog
gcc/config/rs6000/sysv4.h

index 026d93e..a453776 100644 (file)
@@ -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.
index db77530..5f1f950 100644 (file)
@@ -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.  */