This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Patch to provide a default BITS_PER_WORD


BITS_PER_WORD is always (BITS_PER_UNIT * UNITS_PER_WORD).  This will
get folded anyway.  So I provided that expression as a default value
in defaults.h and deleted all of the now redundant definitions.

Bootstrapped on sparc-sun-solaris2.7.  Ok to install?

		Thanks,
		--Kaveh


2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
	convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
	i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
	m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
	pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
	stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
	Delete.
	* defaults.h (BITS_PER_WORD): Define.
	* doc/tm.texi (BITS_PER_WORD): Document default value.	

diff -rup orig/egcc-CVS20020302/gcc/config/1750a/1750a.h egcc-CVS20020302/gcc/config/1750a/1750a.h
--- orig/egcc-CVS20020302/gcc/config/1750a/1750a.h	Wed Jan 16 07:30:32 2002
+++ egcc-CVS20020302/gcc/config/1750a/1750a.h	Sat Mar  2 22:08:00 2002
@@ -93,12 +93,6 @@ extern const char *const sectname[4];
 /* number of bits in an addressable storage unit */
 #define BITS_PER_UNIT        16
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD        16
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD       1
 
diff -rup orig/egcc-CVS20020302/gcc/config/a29k/a29k.h egcc-CVS20020302/gcc/config/a29k/a29k.h
--- orig/egcc-CVS20020302/gcc/config/a29k/a29k.h	Sat Mar  2 21:23:33 2002
+++ egcc-CVS20020302/gcc/config/a29k/a29k.h	Sat Mar  2 22:08:00 2002
@@ -165,12 +165,6 @@ extern int target_flags;
    for them.  Might as well be consistent with bytes.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/alpha/alpha.h egcc-CVS20020302/gcc/config/alpha/alpha.h
--- orig/egcc-CVS20020302/gcc/config/alpha/alpha.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/alpha/alpha.h	Sat Mar  2 22:08:00 2002
@@ -474,12 +474,6 @@ extern const char *alpha_mlat_string;	/*
    for them.  Might as well be consistent with bytes.  */
 #define WORDS_BIG_ENDIAN 0
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 64
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 8
 
