diff options
author | Richard Henderson <rth@redhat.com> | 2002-02-04 15:06:04 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-02-04 15:06:04 -0800 |
commit | ebbb0a63f48a678ebc3b6064a60304aeb7662268 (patch) | |
tree | b65c47de638a18cfb8b68bee82e4ba352c4a8d25 | |
parent | ae4b4a02e878b8ec473d5cabd3b043fe8dfd8940 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/combine.c | 9 |
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; |