oops! fix for rs6000 breakage.

Geoffrey Keating geoffk@thief.cygnus.com
Mon Feb 12 18:46:00 GMT 2001


I thought I had compiled that patch dozens of times, but it seems I
missed something...

-- 
Geoff Keating <geoffk@redhat.com>

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.

Index: config/rs6000/sysv4.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/sysv4.h,v
retrieving revision 1.44
retrieving revision 1.45
diff -p -r1.44 -r1.45
*** sysv4.h	2001/02/12 19:39:54	1.44
--- sysv4.h	2001/02/13 02:44:54	1.45
*************** extern enum rs6000_sdata_type rs6000_sda
*** 57,62 ****
--- 57,63 ----
  #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)
*************** extern enum rs6000_sdata_type rs6000_sda
*** 66,71 ****
--- 67,73 ----
  #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)) \
*************** extern int g_switch_set;		/* Whether -G 
*** 136,141 ****
--- 138,146 ----
    { "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,				\
*************** do {									\
*** 379,384 ****
--- 384,392 ----
  /* Override elfos.h definition.  */
  #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



More information about the Gcc-patches mailing list