http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50751

--- Comment #26 from Oleg Endo <olegendo at gcc dot gnu.org> 2012-04-11 
11:35:36 UTC ---
Author: olegendo
Date: Wed Apr 11 11:35:32 2012
New Revision: 186311

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=186311
Log:
    PR target/50751
    * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
    consider_sh2a and allow_zero.
    * config/sh/sh.c (sh_legitimate_index_p): Likewise.
    (disp_addr_displacement): New function.
    (sh_address_cost): Use disp_addr_displacement function instead
    of DISP_ADDR_OFFSET.
    (sh_legitimate_address_p): Adapt to changed
    sh_legitimate_index_p declaration.
    (sh_find_mov_disp_adjust): Remove HImode check.
    (sh_secondary_reload): Add HImode case.  Use satisfies_constraint_Sdd,
    disp_addr_displacement and max_mov_insn_displacement.
    (max_mov_insn_displacement): Remove HImode check.
    * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, 
    DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
    * config/sh/constraints.md (K05, K13): New constraints.
    (K12): Correct comment.
    (Sdd): Do not use DISP_ADDR_P macro.
    (Snd, Sbw): Use satisfies_constraint_Sdd.
    * config/sh/sh.md (extendhisi2): Remove constraints from expander.
    (*extendhisi2_compact, movhi_i): Remove.
    (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
    *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
    *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
    *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
    (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
    *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
    *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
    CONST_OK_FOR_Kxx.
    Add new peepholes for HImode displacement addressing.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sh/constraints.md
    trunk/gcc/config/sh/predicates.md
    trunk/gcc/config/sh/sh-protos.h
    trunk/gcc/config/sh/sh.c
    trunk/gcc/config/sh/sh.h
    trunk/gcc/config/sh/sh.md

Reply via email to