OSDN Git Service

* emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Sep 2008 13:31:51 +0000 (13:31 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Sep 2008 13:31:51 +0000 (13:31 +0000)
information passed to mark_reg_pointer.
* explow.c (force_reg): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140318 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/emit-rtl.c
gcc/explow.c

index 653dc51..f499e2f 100644 (file)
@@ -1,5 +1,11 @@
 2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
 
+       * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment
+       information passed to mark_reg_pointer.
+       * explow.c (force_reg): Likewise.
+
+2008-09-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
        * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints
        when building for the celledp architecture.
 
index 0efce7e..318ae77 100644 (file)
@@ -979,7 +979,7 @@ set_reg_attrs_from_value (rtx reg, rtx x)
        REG_ATTRS (reg)
          = get_reg_attrs (MEM_EXPR (x), INTVAL (MEM_OFFSET (x)) + offset);
       if (MEM_POINTER (x))
-       mark_reg_pointer (reg, MEM_ALIGN (x));
+       mark_reg_pointer (reg, 0);
     }
   else if (REG_P (x))
     {
index a1f7650..498d40e 100644 (file)
@@ -698,10 +698,8 @@ force_reg (enum machine_mode mode, rtx x)
 
        align = MIN (sa, ca);
       }
-    else if (MEM_P (x) && MEM_POINTER (x))
-      align = MEM_ALIGN (x);
 
-    if (align)
+    if (align || (MEM_P (x) && MEM_POINTER (x)))
       mark_reg_pointer (temp, align);
   }