aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-02-04 15:06:04 -0800
committerRichard Henderson <rth@gcc.gnu.org>2002-02-04 15:06:04 -0800
commitebbb0a63f48a678ebc3b6064a60304aeb7662268 (patch)
treeb65c47de638a18cfb8b68bee82e4ba352c4a8d25 /gcc
parentae4b4a02e878b8ec473d5cabd3b043fe8dfd8940 (diff)
downloadgcc-ebbb0a63f48a678ebc3b6064a60304aeb7662268.zip
gcc-ebbb0a63f48a678ebc3b6064a60304aeb7662268.tar.gz
gcc-ebbb0a63f48a678ebc3b6064a60304aeb7662268.tar.bz2
combine.c (nonzero_bits): Re-introduce special case for sp/fp/ap wrt REGNO_POINTER_ALIGN.
* combine.c (nonzero_bits): Re-introduce special case for sp/fp/ap wrt REGNO_POINTER_ALIGN. From-SVN: r49501
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/combine.c9
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bf46b29..c38eaa4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-02-04 Richard Henderson <rth@redhat.com>
+
+ * combine.c (nonzero_bits): Re-introduce special case for
+ sp/fp/ap wrt REGNO_POINTER_ALIGN.
+
2002-02-05 Aldy Hernandez <aldyh@redhat.com>
* doc/extend.texi: Warn about unsupported usage of altivec
diff --git a/gcc/combine.c b/gcc/combine.c
index 7662b9b..269731f 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -7896,8 +7896,13 @@ nonzero_bits (x, mode)
#endif
/* Include declared information about alignment of pointers. */
-
- if (REG_POINTER (x) && REGNO_POINTER_ALIGN (REGNO (x)))
+ /* ??? We don't properly preserve REG_POINTER changes across
+ pointer-to-integer casts, so we can't trust it except for
+ things that we know must be pointers. See execute/960116-1.c. */
+ if ((x == stack_pointer_rtx
+ || x == frame_pointer_rtx
+ || x == arg_pointer_rtx)
+ && REGNO_POINTER_ALIGN (REGNO (x)))
{
unsigned HOST_WIDE_INT alignment
= REGNO_POINTER_ALIGN (REGNO (x)) / BITS_PER_UNIT;