diff -rup orig/egcc-CVS20020302/gcc/config/arc/arc.h egcc-CVS20020302/gcc/config/arc/arc.h
--- orig/egcc-CVS20020302/gcc/config/arc/arc.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/arc/arc.h	Sat Mar  2 22:08:00 2002
@@ -191,12 +191,6 @@ do {				\
 #define LIBGCC2_WORDS_BIG_ENDIAN 0
 #endif
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/arm/arm.h egcc-CVS20020302/gcc/config/arm/arm.h
--- orig/egcc-CVS20020302/gcc/config/arm/arm.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/arm/arm.h	Sat Mar  2 22:08:00 2002
@@ -696,8 +696,6 @@ extern int arm_is_6_or_7;
    This is always true, even when in little-endian mode.  */
 #define FLOAT_WORDS_BIG_ENDIAN 1
 
-#define BITS_PER_WORD  32
-
 #define UNITS_PER_WORD	4
 
 #define POINTER_SIZE  32
diff -rup orig/egcc-CVS20020302/gcc/config/avr/avr.h egcc-CVS20020302/gcc/config/avr/avr.h
--- orig/egcc-CVS20020302/gcc/config/avr/avr.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/avr/avr.h	Sat Mar  2 22:08:00 2002
@@ -126,10 +126,6 @@ extern int avr_enhanced_p;
    numbered.  */
 #define WORDS_BIG_ENDIAN 0
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';  */
-#define BITS_PER_WORD 8
-
 #ifdef IN_LIBGCC2
 /* This is to get correct SI and DI modes in libgcc2.c (32 and 64 bits).  */
 #define UNITS_PER_WORD 4
diff -rup orig/egcc-CVS20020302/gcc/config/c4x/c4x.h egcc-CVS20020302/gcc/config/c4x/c4x.h
--- orig/egcc-CVS20020302/gcc/config/c4x/c4x.h	Thu Feb 21 16:30:36 2002
+++ egcc-CVS20020302/gcc/config/c4x/c4x.h	Sat Mar  2 22:08:00 2002
@@ -339,7 +339,6 @@ extern const char *c4x_rpts_cycles_strin
    sizeof(int) = sizeof(long) = sizeof(float) = sizeof(double) = 1.  */
 
 #define BITS_PER_UNIT		32
-#define BITS_PER_WORD		32
 #define UNITS_PER_WORD		1
 #define POINTER_SIZE		32
 #define PARM_BOUNDARY	        32
diff -rup orig/egcc-CVS20020302/gcc/config/clipper/clipper.h egcc-CVS20020302/gcc/config/clipper/clipper.h
--- orig/egcc-CVS20020302/gcc/config/clipper/clipper.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/clipper/clipper.h	Sat Mar  2 22:08:00 2002
@@ -69,12 +69,6 @@ extern int target_flags;
 
 #define WORDS_BIG_ENDIAN 0
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/convex/convex.h egcc-CVS20020302/gcc/config/convex/convex.h
--- orig/egcc-CVS20020302/gcc/config/convex/convex.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/convex/convex.h	Sat Mar  2 22:08:00 2002
@@ -434,12 +434,6 @@ extern int target_flags;
 /* Define this if most significant word of a multiword number is numbered.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 64
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 8
 
diff -rup orig/egcc-CVS20020302/gcc/config/cris/cris.h egcc-CVS20020302/gcc/config/cris/cris.h
--- orig/egcc-CVS20020302/gcc/config/cris/cris.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/cris/cris.h	Sat Mar  2 22:08:00 2002
@@ -475,8 +475,6 @@ extern int target_flags;
    post-increment on DImode indirect.  */
 #define WORDS_BIG_ENDIAN 0
 
-#define BITS_PER_WORD 32
-
 #define UNITS_PER_WORD 4
 
 #define POINTER_SIZE 32
diff -rup orig/egcc-CVS20020302/gcc/config/d30v/d30v.h egcc-CVS20020302/gcc/config/d30v/d30v.h
--- orig/egcc-CVS20020302/gcc/config/d30v/d30v.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/d30v/d30v.h	Sat Mar  2 22:08:44 2002
@@ -161,8 +161,6 @@ extern int target_flags;
 
 #define WORDS_BIG_ENDIAN 1
 
-#define BITS_PER_WORD 32
-
 #define UNITS_PER_WORD 4
 
 #define POINTER_SIZE 32
diff -rup orig/egcc-CVS20020302/gcc/config/dsp16xx/dsp16xx.h egcc-CVS20020302/gcc/config/dsp16xx/dsp16xx.h
--- orig/egcc-CVS20020302/gcc/config/dsp16xx/dsp16xx.h	Mon Jan 21 07:30:21 2002
+++ egcc-CVS20020302/gcc/config/dsp16xx/dsp16xx.h	Sat Mar  2 22:08:00 2002
@@ -316,12 +316,6 @@ extern int target_flags;
 /* number of bits in an addressable storage unit */
 #define BITS_PER_UNIT 16
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 16
-
 /* Maximum number of bits in a word.  */
 #define MAX_BITS_PER_WORD 16
 
diff -rup orig/egcc-CVS20020302/gcc/config/elxsi/elxsi.h egcc-CVS20020302/gcc/config/elxsi/elxsi.h
--- orig/egcc-CVS20020302/gcc/config/elxsi/elxsi.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/elxsi/elxsi.h	Sat Mar  2 22:08:00 2002
@@ -71,12 +71,6 @@ extern int target_flags;
 /* Define this if most significant word of a multiword number is numbered.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 64
-
 #define INT_TYPE_SIZE 32
 
 #define LONG_TYPE_SIZE 32
diff -rup orig/egcc-CVS20020302/gcc/config/fr30/fr30.h egcc-CVS20020302/gcc/config/fr30/fr30.h
--- orig/egcc-CVS20020302/gcc/config/fr30/fr30.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/fr30/fr30.h	Sat Mar  2 22:09:27 2002
@@ -83,8 +83,6 @@ extern int target_flags;
 
 #define WORDS_BIG_ENDIAN 1
 
-#define BITS_PER_WORD 	32
-
 #define UNITS_PER_WORD 	4
 
 #define POINTER_SIZE 	32
diff -rup orig/egcc-CVS20020302/gcc/config/h8300/h8300.h egcc-CVS20020302/gcc/config/h8300/h8300.h
--- orig/egcc-CVS20020302/gcc/config/h8300/h8300.h	Sat Mar  2 21:23:34 2002
+++ egcc-CVS20020302/gcc/config/h8300/h8300.h	Sat Mar  2 22:08:00 2002
@@ -199,11 +199,6 @@ extern int target_flags;
    be consistent).  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD		(TARGET_H8300H || TARGET_H8300S ? 32 : 16)
 #define MAX_BITS_PER_WORD	32
 
 /* Width of a word, in units (bytes).  */
diff -rup orig/egcc-CVS20020302/gcc/config/i370/i370.h egcc-CVS20020302/gcc/config/i370/i370.h
--- orig/egcc-CVS20020302/gcc/config/i370/i370.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/i370/i370.h	Sat Mar  2 22:08:00 2002
@@ -86,10 +86,6 @@ extern int mvs_function_name_length;
 
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.  */
-
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 
 #define UNITS_PER_WORD 4
diff -rup orig/egcc-CVS20020302/gcc/config/i386/i386.h egcc-CVS20020302/gcc/config/i386/i386.h
--- orig/egcc-CVS20020302/gcc/config/i386/i386.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/i386/i386.h	Sat Mar  2 22:08:00 2002
@@ -721,12 +721,6 @@ extern int ix86_arch;
 /* Not true for 80386 */
 #define WORDS_BIG_ENDIAN 0
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 80386, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD (TARGET_64BIT ? 64 : 32)
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD (TARGET_64BIT ? 8 : 4)
 #define MIN_UNITS_PER_WORD 4
diff -rup orig/egcc-CVS20020302/gcc/config/i860/i860.h egcc-CVS20020302/gcc/config/i860/i860.h
--- orig/egcc-CVS20020302/gcc/config/i860/i860.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/i860/i860.h	Sat Mar  2 22:08:00 2002
@@ -82,12 +82,6 @@ extern int target_flags;
    justify the trouble of changing this assumption.  */
 #define WORDS_BIG_ENDIAN 0
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/i960/i960.h egcc-CVS20020302/gcc/config/i960/i960.h
--- orig/egcc-CVS20020302/gcc/config/i960/i960.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/i960/i960.h	Sat Mar  2 22:08:00 2002
@@ -400,12 +400,6 @@ extern int target_flags;
 /* Bitfields cannot cross word boundaries.  */
 #define BITFIELD_NBYTES_LIMITED 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/ia64/ia64.h egcc-CVS20020302/gcc/config/ia64/ia64.h
--- orig/egcc-CVS20020302/gcc/config/ia64/ia64.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/ia64/ia64.h	Sat Mar  2 22:09:44 2002
@@ -244,8 +244,6 @@ extern const char *ia64_fixed_range_stri
 #define LIBGCC2_WORDS_BIG_ENDIAN 0
 #endif
 
-#define BITS_PER_WORD 64
-
 #define UNITS_PER_WORD 8
 
 #define POINTER_SIZE (TARGET_ILP32 ? 32 : 64)
diff -rup orig/egcc-CVS20020302/gcc/config/m32r/m32r.h egcc-CVS20020302/gcc/config/m32r/m32r.h
--- orig/egcc-CVS20020302/gcc/config/m32r/m32r.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/m32r/m32r.h	Sat Mar  2 22:08:00 2002
@@ -442,12 +442,6 @@ extern enum m32r_sdata m32r_sdata;
    value will be set based on preprocessor defines.  */
 /*#define LIBGCC2_WORDS_BIG_ENDIAN 1*/
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/m68hc11/m68hc11.h egcc-CVS20020302/gcc/config/m68hc11/m68hc11.h
--- orig/egcc-CVS20020302/gcc/config/m68hc11/m68hc11.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/m68hc11/m68hc11.h	Sat Mar  2 22:08:00 2002
@@ -241,11 +241,8 @@ extern const struct processor_costs *m68
 /* Define this if most significant word of a multiword number is numbered.  */
 #define WORDS_BIG_ENDIAN 	1
 
-/* Number of bits in a word */
-#define BITS_PER_WORD		16
-
 /* Width of a word, in units (bytes).  */
-#define UNITS_PER_WORD		(BITS_PER_WORD/8)
+#define UNITS_PER_WORD		2
 
 /* Define if you don't want extended real, but do want to use the
    software floating point emulator for REAL_ARITHMETIC and
diff -rup orig/egcc-CVS20020302/gcc/config/m68k/m68k.h egcc-CVS20020302/gcc/config/m68k/m68k.h
--- orig/egcc-CVS20020302/gcc/config/m68k/m68k.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/m68k/m68k.h	Sat Mar  2 22:08:00 2002
@@ -321,12 +321,6 @@ extern int target_flags;
    So let's be consistent.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/m88k/m88k.h egcc-CVS20020302/gcc/config/m88k/m88k.h
--- orig/egcc-CVS20020302/gcc/config/m88k/m88k.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/m88k/m88k.h	Sat Mar  2 22:08:00 2002
@@ -336,12 +336,6 @@ extern int flag_pic;				/* -fpic */
    instructions for them.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/mcore/mcore.h egcc-CVS20020302/gcc/config/mcore/mcore.h
--- orig/egcc-CVS20020302/gcc/config/mcore/mcore.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/mcore/mcore.h	Sat Mar  2 22:08:00 2002
@@ -247,11 +247,6 @@ extern const char * mcore_stack_incremen
 #define LIBGCC2_WORDS_BIG_ENDIAN 0
 #endif
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD  32
 #define MAX_BITS_PER_WORD 32
 
 /* Width of a word, in units (bytes).  */
diff -rup orig/egcc-CVS20020302/gcc/config/mips/mips.h egcc-CVS20020302/gcc/config/mips/mips.h
--- orig/egcc-CVS20020302/gcc/config/mips/mips.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/mips/mips.h	Sat Mar  2 22:08:00 2002
@@ -1569,11 +1569,6 @@ do {							\
 #define LIBGCC2_WORDS_BIG_ENDIAN 0
 #endif
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD (TARGET_64BIT ? 64 : 32)
 #define MAX_BITS_PER_WORD 64
 
 /* Width of a word, in units (bytes).  */
diff -rup orig/egcc-CVS20020302/gcc/config/mmix/mmix.h egcc-CVS20020302/gcc/config/mmix/mmix.h
--- orig/egcc-CVS20020302/gcc/config/mmix/mmix.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/mmix/mmix.h	Sat Mar  2 22:08:00 2002
@@ -251,7 +251,6 @@ extern int target_flags;
 #define BYTES_BIG_ENDIAN 1
 #define WORDS_BIG_ENDIAN 1
 #define FLOAT_WORDS_BIG_ENDIAN 1
-#define BITS_PER_WORD 64
 #define UNITS_PER_WORD 8
 #define POINTER_SIZE 64
 
diff -rup orig/egcc-CVS20020302/gcc/config/mn10200/mn10200.h egcc-CVS20020302/gcc/config/mn10200/mn10200.h
--- orig/egcc-CVS20020302/gcc/config/mn10200/mn10200.h	Sat Mar  2 21:23:35 2002
+++ egcc-CVS20020302/gcc/config/mn10200/mn10200.h	Sat Mar  2 22:08:00 2002
@@ -81,16 +81,9 @@ extern int target_flags;
    This is not true on the Matsushita MN10200.  */
 #define WORDS_BIG_ENDIAN 0
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.
-
-   This is a white lie.  Registers are really 24bits, but most operations
+/* This is a white lie.  Registers are really 24bits, but most operations
    only operate on 16 bits.   GCC chokes badly if we set this to a value
    that is not a power of two.  */
-#define BITS_PER_WORD		16
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD		2
 
diff -rup orig/egcc-CVS20020302/gcc/config/mn10300/mn10300.h egcc-CVS20020302/gcc/config/mn10300/mn10300.h
--- orig/egcc-CVS20020302/gcc/config/mn10300/mn10300.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/mn10300/mn10300.h	Sat Mar  2 22:08:00 2002
@@ -90,12 +90,6 @@ extern int target_flags;
    This is not true on the Matsushita MN10300.  */
 #define WORDS_BIG_ENDIAN 0
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD		32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD		4
 
diff -rup orig/egcc-CVS20020302/gcc/config/ns32k/ns32k.h egcc-CVS20020302/gcc/config/ns32k/ns32k.h
--- orig/egcc-CVS20020302/gcc/config/ns32k/ns32k.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/ns32k/ns32k.h	Sat Mar  2 22:08:00 2002
@@ -196,12 +196,6 @@ while (0)
    numbered. This is not true on the ns32k.  */
 #define WORDS_BIG_ENDIAN 0
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 32000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/pa/pa.h egcc-CVS20020302/gcc/config/pa/pa.h
--- orig/egcc-CVS20020302/gcc/config/pa/pa.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/pa/pa.h	Sat Mar  2 22:08:00 2002
@@ -389,11 +389,6 @@ extern int target_flags;
    numbered.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD (TARGET_64BIT ? 64 : 32)
 #define MAX_BITS_PER_WORD 64
 #define MAX_LONG_TYPE_SIZE 32
 #define MAX_WCHAR_TYPE_SIZE 32
diff -rup orig/egcc-CVS20020302/gcc/config/pdp11/pdp11.h egcc-CVS20020302/gcc/config/pdp11/pdp11.h
--- orig/egcc-CVS20020302/gcc/config/pdp11/pdp11.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/pdp11/pdp11.h	Sat Mar  2 22:08:00 2002
@@ -165,13 +165,6 @@ extern int target_flags;
 /* Define this if most significant word of a multiword number is numbered.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-/*  This is a machine with 16-bit registers */
-#define BITS_PER_WORD 16
-
 /* Width of a word, in units (bytes). 
 
    UNITS OR BYTES - seems like units */
diff -rup orig/egcc-CVS20020302/gcc/config/pj/pj.h egcc-CVS20020302/gcc/config/pj/pj.h
--- orig/egcc-CVS20020302/gcc/config/pj/pj.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/pj/pj.h	Sat Mar  2 22:08:00 2002
@@ -133,11 +133,6 @@ extern int target_flags;
 #define LIBGCC2_WORDS_BIG_ENDIAN 1
 #endif
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD  32
 #define MAX_BITS_PER_WORD 32
 
 /* Width of a word, in units (bytes).  */
diff -rup orig/egcc-CVS20020302/gcc/config/romp/romp.h egcc-CVS20020302/gcc/config/romp/romp.h
--- orig/egcc-CVS20020302/gcc/config/romp/romp.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/romp/romp.h	Sat Mar  2 22:08:00 2002
@@ -90,12 +90,6 @@ extern int target_flags;
    for them.  Might as well be consistent with bits and bytes.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/rs6000/rs6000.h egcc-CVS20020302/gcc/config/rs6000/rs6000.h
--- orig/egcc-CVS20020302/gcc/config/rs6000/rs6000.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/rs6000/rs6000.h	Sat Mar  2 22:08:00 2002
@@ -522,11 +522,6 @@ extern int rs6000_altivec_abi;
    instructions for them.  Might as well be consistent with bits and bytes.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD (! TARGET_POWERPC64 ? 32 : 64)
 #define MAX_BITS_PER_WORD 64
 
 /* Width of a word, in units (bytes).  */
diff -rup orig/egcc-CVS20020302/gcc/config/s390/s390.h egcc-CVS20020302/gcc/config/s390/s390.h
--- orig/egcc-CVS20020302/gcc/config/s390/s390.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/s390/s390.h	Sat Mar  2 22:08:00 2002
@@ -106,9 +106,6 @@ extern int current_function_outgoing_arg
 
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.  */
-
-#define BITS_PER_WORD (TARGET_64BIT ? 64 : 32)
 #define MAX_BITS_PER_WORD 64
 
 /* Width of a word, in units (bytes).  */
diff -rup orig/egcc-CVS20020302/gcc/config/sh/sh.h egcc-CVS20020302/gcc/config/sh/sh.h
--- orig/egcc-CVS20020302/gcc/config/sh/sh.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/sh/sh.h	Sat Mar  2 22:12:40 2002
@@ -430,11 +430,6 @@ do {									\
 #define LIBGCC2_WORDS_BIG_ENDIAN 1
 #endif
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD  (TARGET_SHMEDIA ? 64 : 32)
 #define MAX_BITS_PER_WORD 64
 
 #define MAX_LONG_TYPE_SIZE MAX_BITS_PER_WORD
diff -rup orig/egcc-CVS20020302/gcc/config/sparc/sparc.h egcc-CVS20020302/gcc/config/sparc/sparc.h
--- orig/egcc-CVS20020302/gcc/config/sparc/sparc.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/sparc/sparc.h	Sat Mar  2 22:08:00 2002
@@ -710,11 +710,6 @@ extern struct sparc_cpu_select sparc_sel
 #define LIBGCC2_WORDS_BIG_ENDIAN 1
 #endif
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD		(TARGET_ARCH64 ? 64 : 32)
 #define MAX_BITS_PER_WORD	64
 
 /* Width of a word, in units (bytes).  */
diff -rup orig/egcc-CVS20020302/gcc/config/stormy16/stormy16.h egcc-CVS20020302/gcc/config/stormy16/stormy16.h
--- orig/egcc-CVS20020302/gcc/config/stormy16/stormy16.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/stormy16/stormy16.h	Sat Mar  2 22:13:14 2002
@@ -89,8 +89,6 @@ extern int target_flags;
 
 #define WORDS_BIG_ENDIAN 0
 
-#define BITS_PER_WORD 16
-
 #define UNITS_PER_WORD 2
 
 #define POINTER_SIZE 16
diff -rup orig/egcc-CVS20020302/gcc/config/v850/v850.h egcc-CVS20020302/gcc/config/v850/v850.h
--- orig/egcc-CVS20020302/gcc/config/v850/v850.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/v850/v850.h	Sat Mar  2 22:08:00 2002
@@ -228,12 +228,6 @@ extern struct small_memory_info small_me
    This is not true on the NEC V850.  */
 #define WORDS_BIG_ENDIAN 0
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD		32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD		4
 
diff -rup orig/egcc-CVS20020302/gcc/config/vax/vax.h egcc-CVS20020302/gcc/config/vax/vax.h
--- orig/egcc-CVS20020302/gcc/config/vax/vax.h	Sat Mar  2 21:23:36 2002
+++ egcc-CVS20020302/gcc/config/vax/vax.h	Sat Mar  2 22:08:00 2002
@@ -105,12 +105,6 @@ extern int target_flags;
 /* This is not true on the VAX.  */
 #define WORDS_BIG_ENDIAN 0
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a 68000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/we32k/we32k.h egcc-CVS20020302/gcc/config/we32k/we32k.h
--- orig/egcc-CVS20020302/gcc/config/we32k/we32k.h	Sat Mar  2 21:23:37 2002
+++ egcc-CVS20020302/gcc/config/we32k/we32k.h	Sat Mar  2 22:08:00 2002
@@ -62,12 +62,6 @@ extern int target_flags;
    since there are no machine instructions for them.  */
 #define WORDS_BIG_ENDIAN 1
 
-/* Width in bits of a "word", which is the contents of a machine register.
-   Note that this is not necessarily the width of data type `int';
-   if using 16-bit ints on a we32000, this would still be 32.
-   But on a machine with 16-bit registers, this would be 16.  */
-#define BITS_PER_WORD 32
-
 /* Width of a word, in units (bytes).  */
 #define UNITS_PER_WORD 4
 
diff -rup orig/egcc-CVS20020302/gcc/config/xtensa/xtensa.h egcc-CVS20020302/gcc/config/xtensa/xtensa.h
--- orig/egcc-CVS20020302/gcc/config/xtensa/xtensa.h	Sat Mar  2 21:23:37 2002
+++ egcc-CVS20020302/gcc/config/xtensa/xtensa.h	Sat Mar  2 22:14:01 2002
@@ -235,8 +235,6 @@ extern unsigned xtensa_current_frame_siz
 /* Define this if most significant word of a multiword number is the lowest. */
 #define WORDS_BIG_ENDIAN (TARGET_BIG_ENDIAN != 0)
 
-/* Width in bits of a "word", which is the contents of a machine register.  */
-#define BITS_PER_WORD 32
 #define MAX_BITS_PER_WORD 32
 
 /* Width of a word, in units (bytes).  */
diff -rup orig/egcc-CVS20020302/gcc/defaults.h egcc-CVS20020302/gcc/defaults.h
--- orig/egcc-CVS20020302/gcc/defaults.h	Sat Mar  2 21:23:37 2002
+++ egcc-CVS20020302/gcc/defaults.h	Sat Mar  2 22:08:00 2002
@@ -285,6 +285,10 @@ do {								\
 #define BITS_PER_UNIT 8
 #endif
 
+#ifndef BITS_PER_WORD
+#define BITS_PER_WORD (BITS_PER_UNIT * UNITS_PER_WORD)
+#endif
+
 #ifndef CHAR_TYPE_SIZE
 #define CHAR_TYPE_SIZE BITS_PER_UNIT
 #endif
diff -rup orig/egcc-CVS20020302/gcc/doc/tm.texi egcc-CVS20020302/gcc/doc/tm.texi
--- orig/egcc-CVS20020302/gcc/doc/tm.texi	Sat Mar  2 21:23:37 2002
+++ egcc-CVS20020302/gcc/doc/tm.texi	Sat Mar  2 22:08:00 2002
@@ -928,7 +928,8 @@ unit (byte).  If you do not define this 
 
 @findex BITS_PER_WORD
 @item BITS_PER_WORD
-Number of bits in a word; normally 32.
+Number of bits in a word.  If you do not define this macro, the default
+is @code{BITS_PER_UNIT * UNITS_PER_WORD}.
 
 @findex MAX_BITS_PER_WORD
 @item MAX_BITS_PER_WORD


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]