expr.c (emit_group_load): Use extract_bit_field to load from the stack.
authorEric Botcazou <ebotcazou@libertysurf.fr>
Fri, 12 Nov 2004 06:59:47 +0000 (07:59 +0100)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 12 Nov 2004 06:59:47 +0000 (06:59 +0000)
* expr.c (emit_group_load) <CONCAT>: Use extract_bit_field
to load from the stack.

From-SVN: r90521

gcc/ChangeLog
gcc/expr.c

index 5a5d6d1f1298ad0b145037e1da2fafb05bbcf679..3696bd12c4c4686a33de98d9265bf3a80c8fa277 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * expr.c (emit_group_load) <CONCAT>: Use extract_bit_field
+       to load from the stack.
+
 2004-11-12  Richard Henderson  <rth@redhat.com>
 
        * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI.
index 18d3ff6edec0ebfe36944c32642f7fc21b7fe09a..6037fd12a1018adf4ac9cb22f6634556f2fb8c45 100644 (file)
@@ -1673,11 +1673,12 @@ emit_group_load (rtx dst, rtx orig_src, tree type ATTRIBUTE_UNUSED, int ssize)
          else
            {
              rtx mem;
-             
+
              gcc_assert (!bytepos);
              mem = assign_stack_temp (GET_MODE (src), slen, 0);
              emit_move_insn (mem, src);
-             tmps[i] = adjust_address (mem, mode, 0);
+             tmps[i] = extract_bit_field (mem, bytelen * BITS_PER_UNIT,
+                                          0, 1, NULL_RTX, mode, mode);
            }
        }
       /* FIXME: A SIMD parallel will eventually lead to a subreg of a