aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.h
diff options
context:
space:
mode:
authorOleg Endo <olegendo@gcc.gnu.org>2012-04-11 11:35:32 +0000
committerOleg Endo <olegendo@gcc.gnu.org>2012-04-11 11:35:32 +0000
commit8c2a3f3b6cc7bc38af483ac4923258d376f90954 (patch)
tree07b8b694f4fd16b55292cb37ed731c28edfb17ed /gcc/rtl.h
parentb16212bd3c3ecd421c09c3a632b43ec68674b6bf (diff)
downloadgcc-8c2a3f3b6cc7bc38af483ac4923258d376f90954.zip
gcc-8c2a3f3b6cc7bc38af483ac4923258d376f90954.tar.gz
gcc-8c2a3f3b6cc7bc38af483ac4923258d376f90954.tar.bz2
re PR target/50751 (SH Target: Displacement addressing does not work for QImode and HImode)
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. From-SVN: r186311
Diffstat (limited to 'gcc/rtl.h')
0 files changed, 0 insertions, 0 deletions