Commit c03cfe1e by Oleg Endo

re PR target/53911 ([SH] Improve displacement addressing)

	PR target/53911
	* config/sh/sh.md: Remove displacement addresssing related splits.

From-SVN: r189416
parent 87e2a8fd
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.
......
......@@ -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" ""))]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment