expr.c (emit_group_store): Correct operand order in call to subreg_lowpart_offset.
authorRoger Sayle <roger@eyesopen.com>
Wed, 12 Apr 2006 13:46:19 +0000 (13:46 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Wed, 12 Apr 2006 13:46:19 +0000 (13:46 +0000)
* expr.c (emit_group_store): Correct operand order in call to
subreg_lowpart_offset.  Always create paradoxical SUBREGs with
a SUBREG_BYTE of zero.

From-SVN: r112887

gcc/ChangeLog
gcc/expr.c

index 96027f892f022215ac712569170e7e368248e717..040d8c70e3011aedae490f4e9a6e39006652167d 100644 (file)
@@ -1,3 +1,9 @@
+2006-04-12  Roger Sayle  <roger@eyesopen.com>
+
+       * expr.c (emit_group_store): Correct operand order in call to
+       subreg_lowpart_offset.  Always create paradoxical SUBREGs with
+       a SUBREG_BYTE of zero.
+
 2006-04-12  Richard Guenther  <rguenther@suse.de>
 
        * profile.c (compute_branch_probabilities): Remove code
index 1f4cbe10151a6f3c4962de93b8c2b248949173fc..48e23a98cde15a985890640c403172b0772c7a50 100644 (file)
@@ -1940,11 +1940,11 @@ emit_group_store (rtx orig_dst, rtx src, tree type ATTRIBUTE_UNUSED, int ssize)
       if (start < finish)
        {
          inner = GET_MODE (tmps[start]);
-         bytepos = subreg_lowpart_offset (outer, inner);
+         bytepos = subreg_lowpart_offset (inner, outer);
          if (INTVAL (XEXP (XVECEXP (src, 0, start), 1)) == bytepos)
            {
              temp = simplify_gen_subreg (outer, tmps[start],
-                                         inner, bytepos);
+                                         inner, 0);
              if (temp)
                {
                  emit_move_insn (dst, temp);
@@ -1959,11 +1959,11 @@ emit_group_store (rtx orig_dst, rtx src, tree type ATTRIBUTE_UNUSED, int ssize)
          && start < finish - 1)
        {
          inner = GET_MODE (tmps[finish - 1]);
-         bytepos = subreg_lowpart_offset (outer, inner);
+         bytepos = subreg_lowpart_offset (inner, outer);
          if (INTVAL (XEXP (XVECEXP (src, 0, finish - 1), 1)) == bytepos)
            {
              temp = simplify_gen_subreg (outer, tmps[finish - 1],
-                                         inner, bytepos);
+                                         inner, 0);
              if (temp)
                {
                  emit_move_insn (dst, temp);