aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOleg Endo <olegendo@gcc.gnu.org>2012-07-10 22:01:44 +0000
committerOleg Endo <olegendo@gcc.gnu.org>2012-07-10 22:01:44 +0000
commitc03cfe1eee37ec8369d85559af885a697149205a (patch)
treeadf36b3400263000e929c91b2167a2b8f415dc10 /gcc
parent87e2a8fd39ac34b507dcadad62008ea3b5b6a735 (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.md57
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" ""))]