aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Earnshaw <rearnsha@arm.com>1999-08-11 07:47:51 +0000
committerJeff Law <law@gcc.gnu.org>1999-08-11 01:47:51 -0600
commit00995e782e6dff70a39966c011afe8b53a7d3f28 (patch)
tree241f7721dd90f27d484d7c4fc7beb728c7db7c01
parent67acfbd7b0194ead0c71f70d98bc98557d8d3728 (diff)
downloadgcc-00995e782e6dff70a39966c011afe8b53a7d3f28.zip
gcc-00995e782e6dff70a39966c011afe8b53a7d3f28.tar.gz
gcc-00995e782e6dff70a39966c011afe8b53a7d3f28.tar.bz2
emit-rtl.c (mark_reg_pointer): Don't increase the alignment of a register that is already known to be a pointer.
* emit-rtl.c (mark_reg_pointer): Don't increase the alignment of a register that is already known to be a pointer. From-SVN: r28664
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/emit-rtl.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2672f4b..03b3c7c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+1999-08-11 Richard Earnshaw (rearnsha@arm.com)
+
+ * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
+ a register that is already known to be a pointer.
+
1999-08-11 Bruce Korb <ddsinc09@ix.netcom.com>
* fixinc/inclhack.tpl: Only install assert.h conditionally.
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index cf05529..aa0b21e 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -570,9 +570,15 @@ mark_reg_pointer (reg, align)
rtx reg;
int align;
{
- REGNO_POINTER_FLAG (REGNO (reg)) = 1;
+ if (! REGNO_POINTER_FLAG (REGNO (reg)))
+ {
+ REGNO_POINTER_FLAG (REGNO (reg)) = 1;
- if (align)
+ if (align)
+ REGNO_POINTER_ALIGN (REGNO (reg)) = align;
+ }
+ else if (align && align < REGNO_POINTER_ALIGN (REGNO (reg)))
+ /* We can no-longer be sure just how aligned this pointer is */
REGNO_POINTER_ALIGN (REGNO (reg)) = align;
}