aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-08-11 07:28:52 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-08-11 07:28:52 +0000
commit54eff2ec6bfb8d89bf294693d882c11372e490b2 (patch)
treeee75317231058e1f4e56609b748187c3dbee5176
parenta6eeac82e449103250c4775a94a44243af461538 (diff)
* emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
a register that is already known to be a pointer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-2_95-branch@28662 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/emit-rtl.c10
2 files changed, 14 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f2fc1aae418..de9d9d735e1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
-1999-08-01 Bruce Korb <ddsinc09@ix.netcom.com>
+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.
* fixinc/inclhack.sh: Regenerated.
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 4519a23b5af..36b030ae7b6 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -630,9 +630,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;
}