diff options
author | Oleg Endo <olegendo@gcc.gnu.org> | 2012-07-10 22:01:44 +0000 |
---|---|---|
committer | Oleg Endo <olegendo@gcc.gnu.org> | 2012-07-10 22:01:44 +0000 |
commit | c03cfe1eee37ec8369d85559af885a697149205a (patch) | |
tree | adf36b3400263000e929c91b2167a2b8f415dc10 | |
parent | 87e2a8fd39ac34b507dcadad62008ea3b5b6a735 (diff) | |
download | gcc-c03cfe1eee37ec8369d85559af885a697149205a.zip gcc-c03cfe1eee37ec8369d85559af885a697149205a.tar.gz gcc-c03cfe1eee37ec8369d85559af885a697149205a.tar.bz2 |
re PR target/53911 ([SH] Improve displacement addressing)
PR target/53911
* config/sh/sh.md: Remove displacement addresssing related splits.
From-SVN: r189416
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sh/sh.md | 57 |
2 files changed, 5 insertions, 57 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f49066c..937eaa4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-07-10 Oleg Endo <olegendo@gcc.gnu.org> + + PR target/53911 + * config/sh/sh.md: Remove displacement addresssing related splits. + 2012-07-10 Xinliang David Li <davidxl@google.com> * doc/invoke.texi: New option documented. diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index bc2b7ae..b5add4b 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -6683,63 +6683,6 @@ label: FAIL; }) -;; If a base address generated by LEGITIMIZE_ADDRESS for SImode is -;; used only once, let combine add in the index again. - -(define_split - [(set (match_operand:SI 0 "register_operand" "") - (match_operand:SI 1 "" "")) - (clobber (match_operand 2 "register_operand" ""))] - "TARGET_SH1 && ! reload_in_progress && ! reload_completed - && ALLOW_INDEXED_ADDRESS" - [(use (reg:SI R0_REG))] -{ - rtx addr, reg, const_int; - - if (!MEM_P (operands[1])) - FAIL; - addr = XEXP (operands[1], 0); - if (GET_CODE (addr) != PLUS) - FAIL; - reg = XEXP (addr, 0); - const_int = XEXP (addr, 1); - if (! (BASE_REGISTER_RTX_P (reg) && INDEX_REGISTER_RTX_P (operands[2]) - && CONST_INT_P (const_int))) - FAIL; - emit_move_insn (operands[2], const_int); - emit_move_insn (operands[0], - change_address (operands[1], VOIDmode, - gen_rtx_PLUS (SImode, reg, operands[2]))); - DONE; -}) - -(define_split - [(set (match_operand:SI 1 "" "") - (match_operand:SI 0 "register_operand" "")) - (clobber (match_operand 2 "register_operand" ""))] - "TARGET_SH1 && ! reload_in_progress && ! reload_completed - && ALLOW_INDEXED_ADDRESS" - [(use (reg:SI R0_REG))] -{ - rtx addr, reg, const_int; - - if (!MEM_P (operands[1])) - FAIL; - addr = XEXP (operands[1], 0); - if (GET_CODE (addr) != PLUS) - FAIL; - reg = XEXP (addr, 0); - const_int = XEXP (addr, 1); - if (! (BASE_REGISTER_RTX_P (reg) && INDEX_REGISTER_RTX_P (operands[2]) - && CONST_INT_P (const_int))) - FAIL; - emit_move_insn (operands[2], const_int); - emit_move_insn (change_address (operands[1], VOIDmode, - gen_rtx_PLUS (SImode, reg, operands[2])), - operands[0]); - DONE; -}) - (define_expand "movdf" [(set (match_operand:DF 0 "general_movdst_operand" "") (match_operand:DF 1 "general_movsrc_operand" ""))] |