aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2002-03-03 02:27:42 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2002-03-03 02:27:42 +0000
commit5c60f03d436955a225fd4e255af691f5782232f4 (patch)
treeb54372a3fde161e398ff8b1ce4281e3d7d9295df /gcc
parent658499e7b47d6d99673f4f1cf297d43e940ec21e (diff)
downloadgcc-5c60f03d436955a225fd4e255af691f5782232f4.zip
gcc-5c60f03d436955a225fd4e255af691f5782232f4.tar.gz
gcc-5c60f03d436955a225fd4e255af691f5782232f4.tar.bz2
a29k.h, [...]: (BITS_PER_UNIT): Delete.
* a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h, cris.h, d30v.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_UNIT): Delete. * defaults.h (BITS_PER_UNIT): Define. * doc/tm.texi (BITS_PER_UNIT): Document default value. From-SVN: r50235
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/config/a29k/a29k.h3
-rw-r--r--gcc/config/alpha/alpha.h3
-rw-r--r--gcc/config/arc/arc.h3
-rw-r--r--gcc/config/arm/arm.h3
-rw-r--r--gcc/config/avr/avr.h3
-rw-r--r--gcc/config/clipper/clipper.h3
-rw-r--r--gcc/config/convex/convex.h3
-rw-r--r--gcc/config/cris/cris.h2
-rw-r--r--gcc/config/d30v/d30v.h2
-rw-r--r--gcc/config/elxsi/elxsi.h3
-rw-r--r--gcc/config/fr30/fr30.h2
-rw-r--r--gcc/config/h8300/h8300.h3
-rw-r--r--gcc/config/i370/i370.h4
-rw-r--r--gcc/config/i386/i386.h3
-rw-r--r--gcc/config/i860/i860.h3
-rw-r--r--gcc/config/i960/i960.h3
-rw-r--r--gcc/config/ia64/ia64.h2
-rw-r--r--gcc/config/m32r/m32r.h3
-rw-r--r--gcc/config/m68hc11/m68hc11.h3
-rw-r--r--gcc/config/m68k/m68k.h3
-rw-r--r--gcc/config/m88k/m88k.h3
-rw-r--r--gcc/config/mcore/mcore.h3
-rw-r--r--gcc/config/mips/mips.h3
-rw-r--r--gcc/config/mmix/mmix.h1
-rw-r--r--gcc/config/mn10200/mn10200.h3
-rw-r--r--gcc/config/mn10300/mn10300.h3
-rw-r--r--gcc/config/ns32k/ns32k.h3
-rw-r--r--gcc/config/pa/pa.h3
-rw-r--r--gcc/config/pdp11/pdp11.h3
-rw-r--r--gcc/config/pj/pj.h3
-rw-r--r--gcc/config/romp/romp.h3
-rw-r--r--gcc/config/rs6000/rs6000.h3
-rw-r--r--gcc/config/s390/s390.h4
-rw-r--r--gcc/config/sh/sh.h3
-rw-r--r--gcc/config/sparc/sparc.h3
-rw-r--r--gcc/config/stormy16/stormy16.h2
-rw-r--r--gcc/config/v850/v850.h3
-rw-r--r--gcc/config/vax/vax.h3
-rw-r--r--gcc/config/we32k/we32k.h3
-rw-r--r--gcc/config/xtensa/xtensa.h3
-rw-r--r--gcc/defaults.h4
-rw-r--r--gcc/doc/tm.texi2
43 files changed, 16 insertions, 116 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3ebfedb..eb73bd1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2002-03-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
+ cris.h, d30v.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_UNIT): Delete.
+ * defaults.h (BITS_PER_UNIT): Define.
+ * doc/tm.texi (BITS_PER_UNIT): Document default value.
+
2002-03-02 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300-protos.h: Add a prototype for
diff --git a/gcc/config/a29k/a29k.h b/gcc/config/a29k/a29k.h
index ff80dce..f499ea1 100644
--- a/gcc/config/a29k/a29k.h
+++ b/gcc/config/a29k/a29k.h
@@ -165,9 +165,6 @@ extern int target_flags;
for them. Might as well be consistent with bytes. */
#define WORDS_BIG_ENDIAN 1
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/alpha/alpha.h b/gcc/config/alpha/alpha.h
index b2363bc..6d78d3f 100644
--- a/gcc/config/alpha/alpha.h
+++ b/gcc/config/alpha/alpha.h
@@ -474,9 +474,6 @@ extern const char *alpha_mlat_string; /* For -mmemory-latency= */
for them. Might as well be consistent with bytes. */
#define WORDS_BIG_ENDIAN 0
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h
index 523ea72..0a83854 100644
--- a/gcc/config/arc/arc.h
+++ b/gcc/config/arc/arc.h
@@ -191,9 +191,6 @@ do { \
#define LIBGCC2_WORDS_BIG_ENDIAN 0
#endif
-/* Number of bits in an addressable storage unit. */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index bf989f4..8f4c4a1 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -696,9 +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
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
#define BITS_PER_WORD 32
#define UNITS_PER_WORD 4
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index 742c811..ffcfa26 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -126,9 +126,6 @@ extern int avr_enhanced_p;
numbered. */
#define WORDS_BIG_ENDIAN 0
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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
diff --git a/gcc/config/clipper/clipper.h b/gcc/config/clipper/clipper.h
index 790202b..61845e4 100644
--- a/gcc/config/clipper/clipper.h
+++ b/gcc/config/clipper/clipper.h
@@ -69,9 +69,6 @@ extern int target_flags;
#define WORDS_BIG_ENDIAN 0
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/convex/convex.h b/gcc/config/convex/convex.h
index 8c0fffa..d662b2c 100644
--- a/gcc/config/convex/convex.h
+++ b/gcc/config/convex/convex.h
@@ -434,9 +434,6 @@ extern int target_flags;
/* Define this if most significant word of a multiword number is numbered. */
#define WORDS_BIG_ENDIAN 1
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index 9ddd065..009b9aa 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -475,8 +475,6 @@ extern int target_flags;
post-increment on DImode indirect. */
#define WORDS_BIG_ENDIAN 0
-#define BITS_PER_UNIT 8
-
#define BITS_PER_WORD 32
#define UNITS_PER_WORD 4
diff --git a/gcc/config/d30v/d30v.h b/gcc/config/d30v/d30v.h
index 37dd1cf..2174507 100644
--- a/gcc/config/d30v/d30v.h
+++ b/gcc/config/d30v/d30v.h
@@ -161,8 +161,6 @@ extern int target_flags;
#define WORDS_BIG_ENDIAN 1
-#define BITS_PER_UNIT 8
-
#define BITS_PER_WORD 32
#define UNITS_PER_WORD 4
diff --git a/gcc/config/elxsi/elxsi.h b/gcc/config/elxsi/elxsi.h
index d5969d4..f06eda5 100644
--- a/gcc/config/elxsi/elxsi.h
+++ b/gcc/config/elxsi/elxsi.h
@@ -71,9 +71,6 @@ extern int target_flags;
/* Define this if most significant word of a multiword number is numbered. */
#define WORDS_BIG_ENDIAN 1
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/fr30/fr30.h b/gcc/config/fr30/fr30.h
index dd19f75..32ba387 100644
--- a/gcc/config/fr30/fr30.h
+++ b/gcc/config/fr30/fr30.h
@@ -83,8 +83,6 @@ extern int target_flags;
#define WORDS_BIG_ENDIAN 1
-#define BITS_PER_UNIT 8
-
#define BITS_PER_WORD 32
#define UNITS_PER_WORD 4
diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h
index c5852f5..b19c0b3 100644
--- a/gcc/config/h8300/h8300.h
+++ b/gcc/config/h8300/h8300.h
@@ -199,9 +199,6 @@ extern int target_flags;
be consistent). */
#define WORDS_BIG_ENDIAN 1
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/i370/i370.h b/gcc/config/i370/i370.h
index 145f115..d1f72bb 100644
--- a/gcc/config/i370/i370.h
+++ b/gcc/config/i370/i370.h
@@ -86,10 +86,6 @@ extern int mvs_function_name_length;
#define WORDS_BIG_ENDIAN 1
-/* Number of bits in an addressable storage unit. */
-
-#define BITS_PER_UNIT 8
-
/* Width in bits of a "word", which is the contents of a machine register. */
#define BITS_PER_WORD 32
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 63dae01..a53a06f 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -721,9 +721,6 @@ extern int ix86_arch;
/* Not true for 80386 */
#define WORDS_BIG_ENDIAN 0
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/i860/i860.h b/gcc/config/i860/i860.h
index ad5048c..97d7708 100644
--- a/gcc/config/i860/i860.h
+++ b/gcc/config/i860/i860.h
@@ -82,9 +82,6 @@ extern int target_flags;
justify the trouble of changing this assumption. */
#define WORDS_BIG_ENDIAN 0
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/i960/i960.h b/gcc/config/i960/i960.h
index 4df5a6f..a067dea 100644
--- a/gcc/config/i960/i960.h
+++ b/gcc/config/i960/i960.h
@@ -397,9 +397,6 @@ extern int target_flags;
numbered. */
#define WORDS_BIG_ENDIAN 0
-/* Number of bits in an addressable storage unit. */
-#define BITS_PER_UNIT 8
-
/* Bitfields cannot cross word boundaries. */
#define BITFIELD_NBYTES_LIMITED 1
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index 1900717..3c1d6b7 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -244,8 +244,6 @@ extern const char *ia64_fixed_range_string;
#define LIBGCC2_WORDS_BIG_ENDIAN 0
#endif
-#define BITS_PER_UNIT 8
-
#define BITS_PER_WORD 64
#define UNITS_PER_WORD 8
diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h
index e4554fb..44510a0 100644
--- a/gcc/config/m32r/m32r.h
+++ b/gcc/config/m32r/m32r.h
@@ -442,9 +442,6 @@ extern enum m32r_sdata m32r_sdata;
value will be set based on preprocessor defines. */
/*#define LIBGCC2_WORDS_BIG_ENDIAN 1*/
-/* Number of bits in an addressable storage unit. */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/m68hc11/m68hc11.h b/gcc/config/m68hc11/m68hc11.h
index 2965fa5..0e4b202 100644
--- a/gcc/config/m68hc11/m68hc11.h
+++ b/gcc/config/m68hc11/m68hc11.h
@@ -241,9 +241,6 @@ extern const struct processor_costs *m68hc11_cost;
/* Define this if most significant word of a multiword number is numbered. */
#define WORDS_BIG_ENDIAN 1
-/* Number of bits in an addressible storage unit */
-#define BITS_PER_UNIT 8
-
/* Number of bits in a word */
#define BITS_PER_WORD 16
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index d97978c..72ef2c9 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -321,9 +321,6 @@ extern int target_flags;
So let's be consistent. */
#define WORDS_BIG_ENDIAN 1
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h
index c002809..11d8e54 100644
--- a/gcc/config/m88k/m88k.h
+++ b/gcc/config/m88k/m88k.h
@@ -336,9 +336,6 @@ extern int flag_pic; /* -fpic */
instructions for them. */
#define WORDS_BIG_ENDIAN 1
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/mcore/mcore.h b/gcc/config/mcore/mcore.h
index 9ab8551..ab02a2a 100644
--- a/gcc/config/mcore/mcore.h
+++ b/gcc/config/mcore/mcore.h
@@ -247,9 +247,6 @@ extern const char * mcore_stack_increment_string;
#define LIBGCC2_WORDS_BIG_ENDIAN 0
#endif
-/* Number of bits in an addressable storage unit. */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
index 7a5482c..66c3621 100644
--- a/gcc/config/mips/mips.h
+++ b/gcc/config/mips/mips.h
@@ -1569,9 +1569,6 @@ do { \
#define LIBGCC2_WORDS_BIG_ENDIAN 0
#endif
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/mmix/mmix.h b/gcc/config/mmix/mmix.h
index 74229ac..3861e6e 100644
--- a/gcc/config/mmix/mmix.h
+++ b/gcc/config/mmix/mmix.h
@@ -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_UNIT 8
#define BITS_PER_WORD 64
#define UNITS_PER_WORD 8
#define POINTER_SIZE 64
diff --git a/gcc/config/mn10200/mn10200.h b/gcc/config/mn10200/mn10200.h
index f9b2d30..6a81b6f 100644
--- a/gcc/config/mn10200/mn10200.h
+++ b/gcc/config/mn10200/mn10200.h
@@ -81,9 +81,6 @@ extern int target_flags;
This is not true on the Matsushita MN10200. */
#define WORDS_BIG_ENDIAN 0
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h
index ddd872e..184aef1 100644
--- a/gcc/config/mn10300/mn10300.h
+++ b/gcc/config/mn10300/mn10300.h
@@ -90,9 +90,6 @@ extern int target_flags;
This is not true on the Matsushita MN10300. */
#define WORDS_BIG_ENDIAN 0
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/ns32k/ns32k.h b/gcc/config/ns32k/ns32k.h
index 159148d..8ef5aeb 100644
--- a/gcc/config/ns32k/ns32k.h
+++ b/gcc/config/ns32k/ns32k.h
@@ -196,9 +196,6 @@ while (0)
numbered. This is not true on the ns32k. */
#define WORDS_BIG_ENDIAN 0
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 715ae81..6960684 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -389,9 +389,6 @@ extern int target_flags;
numbered. */
#define WORDS_BIG_ENDIAN 1
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/pdp11/pdp11.h b/gcc/config/pdp11/pdp11.h
index 2c16aa8..2b6edd3 100644
--- a/gcc/config/pdp11/pdp11.h
+++ b/gcc/config/pdp11/pdp11.h
@@ -165,9 +165,6 @@ extern int target_flags;
/* Define this if most significant word of a multiword number is numbered. */
#define WORDS_BIG_ENDIAN 1
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/pj/pj.h b/gcc/config/pj/pj.h
index 0adf02a..804f396 100644
--- a/gcc/config/pj/pj.h
+++ b/gcc/config/pj/pj.h
@@ -133,9 +133,6 @@ extern int target_flags;
#define LIBGCC2_WORDS_BIG_ENDIAN 1
#endif
-/* Number of bits in an addressable storage unit. */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/romp/romp.h b/gcc/config/romp/romp.h
index 23c73e7..5ce44f0 100644
--- a/gcc/config/romp/romp.h
+++ b/gcc/config/romp/romp.h
@@ -90,9 +90,6 @@ extern int target_flags;
for them. Might as well be consistent with bits and bytes. */
#define WORDS_BIG_ENDIAN 1
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index fae0b83..fccf3d3 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -522,9 +522,6 @@ extern int rs6000_altivec_abi;
instructions for them. Might as well be consistent with bits and bytes. */
#define WORDS_BIG_ENDIAN 1
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h
index 6756e60..e395f85 100644
--- a/gcc/config/s390/s390.h
+++ b/gcc/config/s390/s390.h
@@ -106,10 +106,6 @@ extern int current_function_outgoing_args_size;
#define WORDS_BIG_ENDIAN 1
-/* Number of bits in an addressable storage unit. */
-
-#define BITS_PER_UNIT 8
-
/* Width in bits of a "word", which is the contents of a machine register. */
#define BITS_PER_WORD (TARGET_64BIT ? 64 : 32)
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 1a48621..e919597 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -430,9 +430,6 @@ do { \
#define LIBGCC2_WORDS_BIG_ENDIAN 1
#endif
-/* Number of bits in an addressable storage unit. */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 779a39c..3faf25b 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -710,9 +710,6 @@ extern struct sparc_cpu_select sparc_select[];
#define LIBGCC2_WORDS_BIG_ENDIAN 1
#endif
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h
index b2a2ad1..c2fd617 100644
--- a/gcc/config/stormy16/stormy16.h
+++ b/gcc/config/stormy16/stormy16.h
@@ -89,8 +89,6 @@ extern int target_flags;
#define WORDS_BIG_ENDIAN 0
-#define BITS_PER_UNIT 8
-
#define BITS_PER_WORD 16
#define UNITS_PER_WORD 2
diff --git a/gcc/config/v850/v850.h b/gcc/config/v850/v850.h
index 6c5a4a6..b20c1f4 100644
--- a/gcc/config/v850/v850.h
+++ b/gcc/config/v850/v850.h
@@ -228,9 +228,6 @@ extern struct small_memory_info small_memory[(int)SMALL_MEMORY_max];
This is not true on the NEC V850. */
#define WORDS_BIG_ENDIAN 0
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h
index 26e767d..fbd3e38 100644
--- a/gcc/config/vax/vax.h
+++ b/gcc/config/vax/vax.h
@@ -105,9 +105,6 @@ extern int target_flags;
/* This is not true on the VAX. */
#define WORDS_BIG_ENDIAN 0
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/we32k/we32k.h b/gcc/config/we32k/we32k.h
index 12f105d..7d9ac44 100644
--- a/gcc/config/we32k/we32k.h
+++ b/gcc/config/we32k/we32k.h
@@ -62,9 +62,6 @@ extern int target_flags;
since there are no machine instructions for them. */
#define WORDS_BIG_ENDIAN 1
-/* number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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.
diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
index 0cfbdb2..709ed06 100644
--- a/gcc/config/xtensa/xtensa.h
+++ b/gcc/config/xtensa/xtensa.h
@@ -235,9 +235,6 @@ extern unsigned xtensa_current_frame_size;
/* Define this if most significant word of a multiword number is the lowest. */
#define WORDS_BIG_ENDIAN (TARGET_BIG_ENDIAN != 0)
-/* Number of bits in an addressable storage unit */
-#define BITS_PER_UNIT 8
-
/* 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
diff --git a/gcc/defaults.h b/gcc/defaults.h
index 3071f1f3..2d0005d 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -281,6 +281,10 @@ do { \
your target, you should override these values by defining the
appropriate symbols in your tm.h file. */
+#ifndef BITS_PER_UNIT
+#define BITS_PER_UNIT 8
+#endif
+
#ifndef CHAR_TYPE_SIZE
#define CHAR_TYPE_SIZE BITS_PER_UNIT
#endif
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index dd22fd0..1a58557 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -924,7 +924,7 @@ multi-word integers.
@findex BITS_PER_UNIT
@item BITS_PER_UNIT
Define this macro to be the number of bits in an addressable storage
-unit (byte); normally 8.
+unit (byte). If you do not define this macro the default is 8.
@findex BITS_PER_WORD
@item BITS_PER_WORD