summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-12 05:28:21 +0000
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-12 05:28:21 +0000
commit3cf24182deed8d13874d624903c52ba0a44b07f8 (patch)
treec38377a305fc2977fb82d0f436a05bfc165dba0d /gcc
parentd7f9cd15cb4dad110a0eefb5b1360528ff5f7b27 (diff)
downloadgcc-3cf24182deed8d13874d624903c52ba0a44b07f8.tar.gz
* 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h, ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete. * defaults.h (POINTER_SIZE): Define. * doc/tm.texi (POINTER_SIZE): Document default. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50634 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/1750a/1750a.h4
-rw-r--r--gcc/config/a29k/a29k.h4
-rw-r--r--gcc/config/arc/arc.h4
-rw-r--r--gcc/config/arm/arm.h2
-rw-r--r--gcc/config/c4x/c4x.h1
-rw-r--r--gcc/config/clipper/clipper.h4
-rw-r--r--gcc/config/cris/cris.h2
-rw-r--r--gcc/config/d30v/d30v.h2
-rw-r--r--gcc/config/dsp16xx/dsp16xx.h4
-rw-r--r--gcc/config/fr30/fr30.h2
-rw-r--r--gcc/config/h8300/h8300.h4
-rw-r--r--gcc/config/i370/i370.h4
-rw-r--r--gcc/config/i386/i386.h4
-rw-r--r--gcc/config/i860/i860.h4
-rw-r--r--gcc/config/i960/i960.h3
-rw-r--r--gcc/config/m32r/m32r.h4
-rw-r--r--gcc/config/m68hc11/m68hc11.h3
-rw-r--r--gcc/config/m68k/m68k.h4
-rw-r--r--gcc/config/m88k/m88k.h4
-rw-r--r--gcc/config/mcore/mcore.h4
-rw-r--r--gcc/config/mmix/mmix.h1
-rw-r--r--gcc/config/mn10300/mn10300.h4
-rw-r--r--gcc/config/ns32k/ns32k.h4
-rw-r--r--gcc/config/pa/pa.h4
-rw-r--r--gcc/config/pdp11/pdp11.h4
-rw-r--r--gcc/config/pj/pj.h4
-rw-r--r--gcc/config/romp/romp.h4
-rw-r--r--gcc/config/s390/s390.h4
-rw-r--r--gcc/config/stormy16/stormy16.h2
-rw-r--r--gcc/config/v850/v850.h4
-rw-r--r--gcc/config/vax/vax.h4
-rw-r--r--gcc/config/we32k/we32k.h4
-rw-r--r--gcc/config/xtensa/xtensa.h1
-rw-r--r--gcc/defaults.h5
-rw-r--r--gcc/doc/tm.texi3
36 files changed, 17 insertions, 112 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 766650e0960..cb3e3ee73ec 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,15 @@
2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+ * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
+ dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
+ m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
+ ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
+ v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
+ * defaults.h (POINTER_SIZE): Define.
+ * doc/tm.texi (POINTER_SIZE): Document default.
+
+2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
* mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
2002-03-11 Richard Henderson <rth@redhat.com>
diff --git a/gcc/config/1750a/1750a.h b/gcc/config/1750a/1750a.h
index f4f6d519ee5..ce61f65670f 100644
--- a/gcc/config/1750a/1750a.h
+++ b/gcc/config/1750a/1750a.h
@@ -96,10 +96,6 @@ extern const char *const sectname[4];
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 1
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 16
-
#define PTRDIFF_TYPE "int"
/* Type to use for `size_t'. If undefined, uses `long unsigned int'. */
diff --git a/gcc/config/a29k/a29k.h b/gcc/config/a29k/a29k.h
index 5292d8fd10c..3b8712ee5be 100644
--- a/gcc/config/a29k/a29k.h
+++ b/gcc/config/a29k/a29k.h
@@ -168,10 +168,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h
index f536126acb1..4ba19f1eaf6 100644
--- a/gcc/config/arc/arc.h
+++ b/gcc/config/arc/arc.h
@@ -209,10 +209,6 @@ if (GET_MODE_CLASS (MODE) == MODE_INT \
/* Likewise, if the function return value is promoted. */
#define PROMOTE_FUNCTION_RETURN
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 9a27c533c2e..c180e267b38 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -690,8 +690,6 @@ extern int arm_is_6_or_7;
#define UNITS_PER_WORD 4
-#define POINTER_SIZE 32
-
#define PARM_BOUNDARY 32
#define STACK_BOUNDARY 32
diff --git a/gcc/config/c4x/c4x.h b/gcc/config/c4x/c4x.h
index 9ada032edc0..ba63e3cb9b7 100644
--- a/gcc/config/c4x/c4x.h
+++ b/gcc/config/c4x/c4x.h
@@ -340,7 +340,6 @@ extern const char *c4x_rpts_cycles_string, *c4x_cpu_version_string;
#define BITS_PER_UNIT 32
#define UNITS_PER_WORD 1
-#define POINTER_SIZE 32
#define PARM_BOUNDARY 32
#define STACK_BOUNDARY 32
#define FUNCTION_BOUNDARY 32
diff --git a/gcc/config/clipper/clipper.h b/gcc/config/clipper/clipper.h
index 6ae383db3a3..4f6e65731d4 100644
--- a/gcc/config/clipper/clipper.h
+++ b/gcc/config/clipper/clipper.h
@@ -72,10 +72,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index ac3d521a2dc..235777db85e 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -477,8 +477,6 @@ extern int target_flags;
#define UNITS_PER_WORD 4
-#define POINTER_SIZE 32
-
/* A combination of defining PROMOTE_MODE, PROMOTE_FUNCTION_ARGS,
PROMOTE_FOR_CALL_ONLY and *not* defining PROMOTE_PROTOTYPES gives the
best code size and speed for gcc, ipps and products in gcc-2.7.2. */
diff --git a/gcc/config/d30v/d30v.h b/gcc/config/d30v/d30v.h
index 1ef08ac2ca2..122e8b25b10 100644
--- a/gcc/config/d30v/d30v.h
+++ b/gcc/config/d30v/d30v.h
@@ -163,8 +163,6 @@ extern int target_flags;
#define UNITS_PER_WORD 4
-#define POINTER_SIZE 32
-
#define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \
do { \
if (GET_MODE_CLASS (MODE) == MODE_INT \
diff --git a/gcc/config/dsp16xx/dsp16xx.h b/gcc/config/dsp16xx/dsp16xx.h
index a9812830454..ec8f2b799ae 100644
--- a/gcc/config/dsp16xx/dsp16xx.h
+++ b/gcc/config/dsp16xx/dsp16xx.h
@@ -317,10 +317,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 1
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 16
-
/* Allocation boundary (in *bits*) for storing pointers in memory. */
#define POINTER_BOUNDARY 16
diff --git a/gcc/config/fr30/fr30.h b/gcc/config/fr30/fr30.h
index 4d04bc678c0..cc59cd4c966 100644
--- a/gcc/config/fr30/fr30.h
+++ b/gcc/config/fr30/fr30.h
@@ -85,8 +85,6 @@ extern int target_flags;
#define UNITS_PER_WORD 4
-#define POINTER_SIZE 32
-
#define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \
do \
{ \
diff --git a/gcc/config/h8300/h8300.h b/gcc/config/h8300/h8300.h
index f5b54db6b31..79562fcd602 100644
--- a/gcc/config/h8300/h8300.h
+++ b/gcc/config/h8300/h8300.h
@@ -201,10 +201,6 @@ extern int target_flags;
#define UNITS_PER_WORD (TARGET_H8300H || TARGET_H8300S ? 4 : 2)
#define MIN_UNITS_PER_WORD 2
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE (TARGET_H8300H || TARGET_H8300S ? 32 : 16)
-
#define SHORT_TYPE_SIZE 16
#define INT_TYPE_SIZE (TARGET_INT32 ? 32 : 16)
#define LONG_TYPE_SIZE 32
diff --git a/gcc/config/i370/i370.h b/gcc/config/i370/i370.h
index 628a021dfd2..112758c7ad0 100644
--- a/gcc/config/i370/i370.h
+++ b/gcc/config/i370/i370.h
@@ -90,10 +90,6 @@ extern int mvs_function_name_length;
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer. See also the macro `Pmode' defined below. */
-
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing pointers in memory. */
#define POINTER_BOUNDARY 32
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index 023a9dc1464..50e8dd5f6cf 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -718,10 +718,6 @@ extern int ix86_arch;
#define UNITS_PER_WORD (TARGET_64BIT ? 8 : 4)
#define MIN_UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE BITS_PER_WORD
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY BITS_PER_WORD
diff --git a/gcc/config/i860/i860.h b/gcc/config/i860/i860.h
index 4bba5849690..f9fd62c88d6 100644
--- a/gcc/config/i860/i860.h
+++ b/gcc/config/i860/i860.h
@@ -85,10 +85,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/i960/i960.h b/gcc/config/i960/i960.h
index a9f7e256c0a..794b3c90579 100644
--- a/gcc/config/i960/i960.h
+++ b/gcc/config/i960/i960.h
@@ -399,9 +399,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer. See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Width in bits of a long double. Define to 96, and let
ROUND_TYPE_ALIGN adjust the alignment for speed. */
#define LONG_DOUBLE_TYPE_SIZE (TARGET_LONG_DOUBLE_64 ? 64 : 96)
diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h
index ef51ce1dc64..8d9aeebb7c7 100644
--- a/gcc/config/m32r/m32r.h
+++ b/gcc/config/m32r/m32r.h
@@ -462,10 +462,6 @@ extern enum m32r_sdata m32r_sdata;
PROMOTE_MODE. */
/*#define PROMOTE_FUNCTION_RETURN*/
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/m68hc11/m68hc11.h b/gcc/config/m68hc11/m68hc11.h
index cdb28e796c6..b522c849814 100644
--- a/gcc/config/m68hc11/m68hc11.h
+++ b/gcc/config/m68hc11/m68hc11.h
@@ -244,9 +244,6 @@ extern const struct processor_costs *m68hc11_cost;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 2
-/* Width in bits of a pointer. See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 16
-
/* Definition of size_t. This is really an unsigned short as the
68hc11 only handles a 64K address space. */
#define SIZE_TYPE "short unsigned int"
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index 9d89fe74d03..9a20494aa38 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -318,10 +318,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY (TARGET_SHORT ? 16 : 32)
diff --git a/gcc/config/m88k/m88k.h b/gcc/config/m88k/m88k.h
index 8e82c5c8eaa..2373b9dbbca 100644
--- a/gcc/config/m88k/m88k.h
+++ b/gcc/config/m88k/m88k.h
@@ -338,10 +338,6 @@ extern int flag_pic; /* -fpic */
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/mcore/mcore.h b/gcc/config/mcore/mcore.h
index 1de6fbc8d67..40f0ab20598 100644
--- a/gcc/config/mcore/mcore.h
+++ b/gcc/config/mcore/mcore.h
@@ -248,10 +248,6 @@ extern const char * mcore_stack_increment_string;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* A C expression for the size in bits of the type `long long' on the
target machine. If you don't define this, the default is two
words. */
diff --git a/gcc/config/mmix/mmix.h b/gcc/config/mmix/mmix.h
index 53521e8dea2..45c474a8e82 100644
--- a/gcc/config/mmix/mmix.h
+++ b/gcc/config/mmix/mmix.h
@@ -254,7 +254,6 @@ extern int target_flags;
#define WORDS_BIG_ENDIAN 1
#define FLOAT_WORDS_BIG_ENDIAN 1
#define UNITS_PER_WORD 8
-#define POINTER_SIZE 64
/* FIXME: This macro is correlated to MAX_FIXED_MODE_SIZE in that
e.g. this macro must not be 8 (default, UNITS_PER_WORD) when
diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h
index a0fe0cd833f..2c1dc7af05b 100644
--- a/gcc/config/mn10300/mn10300.h
+++ b/gcc/config/mn10300/mn10300.h
@@ -93,10 +93,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/ns32k/ns32k.h b/gcc/config/ns32k/ns32k.h
index 00d3aa7b023..04bf0b2e949 100644
--- a/gcc/config/ns32k/ns32k.h
+++ b/gcc/config/ns32k/ns32k.h
@@ -199,10 +199,6 @@ while (0)
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index b25b33fbf30..5d0955f57b9 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -393,10 +393,6 @@ extern int target_flags;
#define UNITS_PER_WORD (TARGET_64BIT ? 8 : 4)
#define MIN_UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE BITS_PER_WORD
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY BITS_PER_WORD
diff --git a/gcc/config/pdp11/pdp11.h b/gcc/config/pdp11/pdp11.h
index 38ee43e61d5..53888ee03f8 100644
--- a/gcc/config/pdp11/pdp11.h
+++ b/gcc/config/pdp11/pdp11.h
@@ -173,10 +173,6 @@ extern int target_flags;
DImode or Dfmode ...*/
#define MAX_FIXED_MODE_SIZE 64
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 16
-
/* Allocation boundary (in *bits*) for storing pointers in memory. */
#define POINTER_BOUNDARY 16
diff --git a/gcc/config/pj/pj.h b/gcc/config/pj/pj.h
index 5c0095e08df..294f2fea983 100644
--- a/gcc/config/pj/pj.h
+++ b/gcc/config/pj/pj.h
@@ -134,10 +134,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/romp/romp.h b/gcc/config/romp/romp.h
index 081b5181a49..07150c0a4fb 100644
--- a/gcc/config/romp/romp.h
+++ b/gcc/config/romp/romp.h
@@ -93,10 +93,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h
index bdfc4557d6f..8ab287b2df7 100644
--- a/gcc/config/s390/s390.h
+++ b/gcc/config/s390/s390.h
@@ -113,10 +113,6 @@ extern int current_function_outgoing_args_size;
#define UNITS_PER_WORD (TARGET_64BIT ? 8 : 4)
#define MIN_UNITS_PER_WORD 4
-/* Width in bits of a pointer. See also the macro `Pmode' defined below. */
-
-#define POINTER_SIZE (TARGET_64BIT ? 64 : 32)
-
/* A C expression for the size in bits of the type `short' on the
target machine. If you don't define this, the default is half a
word. (If this would be less than one storage unit, it is
diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h
index 846ac246a12..099fac0d8cb 100644
--- a/gcc/config/stormy16/stormy16.h
+++ b/gcc/config/stormy16/stormy16.h
@@ -91,8 +91,6 @@ extern int target_flags;
#define UNITS_PER_WORD 2
-#define POINTER_SIZE 16
-
#define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \
do { \
if (GET_MODE_CLASS (MODE) == MODE_INT \
diff --git a/gcc/config/v850/v850.h b/gcc/config/v850/v850.h
index 175fc9ffd5e..077572bd27a 100644
--- a/gcc/config/v850/v850.h
+++ b/gcc/config/v850/v850.h
@@ -231,10 +231,6 @@ extern struct small_memory_info small_memory[(int)SMALL_MEMORY_max];
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Define this macro if it is advisable to hold scalars in registers
in a wider mode than that declared by the program. In such cases,
the value is constrained to be within the bounds of the declared
diff --git a/gcc/config/vax/vax.h b/gcc/config/vax/vax.h
index 87f405c76a9..72c7f3dfc3a 100644
--- a/gcc/config/vax/vax.h
+++ b/gcc/config/vax/vax.h
@@ -106,10 +106,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/we32k/we32k.h b/gcc/config/we32k/we32k.h
index b3ff2062bb9..eec05ab3211 100644
--- a/gcc/config/we32k/we32k.h
+++ b/gcc/config/we32k/we32k.h
@@ -65,10 +65,6 @@ extern int target_flags;
/* Width of a word, in units (bytes). */
#define UNITS_PER_WORD 4
-/* Width in bits of a pointer.
- See also the macro `Pmode' defined below. */
-#define POINTER_SIZE 32
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY 32
diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h
index 1083ebc71db..7d581b3f2a8 100644
--- a/gcc/config/xtensa/xtensa.h
+++ b/gcc/config/xtensa/xtensa.h
@@ -250,7 +250,6 @@ extern unsigned xtensa_current_frame_size;
#define FLOAT_TYPE_SIZE 32
#define DOUBLE_TYPE_SIZE 64
#define LONG_DOUBLE_TYPE_SIZE 64
-#define POINTER_SIZE 32
/* Tell the preprocessor the maximum size of wchar_t. */
#ifndef MAX_WCHAR_TYPE_SIZE
diff --git a/gcc/defaults.h b/gcc/defaults.h
index ffec32c6266..1597d52a97c 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -329,6 +329,11 @@ do { \
#define LONG_DOUBLE_TYPE_SIZE (BITS_PER_WORD * 2)
#endif
+/* Width in bits of a pointer. Mind the value of the macro `Pmode'. */
+#ifndef POINTER_SIZE
+#define POINTER_SIZE BITS_PER_WORD
+#endif
+
#ifndef BUILD_VA_LIST_TYPE
#define BUILD_VA_LIST_TYPE(X) ((X) = ptr_type_node)
#endif
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index ad7917eca4b..20d9fa12566 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -951,7 +951,8 @@ smallest value that @code{UNITS_PER_WORD} can have at run-time.
@item POINTER_SIZE
Width of a pointer, in bits. You must specify a value no wider than the
width of @code{Pmode}. If it is not equal to the width of @code{Pmode},
-you must define @code{POINTERS_EXTEND_UNSIGNED}.
+you must define @code{POINTERS_EXTEND_UNSIGNED}. If you do not specify
+a value the default is @code{BITS_PER_WORD}.
@findex POINTERS_EXTEND_UNSIGNED
@item POINTERS_EXTEND_UNSIGNED