emit-rtl.c (mark_reg_pointer): Don't increase the alignment of a register that is...
authorRichard Earnshaw <rearnsha@arm.com>
Wed, 11 Aug 1999 07:47:51 +0000 (07:47 +0000)
committerJeff Law <law@gcc.gnu.org>
Wed, 11 Aug 1999 07:47:51 +0000 (01:47 -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: r28664

gcc/ChangeLog
gcc/emit-rtl.c

index 2672f4b7db3db21032adef4e3a4c671fd4640dba..03b3c7c9c4784a976b5e716245263be411a0e3a3 100644 (file)
@@ -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.
index cf05529ebbfcdd2e4c4a06fd28ec038be6f2f708..aa0b21e532e3dd3c7ffcbacb424a90f7677c201a 100644 (file)
@@ -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;
 }