diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expr.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a5d6d1..3696bd1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. @@ -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 |