]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/55235 (FAIL: gcc.target/i386/pr44948-2a.c)
authorUros Bizjak <uros@gcc.gnu.org>
Wed, 7 Nov 2012 22:34:48 +0000 (23:34 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Wed, 7 Nov 2012 22:34:48 +0000 (23:34 +0100)
PR middle-end/55235
* expr.c (store_expr): Do not call emit_block_move for
non-BLKmode values.

From-SVN: r193314

gcc/ChangeLog
gcc/expr.c

index b11e7030d2e508a1915c4cafad4934364db7cd9b..0c363c233da749de8aaff90fa5ae4d947794f7e0 100644 (file)
@@ -1,3 +1,9 @@
+2012-11-07  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR middle-end/55235
+       * expr.c (store_expr): Do not call emit_block_move for
+       non-BLKmode values.
+
 2012-11-07  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR middle-end/55219
@@ -7,8 +13,7 @@
 2012-11-07  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR rtl-optimization/55122
-       * lra-constraints.c (match_reload): Sync values for dead input
-       pseudos.
+       * lra-constraints.c (match_reload): Sync values for dead input pseudos.
 
 2012-11-07  Richard Henderson  <rth@redhat.com>
 
index 57e71fbaca3eb837d53b0e9932c9ed86008a37d4..1e41625b2edc659b434d7769e6f95da0b3f63066 100644 (file)
@@ -5246,19 +5246,12 @@ store_expr (tree exp, rtx target, int call_param_p, bool nontemporal)
        {
          if (GET_MODE (target) == BLKmode)
            {
-             if (REG_P (temp))
-               {
-                 if (TREE_CODE (exp) == CALL_EXPR)
-                   copy_blkmode_from_reg (target, temp, TREE_TYPE (exp));
-                 else
-                   store_bit_field (target,
-                                    INTVAL (expr_size (exp)) * BITS_PER_UNIT,
-                                    0, 0, 0, GET_MODE (temp), temp);
-               }
+             if (REG_P (temp) && TREE_CODE (exp) == CALL_EXPR)
+               copy_blkmode_from_reg (target, temp, TREE_TYPE (exp));
              else
-               emit_block_move (target, temp, expr_size (exp),
-                                (call_param_p
-                                 ? BLOCK_OP_CALL_PARM : BLOCK_OP_NORMAL));
+               store_bit_field (target,
+                                INTVAL (expr_size (exp)) * BITS_PER_UNIT,
+                                0, 0, 0, GET_MODE (temp), temp);
            }
          else
            convert_move (target, temp, TYPE_UNSIGNED (TREE_TYPE (exp)));