]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
emit-rtl.c (mark_reg_pointer): Don't increase the alignment of a register that is...
authorJeff Law <law@gcc.gnu.org>
Wed, 11 Aug 1999 07:28:52 +0000 (01:28 -0600)
committerJeff Law <law@gcc.gnu.org>
Wed, 11 Aug 1999 07:28:52 +0000 (01:28 -0600)
        * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
        a register that is already known to be a pointer.

From-SVN: r28662

gcc/ChangeLog
gcc/emit-rtl.c

index f2fc1aae41812f822d3e2174ce395e7c6738c1c0..de9d9d735e1fb98f70580c0e6f52bd8c0736abbc 100644 (file)
@@ -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.
index 4519a23b5afb5e5ec11118524369cec7913247fa..36b030ae7b6b42fbba568fb496bc3fabca47dfad 100644 (file)
@@ -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;
 }