* sh.md (mulsi3): Don't add a no-op move at the end.
From-SVN: r27554
This commit is contained in:
parent
96559bc552
commit
78d114ef2d
@ -1,3 +1,7 @@
|
|||||||
|
Thu Jun 17 01:45:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||||
|
|
||||||
|
* sh.md (mulsi3): Don't add a no-op move at the end.
|
||||||
|
|
||||||
Wed Jun 16 20:29:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
Wed Jun 16 20:29:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||||
|
|
||||||
* cse.c (cse_insn): Don't put hard register source into tables for
|
* cse.c (cse_insn): Don't put hard register source into tables for
|
||||||
|
@ -1112,20 +1112,12 @@
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
rtx macl = gen_rtx_REG (SImode, MACL_REG);
|
rtx macl = gen_rtx_REG (SImode, MACL_REG);
|
||||||
rtx giv_insn;
|
|
||||||
|
|
||||||
first = emit_insn (gen_mul_l (operands[1], operands[2]));
|
first = emit_insn (gen_mul_l (operands[1], operands[2]));
|
||||||
/* consec_sets_giv can only recognize the first insn that sets a
|
/* consec_sets_giv can only recognize the first insn that sets a
|
||||||
giv as the giv insn. So we must tag this also with a REG_EQUAL
|
giv as the giv insn. So we must tag this also with a REG_EQUAL
|
||||||
note. */
|
note. */
|
||||||
giv_insn = emit_insn (gen_movsi_i ((operands[0]), macl));
|
last = emit_insn (gen_movsi_i ((operands[0]), macl));
|
||||||
REG_NOTES (giv_insn)
|
|
||||||
= gen_rtx_EXPR_LIST (REG_EQUAL,
|
|
||||||
gen_rtx_MULT (SImode, operands[1], operands[2]),
|
|
||||||
REG_NOTES (giv_insn));
|
|
||||||
/* The sequence must end in a no-op move, lest cse puts macl in its
|
|
||||||
tables and does invalid substitutions. */
|
|
||||||
last = emit_insn (gen_movsi_i ((operands[0]), operands[0]));
|
|
||||||
}
|
}
|
||||||
/* Wrap the sequence in REG_LIBCALL / REG_RETVAL notes so that loop
|
/* Wrap the sequence in REG_LIBCALL / REG_RETVAL notes so that loop
|
||||||
invariant code motion can move it. */
|
invariant code motion can move it. */
|
||||||
|
Loading…
Reference in New Issue
Block a user