OSDN Git Service

PR target/19518
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Jan 2005 03:59:00 +0000 (03:59 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Jan 2005 03:59:00 +0000 (03:59 +0000)
commit91bc47b0da3cd48bd112287ebdbf508712647243
treecda4b7c4fa5fd8c63fdd336bd609206fd5423cd2
parent54d60d02d41bba36cdfa8aab8e7b7b923cdf336d
    PR target/19518
        * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
        (alpha_preferred_reload_class): Handle CONST_VECTOR.
        (alpha_emit_set_const_1): Add no_output parameter; don't emit
        rtl if true.
        (alpha_emit_set_const): Likewise.  Make static.
        (alpha_emit_set_long_const): Make static.
        (alpha_extract_integer): Split out from alpha_expand_mov.
        (alpha_split_const_mov): Likewise.
        (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
        (alpha_legitimate_constant_p): New.
        * config/alpha/alpha-protos.h: Update.
        * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
        (LEGITIMATE_CONSTANT_P): Re-implement with a function.
        * config/alpha/alpha.md (movsi): Add n alternative.
        (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
        (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
        (splitters for all of the above): Use alpha_split_const_mov.
        * config/alpha/predicates.md (non_add_const_operand): New.
        (non_zero_const_operand): New.
        (input_operand): Use alpha_legitimate_constant_p after reload.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93943 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/alpha/alpha-protos.h
gcc/config/alpha/alpha.c
gcc/config/alpha/alpha.h
gcc/config/alpha/alpha.md
gcc/config/alpha/predicates.md
gcc/testsuite/gcc.target/alpha/alpha.exp [new file with mode: 0644]
gcc/testsuite/gcc.target/alpha/pr19518.c [new file with mode: 0644]