From 0a317111c89223ebc8ec82e7f35f72578d941b59 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Fri, 12 Sep 2008 13:31:51 +0000 Subject: [PATCH] emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment information passed to mark_reg_pointer. * emit-rtl.c (set_reg_attrs_from_value): Fix invalid alignment information passed to mark_reg_pointer. * explow.c (force_reg): Likewise. From-SVN: r140318 --- gcc/ChangeLog | 6 ++++++ gcc/emit-rtl.c | 2 +- gcc/explow.c | 4 +--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 653dc51e0592..f499e2fe04ab 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-09-12 Ulrich Weigand + + * 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 * config/spu/spu.c (spu_override_options): Default to -mno-safe-hints diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 0efce7e24340..318ae7753300 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -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)) { diff --git a/gcc/explow.c b/gcc/explow.c index a1f765060233..498d40e284e0 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -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); }