re PR rtl-optimization/15289 (reload error with non-lowpart subregs)
authorRichard Henderson <rth@redhat.com>
Wed, 1 Dec 2004 18:13:31 +0000 (10:13 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 1 Dec 2004 18:13:31 +0000 (10:13 -0800)
commit1466e38701d72d8f9655a467ca140fb2b8a10dab
tree0f615db96d2762fa43d9e464d0d9e93fff7ad6a2
parent8c1cfd5aa4a3eb878b7591a688c79dd939684813
re PR rtl-optimization/15289 (reload error with non-lowpart subregs)

        PR rtl-opt/15289
        * emit-rtl.c (gen_complex_constant_part): Remove.
        (gen_realpart, gen_imagpart): Remove.
        * rtl.h (gen_realpart, gen_imagpart): Remove.
        * expmed.c (extract_bit_field): Remove CONCAT hack catering to
        gen_realpart/gen_imagpart.
        * expr.c (write_complex_part, read_complex_part): New.
        (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
        emit_move_complex_push, emit_move_complex, emit_move_ccmode,
        emit_move_multi_word): Split out from ...
        (emit_move_insn_1): ... here.
        (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
        <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
        * function.c (assign_parm_setup_reg): Hard-code transformations
        instead of using gen_realpart/gen_imagpart.

From-SVN: r91571
gcc/ChangeLog
gcc/emit-rtl.c
gcc/expmed.c
gcc/expr.c
gcc/function.c
gcc/rtl.h